> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete a Subscription

> Cancela uma subscription imediatamente.

Cancela uma `subscription` imediatamente. Esse endpoint é a operação de
remoção do recurso no contrato público: a assinatura sai de uso agora, mas a
row permanece auditável para preservar histórico financeiro, invoices e
webhooks.

Depois do `DELETE`, a Chargefy atualiza a assinatura para
`status: "canceled"`, preenche `canceled_at`, remove qualquer cancelamento
agendado, cancela jobs pendentes de trial/renovação e dispara
`subscription.canceled`. A resposta retorna o objeto `subscription` completo
atualizado.

Por padrão, faturas que já estavam em aberto continuam `open` e cobráveis
depois do cancelamento — o cancelamento não apaga o que o cliente já devia.
Envie `void_open_invoices: true` para anular essas faturas no mesmo passo.

<Tip>
  Se a intenção for cancelar somente no fim do período atual, use o [endpoint de
  update](/api-reference/subscriptions/update) com `cancel_at_period_end: true`.
  Para desfazer esse agendamento antes do corte, envie
  `cancel_at_period_end: false` no mesmo endpoint.
</Tip>

<ParamField path="id" type="string" required>
  ID da subscription (`sub_*`).
</ParamField>

<ParamField body="cancellation_details" type="object">
  Detalhes opcionais do cancelamento. Aceita `comment` e `feedback`; `reason` é
  definido pela Chargefy.
</ParamField>

<ParamField body="void_open_invoices" type="boolean" default="false">
  Quando `true`, todas as faturas em aberto da assinatura passam para
  `status: "void"` e seus payment intents em aberto são cancelados. Por padrão
  (`false`), as faturas em aberto permanecem cobráveis após o cancelamento.
</ParamField>

<RequestExample>
  ```bash cURL theme={}
  curl -X DELETE "https://api.chargefy.io/v1/subscriptions/sub_123" \
    -H "Authorization: Bearer {{API_KEY}}"
  ```
</RequestExample>

<ResponseExample>
  ```json Response 200 theme={}
  {
    "id": "sub_123",
    "object": "subscription",
    "billing_cycle_anchor": "2026-05-19T18:00:00Z",
    "billing_mode": {
      "type": "classic"
    },
    "cancel_at": null,
    "cancel_at_period_end": false,
    "canceled_at": "2026-05-20T12:00:00Z",
    "cancellation_details": {
      "comment": null,
      "feedback": null,
      "reason": "cancellation_requested"
    },
    "collection_method": "charge_automatically",
    "created_at": "2026-05-19T18:00:00Z",
    "currency": "brl",
    "current_period_end": "2026-06-19T18:00:00Z",
    "current_period_start": "2026-05-19T18:00:00Z",
    "customer": "cus_123",
    "days_until_due": null,
    "default_payment_method": "pm_123",
    "ended_at": null,
    "items": {
      "object": "list",
      "data": [],
      "has_more": false,
      "url": "/v1/subscription-items?subscription=sub_123"
    },
    "latest_invoice": "in_123",
    "livemode": true,
    "metadata": {},
    "next_billing_at": "2026-06-19T18:00:00Z",
    "pause_collection": null,
    "payment_settings": {},
    "pending_setup_intent": null,
    "pending_update": null,
    "start_date": "2026-05-19T18:00:00Z",
    "status": "canceled",
    "trial_end": null,
    "trial_settings": {
      "end_behavior": {
        "missing_payment_method": "create_invoice"
      }
    },
    "trial_start": null,
    "updated_at": "2026-05-20T12:00:00Z"
  }
  ```
</ResponseExample>

## Webhooks

O cancelamento imediato dispara `subscription.canceled` com a subscription
completa em `data.object`.

Com `void_open_invoices: true`, cada fatura anulada dispara `invoice.voided` e
cada payment intent cancelado dispara `payment.intent.canceled`, antes do
`subscription.canceled`.
