PagnovoPagnovodocs

Referência da API

Cancelar assinatura

Marca a Subscription como `CANCELED` (final, não pode ser reativada). Em uma única transação atômica, também **cancela todas as Invoices vinculadas** em status `PENDING`, `OVERDUE` ou `DRAFT` (Invoices PAID, REFUNDED, CANCELED ou EXPIRED não são afetadas). Pra parar temporariamente, prefira `POST /:id/pause`.

POST/v2/subscriptions/:id/cancel
Cancel é final e cascateia para invoices
id Diferente de pause, cancel não pode ser desfeito via API. E **todas as invoices PENDING/OVERDUE/DRAFT desta subscription também são canceladas** — o cliente não consegue pagar mais nenhuma delas. Se o cliente já pagou alguma, essa Invoice permanece PAID.

Autenticação

HTTP Basic Auth. Envie sua secret key no header:

Authorization: Basic {base64(secret:SUA_SECRET_KEY)}

Parâmetros

idstring (path, UUID)obrigatório

UUID da Subscription.

Exemplo: sub_abc123-...

Body da requisição

Content-Type: application/json

JSON
{
  "reason": "Cliente solicitou cancelamento por chat"
}

Respostas

200

Subscription cancelada. invoicesCanceled informa quantas invoices PENDING/OVERDUE/DRAFT foram canceladas em cascata.

JSON
{
  "subscription": {
    "id": "sub_abc123-...",
    "status": "CANCELED",
    "canceledAt": "2026-09-15T16:00:00.000Z",
    "canceledReason": "Cliente solicitou cancelamento por chat",
    "updatedAt": "2026-09-15T16:00:00.000Z"
  },
  "invoicesCanceled": 1
}
400

Subscription já está cancelada ou expirada.

JSON
{ "status": 400, "error": "Subscription ja esta CANCELED" }
404

Subscription não encontrada.

JSON
{ "status": 404, "error": "Subscription nao encontrada" }

Exemplos

cURL
curl -X POST "https://api.pagnovo.com/v2/subscriptions/sub_abc123-.../cancel" \
  -H "Authorization: Basic $(echo -n 'secret:SUA_SECRET_KEY' | base64)" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Cliente solicitou cancelamento por chat" }'