As 5 peças e o papel de cada uma
| Peça | Nasce onde | Papel |
|---|---|---|
token (tok_*) | Navegador (Chargefy.js) | O cartão recém-digitado, virou credencial de uso único. Nunca reutilize. |
customer (cus_*) | Seu backend | A pessoa dona do cartão. Precisa existir antes do setup intent. |
setup_intent (seti_*) | Seu backend | Troca o token por um cartão salvo e reutilizável. Não cobra nada. |
payment_method (pm_*) | Resultado do setup intent | O cartão salvo. É isso que você guarda pra cobrar depois. |
payment_preview | Seu backend, sob demanda | Serve para você exibir no seu checkout a quantidade de parcelas e o valor exato de cada uma, já com o acréscimo calculado. |
payment_intent (pi_*) | Seu backend | A cobrança em si. Referencia o customer e o payment_method. |
Passo a passo
Carregue o Chargefy.js na sua página
Sempre da origem oficial — não copie o script localmente, pra receber correções de segurança automaticamente.Isso expõe um objeto global
Chargefy. É a única peça que roda no navegador; todo o resto é chamada de backend.Tokenize o cartão (token)
Por que essa etapa existe: é o que mantém o número do cartão longe do seu servidor. O navegador manda o cartão direto pra Chargefy e recebe de volta um ID sem valor nenhum sozinho — um
token de uso único.Tenha um customer (customer)
Por que essa etapa existe: o cartão salvo pertence a alguém. No Brasil, salvar cartão exige
document (CPF/CNPJ) — sem isso o setup intent do próximo passo falha.Troque o token por um cartão salvo (setup intent)
Por que essa etapa existe: o A partir daqui, o que importa é
token do passo 2 morre no primeiro uso. Pra poder cobrar de fato, você precisa de um cartão que sobrevive — é isso que o setup intent devolve. Com confirm: true, você cria e confirma em uma chamada só.payment_method: "pm_456" — guarde esse ID. É ele que cobra.Exiba o valor exato das parcelas (payment preview)
Por que essa etapa existe: no Brasil, isso é basicamente pra uma coisa só — exibir no seu checkout a quantidade de parcelas e o valor exato de cada uma, já com o acréscimo calculado. Você não calcula juro na mão: manda o valor e a Chargefy devolve a tabela pronta. PIX e boleto vêm no mesmo payload, mas o motivo de esse objeto existir é resolver o parcelamento do cartão.
payment_methods.credit_card.installments.options[] é a tabela de parcelas pronta pro seu select — uma linha por parcela, de 1x até o max_count. count, per_installment_amount e amount_total são exatamente o que aparece na tela.Cobre (payment intent)
Por que essa etapa existe: é a cobrança de fato. Referencia o
customer e o payment_method salvos, com o count de parcelas que o comprador escolheu na tela anterior.amount já vem com os juros embutidos — é o total que saiu do cartão do comprador. status: "succeeded" significa pago; trate failed lendo last_payment_error.O fio que conecta tudo
Cada passo devolve exatamente o ID que o próximo passo pede:payment_preview fica de fora dessa corrente de propósito — ele não gera nenhum ID, só monta a lista de parcelas com o juro já calculado. Você chama quantas vezes quiser (a cada vez que o valor mudar, por exemplo com um cupom) sem afetar nada.
Erros
| Onde | code | Quando acontece |
|---|---|---|
createPaymentToken | invalid_number, invalid_cvc, invalid_expiry_month | Dado do cartão inválido — trate na hora, no navegador. |
createPaymentToken | tokenization_failed / invalid_card | Cartão recusado já na tokenização. |
payment_intent (confirm) | card_error | Recusa do emissor — leia last_payment_error.code. Veja Códigos de falha. |
Próximos passos
Checkout white-label
A visão completa da feature: o que fica com você, o que fica com a Chargefy.
Tokenizar um cartão
Aprofunda só as etapas de token + setup intent.
Objeto payment preview
Todos os campos do preview, incluindo repasse de taxa.
Objeto payment intent
Contrato completo da cobrança: status, parcelas, próxima ação.

