Receba pagamentos por cartão em uma página própria, com a sua marca, usando Chargefy.js para tokenizar o cartão no navegador.
O Checkout white-label é o caminho para cobrar cartão dentro da sua própria experiência: sua URL, sua interface, sua marca e seus estados de pagamento. A Chargefy fica por trás, cuidando da tokenização, do cofre do cartão, da cobrança e dos webhooks.A regra de segurança é simples: o número do cartão e o CVC são tokenizados no navegador do comprador com Chargefy.js. O seu backend nunca recebe dados sensíveis do cartão; ele recebe apenas um token_id de uso único e chama a API da Chargefy com a sua chave secreta.
Use Checkout white-label quando você quer controlar a tela de pagamento inteira. Se preferir uma página pronta da Chargefy, use Checkout Sessions.
Cartão recém-digitado, tokenizado no browser. É de uso único.
setup_intent (seti_*)
Troca o token_id por um cartão salvo. Não cobra.
payment_method (pm_*)
Cartão salvo e reutilizável.
payment_intent (pi_*)
Cobrança. Referencia o customer e o payment_method.
Um payment intent é cobrado com um payment_method (pm_*), nunca com um token_id direto. O caminho seguro é sempre token_id → setup_intent → pm_* → payment_intent.
Reutilize o mesmo customer quando o comprador já existir no seu sistema. Assim você mantém cartões salvos, histórico e cobranças futuras no mesmo perfil.
Mesmo em uma compra avulsa, o cartão salvo fica disponível no customer. Isso permite retry com consentimento, recompra e assinaturas sem pedir os dados de novo.
Hoje a cobrança de cartão é síncrona: ao confirmar, o status já volta succeeded, requires_capture (quando capture_method: manual) ou failed. Não há etapa de redirecionamento ou desafio 3DS no fluxo de cartão.
next_action existe para métodos assíncronos, como PIX e boleto. Cartão não usa next_action no Checkout white-label.
A resposta síncrona ajuda a atualizar a tela, mas o estado final da sua operação deve vir dos webhooks. Verifique a assinatura antes de processar eventos — veja Entrega de webhooks.
Evento
Quando usar
payment.intent.succeeded
Confirmar pagamento aprovado e liberar pedido/acesso.
payment.intent.failed
Registrar falha e permitir retry.
payment.intent.canceled
Marcar tentativa cancelada.
setup.intent.succeeded
Confirmar que o cartão foi salvo no customer.
payment.method.attached
Atualizar a lista de cartões salvos do customer.
Uma cobrança de cartão também emite charge.succeeded ou charge.failed. Para o estado do pagamento, escute payment.intent.*; charge.* é o detalhe da tentativa de cobrança.
Em test, o número do cartão escolhe o cenário (aprovado, recusado, saldo insuficiente etc.). Use a chave ch_test_ no backend e environment: "test" no Chargefy.js.Veja os cartões de teste em Chargefy.js e os cenários completos em Sandbox.