Pular para o conteúdo

Códigos de Erro

Em caso de falha, verifique o código HTTP e o campo message.

Erros de negócio sempre retornam um code legível por máquina para ramificação programática. Parâmetros inválidos (validação) e rotas desconhecidas retornam o formato padrão do Laravel: { “message”: ”…”, “errors”: { … } }. Valide as entradas antes de enviar.

{
"code": "insufficient_balance",
"message": "Insufficient balance. Please top up and try again."
}
codeHTTPDescrição
unauthorized401Chave de API ausente, inválida ou inativa.
account_banned403Conta suspensa. Fale com o suporte.
invalid_realtime_request400Requisição em tempo real malformada (ex.: número sem prefixo internacional + quando country é omitido).
idempotency_key_required400Requisições em tempo real exigem o cabeçalho Idempotency-Key.
invalid_idempotency_key422Idempotency-Key inválido: 1-128 caracteres de letras, dígitos e . _ : -
idempotency_conflict409A mesma Idempotency-Key foi usada com um conteúdo de requisição diferente.
request_in_progress409Uma requisição em tempo real idêntica ainda está sendo processada. Tente novamente em breve (Retry-After: 1).
empty_input422O arquivo enviado não contém linhas utilizáveis.
product_not_found422O slug de produto enviado não existe ou está inativo.
product_mode_not_supported422Este endpoint não aceita este modo de produto (produtos em tempo real não vão para endpoints em lote).
invalid_country422O produto não suporta o país enviado.
too_few_numbers422O envio está abaixo do mínimo do produto.
too_many_numbers422O envio excede o máximo da plataforma.
insufficient_balance402Saldo insuficiente. Recarregue e tente novamente.
realtime_disabled403A detecção em tempo real não está habilitada para esta conta.
realtime_rate_limited429Limite de requisições em tempo real excedido. Respeite o retry_after.
product_pricing_unavailable503O preço deste produto ainda não está configurado. Fale com o suporte.
detection_capacity_unavailable503Sem capacidade de detecção disponível no momento. Tente mais tarde.
realtime_route_unavailable503Nenhuma rota em tempo real disponível. Tente mais tarde.
realtime_fact_cache_unavailable503Uma dependência em tempo real está temporariamente indisponível. Tente mais tarde.
realtime_rate_limiter_unavailable503O limitador de requisições está temporariamente indisponível. Tente mais tarde.
internal_error500Erro interno do servidor. É seguro repetir com a mesma Idempotency-Key.

Nem toda falha tem um code. Os endpoints de tarefa informam quatro condições apenas com o status HTTP e message, porque essas falhas ocorrem antes de chegar ao caminho de erros de negócio:

HTTPCondiçãoCorpo
404O task_id não existe ou pertence a outra contaapenas message
404GET /v1/tasks/{token}/download — o arquivo de resultado está indisponível, expirou ou não está mais em estado baixávelapenas message
422GET /v1/tasks/{token}/result — o resultado não está pronto: a tarefa não foi concluída, o arquivo não foi gerado ou expirouapenas message
422Os parâmetros da requisição falharam na validação{ "message": …, "errors": { … } }

Nestes casos, ramifique pelo status HTTP. O message serve para os logs e para quem lê um incidente, não para o fluxo de controle.

A resposta correta a uma falha depende de a repetição da requisição poder produzir um resultado diferente.

Uma nova tentativa sem alterações repete a mesma falha.

unauthorized, account_banned, invalid_realtime_request, idempotency_key_required, invalid_idempotency_key, idempotency_conflict, empty_input, product_not_found, product_mode_not_supported, invalid_country, too_few_numbers, too_many_numbers, insufficient_balance, realtime_disabled, product_pricing_unavailable

Temporário — a mesma requisição deve funcionar mais tarde.

realtime_rate_limited, request_in_progress, detection_capacity_unavailable, realtime_route_unavailable, realtime_fact_cache_unavailable, realtime_rate_limiter_unavailable

A requisição pode ter sido aplicada ou não. Tente novamente com a mesma chave.

internal_error