> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Evento checkout.session.completed

> Evento checkout.session.completed.

## Quando dispara

* Comprador conclui o `confirm` na hosted page (ou no seu frontend custom)
* Cartão: aprovação síncrona, `data.object.payment_status === "paid"`
* PIX/boleto: confirmação síncrona do formulário, `data.object.payment_status === "unpaid"` — pagamento real ainda vai chegar via [`async.payment.succeeded`](/api-reference/webhooks/checkout.session.async.payment.succeeded)

## Ação esperada

* **Cartão (`payment_status: "paid"`)** → marcar pedido como pago, liberar produto/serviço
* **PIX/boleto (`payment_status: "unpaid"`)** → marcar pedido como em-processamento. **Não envie produto ainda.** Espere o `async.payment.succeeded`
* Em ambos: salvar `data.object.customer` (resolvido nesse momento) pra cruzamento futuro

## Payload

```json theme={}
{
  "id": "evt_8h3K2pQ9mN4tR7vL",
  "object": "event",
  "created_at": "2026-05-03T18:35:00Z",
  "data": {
    "object": {
      "id": "id_111",
      "object": "checkout.session",
      "allow_discount_codes": true,
      "amount_discount": 0,
      "amount_subtotal": 19990,
      "amount_tax": 0,
      "amount_total": 19990,
      "branding_settings": null,
      "cancel_url": null,
      "client_secret": "9f4c2a1b8e3d7f06a5c4b2e1d8f3a6b09c5e2a1f4b7d8c3e6a9f1d2c4b5e8a0f",
      "created_at": "2026-05-03T18:31:00Z",
      "currency": "brl",
      "customer": "id_555",
      "customer_document": "123.456.789-00",
      "customer_document_type": "cpf",
      "customer_email": "nome@email.com",
      "customer_name": "Cliente",
      "discount": null,
      "expires_at": "2026-05-04T18:31:00Z",
      "invoice_creation": false,
      "line_items": [],
      "livemode": true,
      "metadata": {
        "order_id": "ord_123"
      },
      "mode": "payment",
      "payment_data": {
        "installments": 3,
        "payment_method": "credit_card",
        "status": "succeeded"
      },
      "payment_method_options": {
        "credit_card": {
          "installments": {
            "has_interest": true,
            "max_count": 12
          }
        }
      },
      "payment_method_types": ["credit_card", "pix", "boleto"],
      "payment_status": "paid",
      "require_billing_address": false,
      "require_document": true,
      "require_phone": false,
      "status": "complete",
      "submit_type": "auto",
      "subscription": null,
      "success_url": "https://meusite.com/sucesso",
      "template": null,
      "url": "https://pay.chargefy.io/session/..."
    }
  },
  "livemode": true,
  "organization": "org_123",
  "request": {
    "id": null
  },
  "type": "checkout.session.completed"
}
```

`data.object.payment_data` traz os campos do método (PIX QR, boleto barcode, ou parcelas do cartão). Veja [`POST .../confirm`](/api-reference/checkout-sessions/confirm#resposta) pra cada variante.
