Skip to main content
POST
/
api
/
checkout
/
sessions
/
{id}
/
expire
Expirar Checkout Session
curl --request POST \
  --url https://garu.com.br/api/checkout/sessions/{id}/expire \
  --header 'Authorization: Bearer <token>'

Visão Geral

Expira manualmente uma checkout session que ainda está aberta. Útil quando o pedido foi cancelado no seu sistema ou você precisa invalidar a session.
Sessions expiram automaticamente após 24 horas por padrão. Use este endpoint apenas quando precisar expirar antes desse prazo.

Parâmetros de Path

id
string
required
ID da session a ser expirada (ex: cs_ABC123xyz)

Exemplo de Requisição

curl -X POST "https://api.garu.com.br/api/checkout/sessions/cs_ABC123xyz/expire" \
  -H "Authorization: Bearer sk_test_sua_chave_api"

Resposta de Sucesso

Retorna a session atualizada com status: "expired".

Exemplo de Resposta (200 OK)

{
  "data": {
    "id": "cs_ABC123xyz",
    "status": "expired",
    "url": "https://pay.garu.com.br/pay/session/abc123...",
    "product_id": 123,
    "price_id": null,
    "customer_email": "joao@email.com",
    "customer_name": "João Silva",
    "metadata": {
      "order_id": "12345"
    },
    "success_url": "https://seusite.com/sucesso",
    "cancel_url": "https://seusite.com/cancelado",
    "client_reference_id": "order_abc123",
    "affiliate_id": null,
    "transaction_id": null,
    "expires_at": "2025-01-19T15:00:00.000Z",
    "completed_at": null,
    "created_at": "2025-01-19T12:00:00.000Z"
  }
}

Webhook de Expiração

Quando uma session é expirada, um webhook é enviado para seu endpoint configurado:
{
  "event": "checkout.session.expired",
  "data": {
    "id": "cs_ABC123xyz",
    "status": "expired",
    "product_id": 123,
    "metadata": {
      "order_id": "12345"
    },
    "client_reference_id": "order_abc123",
    "expires_at": "2025-01-19T15:00:00.000Z"
  },
  "created_at": "2025-01-19T15:00:01.000Z"
}

Erros Comuns

{
  "statusCode": 401,
  "message": "Unauthorized"
}
Solução: Verifique se o header Authorization está correto.
{
  "statusCode": 404,
  "message": "Checkout session not found"
}
Solução: Verifique se o ID da session está correto e pertence ao seu vendedor.
{
  "statusCode": 409,
  "message": "Session cannot be expired"
}
Solução: A session já está complete ou expired. Apenas sessions com status open podem ser expiradas.

Próximos Passos

Criar Session

Crie uma nova checkout session

Webhooks

Configure notificações de expiração