Erros e limites
Todo erro vem com o status HTTP e o corpo { error: true, code, message, details }. Nada é cobrado quando a resposta é um erro.
| HTTP | code | O que fazer |
|---|---|---|
400 | VALIDATION_ERROR | Corpo ou parâmetro inválido. details traz o campo e o motivo. |
401 | AUTH_FAILED | Chave ausente, inválida ou revogada. |
403 | METHOD_NOT_ENABLED | Método ou moeda não liberados para a sua conta. |
404 | NOT_FOUND | Pagamento inexistente ou de outra conta. |
409 | IDEMPOTENCY_IN_PROGRESS | Outro pedido com a mesma chave ainda está em processamento. Repita em instantes. |
422 | CURRENCY_NOT_SUPPORTED | Moeda não disponível. |
422 | METHOD_NOT_AVAILABLE | Método não existe nesta moeda. |
422 | IDEMPOTENCY_KEY_REUSED | A mesma chave foi usada com um pedido diferente. |
422 | FIELDS_REQUIRED / AMOUNT_OUT_OF_RANGE | Campo exigido pelo método ausente, ou valor fora da faixa. |
429 | RATE_LIMIT_EXCEEDED | Muitas requisições. Aguarde retryAfter segundos. |
503 | INTERNATIONAL_UNAVAILABLE | Serviço temporariamente indisponível. Nada foi cobrado. |
Exemplo · 400
{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Dados inválidos",
"details": [
{
"field": "email",
"message": "Invalid email"
}
],
"timestamp": "2026-10-12T15:00:00.000Z"
}