Fundamentos
Erros
Todo erro volta no mesmo envelope, com um código estável para o seu sistema e uma mensagem em português para quem opera.
O envelope
Qualquer resposta de erro tem um array errors. Cada item tem um code — estável, feito para o
seu código decidir o que fazer — e uma message em português, feita para mostrar a uma pessoa.
{
"errors": [
{
"code": "ANTICIPATION_INVALID_DUE_DATE",
"message": "O vencimento da nota deve ser de pelo menos 5 dias a partir de hoje"
}
]
}
{
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "supplier: Campo obrigatório"
},
{
"code": "VALIDATION_ERROR",
"message": "Valor mínimo de R$ 500,00"
}
]
}
Erros de validação
Um corpo inválido responde 400 com um item por problema, todos com
code: "VALIDATION_ERROR". O campo não vem separado: quando ajuda, ele aparece no começo da mensagem
(supplier: Campo obrigatório, Vencimento: Data inválida (use o formato AAAA-MM-DD)).
Campos que a API não conhece são ignorados sem erro. Confira o nome de cada campo na referência do endpoint.
Status HTTP
| Status | Significa | Retentar? |
|---|---|---|
| 400 | O corpo, o header ou o parâmetro não passou na validação. | Não. Corrija a requisição. |
| 401 | Chave ausente, inválida, revogada ou expirada. | Não. Troque a chave. |
| 403 | Chave sem escopo, ou responsável sem permissão. | Não. Ajuste escopo ou responsável. |
| 404 | Rota ou operação não encontrada. | Não. |
| 409 | Conflito: nota já em andamento, operação que mudou de estado durante a chamada, ou conflito de idempotência. | Depende do código — veja nota duplicada e Idempotência. |
| 413 | Arquivo acima de 10 MB. | Não. Envie arquivo menor. |
| 422 | A requisição é válida, mas a regra de negócio recusou. | Não sem mudar os dados. |
| 429 | Limite de requisições atingido. | Sim, depois do Retry-After. |
| 500 | Erro inesperado da Oneos. | Sim, com espera crescente e a mesma Idempotency-Key. |
Os códigos de cada endpoint estão nas páginas de criar, cancelar e consultar; os de chave, em Autenticação.
Dados estruturados
Alguns erros trazem, além de errors, um array details com o dado que o seu sistema precisa para
agir — hoje, o anticipationId da operação existente no
409 PRE_AUTH_DUPLICATE_INVOICE. Leia o id de
details, nunca da message.
Retentativas seguras
- Retente só
429,5xxe falhas de rede (timeout, conexão recusada). - Espere o
Retry-Afterno429; nos outros casos, espere cada vez mais (1 s, 2 s, 4 s…). -
Ao criar pré-autorização, repita a mesma
Idempotency-Key: se a primeira chamada tinha dado certo e só a resposta se perdeu, a Oneos devolve a operação original em vez de criar outra.