Erros e limites
Erros têm estrutura estável e um identificador de requisição para diagnóstico, sem retornar dados brutos da operadora.
{
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "This key was used with different request fields.",
"requestId": "req-42"
}
}
Códigos principais
| HTTP | Código | Ação |
|---|---|---|
| 400 | INVALID_REQUEST | Corrija formato e campos desconhecidos |
| 400 | INVALID_DOCUMENT | Revise CPF/CNPJ |
| 401 | UNAUTHORIZED / CHECKOUT_EXPIRED | Renove a credencial ou sessão |
| 403 | INSUFFICIENT_SCOPE | Use o escopo correto |
| 403 | CHECKOUT_POLICY | Confira origem e rede |
| 403 | LIVE_SETTLEMENT_DISABLED | Produção não está habilitada |
| 404 | NOT_FOUND | Recurso ausente ou fora da organização |
| 409 | IDEMPOTENCY_CONFLICT / CHECKOUT_USED | Consulte a operação existente |
| 429 | RATE_LIMITED | Aguarde antes de tentar novamente |
| 503 | QUOTE_UNAVAILABLE / API_UNAVAILABLE | Tente depois, sem preço expirado |
Limites atuais
Corpo JSON: 16 KiB. Proteção geral: 180 chamadas/minuto por IP visto pela API. Chave: 120 chamadas/minuto. Prévia pública: 30 sessões/hora. Criação de organizações: 3/dia por conta. Listagens: até 100 itens.
Esses limites são parâmetros iniciais e não um SLA. Configure proxy, retenção, paginação e quotas por plano antes de escalar comercialmente.
Resultados ambíguos
Se a operadora não confirmar uma solicitação, não gere outra cobrança automaticamente. Reconcilie a mesma operação. Atualmente, esse cenário não movimenta dinheiro porque a criação live está desativada.