Skip to main content
VeriFactu

VeriFactu errors with corrective invoices: TipoRectificativa, corrected and replaced invoices

A credit note in Odoo is a corrective invoice for VERI*FACTU, and the AEAT, the Spanish tax agency, asks it for fields that a normal invoice cannot carry. Seven codes cover those combinations: corrective invoices without a type, normal invoices with corrective data, replacements without an amount. With the rule in front of you it is quick to tell them apart.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 4 November 2026

Key facts

Module
VeriFactu
Versions
Odoo 17, 18, 19 and 20
Checked
in the module's source code, version 20.0 · against the sources linked at the end
Reading time
3 min

The AEAT rule, field by field

TipoRectificativa
Only with TipoFactura R1, R2, R3, R4 or R5, and mandatory in those cases. Missing on a corrective invoice gives 1114; present on a normal invoice gives 1115. A value outside the list gives 1107.
FacturasRectificadas
The block with the invoices being corrected. Only with R1 to R5, and not mandatory. On a normal invoice, 1117.
ImporteRectificacion
Only, and mandatory, when TipoRectificativa is S, correction by replacement. If it is missing, 1118; if it should not be there, 1119.
FacturasSustituidas
Only with TipoFactura F3, the exchange of simplified invoices. On any other type, 1116.

All seven codes reject the invoice record, not the whole submission.

Card for the VeriFactu corrective invoice codes
The seven codes for corrective and replacement invoices, in amber: they reject the record and the queue retries it.

How Odoo sends a credit note

Today the module does not tell correction reasons apart: every credit note goes out as R1, or as R5 if it corrects an invoice that was registered as simplified (F2). R2, R3 and R4 never go out, so a credit note that should be one of them under the rules is declared as R1. With that type:

  1. It always sends TipoRectificativa. No code in the module gives it a value other than I, correction by differences.
  2. If the credit note has an original invoice and that invoice has its VeriFactu record, it is included in FacturasRectificadas with your tax ID, its number and its date.
  3. It sends the amounts as negatives, as fits a correction by differences.

Working that way, most of these codes should not appear. 1114 and 1115 are covered because TipoRectificativa goes on every R and on no F. 1117 too, because FacturasRectificadas is only added to a credit note. And since the type is always I, the ImporteRectificacion block is never needed, so 1118 has no way to happen.

Invoicing records in Odoo with an R1 credit note in negative
Among the F1 invoices there is a credit note: type R1, correction for an error grounded in law, with its total in negative. Odoo 20 screenshot with demo data; the AEAT answers are simulated.

The exchange of simplified invoices

The F3 is the invoice that replaces one or more simplified invoices already issued. It is the only type that accepts FacturasSustituidas, and the module only fills it when the invoice is flagged as an exchange: with the F2 invoices it replaces, issued in Odoo or elsewhere, up to 1000. Before posting an exchange, the module checks that what is being replaced are simplified invoices already registered; if not, it will not let you post.

If you still get one

If you see any of these codes with a submission from the module, we want to know: most likely the credit note has something out of the ordinary. The rejected record is retried with the same data until Dead Letter and the published module does not send the correction on its own. Write to comercial@flexigobe.com with the credit note number and we will review it.

The codes on this page, with the AEAT's text

Each code with its literal text, in Spanish, as the AEAT's error list gives it:

CodeAEAT text (Spanish)
1107El valor del campo TipoRectificativa es incorrecto.
1114Si la factura es de tipo rectificativa, el campo TipoRectificativa debe tener valor.
1115Si la factura no es de tipo rectificativa, el campo TipoRectificativa no debe tener valor.
1116Debe informarse el campo FacturasSustituidas sólo si la factura es de tipo F3.
1117Si la factura no es de tipo rectificativa, el bloque FacturasRectificadas no podrá venir informado.
1118Si la factura es de tipo rectificativa por sustitución el bloque ImporteRectificacion es obligatorio.
1119Si la factura no es de tipo rectificativa por sustitución el bloque ImporteRectificacion no debe tener valor.

Corrective invoices are not the same as cancellations. Cancelling an invoice in Odoo creates a cancellation record, with its own error codes: they are on the cancellations page.

Keep reading

VeriFactu errors 1189, 1190, 1191 and 1192: invoice type and recipient have to matchVeriFactu errors that cross the invoice type with the recipient (1189, 1190, 1191, 1192, 1106 and 1156): the AEAT rule and what Odoo decides when an invoice is posted.VeriFactu errors 3001 and 3002: cancelling an invoice the AEAT does not have, or already cancelledVeriFactu errors when cancelling: 3001 (already cancelled), 3002 (does not exist) and the Generador block. What Odoo 17, 18, 19 and 20 does when you cancel an invoice.Correcting a VeriFactu record: how it works and the Subsanacion and RechazoPrevio errorsHow a rejected or accepted-with-errors VeriFactu record is corrected: Subsanacion, RechazoPrevio, codes 1153 to 1276, 3003 and 3004, and what Odoo does today.
Checked in the module's source code (version 20.0) and the linked sources

Sources