Skip to main content
Confirma um cadastro de cartão (setup_intent). Existe uma única operação para backend e navegador; o que muda é a credencial usada: Em sucesso, a Chargefy cria ou reutiliza um payment_method, liga-o ao customer e retorna status: "succeeded". Nenhuma cobrança ou reserva de limite acontece nessa operação. Salvar o cartão não o torna automaticamente o método padrão do customer. Cada confirmação válida cria um setup_attempt. O campo latest_attempt aponta para a tentativa mais recente, inclusive quando ela falha. Use a chave pk_live_* ou pk_test_* exibida em Developers → Chaves de API. A chave publicável pode ficar no JavaScript; o client_secret limita a ação a um único cadastro.
confirmSetup() tokeniza o cartão no navegador e confirma o cadastro internamente. O número do cartão nunca passa pelo seu backend nem pela Chargefy; sua integração só recebe o payment_method.
Crie o cadastro com customer no backend antes de entregar o client_secret ao navegador. Não coloque o client_secret em analytics, logs ou mensagens.

Backend

Use a chave secreta quando o cartão já virou um payment_method. Cartão novo só entra pelo navegador.

Parâmetros

string
obrigatório
ID do cadastro (seti_*).
string
Obrigatório com chave publicável. Precisa pertencer ao id, organização e ambiente da URL. Não é necessário com chave secreta.
string
Cartão já salvo (pm_*) que pertence ao mesmo customer. Disponível somente no backend.
string
Customer que será dono do cartão. Só pode ser enviado pelo backend e é obrigatório quando o cadastro ainda não possui customer.

Resposta

Com chave secreta, a resposta usa o objeto completo. Com chave publicável, ela traz somente os campos necessários para a tela: identidade, estado, próximo passo, erro, ambiente, tipos aceitos, usage e payment_method.

Erros e como tratar

Uma falha de cartão devolve o cadastro para requires_payment_method, preenche last_setup_error, registra um setup_attempt com status: "failed" e emite setup.intent.failed. Se esse cartão também deve virar o padrão, faça essa escolha separadamente com POST /v1/payment-methods/{id}/attach depois que o cadastro retornar succeeded.

Limitações atuais

  • Hoje apenas credit_card é aceito.
  • O cadastro sempre usa usage: "off_session" na prática.
  • O processador atual não apresenta desafio 3DS neste fluxo; por isso requires_action e next_action fazem parte do contrato, mas não são produzidos nas confirmações atuais.
  • Confirmar um payment_method existente valida propriedade e estado local, mas não consulta o emissor nem reserva limite.
  • Depois de uma falha, chame confirmSetup() de novo com os dados corrigidos: a credencial de uso único é gerada outra vez pelo SDK.