# Catálogo de eventos

URL: https://staging.pagpolar.com/docs/webhooks/eventos

> Encontre o evento certo para cada situação de venda ou assinatura e veja o que fazer ao receber cada um.

A PagPolar envia 15 eventos. Cada página de evento mostra quando ele é enviado, o que fazer, os cuidados e um exemplo completo do payload.

Antes de tratar os eventos, leia [Formato do evento](/docs/webhooks/formato-do-evento) e [Processar eventos sem duplicar](/docs/webhooks/processar-sem-duplicar).

## Eventos de venda

| Evento                                                                                      | Quando é enviado                                                       | O que fazer                           |
| ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------- |
| [`TRANSACTION_CREATED`](/docs/webhooks/eventos/transaction-created)                         | Uma venda foi registrada, no checkout ou pela API.                     | Registre a venda. Não libere nada.    |
| [`TRANSACTION_PENDING`](/docs/webhooks/eventos/transaction-pending)                         | A cobrança de renovação de uma assinatura em PIX ou boleto foi gerada. | Mostre a nova cobrança ao cliente.    |
| [`TRANSACTION_PAID`](/docs/webhooks/eventos/transaction-paid)                               | O pagamento foi confirmado.                                            | Libere o que foi vendido.             |
| [`TRANSACTION_EXPIRED`](/docs/webhooks/eventos/transaction-expired)                         | Um PIX ou boleto venceu sem pagamento.                                 | Marque o pedido como não pago.        |
| [`TRANSACTION_CANCELED`](/docs/webhooks/eventos/transaction-canceled)                       | A venda foi cancelada sem ter sido paga.                               | Cancele o pedido.                     |
| [`TRANSACTION_ASK_REFUNDING`](/docs/webhooks/eventos/transaction-ask-refunding)             | O cliente pediu reembolso. O dinheiro ainda não voltou.                | Registre o pedido e espere o estorno. |
| [`TRANSACTION_REFUNDED`](/docs/webhooks/eventos/transaction-refunded)                       | O estorno foi concluído.                                               | Revogue o acesso.                     |
| [`TRANSACTION_CHARGEBACK_APPROVED`](/docs/webhooks/eventos/transaction-chargeback-approved) | O banco do cliente aprovou uma contestação.                            | Revogue o acesso.                     |

## Eventos de assinatura

| Evento                                                                    | Quando é enviado                                                     | O que fazer                                                                           |
| ------------------------------------------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| [`SUBSCRIPTION_CREATED`](/docs/webhooks/eventos/subscription-created)     | Uma assinatura foi registrada.                                       | Registre a assinatura. Não libere o acesso.                                           |
| [`SUBSCRIPTION_CONFIRMED`](/docs/webhooks/eventos/subscription-confirmed) | O gateway aceitou a assinatura no cartão. O status continua `DRAFT`. | Guarde o `external_id`. Espere o pagamento.                                           |
| [`SUBSCRIPTION_FAILED`](/docs/webhooks/eventos/subscription-failed)       | O gateway recusou a assinatura no cartão.                            | Peça outro cartão.                                                                    |
| [`SUBSCRIPTION_RENEWED`](/docs/webhooks/eventos/subscription-renewed)     | Um ciclo do cartão, a partir do segundo, foi pago.                   | Mantenha o acesso.                                                                    |
| [`SUBSCRIPTION_DELAYED`](/docs/webhooks/eventos/subscription-delayed)     | A renovação em PIX ou boleto está atrasada, dentro da carência.      | Lembre o cliente de pagar.                                                            |
| [`SUBSCRIPTION_EXPIRED`](/docs/webhooks/eventos/subscription-expired)     | A assinatura em PIX ou boleto passou da carência sem pagar.          | Revogue o acesso.                                                                     |
| [`SUBSCRIPTION_CANCELED`](/docs/webhooks/eventos/subscription-canceled)   | O cancelamento foi efetivado.                                        | Revogue o acesso. Se precisar da data, confira `end_at` em `GET /subscriptions/{id}`. |

## Eventos só de assinaturas em PIX ou boleto

Pela API, a assinatura é sempre no cartão. Os eventos de PIX ou boleto das tabelas acima (`TRANSACTION_PENDING`, `SUBSCRIPTION_DELAYED` e `SUBSCRIPTION_EXPIRED`) só chegam para as assinaturas vendidas no checkout da PagPolar.

## Situações que não geram evento

| Situação                                                         | O que chega                                                                                                                                                                            | Como acompanhar                                                                                                  |
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Cartão recusado                                                  | Só `TRANSACTION_CREATED`. Ele chega com `status: FAILED` se a recusa veio antes do envio. Se a recusa vier depois, a mudança para `FAILED` não gera evento, nem `TRANSACTION_CANCELED` | Leia o `status` do `TRANSACTION_CREATED`. Se a venda continuar `PROCESSING`, consulte `GET /sales/{identifier}`. |
| Pedido de cancelamento de assinatura no cartão (`CANCELING`)     | Nada, até o gateway confirmar                                                                                                                                                          | Espere `SUBSCRIPTION_CANCELED`.                                                                                  |
| Troca do cartão de uma assinatura                                | Nada                                                                                                                                                                                   | Resposta de `PATCH /subscriptions/{id}/card`.                                                                    |
| Reembolso de parte dos itens, quando ainda restam itens na venda | Nada. A venda volta para `PAID`.                                                                                                                                                       | Consulte `GET /refunds`.                                                                                         |
| Pedido de reembolso aberto pelo vendedor ou pelo suporte         | Nada de `TRANSACTION_ASK_REFUNDING`                                                                                                                                                    | Espere `TRANSACTION_REFUNDED`.                                                                                   |
| Renovação paga de assinatura em PIX ou boleto                    | `TRANSACTION_PAID`, sem `SUBSCRIPTION_RENEWED`                                                                                                                                         | Use o `TRANSACTION_PAID` com `subscription` preenchida.                                                          |
| Vendas de uma assinatura recusada que ficam `FAILED`             | `TRANSACTION_CREATED` na criação e depois `SUBSCRIPTION_FAILED`; a mudança da venda para `FAILED` não gera evento                                                                      | Trate a assinatura inteira como recusada ao receber `SUBSCRIPTION_FAILED`.                                       |
