Cancellation of a Sales Invoice
If it is determined that “the entire invoice” is incorrect or should not have been issued, and resolving it does not require using any procedure provided by the ROF (rectification or other), it may be cancelled by generating a cancellation RF (Registro de Facturación).
These cases should be VERY RARE.
As a general rule, all issued invoices—so long as they correspond to real transactions (the usual case)—cannot be cancelled.
If there is any discrepancy between what was invoiced and the actual situation (e.g., errors in quantities, qualities, or other reasons requiring modification of the amount), then a corrective invoice must be issued, in accordance with the ROF (Billing Obligations Regulation, approved by Royal Decree 1619/2012) and VAT legislation.
In general, rectification can be carried out either by replacing the original invoice with a new one or by modifying the original invoice.
There is extensive information available in the SII FAQs, which can be applied broadly to the billing software requirements regulation (RRSIF), approved by Royal Decree 1007/2023, of December 5th. In these cases the generated RFs will always be “RF de alta”, regulated in Article 10 of the RRSIF.
Cancellation is not a legal concept, which is why there are no formal articles referring to it. Rather, it is a factual concept applied “when an invoice has been erroneously issued,” as stated in Article 11.1 of the RRSIF—e.g., issuing an invoice for a service or delivery that does not exist and therefore was never carried out.
Possible cases include issuing test invoices or training invoices that do not correspond to any real transaction.
Cancellation aims to “undo” both the issuance of the erroneously generated invoice and the corresponding billing record. As a result, the invoice will have no tax effect in record books or tax returns.
However, according to SIF regulations, both the erroneous records and the records used to cancel them must be retained or, alternatively, sent to the electronic office when using the VERI*FACTU modality.
In this case, the Cancellation Record is an “RF de anulación”, regulated in Article 11 of the RRSIF.
More details can be found in section 6-PROHIBICIÓN DE NUMERACIÓN DUPLICADA DE UN REGISTRO of the
developer FAQs.
flowchart LR
A((Cancel<br>invoice)) --> B
B[Cancellation<br><i><a href="../../../api/invoicing/delete-sales/">DeleteSales</a></i>] --> C
C[Query<br><i><a href="../../../api/invoicing/query-sales/">QuerySales</a></i>] --> D{AEAT<br>Rejection?}
D -->|Yes| E
D -->|No| G((Invoice<br>Cancelled))
E[Correct<br>Invoice<br>Cancellation] --> F[Cancellation Subsanation<br><i><a href="../../../api/invoicing/correct-delete-sales/">CorrectDeleteSales</a></i>]
F --> C