Erros
Todo erro da API vem em application/problem+json (RFC 9457), com um codigo estável para o seu código tratar e um requisicao_id para o suporte. A mensagem é genérica: nunca traz detalhe interno. A exceção é o 405 (método errado numa rota que existe): ele vem do servidor, sem corpo e sem codigo.
{
"type": "https://precificador3d.com.br/docs/api/erros/dados_invalidos",
"title": "Dados inválidos",
"status": 400,
"codigo": "dados_invalidos",
"detail": "Confira os campos indicados.",
"requisicao_id": "req_01HF8Z3K2M9QX",
"erros": [
{ "campo": "itens[0].quantidade", "codigo": "fora_da_faixa" }
]
} typeé o endereço da explicação do erro neste site.errossó vem em validação, um por campo, sem repetir o valor enviado.limitesó vem no429:chave,conta,globalouip.- Toda resposta, de erro ou não, traz o cabeçalho
Precificador-Requisicao-Id.
Como tratar
4xx(fora408,409e429): corrija antes de repetir. Repetir igual dá o mesmo erro.408: o corpo chegou devagar demais; repita com a mesmaIdempotency-Key.409e429: espere os segundos deRetry-Aftere repita (com a mesmaIdempotency-Key, se forPOST).5xx: repita com espera crescente (1 s, 2 s, 4 s…), sempre com a mesmaIdempotency-Key.- Trate pelo
codigo, não pelo texto: o texto pode mudar.
Todos os códigos
| Status | Código | Quando |
|---|---|---|
| 400 | dados_invalidos | Dados inválidos |
| 400 | campo_desconhecido | Campo desconhecido |
| 400 | filtro_desconhecido | Filtro desconhecido |
| 400 | cursor_invalido | Cursor inválido |
| 400 | idempotencia_obrigatoria | Idempotency-Key obrigatória |
| 400 | chave_na_url | Chave na URL |
| 401 | nao_autenticado | Não autenticado |
| 403 | escopo_insuficiente | Escopo insuficiente |
| 403 | conta_bloqueada | Conta bloqueada |
| 403 | modulo_desligado | Módulo desligado |
| 403 | chave_suspensa | Chave suspensa |
| 404 | nao_encontrado | Não encontrado |
| 405 | metodo_nao_permitido | Método não permitido |
| 408 | tempo_esgotado | Tempo esgotado |
| 409 | idempotencia_em_andamento | Operação em andamento |
| 409 | status_mudou | O status mudou |
| 409 | conflito | Conflito |
| 413 | corpo_grande_demais | Corpo grande demais |
| 415 | tipo_nao_suportado | Tipo de conteúdo não suportado |
| 422 | referencia_invalida | Referência inválida |
| 422 | saldo_insuficiente | Saldo insuficiente |
| 422 | quantidade_invalida | Quantidade inválida |
| 422 | idempotencia_conflito | Idempotency-Key reaproveitada |
| 422 | transicao_invalida | Transição não permitida |
| 422 | regra_de_negocio | Regra de negócio |
| 429 | limite_excedido | Limite excedido |
| 429 | cota_mensal_excedida | Cota mensal excedida |
| 429 | concorrencia_excedida | Simultâneas demais |
| 500 | erro_interno | Erro interno |
| 503 | indisponivel | Indisponível |