PagnovoPagnovodocs

Referência da API

Cancelar fatura

Cancela uma Invoice em status `DRAFT`, `PENDING` ou `OVERDUE`. Cancela em cascata todos os `InvoicePaymentAttempt` PENDING dessa invoice (cliente final não consegue mais pagar). Invoices `PAID`/`REFUNDED`/`CANCELED`/`EXPIRED` não podem ser canceladas. Se já tem attempt `APPROVED`, use `POST /:id/mark-refunded` em vez de cancel.

POST/v2/invoices/:id/cancel

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 Invoice.

Exemplo: inv_111aaa

Body da requisição

Content-Type: application/json

JSON
{
  "reason": "Cliente cancelou o pedido"
}

Respostas

200

Invoice cancelada. Attempts PENDING também foram cancelados.

JSON
{
  "id": "inv_111aaa",
  "status": "CANCELED",
  "canceledAt": "2026-09-02T10:00:00.000Z",
  "canceledReason": "Cliente cancelou o pedido",
  "updatedAt": "2026-09-02T10:00:00.000Z"
}
400

Status não permite cancelamento, ou Invoice tem attempt APPROVED (use mark-refunded).

JSON
{
  "status": 400,
  "error": "Invoice tem pagamento aprovado - use refund em vez de cancel"
}
404

Invoice não encontrada.

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

Exemplos

cURL
curl -X POST "https://api.pagnovo.com/v2/invoices/inv_111aaa/cancel" \
  -H "Authorization: Basic $(echo -n 'secret:SUA_SECRET_KEY' | base64)" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Cliente cancelou o pedido" }'