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/cancelCancel é 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órioUUID 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" }'