Sessões de checkout
Expirar uma sessão de checkout
Encerra uma sessão aberta antes do prazo e cancela o payment intent dela com expired.
Encerra imediatamente uma sessão de checkout aberta, sem esperar o
Não há corpo. A API key da própria organização atua diretamente; a API key de
plataforma exige o header
expires_at.
O comprador que abrir o link depois disso vê um checkout expirado.
Este também é o caminho para encerrar a tentativa de pagamento por trás da
sessão. A sessão é a dona do ciclo de vida do payment_intent dela: expirar a
sessão cancela o intent com cancellation_reason: "expired", do mesmo jeito que
acontece quando o prazo termina sozinho.
Enquanto a sessão está aberta o intent fica aberto de propósito — é isso que
permite ao comprador voltar ao link, trocar de meio de pagamento ou pedir um
novo código PIX dentro do prazo da sessão. Só quando a sessão termina é que a
tentativa termina.
Parâmetros de caminho
string
required
ID da checkout session (
cs_*).Organization: <id> apontando para uma organização
conectada ativa.
Quais sessões podem ser expiradas
Os valores abaixo são decheckout_session.status, que tem três valores
possíveis. Só o primeiro aceita a chamada.
Efeito no payment intent
A partir daqui,status é o do payment intent — outro objeto, outra lista
de valores. Não confunda com a tabela acima.
O intent da sessão é cancelado em quatro dos oito valores possíveis. Nos outros
quatro nada acontece, e cada exclusão é intencional:
Se havia um PIX ou boleto emitido e ainda pendente sob esse intent, a cobrança
também é encerrada como
failed — o comprovante já não podia ser pago.
Resposta
200 OK com o objeto checkout.session completo — mesmo shape de
GET /v1/checkout-sessions/:id — agora com
status: "expired".
Erros
Webhooks gerados
Os dois eventos descrevem a mesma decisão. Trate-os de forma idempotente para
não encerrar o pedido duas vezes no seu sistema.
Objeto da sessão
Campos, estados e relação com o pagamento.
Cancelar um pagamento
Quando o cancelamento vai pelo lado do intent.

