Skip to main content
VeriFactu

VeriFactu España for Odoo 17, 18, 19 and 20: what changes between versions

Between the module's branches, two fields and several messages change. Motivo de la rectificativa (VeriFactu) is in 17, 18 and 19 but not in 20. Last Verification Result shows in 18, 19 and 20, and in 17 no view displays it. In 20 the wording of the messages for R1-R4, R2 and R3 credit notes also changes. That is enough to decide which branch suits you.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 5 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
5 min

Two fields tell the branches apart

The module is published on Odoo Apps for 17.0, 18.0, 19.0 and 20.0. Between those branches, two fields appear or disappear:

  • Motivo de la rectificativa (VeriFactu), on the invoice or journal entry: it is in 17.0, 18.0 and 19.0, and not in 20.0. Where it exists, it only shows on customer credit notes.
  • Last Verification Result, on the All Chain States (Asesoría) screen: it is always visible in 18.0, 19.0 and 20.0. In 17.0 the field exists, but no view displays it.
Code-generated diagram, not an Odoo screen, stacking the four branches: 17.0 with the credit note reason, 18.0 and 19.0 with the reason and the last verification result, and 20.0 with only the result
Diagram generated from the module's published code: the credit note reason is in 17.0, 18.0 and 19.0; the last verification result is in 18.0, 19.0 and 20.0.
Field17.018.019.020.0
Motivo de la rectificativa (VeriFactu)Yes, only on customer credit notesYes, only on customer credit notesYes, only on customer credit notesNot there
Last Verification Result on All Chain States (Asesoría)The field exists, but no view displays itYes, always visibleYes, always visibleYes, always visible

What changes when you move up a branch

  • From 17.0 to 18.0: Last Verification Result appears on the All Chain States (Asesoría) screen.
  • From 18.0 to 19.0: neither of these two fields changes.
  • From 19.0 to 20.0: Motivo de la rectificativa (VeriFactu) disappears.
Code-generated diagram, not an Odoo screen, showing what appears and what disappears between branches: from 17.0 to 18.0 the last verification result appears, and from 19.0 to 20.0 the credit note reason disappears
Diagram generated from the published code of each branch: from 17.0 to 18.0, Last Verification Result (on All Chain States (Asesoría)) appears; from 19.0 to 20.0, Motivo de la rectificativa (VeriFactu) disappears.

If you plan to move from 19.0 to 20.0 and your credit note process uses that reason field, review that step before migrating.

The credit note messages change in 20.0 too

One message mentions the AEAT's error 1189. It says the credit note cannot be posted because an R1-R4 credit note must identify the customer and the customer has no tax ID. In 17.0, 18.0 and 19.0 it ends like this:

Credit note … cannot be posted: an R1-R4 credit note must identify the customer and … has no tax ID, so the AEAT would reject it with error 1189. Add the NIF or foreign tax ID of … (the one on the rectified invoice). If it rectifies a simplified invoice (F2), create it from that invoice with the Credit Note button: it is then declared as R5, without customer.

In 20.0 the wording differs, and it also offers changing the credit note type:

Credit note … cannot be posted: an R1-R4 credit note must identify the customer and … has no tax ID, so the AEAT would reject it with error 1189. Add the NIF or foreign tax ID of … (the one on the rectified invoice). If it rectifies a simplified invoice (F2), set the credit note type to R5 (declared without customer) or create it from that invoice with the Credit Note button.

The messages for errors 1191 and 1192 also change wording between 19.0 and 20.0. Both say the AEAT rejects the credit note unless the customer has the right tax ID: a Spanish NIF for R3 (uncollectable debts), a Spanish NIF or EU VAT number for R2 (insolvency proceedings).

AEAT errorBranchesMessage
1191 (R3 credit note)17.0, 18.0 and 19.0Un abono R3 (créditos incobrables) solo se admite si el cliente tiene NIF español: la AEAT lo rechaza con el error 1191. Elija otro motivo o revise el NIF de ….
1191 (R3 credit note)20.0Un abono R3 (créditos incobrables) solo se admite si el cliente tiene NIF español: la AEAT lo rechaza con el error 1191. Cambie el tipo del abono o revise el NIF de ….
1192 (R2 credit note)17.0, 18.0 and 19.0Un abono R2 (concurso de acreedores) solo se admite si el cliente tiene NIF español o NIF-IVA de la UE: la AEAT lo rechaza con el error 1192. Elija otro motivo o revise el NIF de ….
1192 (R2 credit note)20.0Un abono R2 (concurso de acreedores) solo se admite si el cliente tiene NIF español o NIF-IVA de la UE: la AEAT lo rechaza con el error 1192. Cambie el tipo del abono o revise el NIF de ….

How to check which branch you have

The two fields tell you the branch without looking at the version number:

  • Open a customer credit note and look for Motivo de la rectificativa (VeriFactu). If it is there, you have 17.0, 18.0 or 19.0. If not, you have 20.0.
  • Open the All Chain States (Asesoría) screen. If you see Last Verification Result, you have 18.0, 19.0 or 20.0. If you do not, you have 17.0.

With the reason field and no result, it is 17.0. With both, it is 18.0 or 19.0, and these fields cannot tell those two apart. With the result and no reason field, it is 20.0.

Who it suits and what to have in place first

The module is for people who already use Odoo 17, 18, 19 or 20, or are implementing it, and want to work with VeriFactu on that version. Before deciding, be clear on this:

  • Odoo already ships its own module. In 17, 18, 19 and 20 there is l10n_es_edi_verifactu. Compare what it covers in your version before choosing.
  • The calendar. Under RDL 15/2025 of 2 December, anyone who files Corporation Tax must have their invoicing system adapted before 1 January 2027, and everyone else before 1 July 2027. The time before then is a testing period. A Treasury note of 5 October 2026 forecasts postponing the pending obligations of RD 1007/2023 until October 2028. It announces changes to «ciertos aspectos técnicos» (certain technical aspects) and says the requirements for integrity, retention, accessibility, legibility, traceability and inalterability will be kept «en términos sustancialmente equivalentes» (in substantially equivalent terms).
  • The certificate. Without a certificate, the AEAT service redirects to error page 4033 («no se detecta certificado», no certificate detected). With a certificate that does not validate, it redirects to 4011.

How FlexigoTech can help

FlexigoTech implements Odoo 17, 18, 19 and 20 and builds connectors and custom integrations. If you are torn between branches or between modules, tell us your version and how you invoice. The price for each version is on the listing.

Keep reading

What the Run Pre-flight button in VeriFactu España doesWhat the Run Pre-flight button in VeriFactu España for Odoo does: when it shows, what it checks on each row, what it saves and which errors stop it.
Checked in the module's source code (version 20.0) and the linked sources

Sources