Pular para o conteúdo

Recusas

{
"code": "insufficient_balance",
"error": "Not enough funds",
"request_id": "9f3c1e2a7b4d5e60"
}

Tome decisões com base em code. Algumas recusas trazem campos adicionais:

{
"code": "invalid_targeting",
"error": "Unknown city",
"field": "city",
"value": "nosuchcity"
}
{
"code": "unsupported_field",
"error": "Field is not supported here",
"field": "count"
}
{
"code": "rate_limited",
"error": "Too many requests",
"retry_after": 12,
"limit": 120
}

O 404 em GET /api/v1/orders/{id} traz só error e request_id, sem code.

CódigoStatusQuando
invalid_api_key401a chave não foi aceita
validation_failed400uma restrição de campo foi violada
invalid_body400corpo ou campo com formato errado
unknown_product400slug desconhecido ou produto fora de venda
insufficient_scope403a chave não tem a permissão exigida pela rota
not_found404o recurso não existe ou pertence a outra conta
idempotency_in_progress409a requisição anterior com esta chave ainda está em execução
replace_in_progress409a substituição dos endereços do pacote já está em andamento
invalid_volume422volume fora do intervalo do produto
invalid_quantity422mais endereços do que é possível comprar em uma compra
country_unavailable422o país não está à venda para este produto
unknown_plan, unknown_operator, unknown_period422o país escolhido não tem esse plano, local ou período - confira os parâmetros
out_of_stock422o local tem menos endereços livres do que o pedido
unsupported_capability422a operação não se aplica ao tipo deste pacote
package_expired422o período do pacote de endereços terminou - prolongue primeiro
prolong_window_closed422não é mais possível recuperar os endereços com prolongamento - é preciso uma nova compra
type_unavailable422a configuração não pode ser cotada nem vendida
insufficient_balance422saldo insuficiente
unsupported_field422chave não aplicável no corpo; vem com field
invalid_targeting422o valor não está no catálogo geográfico; vem com field e value
package_unavailable422a operação não é possível no estado atual do pacote ou com essas configurações
purchase_refunded422a compra não foi concluída, o dinheiro foi devolvido
idempotency_key_required422falta o cabeçalho Idempotency-Key
idempotency_key_invalid422o cabeçalho está vazio ou tem mais de 255 caracteres
idempotency_key_reused422a mesma chave com outro corpo
rate_limited429a cota da chave se esgotou
replace_cooldown429os endereços foram substituídos recentemente; quando será possível de novo está em replace_available_at
order_failed500o pedido não foi feito, o saldo não foi debitado
package_failed500a operação no pacote falhou, o dinheiro não foi debitado
order_needs_attention500dinheiro debitado, a entrega não ocorreu, análise manual
operation_indeterminate500repetição com a chave de uma operação cujo resultado não está definido
catalog_unavailable503o catálogo geográfico do produto ainda não foi sincronizado
CódigoDinheiroAção
order_failed, package_failednão debitadorepetir com o mesmo Idempotency-Key
purchase_refunded (422)devolvidorepetir como uma nova compra com uma nova chave
order_needs_attentiondebitado, resultado em apuraçãonão repetir, fale com o suporte informando o order_id
operation_indeterminateresultado não definidonão repetir com a mesma chave; confira pedidos e pacotes e depois fale com o suporte

A mensagem em 5xx é neutra - decida com base em code.

Suporte: @ipvrent_support, [email protected]. Anexe o request_id do corpo da recusa e o order_id, se houver.

Timeout não é recusa: a requisição pode ter chegado. Repetir com o mesmo Idempotency-Key retorna a mesma resposta. Em 409 idempotency_in_progress, aguarde e repita com a mesma chave.

Não devem ser repetidos: insufficient_balance, invalid_volume, invalid_quantity, unknown_product, unsupported_field, unsupported_capability, invalid_targeting, prolong_window_closed. Em rate_limited, aguarde Retry-After; em replace_cooldown, aguarde replace_available_at.