> ## Documentation Index
> Fetch the complete documentation index at: https://cakto-dece4a15.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancelamento de Assinatura

> Webhook disparado quando uma assinatura recorrente é cancelada.

## Evento

<ParamField body="event" type="string">
  `subscription_canceled`
</ParamField>

## Exemplo de payload

```json theme={null}
{
  "secret": "76a41004-31bb-4d99-a7d2-6f1a24ecfe3f",
  "event": "subscription_canceled",
  "data": {
    "id": "2a348a25-2c26-4c1e-a905-436d52f8e29e",
    "refId": "6JPuFrA",
    "customer": {
      "name": "Teste",
      "birthDate": null,
      "email": "teste@gmail.com",
      "phone": "222222222",
      "docNumber": "222222222"
    },
    "affiliate": "",
    "offer": {
      "id": "7oYLwWh",
      "name": "Novo produto",
      "price": 25
    },
    "product": {
      "name": "Novo produto123",
      "id": "fe46d976-f644-4a07-b8b7-4751d8e26362",
      "type": "subscription"
    },
    "subscription": {
      "id": "21401964-7dd5-4f24-a5d1-22ce473968c7",
      "status": "canceled",
      "current_period": 11,
      "paid_payments_quantity": 11,
      "retention": "01:21:13.125077",
      "next_payment_date": null,
      "canceledAt": "2025-05-15T16:19:33.336005-03:00"
    },
    "status": "scheduled",
    "amount": 25,
    "paymentMethod": "credit_card",
    "card": {
      "holderName": "teste",
      "lastDigits": "4242",
      "brand": null
    }
  }
}
```

## Campos específicos do cancelamento

<ResponseField name="subscription.status" type="string">
  Será `canceled` neste evento.
</ResponseField>

<ResponseField name="subscription.canceledAt" type="string">
  Data e hora do cancelamento em formato ISO 8601. Preenchido apenas quando a assinatura é cancelada.
</ResponseField>

<ResponseField name="subscription.retention" type="string">
  Tempo de retenção do cliente na assinatura no formato `HH:MM:SS`.
</ResponseField>

<ResponseField name="subscription.next_payment_date" type="null">
  Será `null` após o cancelamento, pois não há próxima cobrança agendada.
</ResponseField>

<Warning>
  O campo `status` do pedido neste evento será `scheduled`, pois representa a última cobrança programada antes do cancelamento ser efetivado.
</Warning>
