Assinatura cancelada

Evento: SUBSCRIPTION_CANCELED

O cancelamento da assinatura foi efetivado.

Quando dispara: em PIX ou boleto, na hora do pedido de cancelamento. No cartão, quando o gateway informa o cancelamento ou a recusa: o pedido feito em DELETE /v1/subscriptions/{id} deixa a assinatura em CANCELING, sem evento, até essa confirmação. O pedido de reembolso total de uma venda de assinatura, o estorno concluído e o chargeback aprovado também pedem o cancelamento.

O que fazer: encerre a assinatura no seu sistema e revogue o acesso. Se precisar da data, confira end_at em GET /v1/subscriptions/{id}.

Atenção: no cartão, end_at é gravado logo depois do envio deste evento, então o payload pode chegar com end_at null. Em PIX ou boleto, end_at recebe a data do cancelamento.

Exemplo de payload

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "event": "SUBSCRIPTION_CANCELED",
  "creation_date": "2026-03-15T08:00:05.000Z",
  "version": "1.0.0",
  "data": {
    "subscription": {
      "id": "c3d4e5f6-a7b8-4012-8def-123456789012",
      "external_id": "sub_abc123",
      "status": "CANCELED",
      "start_at": "2026-01-28T10:00:00.000Z",
      "end_at": "2026-03-15T08:00:00.000Z",
      "next_billing_at": "2026-02-28T10:00:00.000Z",
      "payment_method": "CREDIT_CARD",
      "total_amount": "49.9000",
      "created_at": "2026-01-28T10:00:00.000Z"
    },
    "product": {
      "id": "8a2cdb3c-4a6d-4bad-8add-1a0c6b2cab5c",
      "name": "Assinatura Premium Mensal",
      "type": "SUBSCRIPTION"
    },
    "buyer": {
      "name": "João Silva",
      "email": "joao.silva@email.com",
      "document": "12345678900",
      "phone": "11999999999"
    },
    "source": {
      "channel": "API",
      "api_credential_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
    }
  }
}

Header Parameters

Authorization?string

Bearer <webhook_authorization>: o token do webhook, exibido uma única vez na criação da credencial. Compare com o valor guardado antes de processar o evento.

X-PagPolar-Test?string

true só nos envios de teste feitos pelo Playground de webhooks do portal. Os eventos reais não trazem este header.

Value in"true"
idstring

Id desta tentativa de entrega. Cada nova tentativa do mesmo evento chega com outro id: não use este campo para evitar processamento duplicado.

Formatuuid
eventstring

Nome do evento.

creation_datestring

Data e hora (UTC) em que esta tentativa foi montada.

Formatdate-time
versionstring

Versão do formato do payload.

test?boolean

Só aparece nos envios de teste feitos pelo Playground de webhooks do portal, junto com o header X-PagPolar-Test: true. Os eventos reais não trazem este campo: ignore em produção qualquer evento com test: true.

dataSubscriptionEventData

Dados do evento. Chega vazio ({}) se a venda ou a assinatura não for encontrada no momento do envio.

Response Body