- Um status HTTP, como
400,401ou404, que diz a classe do problema. - Um objeto
error, em JSON, com umcodeestável e uma mensagem legível.
error.code para lógica no seu sistema. Use
error.message para log, suporte e debugging.
Para recusas de cobrança, consulte também os
Códigos de falha: o catálogo explica
motivos como insufficient_funds e expired_card, a mensagem segura para o
comprador e a orientação para uma nova tentativa. Nas cobranças, esses detalhes
ficam em payment_error; no Payment Intent, em last_payment_error.
Formato
string
Código estável para tratamento programático. Exemplo:
parameter_missing,
authentication_failed, resource_missing.string | null
Link para documentação adicional, quando disponível.
string
Texto em inglês explicando o problema. A mensagem pode mudar para ficar mais
clara; não faça lógica usando essa string.
string | null
Campo relacionado ao erro, quando aplicável. Pode ser um campo do body, query
param ou header.
string
Categoria do erro. Use para separar erros de validação, autenticação,
pagamento, rate limit e erro interno.
Tipos de erro
Status HTTP
Exemplos comuns
Use esta tabela para reconhecer a causa e decidir a ação sem abrir vários blocos de exemplo:amount_too_small
A confirmação retorna HTTP 400,type: invalid_request_error e
param: amount quando a cobrança final não cobre o mínimo. A cobrança não é
enviada ao processamento e a mesma tentativa não deve ser repetida automaticamente.
A regra usa o plano efetivo, a bandeira, as parcelas e o contexto da plataforma.
Ela é aplicada depois dos descontos e do cálculo de juros e repasse de taxas.
Os juros pagos pela organização também precisam caber no valor disponível.
minimum_amount representa o mínimo para os componentes de juros e repasse
resolvidos nesta cotação; mudar a compra exige nova prévia e confirmação.
Um item de catálogo de R$ 0,50 é válido. O mínimo se aplica à cobrança final,
inclusive em faturas e renovações. Ciclos gratuitos não geram tentativa de cobrança.
Quando houver erro persistido, esses campos também acompanham
payment_intent.last_payment_error e charge.payment_error, com categoria
invalid e advice_code: do_not_try_again. Isso não é uma recusa do banco nem
um pedido para trocar o cartão. No MCP, os mesmos campos aparecem no erro
estruturado com retryable: false.
A organização deve corrigir o valor, desconto ou configuração da venda antes
de uma nova tentativa. Para o comprador, mostre: “A transação não pôde ser
processada. Entre em contato com o vendedor.”
payment_method_not_allowed
Pix e boleto não são escolhas permitidas em checkout com trial gratuito, inclusive em sessões já existentes. A tela oferece cartão quando sua coleta for necessária;payment_method_collection: if_required permite começar sem
método quando nada é devido hoje.
Forçar Pix ou boleto na confirmação retorna HTTP 400,
type: invalid_request_error, param: payment_method e
code: payment_method_not_allowed, com mensagem explicando a restrição do
trial e doc_url apontando para esta seção. Corrija o método ou a configuração
do checkout; não repita automaticamente a mesma tentativa.
Request ID
Toda resposta pública inclui o headerX-Request-Id. Guarde esse valor nos seus
logs: ele ajuda o suporte da Chargefy a encontrar a request exata.
- O
X-Request-Id. - O horário aproximado da chamada.
- O endpoint chamado.
- O
error.coderecebido.
Tratamento recomendado
Exemplo simples em Node:Node
Boas práticas
- Faça lógica com
error.code, não comerror.message. - Mostre mensagens de cartão ao comprador com cuidado e sem expor detalhes sensíveis.
- Faça retry com backoff para
429e5xxapenas quando oerror.codepermitir.payment_result_unconfirmedexige consulta/reconciliação, nunca um novo write cego. - Não faça retry automático para
400,401,402,403ou404sem corrigir a causa. - Logue
X-Request-Idem todas as falhas.
Próximos passos
Autenticação
Corrija erros de credencial, escopo e organização.
Paginação
Entenda erros de cursor, limite e filtros.
Idempotência
Evite duplicar writes em retries.
Datas, fusos e moedas
Corrija erros de formato em
due_date.Requests
Consulte requests registrados na API.

