Evento checkout.session.completed
Disparado quando o comprador conclui o confirm da checkout session na página
hospedada ou em um frontend custom. data.object contém a sessão completa já
com o customer resolvido e, quando houver pagamento, com payment_data
preenchido para o método escolhido.
Use este evento para marcar que a sessão foi finalizada pelo comprador. Para
cartão aprovado de forma síncrona, ele já pode indicar pagamento confirmado.
Para Pix e boleto, completed significa que o comprador recebeu as instruções
de pagamento; a confirmação financeira chega depois por
checkout.session.async.payment.succeeded.
Webhooks devem ser a fonte confiável para liberar produto, serviço ou acesso.
Leia sempre
payment_status junto com payment_data.payment_method antes de
concluir a entrega.No checkout hospedado, a Chargefy persiste e enfileira este evento antes de
responder, mas não aguarda a rede do seu endpoint. A tela de sucesso permite
redirecionar imediatamente e segue automaticamente para a
success_url após
10 segundos. Persista e deduplique o evento antes de responder 2xx; processe
a liberação fora da resposta e faça sua página de destino consultar o estado
do seu backend quando o acesso ainda não estiver pronto.Quando acontece
Como processar
- Registre o
iddo evento (evt_*) para processar o webhook de forma idempotente. - Use
data.object.idcomo chave da checkout session no seu sistema. - Salve
data.object.customer, que é resolvido noconfirme aparece preenchido deste evento em diante. - Para
payment_status: "paid", marque o pedido como pago e libere o produto ou serviço. - Para
payment_status: "unpaid"compixouboleto, marque o pedido como aguardando pagamento e espere o evento assíncrono de sucesso. - Para
payment_status: "no_payment_required", conclua o fluxo sem cobrança imediata conforme a regra da sessão.
Campos importantes
Variações de pagamento
Exemplo de payload
data.object.payment_data traz os campos do método (Pix QR, boleto barcode ou
parcelas do cartão). Veja as variantes em
o objeto Checkout Session.
