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

# Checkout: fluxo de compra da Supergasbras

> Entenda o fluxo de checkout na Supergasbras: crie sessões de compra, defina entrega, aplique cupons promocionais, processe pagamentos e conclua pedidos.

A Checkout API controla o fluxo completo de finalização de uma compra na plataforma Supergasbras. Ela gerencia sessões de compra, dados de entrega, cupons promocionais e pagamentos.

## O que é uma sessão de compra

Uma sessão de compra (`checkout session`) é criada quando o cliente decide finalizar os itens do carrinho. Ela concentra todas as informações necessárias para concluir um pedido:

* Dados do cliente
* Endereço e informações de entrega
* Cupons promocionais aplicados
* Método e status de pagamento

## Fluxo de checkout

<Steps>
  <Step title="Criar a sessão">
    Chame `POST /v1/sessions` com o `cartSessionId` e o `customerId` para iniciar o checkout.
  </Step>

  <Step title="Atualizar a entrega">
    Use `PUT /v1/sessions/{sessionId}/delivery` para definir o endereço de entrega.
  </Step>

  <Step title="Aplicar cupons (opcional)">
    Use `PUT /v1/sessions/{sessionId}/coupons` para aplicar um código promocional.
  </Step>

  <Step title="Selecionar pagamento">
    Liste os métodos disponíveis com `GET /v1/sessions/{sessionId}/payments/methods` e inicie o pagamento com `POST /v1/sessions/{sessionId}/payments`.
  </Step>

  <Step title="Completar o pedido">
    Finalize com `POST /v1/sessions/{sessionId}/complete` para confirmar o pedido.
  </Step>
</Steps>

## Endpoints da Checkout API

| Método | Endpoint                              | Descrição                        |
| ------ | ------------------------------------- | -------------------------------- |
| `POST` | `/v1/sessions`                        | Criar sessão de compra           |
| `GET`  | `/v1/sessions/{sessionId}`            | Obter sessão de compra           |
| `PUT`  | `/v1/sessions/{sessionId}`            | Atualizar sessão de compra       |
| `POST` | `/v1/sessions/{sessionId}/cancel`     | Cancelar sessão de compra        |
| `PUT`  | `/v1/sessions/{sessionId}/delivery`   | Atualizar informações de entrega |
| `POST` | `/v1/sessions/{sessionId}/complete`   | Completar sessão de compra       |
| `GET`  | `/v1/customers/{customerId}/sessions` | Listar sessões do cliente        |
| `GET`  | `/v1/dealers/{dealerId}/sessions`     | Listar sessões da revenda        |

## Cancelar uma sessão

Se necessário, você pode cancelar uma sessão de compra antes de concluí-la:

```bash theme={null}
curl -X POST "https://checkout-ms.supergasbras.app/v1/sessions/a1b2c3d4-e5f6-7890-abcd-ef1234567890/cancel" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI"
```

<Warning>
  Sessões já concluídas (`COMPLETED`) não podem ser canceladas. Verifique o estado da sessão antes de tentar cancelar.
</Warning>
