# Ciclo de vida da venda

URL: https://staging.pagpolar.com/docs/guias/conceitos/ciclo-de-vida-da-venda

> Entenda cada status da venda, o que leva a venda até ele e qual evento de webhook avisa a mudança.

## O problema: a venda muda depois da resposta

Quando você cria uma cobrança, a resposta chega na hora. Mas o pagamento acontece depois: o cliente paga o PIX minutos mais tarde, o boleto vence, o cartão é contestado.

Por isso a venda tem um **status** (`status`), que muda com o tempo. Você fica sabendo da mudança pelos [webhooks](/docs/webhooks) ou consultando [`GET /sales/{identifier}`](/docs/referencia/vendas/get-sale).

## Diagrama de status

O diagrama mostra os caminhos mais comuns de uma venda.

```mermaid
stateDiagram-v2
  [*] --> DRAFT: cobrança recebida
  DRAFT --> PROCESSING: cobrança criada no gateway
  DRAFT --> FAILED: gateway recusa na criação
  PROCESSING --> FAILED: gateway recusa depois
  PROCESSING --> PAID: pagamento confirmado
  PROCESSING --> EXPIRED: PIX ou boleto venceu
  PROCESSING --> CANCELED: cancelada antes de pagar
  PAID --> ASK_REFUND: cliente pede reembolso total
  PAID --> ASK_PARTIAL_REFUND: cliente pede reembolso de parte dos itens
  ASK_REFUND --> REFUNDED: estorno concluído
  ASK_REFUND --> PAID: pedido cancelado ou recusado
  ASK_PARTIAL_REFUND --> PAID: item estornado com itens restantes, ou pedido cancelado ou recusado
  ASK_PARTIAL_REFUND --> REFUNDED: último item estornado
  PAID --> REFUNDED: estorno concluído
  PAID --> CHARGEBACK_APPROVED: contestação aprovada pelo banco
```

## O que cada status significa

| Status                | Significado                                                              | Evento que avisa                                                                                                                                                                                                                       | O que fazer                                                        |
| --------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| `DRAFT`               | A venda foi registrada e a cobrança ainda está sendo criada no gateway.  | [`TRANSACTION_CREATED`](/docs/webhooks/eventos/transaction-created)                                                                                                                                                                    | Registre a venda. Não libere nada.                                 |
| `PROCESSING`          | A cobrança existe no gateway e espera o pagamento.                       | [`TRANSACTION_CREATED`](/docs/webhooks/eventos/transaction-created)                                                                                                                                                                    | Mostre o PIX ou o boleto ao cliente.                               |
| `FAILED`              | O gateway recusou a cobrança, na criação ou depois. Acontece no cartão.  | Nenhum evento avisa a recusa. Se ela veio na criação, o `TRANSACTION_CREATED` já chega com `FAILED`. Se veio depois, a venda passa para `FAILED` sem evento: confira em [`GET /sales/{identifier}`](/docs/referencia/vendas/get-sale). | Peça outro cartão e crie uma nova cobrança.                        |
| `PAID`                | O pagamento foi confirmado.                                              | [`TRANSACTION_PAID`](/docs/webhooks/eventos/transaction-paid)                                                                                                                                                                          | Libere o que foi vendido.                                          |
| `EXPIRED`             | O PIX ou o boleto venceu sem pagamento.                                  | [`TRANSACTION_EXPIRED`](/docs/webhooks/eventos/transaction-expired)                                                                                                                                                                    | Não libere. Crie outra cobrança se o cliente ainda quiser comprar. |
| `CANCELED`            | A venda foi cancelada sem ter sido paga.                                 | [`TRANSACTION_CANCELED`](/docs/webhooks/eventos/transaction-canceled)                                                                                                                                                                  | Cancele o pedido.                                                  |
| `ASK_REFUND`          | O cliente pediu reembolso da venda inteira. O dinheiro ainda não voltou. | [`TRANSACTION_ASK_REFUNDING`](/docs/webhooks/eventos/transaction-ask-refunding)                                                                                                                                                        | Registre o pedido. Espere o estorno.                               |
| `ASK_PARTIAL_REFUND`  | O cliente pediu reembolso de parte dos itens.                            | [`TRANSACTION_ASK_REFUNDING`](/docs/webhooks/eventos/transaction-ask-refunding)                                                                                                                                                        | Registre o pedido. Espere o estorno.                               |
| `REFUNDED`            | O estorno foi concluído.                                                 | [`TRANSACTION_REFUNDED`](/docs/webhooks/eventos/transaction-refunded)                                                                                                                                                                  | Revogue o acesso.                                                  |
| `CHARGEBACK_APPROVED` | O banco do cliente aprovou a contestação da compra.                      | [`TRANSACTION_CHARGEBACK_APPROVED`](/docs/webhooks/eventos/transaction-chargeback-approved)                                                                                                                                            | Revogue o acesso.                                                  |

## Detalhes que mudam a sua integração

**Vencimento do PIX e do boleto.** O PIX vence quando o QR Code expira. O boleto vence 5 dias depois de criado. A PagPolar confere os vencimentos a cada 3 horas, então o status `EXPIRED` e o evento podem chegar algumas horas depois.

**Pagamento atrasado não desfaz reembolso.** Se a confirmação do pagamento chega quando a venda já está em reembolso, cancelada ou contestada, o status não volta para `PAID`.

**Estorno de venda não paga.** Se o gateway estorna uma venda que não contava como paga, ela vai para `CANCELED`, e o evento é `TRANSACTION_CANCELED`.

**Volta para `PAID` sem evento.** Acontece quando o pedido de reembolso em `ASK_REFUND` ou `ASK_PARTIAL_REFUND` é cancelado ou recusado, e quando um item é estornado e ainda restam itens na venda. `TRANSACTION_REFUNDED` só chega quando o último item é estornado. Para saber o que aconteceu com o pedido, consulte [`GET /refunds`](/docs/referencia/reembolsos/list-refunds). Veja [Acompanhar reembolsos e chargebacks](/docs/guias/jornadas/acompanhar-reembolsos-e-chargebacks#situacoes-do-pedido).

**Contestação de venda já reembolsada.** Se a venda já estava `REFUNDED` ou `CANCELED`, o status não muda, mas o evento `TRANSACTION_CHARGEBACK_APPROVED` é enviado assim mesmo.

## Status sem descrição nesta página

O campo `status` também pode trazer `OPEN`, `REFUNDING`, `PARTIALLY_REFUNDED`, `ABANDONED` e `CHARGEBACK_REQUESTED`. Esta documentação ainda não descreve quando esses status aparecem. Se receber um deles, não libere o que foi vendido.

## Guias relacionados

- [Catálogo de eventos](/docs/webhooks/eventos) — Todos os eventos de venda e de assinatura.
- [Ciclo de vida da assinatura](/docs/guias/conceitos/ciclo-de-vida-da-assinatura) — Os status de uma assinatura.
