Skip to main content
A API usa códigos de status HTTP convencionais. Respostas 2xx indicam sucesso, 4xx indicam um problema na requisição e 5xx indicam um problema do lado da Routa.

Formato do erro

Todo erro de negócio tem a mesma estrutura, no estilo de APIs de pagamento que você provavelmente já conhece:
O code faz parte do contrato: ele nunca é renomeado. Novos códigos podem ser adicionados a qualquer momento, então trate códigos desconhecidos de forma genérica, usando o type e o status HTTP.
O mesmo request_id também vem no header Routa-Request-Id de toda resposta.

Detalhes acionáveis

Alguns erros trazem details com valores que você pode usar programaticamente:

Tipos de erro

billing_error usa 402, nunca 429. Clientes retentam 429, mas esperar não aumenta a franquia de um plano.

Status HTTP

Erros de validação de schema

Quando o corpo ou os parâmetros não respeitam o schema da rota (por exemplo, falta um campo obrigatório), a API responde 422 com um objeto de validação, e não com o envelope error:
Trate todo 422 assim: se existir error.code, use-o. Caso contrário, é um erro de validação do schema, e property aponta o campo.

Como tratar cada erro

Não adianta tentar de novo sem mudar nada. Leia code, param e message, corrija e envie outra requisição. A exceção são os 409 idempotency_in_progress, que valem uma nova tentativa.
Respeite o header Retry-After e use espera exponencial com jitter. Veja Limites de taxa.
Falhas do lado da Routa são seguras de repetir se você usa Idempotency-Key. Reenvie com a mesma chave. Veja Idempotência.
Você não sabe se a requisição chegou. Reenvie com a mesma Idempotency-Key. Ela garante que não haja mensagem duplicada.

Erros no SDK

O SDK converte as respostas de erro em classes tipadas. Veja Tratamento de erros.

Catálogo de códigos

Veja todos os códigos, com causa e solução, em Códigos de erro.