Skip to main content
Italian Digital VAT (e-Invoicing) Compliance

Italian Digital VAT (e-Invoicing) Compliance error messages and how to fix them

The messages in Italian Digital VAT (e-Invoicing) Compliance point to something missing or out of order: a Partita IVA that fails the check or isn't configured, an SDI API endpoint or key left blank, an invoice that isn't in the XML Generated state, or a step that has been skipped. Below you'll find each literal text, when it appears and what to do. The audit log messages are the exception: there is no fix, because the module doesn't let you edit or delete those entries.

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

Key facts

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
6 min

How to read a message from the module

Each message shows the English text exactly as it is in the module. Where the table shows %s, your screen will show a specific value: the Partita IVA that failed, the details of a failed transmission or the network error. Copy that value before you close the warning, because it's the piece of information you'll use to work out what to correct.

The messages fall into four groups: the Partita IVA of the company and of contacts, transmission to the SDI, the audit log, and the order of steps for invoices and settlements. If you'd first like to see which menus and records the module uses, have a look at how Italian Digital VAT works under the bonnet.

Table of Italian Digital VAT messages

MessageWhen it appearsWhat to do
Company PIVA "%s" is invalid per Italian algorithmYour company's Partita IVA fails the check against the Italian algorithm; the number checked appears in place of %s.Correct the company's Partita IVA and repeat the action.
Partner PIVA "%s" is invalid per Italian algorithmThe contact's Partita IVA fails the same check.Correct the contact's Partita IVA.
Company must have Partita IVA configuredThe company has no Partita IVA.Configure it on the company.
Partner must have Partita IVA or addressThe contact has neither a Partita IVA nor an address.Add at least one of the two.
Invoice must be in "XML Generated" state to transmitYou're trying to transmit an invoice that isn't in the XML Generated state.Generate the XML first, then transmit.
Company SDI API endpoint not configuredThe SDI API endpoint is missing on the company.Fill it in on the company.
Company SDI API key not configuredThe SDI API key is missing on the company.Fill it in on the company.
No FatturaPA XML generatedNo FatturaPA XML has been generated.Generate the FatturaPA XML before carrying on.
SDI rate limit reached. Will retry in next cycle.The SDI sending limit has been reached.Wait: the message says it will retry in the next cycle.
SDI transmission failed: %s - %sTransmission to the SDI has failed; the two %s carry the details.Copy both values and use them to check the invoice or the configuration.
SDI network error: %sA network error while communicating with the SDI.Check the connection and try again.
Audit log entries are immutableYou're trying to change an audit log entry.It can't be done: the module doesn't allow changes.
Audit log entries cannot be deleted (10-year retention)You're trying to delete an audit log entry.It can't be done: the message states a 10-year retention.
No settlements linkedThere are no linked settlements.Link the settlements and repeat the action.
Invoice must be validated before submission.You're trying to submit an invoice that hasn't been validated.Validate the invoice, then submit it.
Invoice must be submitted before reconciliation.You're trying to reconcile an invoice that hasn't been submitted.Submit it first, then reconcile.

Partita IVA for the company and for contacts

The module checks the Partita IVA against the Italian algorithm, as the message itself says, and tells two cases apart: your company's (Company PIVA) and the contact's (Partner PIVA). Note which of the two appears, because the number shown in quotes in place of %s is the one you need to review. Compare it with the document where that Partita IVA is recorded, correct it on the relevant record and run whatever you were doing again.

The other two messages in this group are about missing data. Company must have Partita IVA configured requires the company to have a Partita IVA. Partner must have Partita IVA or address is less strict: the contact only needs one of the two, the Partita IVA or the address.

Transmission to the SDI: configuration, state and network

Before transmitting, the module requires three things you can check yourself. First, the invoice must be in the XML Generated state; otherwise you'll see Invoice must be in "XML Generated" state to transmit. Second, the FatturaPA XML must exist; otherwise, No FatturaPA XML generated. Third, the company must have the SDI API endpoint and key configured; each has its own message, so you'll know which one is missing.

List of the vat.invoice model with eight QA-ITVAT-2026 invoices for the customer Acme Corporation
The module's invoice list with demo data: date, total amount, VAT rate and VAT amount; only the first invoice has amounts.

With all that in order, three other messages can appear during transmission. SDI rate limit reached. Will retry in next cycle. tells you the sending limit has been reached and that it will retry in the next cycle: wait for that cycle before looking at the invoice again. SDI transmission failed: %s - %s carries two values with the details of the failure; keep them, because without them you won't know what to correct. SDI network error: %s flags a network problem, and the value shown with the message tells you which one.

Audit log, settlements and the order of steps

Two messages have no fix inside the module because they describe how it behaves. Audit log entries are immutable appears if you try to change an audit log entry, and Audit log entries cannot be deleted (10-year retention) if you try to delete one. The module keeps those entries and the second message mentions a 10-year retention; read that as what the app does, not as legal guidance.

List of YourCompany VAT settlements with Draft, Confirmed and Paid states
VAT settlements with demo data: period start and end, state and output VAT amounts, with the New button and the search bar.

The rest of the group sets an order. Invoice must be validated before submission. and Invoice must be submitted before reconciliation. make it clear that an invoice is validated, then submitted, then reconciled. If you get either of them, check where the invoice stands and complete the previous step. No settlements linked appears when the action needs linked settlements and there aren't any.

List of YourCompany LIPE quarterly settlements with Draft or Submitted states
LIPE quarterly settlements with demo data for fiscal years 2025 and 2026; the Lipe Xml and Attachment columns, still empty.
Sequence of module lists: annual reconciliations, monthly settlements, invoices and LIPE settlements
A walk through four lists with demo data: annual Italian VAT reconciliations in Draft or Reconciled state, monthly settlements from January to May, the QA-ITVAT-2026 invoices and the LIPE quarterly settlements.

How FlexigoTech can help

At FlexigoTech we implement Odoo 17, 18, 19 and 20 and build bespoke connectors and integrations, so we can go through the company configuration, contacts and invoice flow with you if one of these messages keeps coming back. The app costs €9 per Odoo version, a one-off payment excluding VAT, for 17, 18, 19 and 20, and the local service costs €29/month or €290/year excluding VAT. Without a subscription, or with the service suspended, whatever the subscription provides stops, but your data stays in your Odoo. You'll find all the details on the module page and on the Odoo Apps listing.

Keep reading

How Italian Digital VAT (e-Invoicing) Compliance works inside OdooMenus, the daily scheduled action and the records of Italian Digital VAT (e-Invoicing) Compliance in Odoo 17 to 20, compared in one table so you find your way.How Argentina ARCA Supplier Invoice Validation works inside OdooGlossary of the menus, scheduled actions and data of the Argentina ARCA Supplier Invoice Validation and Withholding Management module for Odoo.Argentina ARCA Supplier Invoice Validation errors in Odoo and how to fix themError messages in Argentina ARCA Supplier Invoice Validation for Odoo: invalid CUIT, ARCA not answering, overrides and batches. When each appears and the fix.
Checked in the module's source code (version 20.0) and the linked sources

Sources