pm_*) sem que o número do
cartão passe pelo seu servidor.
O que fica guardado — e o que nunca ficaA Chargefy persiste apenas o necessário para você reconhecer o cartão: a bandeira, os quatro últimos dígitos e o mês/ano de validade. O número completo (PAN) e o código de segurança (CVC) nunca são armazenados nem retornados — existem só em trânsito, no instante em que o cartão é tokenizado no navegador do comprador.
O que essa feature permite
Tokenizar o cartão separa coletar de cobrar, e isso destrava cobranças em que o comprador não está presente:- Assinaturas e trials — guarde o cartão no cadastro e cobre automaticamente quando o trial termina e a cada renovação.
- Recompra com um clique — o cliente compra de novo sem redigitar o cartão.
- Cobrança sob demanda (off-session) — gere uma cobrança a qualquer momento usando o cartão salvo.
- Troca de cartão padrão — salve o novo cartão e escolha separadamente onde ele passa a ser o padrão.
- Checkout white-label — você controla a coleta no seu frontend e deixa a cobrança para depois.
Os objetos
A feature combina objetos com papéis distintos. Osetup_intent acompanha o
cadastro, cada confirmação gera um setup_attempt, o cartão salvo é o
payment_method e a cobrança futura é um payment_intent. O token existe como
mecanismo interno e API de baixo nível; o fluxo recomendado não o expõe.
Cadastrar não cobra nada: um
setup_intent não cria charge, invoice,
pré-autorização ou reserva de limite. Para cobrar agora, use um Payment
Intent.Como funciona, ponta a ponta
São três passos: o backend inicia o cadastro, o navegador salva o cartão e o backend cobra com um payment intent quando precisar.1
Tenha um customer pronto
O cartão salvo pertence a um cliente. Crie ou encontre o
customer
(cus_*) antes de começar.2
Inicie o cadastro de cartão
POST /v1/setup-intents. A resposta traz o client_secret, com status em
requires_payment_method.3
Colete e conclua no navegador
Inicialize o Chargefy.js com a chave publicável e
chame
confirmSetup com client_secret e os dados do cartão. Em sucesso, o
status vira succeeded e um payment_method (pm_*) é salvo e vinculado
ao customer. O token de uso único fica interno ao SDK.4
Cobre quando precisar
POST /v1/payment-intents referenciando customer + payment_method,
confirmando na mesma chamada com confirm: true.1. Iniciar o cadastro
client_secret, combinado com a pk_*, autoriza consultar e concluir somente
aquele cadastro. Envie-o à página do comprador, mas não o coloque em analytics
ou logs.
2. Salvar o cartão no frontend
Os dados do cartão são coletados no navegador do comprador com o Chargefy.js. A chave secreta nunca vai para o browser e o número do cartão nunca toca o seu backend.token_id para
POST /v1/setup-intents/{id}/confirm
com sua chave de API. O resultado é o mesmo.
O backend também pode concluir com cartões já existentes:
4. Cobrar o cartão salvo depois
Com opm_* salvo, a cobrança futura é um payment intent comum referenciando o customer e o payment_method. Como o comprador não está presente, basta informar o cartão salvo e confirmar na mesma chamada.
Ciclo de vida do cadastro
Ostatus começa em requires_payment_method (ou requires_confirmation, quando já há um método) e caminha até um estado terminal — succeeded ou canceled.
Se o comprador desiste antes de confirmar, encerre com
POST /v1/setup-intents/{id}/cancel. Estados terminais são imutáveis: confirmar ou cancelar de novo retorna 409.
O cartão salvo (payment_method)
O resultado durável da tokenização é um payment_method (pm_*). Ele guarda só os dados não sensíveis do cartão e pertence ao customer enquanto estiver anexado.
Anexar, desanexar e atualizar
Anexar liga o cartão a um customer como método padrão; desanexar desfaz esse vínculo. Nenhuma das duas apaga a credencial — só mudam se o cartão está ligado àquele customer.Webhooks
Cartão novo salvo com sucesso dispara, em ordem:
setup.intent.created → payment.method.created → payment.method.attached → setup.intent.succeeded.
O token em si não emite webhooks. Cada confirmação fica registrada em um
setup_attempt; os eventos do ciclo de vida vêm do setup intent e do payment
method.
Próximos passos
Tentativas de cadastro
Veja o histórico de cada confirmação e falha.
Cadastro de cartão
Contrato completo, limitações, erros e operações.
Objeto payment_method
Schema do cartão salvo e operações de attach, detach, update e list.
API de payment intents
Como cobrar o cartão salvo quando precisar.
Assinaturas
Como o cartão salvo cobra trials e renovações.

