Skip to main content
VeriFactu

VeriFactu errors 2005, 2006, 1210 and 1216: when the totals do not match the breakdown

The AEAT, the Spanish tax agency, does not simply take the totals you send: it adds them up again from the lines of the tax breakdown. If its sum does not match what you put in ImporteTotal (total amount) or CuotaTotal (total tax), it answers with one of these four codes. Two of them accept the invoice and two reject it, with the same text.

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

Two texts, four codes

CodeFieldSection of the AEAT list
2005ImporteTotalAccepts the record and asks for a correction.
2006CuotaTotalAccepts the record and asks for a correction.
1210ImporteTotalRejects the record.
1216CuotaTotalRejects the record.

The ImporteTotal codes say, in Spanish, that the field has a wrong value for the BaseImponibleOimporteNoSujeto, CuotaRepercutida and CuotaRecargoEquivalencia supplied: «El campo ImporteTotal tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujeto, CuotaRepercutida y CuotaRecargoEquivalencia suministrados.» The CuotaTotal ones say the same with CuotaRepercutida y CuotaRecargoEquivalencia. The validation document only describes the warning without rejection; it does not explain when 1210 or 1216 are used instead of 2005 or 2006. If you get one of the rejections, the invoice did not get in.

Card for codes 2005, 2006, 1210 and 1216
The four totals codes: in blue the two that accept the record, in amber the two that reject it.

What the AEAT adds up

Sections 16 and 17 of the validation document set out both sums:

CuotaTotal
The sum of CuotaRepercutida (output VAT) and CuotaRecargoEquivalencia (equivalence surcharge) over all lines of the breakdown.
ImporteTotal
The sum of base, CuotaRepercutida and CuotaRecargoEquivalencia over all lines of the breakdown.

If they do not match, the tolerated margin is 10.00 euros up or down, so a few cents of rounding never trigger it. Neither check applies with regime keys 03, 05, 06, 08 and 09; the module always sends key 01, so with it they always apply.

How Odoo computes both totals

The module does not copy the invoice total. It builds the breakdown by grouping the lines by VAT rate, computes each line's tax to two decimals and, from that same breakdown, derives the totals:

  • ImporteTotal is the sum of bases and taxes. Withholdings such as Spanish income tax withholding (IRPF) stay out, because they are not VAT.
  • CuotaTotal is the sum of the taxes.
  • On an invoice in another currency, bases and taxes are converted to the company currency at the invoice date before adding them up.
  • A credit note carries all its amounts as negatives.
Invoicing records in Odoo with their total and type
The Total column of the records is the ImporteTotal that gets sent; the R1 credit note shows as negative. Odoo 20 screenshot with demo data; the AEAT answers are simulated.

What to know if you compare with the invoice

The VeriFactu ImporteTotal may not match the total you see on the Odoo invoice, and that is not an error. The Odoo total subtracts the withholding; the VeriFactu one does not. An invoice with VAT and withholding has two different totals, and each is right in its place.

Since both totals come from the same breakdown that is sent, and travel as the same strings that went into the hash, a 2005 or a 2006 should not happen with a submission from our module. If you get one, the record stays as «Aceptado con errores (subsanar)», or goes through retries to Dead Letter if it is a 1210 or a 1216. Either way, write to comercial@flexigobe.com with the record number: the published module does not send the correction on its own and we want to see that breakdown.

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)
2005El campo ImporteTotal tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujeto, CuotaRepercutida y CuotaRecargoEquivalencia suministrados.
2006El campo CuotaTotal tiene un valor incorrecto para el valor de los campos CuotaRepercutida y CuotaRecargoEquivalencia suministrados.
1210El campo ImporteTotal tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujeto, CuotaRepercutida y CuotaRecargoEquivalencia suministrados.
1216El campo CuotaTotal tiene un valor incorrecto para el valor de los campos CuotaRepercutida y CuotaRecargoEquivalencia suministrados.

Keep reading

VeriFactu errors with the VAT rate and the tax amount: which rates the AEAT accepts, and whenVeriFactu errors on the VAT rate and tax amount (1124, 1132, 1194, 1235, 1236, 1142…): the rates the AEAT accepts by date and how Odoo computes each line's tax.VeriFactu error 1150: a simplified invoice that goes over 3,000 eurosVeriFactu error 1150 rejects a simplified invoice (F2) above 3,000 euros. Why Odoo sends it as F2 and how to avoid it in Odoo 17, 18, 19 and 20 with our module.VeriFactu error 2000: the AEAT recalculates your hash and it does not matchVeriFactu error 2000: the Spanish tax agency recalculates the SHA-256 hash and gets a different one. Why the invoice is registered anyway and what to do in Odoo 17 to 20.
Checked in the module's source code (version 20.0) and the linked sources

Sources