Skip to main content
Um setup_intent é o cadastro de cartão da API Chargefy. Ele acompanha a tentativa de salvar um cartão no customer para uma cobrança futura, sem cobrar nada naquele momento.
Nome no produto: usamos “Cadastro de cartão” nas telas e nesta documentação. setup_intent, seti_*, as rotas e os eventos setup.intent.* continuam sendo os identificadores técnicos da API.

Quando usar hoje

Uma assinatura em trial criada sem cartão pode trazer pending_setup_intent: "seti_*". Nesse caso, o cadastro já foi criado pela Chargefy: consulte-o, colete o cartão e conclua-o. O Portal do Cliente e a ação Coletar método do Dashboard também conseguem concluir essa pendência ao salvar ou escolher um cartão.

O que acontece na conclusão

  1. Seu backend cria o cadastro para um customer.
  2. O navegador chama confirmSetup(); o token de uso único fica interno ao SDK.
  3. O navegador conclui com client_secret ou o backend conclui com a chave de API.
  4. A Chargefy salva um payment_method (pm_*) e o vincula ao customer.
  5. Se uma assinatura apontava para esse cadastro em pending_setup_intent, ela recebe o cartão e a pendência é removida.
O cadastro não altera automaticamente o cartão padrão do customer. Quando essa for a intenção, escolha o padrão explicitamente com a operação de vincular payment method.

O que este recurso não faz

Cadastro de cartão não cobra, não reserva limite, não faz pré-autorização e não confirma que haverá saldo na cobrança futura. Confirmar um pm_* já salvo apenas verifica se ele pertence ao customer; não consulta novamente o emissor. Para movimentar dinheiro, crie um Payment Intent.

Data Object

Este é o formato retornado em create, get, update, list, confirm e cancel, e em data.object dos webhooks setup.intent.*.
string
Identificador do cadastro de cartão. Usa o prefixo seti_*.
string
Sempre "setup_intent".
string | null
Data do cancelamento em ISO 8601. Vem null enquanto o cadastro não foi cancelado.
string | null
Motivo do cancelamento. Vem null enquanto o cadastro não foi cancelado.
string
Autoriza consultar e concluir somente este cadastro no navegador quando usado junto de uma chave publicável. Envie-o apenas à página do comprador que fará a coleta; não coloque em analytics ou logs. Ele não permite listar cadastros, trocar customer ou alterar metadata.
string
Data de criação em ISO 8601.
string | null
Customer que será dono do cartão salvo. Pode ser null em um cadastro criado pelo backend, mas precisa estar definido antes da confirmação no navegador.
object | null
Último erro ao tentar salvar o cartão. Uma falha devolve o cadastro para requires_payment_method; uma conclusão posterior limpa este campo.
string | object | null
Tentativa de confirmação mais recente (setatt_*). Retorna null antes da primeira confirmação ou o objeto expandido com expand[]=latest_attempt.
boolean
true em produção; false no ambiente de teste.
object
Dados livres definidos pela sua integração. Quando vazio, retorna {}.
object | null
Próxima ação exigida do comprador. Na implementação atual de cartão retorna null.
string | object | null
Cartão associado. Retorna o ID pm_*, null enquanto não existe, ou o objeto expandido com expand[]=payment_method.
array
Hoje sempre ['credit_card'].
string
Estado atual do cadastro.
string | null
Data da última alteração em ISO 8601.
string
Contexto previsto para reutilizar o cartão: off_session ou on_session. Hoje o produto cria cadastros com off_session.

Operações

Eventos

O payload leva o setup_intent completo em data.object. Eventos de mudança também levam os valores anteriores em data.previous_attributes.

Salvar cartão para cobrar depois

Veja o fluxo completo com Chargefy.js, customer e payment method.

Concluir cadastro

Use pk_* e client_secret no navegador ou ch_* no backend.