NewProvince is only required for addresses in Spain
BeeL
Get startedMulti-NIFVeriFactuRulesStripeAPI referenceChangelog

Voiding

When an issued invoice can be voided, how, and what a void leaves behind.


All rules

A void takes out of the books an invoice that should never have been issued. It is not the way to fix an invoice whose operation did happen: that is a corrective invoice.

5 rules: 1 from the law, 3 AEAT criteria, 1 BeeL. rule. How to read a rule.

Void or correct

What to do with an issued invoice that should not stand as it is. Each row comes from the rule that decides it.

SituationDo thisRule
You spot the mistake before issuing: the invoice is still a draft or scheduled.Edit or delete the draft. Nothing has been issued, so nothing needs correcting.LIF-001
The invoice should never have been issued: the operation did not take place, it was a test, or it is an accidental duplicate.Void it. Its number stays used; if a valid invoice is still due, issue it as a new one.VOI-001
The operation took place, but the invoice carried an income tax withholding it should not have.Void it and issue a new invoice without the withholding. A corrective is not the way: the withholding is not a cause for one.VOI-001
The invoice already has corrective invoices.It can no longer be voided: issue another corrective against it.VOI-005
The sale happened, but the amounts, the tax or a detail on the invoice are wrong.Issue a corrective against it: R1–R4 for a standard invoice, R5 for a simplified one.COR-001
A corrective you already issued is itself wrong.Issue another corrective against the original invoice, not against the corrective.COR-007
The customer has not paid, the legal waiting period has passed and you have claimed the debt in court or by notarial demand.Issue an R3 corrective within the legal window and report it to AEAT.COR-008
The customer has been declared insolvent by a court after the invoice's tax accrued, and has not paid.Issue an R2 corrective within the legal period and report it to AEAT.COR-009
You grant a discount or a volume rebate after the invoice was issued.Issue an R1 PARTIAL corrective with the discount as a negative line.COR-011
The invoice recorded the right recipient with a wrong name, tax ID or address.Issue an R4 PARTIAL corrective with the corrected recipient and no lines: the amounts stay as they are.COR-017
The invoice was issued to another person, not the actual customer.Issue a TOTAL corrective on it, then a new invoice to the right customer.COR-017
The customer asks for a full invoice with their details in place of a simplified one already issued.Exchange the simplified invoice for a full one with the exchange operation; do not correct it.SIM-007
VOI-001RequiredAEAT criterionCritical

Void only an invoice that should never have been issued

Void an invoice only when it was issued by mistake: the sale or service it describes never took place, it was a test, or it is an accidental duplicate. An invoice for an operation that did happen is not voided to fix its amounts, VAT or details; it is corrected with a corrective invoice. The one exception is a withholding that should not have been applied: the withholding is not a cause for a corrective (COR-024), so that invoice is voided and issued again without it. The API asks for the confirmation once the invoice was sent or paid (VOI-004) and refuses to void a corrected invoice (VOI-005).

Why
A void removes the invoice's fiscal effect altogether. Using it on a real operation, even to reissue it right after, takes a real sale out of the books; the law provides the corrective invoice for that.
Responsibility
Responsibility: the issuing business.
Applies to
Statuses ISSUEDSENTOperations voidCompanyInvoice
Legal basisRD 1007/2023 (RRSIF), art. 11.1 · AEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar
«Procederá la generación de un registro de facturación de anulación cuando se haya emitido erróneamente una factura y sea por lo tanto necesario anular su correspondiente registro de facturación de alta.»
RD 1007/2023 (RRSIF), art. 11.1 · BOE
«Con carácter general, todas las facturas emitidas, en la medida en que respondan a operaciones realmente efectuadas (como es el caso habitual) no pueden anularse. En el caso de que exista alguna diferencia entre lo facturado y la realidad, por ejemplo, que por un defecto de cantidades o de calidades, o por otras razones, y se deba modificar su importe, procederá la emisión de una factura rectificativa»
AEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar · AEAT

The customer's VAT rate was wrong on an invoice for work you did deliver, so you void it and issue a new one.

The same invoice is corrected with a corrective invoice; a duplicate fired twice by a retry is voided.

POST /v1/companies/{company_id}/invoices/{invoice_id}/void{ "reason": "Duplicate of invoice F-2026-0142, issued twice by mistake" }
VOI-002RequiredBeeL. rule

Void an issued invoice through the void operation; delete a draft

An issued invoice is voided only with the void operation, with a reason of 10 to 500 characters, and only when it was issued by mistake (VOI-001, VOI-004). A draft or a scheduled invoice is not voided: it is deleted, and it had no number to lose. An invoice issued to the wrong person is not voided either: it is corrected (COR-017).

Why
The void operation is what records the cancellation and, under VeriFactu, sends it to AEAT; a status change cannot. A second void of the same invoice is refused, so a retried void is safe to treat as done.
Responsibility
Checked by the API: a request that breaks it is rejected with the error codes listed.

Setting the status to VOIDED with the status operation, which does not take that value: the API answers VALIDATION_ERROR.

PUT /v1/companies/{company_id}/invoices/{invoice_id}/status{ "status": "VOIDED" }

Calling the void operation with the reason, confirming it was issued by mistake.

POST /v1/companies/{company_id}/invoices/{invoice_id}/void{ "reason": "Duplicate of invoice F-2026-0142, issued twice by mistake", "issued_in_error": true }
VOI-003RequiredLaw

