Credit notes
In the Spanish market a credit note is a corrective invoice (factura
rectificativa), not a separate document type — Facturae and Spanish law have no
distinct "credit note". You issue one through the same
POST /invoices endpoint (or the draft
flow); there is no /credit-notes resource.
A corrective invoice is an ordinary Facturae document where:
InvoiceHeader/InvoiceClassisOR(rectificativa) instead ofOO, andInvoiceHeader/Correctiverecords which invoice is corrected, why, and how.
The API validates the contents of the Corrective block when it is present (see the
rules below), but does not itself enforce the OR ↔ Corrective pairing — building a
document that AEAT will accept is your responsibility.
Everything else — the lifecycle and the VERI*FACTU QR — behaves exactly as for a normal invoice.
The Corrective block
<InvoiceHeader>
<InvoiceNumber>REC-2026-0001</InvoiceNumber>
<InvoiceSeriesCode>REC</InvoiceSeriesCode>
<InvoiceDocumentType>FC</InvoiceDocumentType>
<InvoiceClass>OR</InvoiceClass>
<Corrective>
<InvoiceNumber>Snippet1</InvoiceNumber>
<ReasonCode>16</ReasonCode>
<ReasonDescription>Base imponible</ReasonDescription>
<TaxPeriod>
<StartDate>2026-01-01</StartDate>
<EndDate>2026-01-31</EndDate>
</TaxPeriod>
<CorrectionMethod>02</CorrectionMethod>
<CorrectionMethodDescription>Rectificación por diferencias</CorrectionMethodDescription>
</Corrective>
</InvoiceHeader>
| Field | Required | Notes |
|---|---|---|
InvoiceNumber, InvoiceSeriesCode | no | identify the invoice being corrected (each ≤ 20 chars) |
InvoiceIssueDate | no | issue date of the corrected invoice |
ReasonCode | yes | 01–16 or 80–85 (e.g. 12 Cuota tributaria a aplicar, 16 Base imponible) |
ReasonDescription | yes | the exact Spanish literal that matches ReasonCode — it is validated against a fixed list, not free text (e.g. ReasonCode 16 → Base imponible) |
TaxPeriod | yes | StartDate and EndDate of the period affected |
CorrectionMethod | yes | 01 full restatement · 02 by differences · 03 bulk-period volume discount · 04 authorised by AEAT |
CorrectionMethodDescription | yes | the matching Spanish literal from a fixed list: Rectificación íntegra · Rectificación por diferencias · Rectificación por descuento por volumen de operaciones durante un periodo · Autorizadas por la Agencia Tributaria |
AdditionalReasonDescription | no | free text, up to 2500 characters |
Corrective invoices are supported by the request model — validate your integration carefully against the sandbox before relying on them in production.
See the POST /invoices API reference for
the complete schema.