Skip to main content
Uma charge é o registro de uma tentativa concreta de mover dinheiro: uma cobrança feita sobre um meio de pagamento. Ela guarda o que foi cobrado e o que efetivamente entrou — valor, moeda, se foi pago, se foi capturado e, quando algo dá errado, o código e a mensagem da falha. É o objeto que responde à pergunta “essa cobrança aconteceu, deu certo?”.
Você não cria charges diretamenteA charge é materializada pelo sistema quando um Payment Intent é confirmado. Para cobrar alguém, você cria e confirma um payment_intent — a charge aparece como consequência. O recurso é somente leitura: você consulta (GET) e lista (GET), nunca cria, atualiza ou remove via API.

Como os recursos se relacionam

Cada payment_intent pode produzir uma ou mais charges ao longo das suas tentativas de cobrança (uma recusa seguida de nova tentativa, por exemplo). Cada charge aponta de volta para o intent que a originou e, quando existem, para o customer, a invoice e o payment_method envolvidos.
O detalhe interno de processamento financeiro fica fora do contrato público. Na API, a charge é o objeto canônico para conciliar tentativas de cobrança.

Para que serve

Use charges para:
  • consultar a tentativa de cobrança que aprovou ou falhou;
  • reconciliar valor, moeda, status e método usado;
  • exibir histórico financeiro para o seu cliente;
  • ligar um pagamento aprovado ao payment_intent, à invoice ou ao customer;
  • reagir aos webhooks charge.succeeded, charge.failed e charge.updated;
  • inspecionar a tentativa apontada por latest_charge em um Payment Intent.

Anatomia da charge

O schema público completo, com cada campo retornado, está em Objeto charge.

Exemplo reduzido

Status

A charge percorre estes estados durante o ciclo de cobrança:
status = succeeded indica que a cobrança foi aprovada, mas é captured/amount_captured que revelam se o dinheiro já foi capturado. Para fluxos de autorização + captura, confira os dois.

Detalhes do meio de pagamento

payment_method_details é polimórfico: o campo type indica o meio (credit_card, pix, boleto) e o sub-objeto correspondente traz os detalhes daquele tipo.
Cada campo do cartão aparece sempre. Quando a informação não foi confirmada pela resposta da tentativa, o valor é null. A Chargefy não deduz country, funding, network ou emissor a partir do BIN e nunca devolve PAN, primeiros dígitos, CVC ou fingerprint no objeto Charge.

Motivo da falha

Quando a tentativa termina recusada, payment_error traz a leitura final da Chargefy num único grupo: category, code e message dizem o que houve; advice_code orienta o próximo passo; e network_advice_code/ network_decline_code preservam a evidência bruta da rede quando ela existe. A resolução é nossa: um cartão roubado pode ter sido recusado pela rede com o código bruto 43, e a categoria final é blocked porque o tratamento correto é interromper novas tentativas. Consulte Códigos de falha para o catálogo completo.
payment_error.network_decline_code é um diagnóstico bruto e não universal. O mesmo código pode ter leitura diferente por bandeira. Ausência do código significa que não recebemos evidência suficiente — não inventamos um valor para preencher o campo.
Dados de instrumento financeiro chegam mascarados: o cartão sai como brand + last4, nunca o número completo. Já o CPF/CNPJ do comprador, quando presente em billing_details, sai por inteiro — o parceiro precisa dele para emissão de nota e conciliação.

Consultar e listar

A charge é somente leitura. As únicas operações são: Tentar criar uma charge com POST /v1/charges retorna 400 — cobre-se criando e confirmando um payment_intent.

Listar com filtros

A listagem é por cursor (starting_after, ending_before, limit de 1 a 100), em ordem decrescente de criação. Você pode filtrar por:

Webhooks

Mudanças na charge disparam eventos cujo data.object carrega o objeto charge completo. Eventos de update também trazem data.previous_attributes com os valores anteriores dos campos alterados.
Reaja aos webhooks em vez de fazer polling. Ao receber charge.succeeded ou charge.failed, consulte a charge pelo id do payload para conciliar com o seu pedido — metadata é o caminho para correlacionar com o seu sistema.

Próximos passos

Objeto charge

Schema público completo e cada campo retornado.

Payment Intents

O processo que materializa a charge ao ser confirmado.

Listar charges (API)

Filtros, cursor e shape da listagem.

Consultar charge (API)

Contrato do GET /v1/charges/{id}.

Códigos de falhas

O que payment_error (category, code, message) significa quando uma cobrança falha.