Antes de ler o corpo da resposta, o seu código deve olhar o status. Ele diz se dá para usar o resultado, se é preciso corrigir o pedido ou se vale tentar de novo mais tarde. A semântica de cada código está na especificação do HTTP, hoje a RFC 9110.
As cinco famílias
| Família | Significado | O que fazer |
|---|---|---|
| 1xx | Informativo | Raramente aparece numa API. |
| 2xx | Sucesso | Ler o corpo. |
| 3xx | Redirecionamento | Seguir o novo endereço. |
| 4xx | Erro do cliente | Corrigir o pedido. Repetir igual não resolve, salvo exceções como o 429. |
| 5xx | Erro do servidor | Tentar de novo depois, de forma segura. |
Na API da xFlow
A documentação da xFlow usa estes códigos:
| Status | Quando aparece |
|---|---|
200 |
Requisição bem-sucedida. |
201 |
Recurso criado, como uma cobrança ou um saque. |
202 |
Estorno aceito pelo PSP, ainda em processamento. |
400 |
Corpo inválido. O campo details aponta o problema. |
401 |
Chave ausente, inválida ou revogada, ou IP fora da allowlist. |
403 |
Conta em análise ou bloqueada, saque por API desabilitado, recurso indisponível com chave de teste ou simulação chamada com chave de produção. |
404 |
Cobrança ou saque não encontrado. |
409 |
Idempotency-Key reusada com um corpo diferente. |
422 |
Recusa de negócio, como saque sem saldo ou estorno fora do prazo. |
429 |
Limite de requisições excedido. |
502 |
Falha no provedor ao gerar a cobrança, ou PSP que recusou ou não respondeu ao estorno. |
Todo erro volta em JSON com error, message e request_id. O status diz a família. O campo error diz o caso exato, e é nele que o seu código deve decidir o que fazer.
Exemplo
{
"error": "idempotency_conflict",
"message": "...",
"request_id": "req_..."
}Esse 409 não se resolve repetindo: a mesma chave só vale para o mesmo pedido, como explica o verbete de idempotência. Já o 429 pede espera, como mostra o rate limit. A tabela com cada código de erro, a causa e a solução está em erros da API Pix.
Termos relacionados
- API REST: o modelo de requisições em que os status aparecem.
- Rate limit: o caso do 429.
- Idempotência: o caso do 409.