Assinatura expirada

Evento: SUBSCRIPTION_EXPIRED

A assinatura em PIX ou boleto passou do prazo de carência sem pagar a renovação.

Quando dispara: na verificação diária de assinaturas, depois que o prazo de carência da renovação acaba sem pagamento.

O que fazer: revogue o acesso do cliente.

Atenção: o status vira EXPIRED. Assinaturas no cartão não geram este evento.

Exemplo de payload

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "event": "SUBSCRIPTION_EXPIRED",
  "creation_date": "2026-03-06T08:00:05.000Z",
  "version": "1.0.0",
  "data": {
    "subscription": {
      "id": "c3d4e5f6-a7b8-4012-8def-123456789012",
      "external_id": null,
      "status": "EXPIRED",
      "start_at": "2026-01-28T10:00:00.000Z",
      "end_at": null,
      "next_billing_at": "2026-02-28T10:00:00.000Z",
      "payment_method": "BOLETO",
      "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

Assinatura em atraso POST

**Evento:** `SUBSCRIPTION_DELAYED` A renovação de uma assinatura em PIX ou boleto está atrasada, mas ainda dentro do prazo de carência. **Quando dispara:** na verificação diária de assinaturas, quando a data de renovação já passou, a renovação não foi paga e o prazo de carência ainda não acabou. Pode chegar uma vez por dia enquanto a assinatura seguir nessa situação. **O que fazer:** lembre o cliente de pagar. **Atenção:** a assinatura está `PENDING_RENEWAL`. Se o prazo acabar sem pagamento, chega `SUBSCRIPTION_EXPIRED`. Assinaturas no cartão não geram este evento. ### Exemplo de payload ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "event": "SUBSCRIPTION_DELAYED", "creation_date": "2026-03-01T08:00:05.000Z", "version": "1.0.0", "data": { "subscription": { "id": "c3d4e5f6-a7b8-4012-8def-123456789012", "external_id": null, "status": "PENDING_RENEWAL", "start_at": "2026-01-28T10:00:00.000Z", "end_at": null, "next_billing_at": "2026-02-28T10:00:00.000Z", "payment_method": "BOLETO", "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" } } } ```

Assinatura cancelada POST

**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 ```json { "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" } } } ```