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
Cadapayment_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, àinvoiceou aocustomer; - reagir aos webhooks
charge.succeeded,charge.failedecharge.updated; - inspecionar a tentativa apontada por
latest_chargeem 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: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.
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 cujodata.object carrega o objeto charge completo. Eventos de update também trazem data.previous_attributes com os valores anteriores dos campos alterados.
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.
