Skip to main content
O cadastro de cartão permite coletar o cartão de um cliente uma vez, salvá-lo como uma credencial reutilizável e cobrar depois. O comprador digita o cartão na sua página; a Chargefy devolve um identificador (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. O setup_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

O 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.
Se preferir controlar a conclusão no servidor, envie o 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:
Se o cartão não puder ser salvo, a resposta é 402 card_setup_failed. O cadastro volta para requires_payment_method, registra last_setup_error e dispara setup.intent.failed. Corrija ou troque o cartão e chame confirmSetup() novamente.
Se você já tem o token_id em mãos, pule a etapa intermediária enviando confirm: true no create — equivale a criar e confirmar em uma única chamada.

4. Cobrar o cartão salvo depois

Com o pm_* 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.
Passe o pm_* retornado explicitamente na cobrança. Se quiser que ele seja o padrão do customer, faça essa escolha separadamente com POST /v1/payment-methods/{id}/attach; depois disso, cobranças que usam o padrão podem partir só do customer.

Ciclo de vida do cadastro

O status 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 cadastro aceita hoje apenas credit_card. Ele não verifica saldo, não faz pré-autorização e não garante aprovação futura. Um cadastro avulso também não expira sozinho; cancele-o se o comprador abandonar o fluxo.

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.
O número completo (PAN) e o CVC nunca entram em card nem em qualquer outro campo. A Chargefy só persiste e retorna o suficiente para você reconhecer o cartão na sua interface.

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.
Não existe DELETE de payment method. “Tirar de uso” é o detach — desligar o cartão do customer. Para trocar o cartão, salve um novo.

Webhooks

Cartão novo salvo com sucesso dispara, em ordem: setup.intent.createdpayment.method.createdpayment.method.attachedsetup.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.