# Voiding

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

[← All rules](/rules#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](/rules#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.

| Situation | Do this | Rule |
|---|---|---|
| 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](/rules/lifecycle#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](/rules/void#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](/rules/void#voi-001) |
| The invoice already has corrective invoices. | It can no longer be voided: issue another corrective against it. | [VOI-005](/rules/void#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](/rules/corrective#cor-001) |
| A corrective you already issued is itself wrong. | Issue another corrective against the original invoice, not against the corrective. | [COR-007](/rules/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](/rules/corrective#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](/rules/corrective#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](/rules/corrective#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](/rules/corrective#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](/rules/corrective#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](/rules/simplified#sim-007) |

## VOI-001 · Void only an invoice that should never have been issued

`Required` · AEAT criterion · Impact: critical · Responsibility: the issuing business.

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](/rules/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](/rules/void#voi-004)) and refuses to void a corrected invoice ([VOI-005](/rules/void#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.

**Applies to:** statuses `ISSUED`, `SENT`; operations [`POST /v1/companies/{company_id}/invoices/{invoice_id}/void`](/invoices/voidCompanyInvoice)

**Legal basis:**

- RD 1007/2023 (RRSIF), art. 11.1 — [source](https://www.boe.es/buscar/act.php?id=BOE-A-2023-24840#a1-3)

  > «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.»

- AEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar — [source](https://www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/FAQs-Desarrolladores.pdf)

  > «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»

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

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

```http
POST /v1/companies/{company_id}/invoices/{invoice_id}/void

{ "reason": "Duplicate of invoice F-2026-0142, issued twice by mistake" }
```

**Related:** [COR-001 · Wrong data on an issued invoice is fixed with a corrective](/rules/corrective#cor-001) · [COR-024 · A corrective does not change only the withholding](/rules/corrective#cor-024) · [LIF-003 · Test in the sandbox, never with real invoices](/rules/lifecycle#lif-003) · [NUM-002 · An issued number is never reused, even when the invoice is voided](/rules/numbering#num-002) · [VOI-002 · Void an issued invoice through the void operation; delete a draft](/rules/void#voi-002) · [VOI-004 · A sent or paid invoice is voided only confirming it was issued by mistake](/rules/void#voi-004) · [VOI-005 · A corrected invoice, or a total corrective, is not voided](/rules/void#voi-005)

**Explained in:** [Cancel vs amend › The 30-second decision](/verifactu/cancel-and-fix#the-30-second-decision) · [Cancel vs amend › Void (anulación)](/verifactu/cancel-and-fix#anulación-void)

## VOI-002 · Void an issued invoice through the void operation; delete a draft

`Required` · BeeL. rule · Impact: high · Checked by the API: a request that breaks it is rejected with the error codes listed.

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](/rules/void#voi-001), [VOI-004](/rules/void#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](/rules/corrective#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.

**Applies to:** operations [`POST /v1/companies/{company_id}/invoices/{invoice_id}/void`](/invoices/voidCompanyInvoice), [`DELETE /v1/companies/{company_id}/invoices/{invoice_id}`](/invoices/deleteCompanyInvoice), [`PUT /v1/companies/{company_id}/invoices/{invoice_id}/status`](/invoices/setCompanyInvoiceStatus)

**Error codes:** [`TRANSITION_NOT_SUPPORTED`](/errors/TRANSITION_NOT_SUPPORTED) (`400`), [`INVOICE_ALREADY_VOIDED`](/errors/INVOICE_ALREADY_VOIDED) (`409`), [`VALIDATION_ERROR`](/errors/VALIDATION_ERROR) (`422` or `400`)

**Incorrect:** Setting the status to `VOIDED` with the status operation, which does not take that value: the API answers [`VALIDATION_ERROR`](/errors/VALIDATION_ERROR).

```http
PUT /v1/companies/{company_id}/invoices/{invoice_id}/status

{ "status": "VOIDED" }
```

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

```http
POST /v1/companies/{company_id}/invoices/{invoice_id}/void

{ "reason": "Duplicate of invoice F-2026-0142, issued twice by mistake", "issued_in_error": true }
```

**Related:** [COR-017 · A corrective keeps the recipient, except to correct the recipient's data](/rules/corrective#cor-017) · [LIF-001 · An issued invoice is never edited or deleted](/rules/lifecycle#lif-001) · [VOI-001 · Void only an invoice that should never have been issued](/rules/void#voi-001) · [VOI-003 · A void adds a cancellation record; the original stays](/rules/void#voi-003) · [VOI-004 · A sent or paid invoice is voided only confirming it was issued by mistake](/rules/void#voi-004) · [VOI-005 · A corrected invoice, or a total corrective, is not voided](/rules/void#voi-005)

**Explained in:** [Invoice lifecycle › Voiding and correcting](/guides/invoice-lifecycle#voiding-and-correcting)

## VOI-003 · A void adds a cancellation record; the original stays

`Required` · Law · Impact: medium · Checked by the API: BeeL. applies it.

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.

**Applies to:** statuses `VOIDED`; operations [`POST /v1/companies/{company_id}/invoices/{invoice_id}/void`](/invoices/voidCompanyInvoice), [`GET /v1/companies/{company_id}/invoices/{invoice_id}`](/invoices/getCompanyInvoice); Invoices of a company under VeriFactu.

**Legal basis:**

- RD 1007/2023 (RRSIF), art. 11.2.c) y d) — [source](https://www.boe.es/buscar/act.php?id=BOE-A-2023-24840#a1-3)

  > «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. 8.2.a) — [source](https://www.boe.es/buscar/act.php?id=BOE-A-2023-24840#a8)

  > «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.»

**Incorrect:** Treating the `200` of the void call as proof that AEAT accepted the cancellation.

**Correct:** After voiding, reading the invoice until its `verifactu.submission_status` is `VOIDED`.

```http
GET /v1/companies/{company_id}/invoices/{invoice_id}
```

**Related:** [VOI-002 · Void an issued invoice through the void operation; delete a draft](/rules/void#voi-002) · [REC-008 · Follow submission_status and fix what AEAT rejects](/rules/records#rec-008) · [LIF-001 · An issued invoice is never edited or deleted](/rules/lifecycle#lif-001)

**Explained in:** [Cancel vs amend › Did AEAT accept the cancellation?](/verifactu/cancel-and-fix#did-aeat-accept-the-cancellation)

## VOI-004 · A sent or paid invoice is voided only confirming it was issued by mistake

`Required` · AEAT criterion · Impact: high · Checked by the API: a request that breaks it is rejected with the error codes listed.

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](/rules/void#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.

**Applies to:** statuses `SENT`, `PAID`; operations [`POST /v1/companies/{company_id}/invoices/{invoice_id}/void`](/invoices/voidCompanyInvoice)

**Error codes:** [`VOID_REQUIRES_ISSUED_IN_ERROR`](/errors/VOID_REQUIRES_ISSUED_IN_ERROR) (`422`)

**Legal basis:**

- RD 1007/2023 (RRSIF), art. 11.1 — [source](https://www.boe.es/buscar/act.php?id=BOE-A-2023-24840#a1-3)

  > «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.»

- AEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar, caso 2.d) — [source](https://www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/FAQs-Desarrolladores.pdf)

  > «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»

**Incorrect:** 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`](/errors/VOID_REQUIRES_ISSUED_IN_ERROR), and with it the issuer would be declaring something false; the fix is a corrective.

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

```http
POST /v1/companies/{company_id}/invoices/{invoice_id}/void

{ "reason": "Duplicate of invoice F-2026-0142, issued twice by mistake", "issued_in_error": true }
```

**Related:** [VOI-001 · Void only an invoice that should never have been issued](/rules/void#voi-001) · [VOI-005 · A corrected invoice, or a total corrective, is not voided](/rules/void#voi-005) · [COR-001 · Wrong data on an issued invoice is fixed with a corrective](/rules/corrective#cor-001)

**Explained in:** [Cancel vs amend › Void (anulación)](/verifactu/cancel-and-fix#anulación-void)

## VOI-005 · A corrected invoice, or a total corrective, is not voided

`Required` · AEAT criterion · Impact: high · Checked by the API: a request that breaks it is rejected with the error codes listed.

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.

**Applies to:** invoice types `STANDARD`, `SIMPLIFIED`, `CORRECTIVE`; statuses `RECTIFIED`; operations [`POST /v1/companies/{company_id}/invoices/{invoice_id}/void`](/invoices/voidCompanyInvoice)

**Error codes:** [`INVOICE_HAS_LIVE_CORRECTIVES`](/errors/INVOICE_HAS_LIVE_CORRECTIVES) (`422`), [`TOTAL_CORRECTIVE_NOT_VOIDABLE`](/errors/TOTAL_CORRECTIVE_NOT_VOIDABLE) (`422`)

**Legal basis:**

- AEAT, Aclaraciones a dudas de los desarrolladores (v1.3), 17. Forma de proceder ante errores cometidos al facturar, caso 2.d) — [source](https://www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/FAQs-Desarrolladores.pdf)

  > «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).»

**Incorrect:** Voiding an invoice after a `PARTIAL` corrective reduced it: the API answers [`INVOICE_HAS_LIVE_CORRECTIVES`](/errors/INVOICE_HAS_LIVE_CORRECTIVES).

**Correct:** Issuing a `TOTAL` corrective on it instead: it rectifies what is still invoiced, the partial included ([COR-023](/rules/corrective#cor-023)).

**Related:** [VOI-001 · Void only an invoice that should never have been issued](/rules/void#voi-001) · [VOI-004 · A sent or paid invoice is voided only confirming it was issued by mistake](/rules/void#voi-004) · [COR-023 · A corrective never rectifies more than was invoiced](/rules/corrective#cor-023) · [COR-007 · A wrong corrective is fixed against the original, not corrected itself](/rules/corrective#cor-007)

**Explained in:** [Cancel vs amend](/verifactu/cancel-and-fix)

[← All rules](/rules#all-rules)

## Related

<Related>

- [Cancel vs amend](/verifactu/cancel-and-fix) — decide between cancelling an invoice (void) and issuing a corrective invoice, two operations with different fiscal weight
- [Invoice lifecycle](/guides/invoice-lifecycle) — every invoice status, which operations each one allows, and the difference between the fiscal steps (issue, void, correct) and the commercial ones (sent, paid)

</Related>

---

Full OpenAPI spec: https://docs.beel.es/api/openapi