Uma Checkout Session representa uma tentativa de compra. Ela não substitui
o Payment Intent, a invoice ou a subscription que registram o resultado
financeiro e a recorrência.
O lifecycle do checkout hospedado
1
Sua aplicação inicia a compra
O backend cria uma Checkout Session com os itens, URLs de retorno e dados
opcionais do customer. Se a oferta vem de um Payment Link, cada acesso ao
link cria uma sessão nova automaticamente.
2
A Chargefy abre a página
A resposta contém uma
url. Ao redirecionar o navegador, a página carrega a
identidade e o template atuais da organização. Os métodos, os campos
obrigatórios e as condições de parcelamento são os que ficaram guardados
quando a sessão foi criada.3
O comprador conclui o formulário
A página coleta os dados exigidos pelo método escolhido, tokeniza o cartão
no navegador e permite corrigir recusas ou campos inválidos sem expor sua
API key.
4
A Chargefy coordena o pagamento
Cartão normalmente é confirmado na hora. Pix e boleto entregam os dados de
pagamento e aguardam compensação. Em uma venda recorrente, a confirmação
também materializa a subscription e a invoice quando aplicável.
5
Seu backend conclui o pedido
Webhooks informam o estado confiável da sessão. Seu sistema deduplica o
evento, confirma o resultado financeiro e só então libera produto, reserva
ou acesso.

Página hospedada com resumo do pedido, dados do comprador e métodos de pagamento.
A Checkout Session é o contrato da página
Seu backend descreve a compra; a marca e o Checkout Builder da organização descrevem a experiência. O request não transporta cores, fonte ou layout.Como os objetos se encaixam
A Checkout Session organiza a tentativa, mas não é o livro-razão do pagamento.
Para conciliação, combine
payment_status, o Payment Intent relacionado, a
invoice quando existir e os eventos recebidos.
O que a página resolve
A apresentação é lida no carregamento da página: a marca da organização (logo,
cores, fonte, tema e cantos), em Configurações → Marca, e a composição do
Checkout Builder (template, produto e resumo), em Configurações → Checkout.
As regras transacionais — métodos, campos obrigatórios e parcelamento — são
congeladas em cada sessão na criação: alterar o Builder vale para as sessões
criadas dali em diante, nunca para as já abertas. Veja Configurar sua página de
checkout.
Pagamento único e assinatura
Omode é derivado dos itens. Você não o envia no request.
Em assinaturas,
subscription_data pode definir trial, data de encerramento e
o comportamento quando o trial termina sem método de pagamento. O cartão
coletado fica associado ao customer para as próximas cobranças quando a
assinatura precisa dele.
Para apenas salvar um cartão sem cobrar, use um Setup
Intent, não uma Checkout Session de pagamento.
Customer e dados do comprador
A resolução acontece dentro da mesma organização e do mesmo ambiente. A
Chargefy não usa
metadata para decidir identidade; esse objeto continua
opcional, livre e controlado pela sua aplicação.
Cartão, Pix e boleto não terminam ao mesmo tempo
Por isso, a sessão separa o estado da página do estado do dinheiro:
Expiração e novas tentativas
Toda Checkout Session nasce com validade fixa de 24 horas. Você também pode expirar uma sessão aberta antes desse prazo. Uma sessãocomplete ou expired é terminal: não volta a open. Para uma nova
tentativa, crie outra sessão. Use um identificador do seu sistema em metadata
para correlacionar sessões diferentes ao mesmo carrinho ou pedido, sem tornar
nenhuma chave específica obrigatória.
Dentro de uma sessão open, o comprador tenta quantas vezes precisar sem sair
da página. Um cartão recusado devolve o payment_intent para
requires_payment_method e a próxima tentativa nasce como uma nova charge no
mesmo intent; nenhuma sessão ou intent extra é criada. Enquanto uma tentativa
ainda está sendo confirmada, um novo envio é recusado com
payment_in_progress e a página hospedada acompanha o resultado sozinha. Sua
integração não precisa tratar nada disso: o webhook continua sendo a fonte do
desfecho.
Conclua a transação pelo webhook
A Chargefy persiste e enfileira
checkout.session.completed antes de responder
ao checkout, mas não aguarda a rede do seu endpoint. Na tela de sucesso, o
comprador pode usar Redirecionar agora desde o primeiro momento; sem ação,
ele segue para a success_url após 10 segundos. Se seu produto ainda estiver
liberando acesso, a página de destino deve consultar seu backend e manter o gate
até o fulfillment terminar.
Segurança do fluxo
Quando a interface precisa ficar no seu produto
Um
ui_mode: "embedded" — o checkout da Chargefy renderizado dentro do seu
site via SDK, autorizado pelo client_secret da sessão — está a caminho. Até
lá, a experiência 100% sua é o caminho white-label acima.Chargefy for Platforms
O lifecycle não muda. A API key da plataforma envia o headerOrganization
para selecionar a organização filha; produtos, preços e customers da sessão
precisam pertencer a ela. A página usa o Checkout Builder dessa organização e o
webhook carrega seu ID no campo top-level organization. A marca da página pode
ser a da organização filha ou a da própria plataforma, conforme Marca e domínio
próprio da plataforma.
Próximos passos
Criar a primeira página
Implemente o fluxo hospedado do backend ao webhook.
Entender Checkout Sessions
Aprofunde itens, customers, expiração, métodos, estados e eventos.
Após receber com um Checkout
Conecte retorno, webhook, worker e reconciliação.
Criar um checkout white-label
Construa a interface dentro do seu produto com tokenização no navegador.

