Notas de Crédito API
Anulação e rectificação legal de facturas emitidas. Cada NC é registada na AGT em tempo real e recebe ATCUD próprio.
Emitir Nota de Crédito
POST
/v1/organisations/:orgId/invoices/:invoiceId/credit-noteEmite uma NC que anula a factura original. A factura passa automaticamente para o estado cancelled. Só pode existir uma NC por factura.
Request Body
JSON
{
"reason": "Anulação por erro de facturação"
}| reason | string? | Motivo da anulação - aparece no PDF da NC |
Resposta (201 Created)
JSON
{
"id": "e5f6g7h8-...",
"number": "NC NC6326S37645N/1",
"displayCode": "081D93",
"status": "issued",
"invoiceId": "a1b2c3d4-...",
"subtotal": 13157895,
"taxAmount": 1842105,
"total": 15000000,
"currency": "AOA",
"atcud": "NC6326S37645N-1",
"hash": "7mR3Kp...",
"previousHash": "0",
"jwsSignature": "eyJhbGciOiJSUzI1NiJ9...",
"pdfUrl": "https://storage.vero.ao/credit-notes/e5f6g7h8.pdf",
"agtStatus": "pending",
"agtErrors": null,
"issuedAt": "2026-06-25T09:15:00.000Z"
}Campos de Facturação Electrónica (DFe)
number- Número AGT certificado no formatoNC {série}/{sequencial}.atcud- Código único de validação AGT. Aparece no PDF com QR code verificável.hash/previousHash- Cadeia de integridade dos documentos da série NC.jwsSignature- Assinatura RS256 submetida à AGT.agtStatus- Estado da validação:pending,validatedourejected. A submissão à AGT ocorre em segundo plano - fazGETao documento passado alguns segundos para confirmar o resultado final.agtErrors- Lista de erros devolvidos pela AGT quandoagtStatusérejected.
Notas de crédito de adiantamento
Quando uma factura final desconta uma Factura de Adiantamento (FA), o Vero emite sozinho uma NC sobre a FA, como manda o Decreto Presidencial 71/25 (art. 8.º n.º 10). Aparece emGET /credit-notes com kind: "advance", invoiceId = a FA eregularizedInvoiceId = a factura final. Ao contrário das outras NC (kind: "cancel"), não anula a FA: só abate o valor descontado. Não se emite por esta rota.
Erros comuns
| 409 | credit_note_already_exists | Já existe uma NC para esta factura |
| 409 | advance_in_use | A factura é uma FA já descontada numa factura final (regularizada por NC) |
| 409 | invoice_has_advances | A factura descontou adiantamentos: a regularização já foi à AGT, não se anula aqui |
| 400 | refund_requires_paid_invoice | Pediste devolução (refund) de uma factura que não foi paga |
| 400 | invoice_not_issued | A factura não está no estado issued ou paid |
| 404 | invoice_not_found | Factura não encontrada nesta organização |
| 422 | agt_keys_not_configured | Credenciais AGT não configuradas na organização |