A void adds a cancellation record; the original stays

Voiding an invoice under VeriFactu generates a cancellation record (registro de anulación) that identifies the original by its number and issue date; the original registration record is never removed. The invoice's verifactu.submission_status becomes VOIDED once AEAT has accepted the cancellation.

Why
AEAT keeps both records, linked. A successful void call means the cancellation was submitted, not that AEAT accepted it.
Responsibility
Checked by the API: BeeL. applies it.
Applies to
Statuses VOIDEDOperations voidCompanyInvoicegetCompanyInvoiceInvoices of a company under VeriFactu.
Legal basisRD 1007/2023 (RRSIF), art. 11.2.c) y d) · RD 1007/2023 (RRSIF), art. 8.2.a)
«c) El número y, en su caso, serie de la factura correspondiente al registro de facturación de alta que se anule. d) La fecha de expedición de la factura correspondiente al registro de facturación de alta que se anule.»
RD 1007/2023 (RRSIF), art. 11.2.c) y d) · BOE
«Cualquier necesidad de corrección o anulación de los datos registrados deberá ser realizada mediante al menos un registro de facturación adicional posterior, de forma que se conserven inalterables los datos originalmente registrados.»
RD 1007/2023 (RRSIF), art. 8.2.a) · BOE

Treating the 200 of the void call as proof that AEAT accepted the cancellation.

After voiding, reading the invoice until its verifactu.submission_status is VOIDED.

GET /v1/companies/{company_id}/invoices/{invoice_id}
VOI-004RequiredAEAT criterion

A sent or paid invoice is voided only confirming it was issued by mistake

Voiding an invoice that has already been sent or paid requires issued_in_error: true: the confirmation that it was issued by mistake, because the operation never took place, it was a test, or it is an accidental duplicate. Without it the void is refused with VOID_REQUIRES_ISSUED_IN_ERROR. An invoice that was neither sent nor paid can be voided without it, though a void is only for those same cases (VOI-001).

Why
A void removes the invoice from the books as if it had never been issued. Once the customer has received or paid it, that is a sign the operation was real; AEAT reads a void of an undelivered invoice as the clearest case of an invoice that should never have existed. The confirmation makes the issuer state that it was not real, instead of voiding a real sale by habit.
Responsibility
Checked by the API: a request that breaks it is rejected with the error codes listed.
Applies to
Statuses SENTPAIDOperations voidCompanyInvoice
Legal basisRD 1007/2023 (RRSIF), art. 11.1 · AEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar, caso 2.d)
«Procederá la generación de un registro de facturación de anulación cuando se haya emitido erróneamente una factura y sea por lo tanto necesario anular su correspondiente registro de facturación de alta.»
RD 1007/2023 (RRSIF), art. 11.1 · BOE
«Sobre el caso 2.d): un aspecto que puede influir en el uso de este mecanismo es si la factura expedida (con errores) ya se ha entregado o no al cliente. Si NO se hubiera entregado, este hecho favorecería la consideración de que se trata de una factura defectuosa e incorrecta que no debería existir ni llegar al cliente (una expedición "fallida") y, por lo tanto, que fuera susceptible de anularse»
AEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar, caso 2.d) · AEAT

Voiding a paid invoice for work that was done, to issue it again with another amount: without issued_in_error the API answers VOID_REQUIRES_ISSUED_IN_ERROR, and with it the issuer would be declaring something false; the fix is a corrective.

Voiding a paid duplicate charged twice by mistake, confirming it.

POST /v1/companies/{company_id}/invoices/{invoice_id}/void{ "reason": "Duplicate of invoice F-2026-0142, issued twice by mistake", "issued_in_error": true }
VOI-005RequiredAEAT criterion

A corrected invoice, or a total corrective, is not voided

Do not void an invoice that has live corrective invoices (issued and not voided): it was corrected, so the operation took place, and further changes go on another corrective. The void is refused with INVOICE_HAS_LIVE_CORRECTIVES. A TOTAL corrective cannot be voided either (TOTAL_CORRECTIVE_NOT_VOIDABLE): the invoice it rectifies was voided by it and would stay voided with nothing to offset it; if what it rectified was wrong, issue a new invoice for what should have stayed invoiced. A PARTIAL corrective issued by mistake can still be voided.

Why
Correcting and voiding are exclusive ways of fixing an invoice: once correctives were used, AEAT says a cancellation record does not apply.
Responsibility
Checked by the API: a request that breaks it is rejected with the error codes listed.
Applies to
Types STANDARDSIMPLIFIEDCORRECTIVEStatuses RECTIFIEDOperations voidCompanyInvoice
Legal basisAEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar, caso 2.d)
«Esta forma de actuar (cuando sea posible) no implica la expedición de nuevas facturas que "contrarresten o compensen" la factura expedida por error (que son mecanismos contemplados en los procedimientos admitidos de rectificación de facturas y que, si se utilizaran, no procedería hacer un RF de anulación de la factura expedida por error).»
AEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar, caso 2.d) · AEAT

Voiding an invoice after a PARTIAL corrective reduced it: the API answers INVOICE_HAS_LIVE_CORRECTIVES.

Issuing a TOTAL corrective on it instead: it rectifies what is still invoiced, the partial included (COR-023).

All rules