Códigos de erro retornados pela API pública da Allya Payments, organizados por categoria.
A API retorna erros em JSON com o campo error. Esta página explica o formato, categoriza os códigos por origem (auth, payload, gateway, etc.) e mostra como tratar cada classe.
JSON válido, mas fora do schema esperado ou rejeitado pelo gateway antes da chamada (ex.: customer.phone ausente para cartão no Pagar.me, metadata grande demais ou com tipo inválido). issues[].path aponta o campo.
Específicos de POST /v1/subscriptions e POST /v1/subscriptions/:id/cancel. As demais classes (auth, payload, roteamento, billing, gateway) também se aplicam.
HTTP
Error
Quando acontece
400
invalid_input
Inclui o caso de gateway.pagarme.planId ausente quando o roteamento resolve para Pagar.me, e atPeriodEnd=true em gateway que não suporta cancelamento agendado (Abacate Pay, Pagar.me). issues[].path aponta o campo.
409
already_canceled
Cancelamento de assinatura já encerrada. A resposta inclui status.
409
missing_gateway_ref
Assinatura nunca foi sincronizada com o gateway (criação falhou).
409
action_not_implemented
O gateway resolvido não implementa a ação de assinatura solicitada (criar ou cancelar). A resposta inclui provider e action. Diferente de not_implemented (501) de pagamento: aqui é 409.
API key excedeu o limite por minuto. POST /v1/payments tem cota maior (default 30/min); POST /v1/payments/:id/sync e POST /v1/payments/:id/cancel têm cota separada e mais agressiva (default 10/min cada). Veja os headers Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset.
Diferente dos demais, estes erros não falam do pagamento em si, e sim do estado da sua assinatura da Allya (billing da organização). Aparecem em POST /v1/payments e POST /v1/subscriptions quando a plataforma bloqueia novas cobranças. Não retentar antes de regularizar.
HTTP
Error
Quando acontece
402
billing_inactive
A organização não tem assinatura ativa da Allya.
402
billing_past_due
A assinatura da Allya está com pagamento em atraso.
402
billing_incomplete
A assinatura da Allya foi iniciada mas não foi confirmada.
402
billing_canceled
A assinatura da Allya foi cancelada.
402
billing_expired
A assinatura da Allya expirou.
402
billing_monthly_tx_limit_reached
A cota mensal de transações do plano foi atingida (apenas POST /v1/payments). A resposta inclui limit (cota do plano) e used (já consumido no ciclo). Faça upgrade ou aguarde o próximo ciclo.