Skip to main content

Documentation Index

Fetch the complete documentation index at: https://invopop-mintlify-changelog-week-1778411791.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Compliance questions

Italy
1 January 2019 for all B2B and B2C transactions between resident parties (B2G has been mandatory since 2014). 1 July 2022 extended the mandate to flat-rate scheme contributors. Cross-border B2B uses esterometro/SDI submissions.
Any entity with an Italian Partita IVA (VAT number) — companies, professionals, and flat-rate scheme contributors. Codice Fiscale alone is not sufficient for invoicing through SDI.
Quarterly VAT (LIPE), annual VAT return (Modello IVA), Esterometro (cross-border B2B summary, replaced by SDI direct submission since 2022), and Modello 730/Redditi for personal returns. SDI clearance handles the per-invoice reporting layer.
SDI
Yes, electronic invoicing through SDI is mandatory in Italy for B2G, B2B, and B2C transactions.All invoices must be issued in FatturaPA format and transmitted through the SDI (Sistema di Interscambio) platform.
There are two main ways to correct an invoice in the Italian SDI system:
  1. Issue a credit note (Nota di Credito - TD04) to fully or partially cancel the original invoice.
  2. Issue a debit note (Nota di Debito - TD05) to integrate/correct the original invoice with additional charges.
The corrective document must reference the original invoice number and date.
The supplier must have an active Partita IVA registered with the Agenzia delle Entrate. Invopop acts as the supplier’s intermediary (intermediario fiscale) — no individual supplier certificate is required.
Smart Receipts
For B2C transactions where the customer’s Codice Fiscale or Partita IVA is unknown — typical retail or online checkouts. AdE CF generates a Documento Commerciale (commercial receipt) instead of a FatturaPA. Once the customer’s tax ID is known, regular SDI invoicing must be used.
The supplier must have a Partita IVA and operate in a sector that issues commercial receipts (retail, hospitality, etc.). They need to register with Agenzia delle Entrate as an AdE CF issuer before going live.
Daily aggregate transmission (corrispettivi telematici) to Agenzia delle Entrate is required. Each Documento Commerciale issued is sent in real time through the AdE CF service, replacing the historical registratore di cassa daily total.

Invoicing questions

Italy
Install the SDI Italy app for B2B/B2G/B2C structured invoicing, or the Smart Receipts app for B2C-only AdE CF receipts. Run invoices through the Generate FatturaPA + Send to SDI workflow.
See the Italy tax regime in GOBL for tax categories, codice fiscale rules, and SDI-specific extensions. The it-sdi-v1 addon documents required FatturaPA fields.
SDI
The SDI system can take up to 24 hours to process invoices, especially during peak periods. While waiting, the “Send to SDI” step will remain in the QUEUED state. The system will automatically check for updates, and the status will change once SDI has processed the invoice.
Once the SDI process is complete, the workflow will show one of several status codes:
  • delivered - The invoice was successfully delivered to a B2B recipient
  • accepted-pa - The invoice was accepted by a Public Administration
  • not-delivered - The invoice couldn’t be delivered, but was processed correctly by SDI
Check the workflow history to see the exact status.
No, sending and receiving invoices require different workflows:
  • For sending invoices, a workflow with the Generate FatturaPA and Send to SDI steps is needed
  • For receiving invoices, two workflows are required:
    1. A Customer Registration workflow (run once for each company that needs to receive invoices)
    2. An Import Invoices workflow (configured to run automatically)
For more information on receiving invoices, see our Italy - SDI: Receiving Invoices guide.
Invopop handles both Italian tax identification numbers in the supplier and customer sections of invoices:
  • Partita IVA (VAT number): Automatically extracted from the tax_id/code field.
  • Codice Fiscale (fiscal code): Must be specified as an identity with the key it-fiscal-code.
Here’s an example showing both identifiers in a supplier object:
Supplier with Partita IVA and Codice Fiscale
{
    "supplier": {
        "name": "MªF. Services",
        "tax_id": {
            "country": "IT",
            "code": "12345678903"
        },
        "identities": [
            {
                "key": "it-fiscal-code",
                "code": "MRTMTT91D08F205J"
            }
        ],
    }
}
For more information on receiving invoices, see our Italy - SDI: Receiving Invoices guide.
Smart Receipts
You cannot modify an AdE CF invoice after issuing it. Instead you must:
  1. Void the incorrect invoice using the “Void AdE CF Invoices” workflow
  2. Issue a new invoice with the correct information
We recommend adding a series and code to the invoice so that you can keep track internally even though the AdE will generate a document number.
AdE CF is not a substitute for SDI. Invopop works with SDI to issue electronic invoices using the FatturaPA and is the main tool available to issue electronic invoices in Italy. AdE CF should only be used when customer information is not available, like in online B2C scenarios.
Use the standard GOBL invoice with the simplified tag. No customer tax ID is required. The it-ticket-v1 addon handles the AdE CF-specific fields. Each receipt gets a unique Lottery Code if the lottery functionality is enabled.

Registering supplier questions

Italy
Provide the supplier’s Partita IVA and Codice Fiscale (where different) in their party configuration. No certificate upload is needed — Invopop signs and submits to SDI as the supplier’s intermediary.
No supplier certificates are required. Invopop signs FatturaPA submissions with its own Agenzia delle Entrate-recognized intermediary credentials. Only the Partita IVA and routing metadata are stored.
SDI
Just configure the supplier’s Partita IVA in their party. SDI does not require explicit supplier registration to issue — Invopop signs and submits as intermediary the moment the workflow runs.
None — Invopop submits via its intermediary credentials (a server-to-server channel with Agenzia delle Entrate). Suppliers don’t manage any certificates for SDI.
Smart Receipts
Run the Smart Receipts Register Supplier workflow with the supplier’s Partita IVA. Invopop registers the merchant with Agenzia delle Entrate’s AdE CF service so issuance can begin immediately.
None at the supplier level. Invopop authenticates to AdE CF via its intermediary credentials. The supplier’s Partita IVA is the only routing identifier needed.

Receiving questions

Italy
Register the recipient with SDI using Invopop’s Recipient Code (JKKZDGR) and run the Customer Registration workflow. Invopop automatically receives matching invoices and routes them through the configured Import workflow.
Inbound FatturaPA XMLs are parsed via gobl.fatturapa. The original signed XML is preserved as a silo entry attachment alongside the GOBL representation.
SDI
If an invoice received through SDI contains errors:
  1. The import process will still attempt to convert it to GOBL format
  2. Any validation errors will be logged, and the rescue steps in your workflow will be triggered
  3. You can review the errors and decide how to handle the invoice
If the invoice has significant structural issues that prevent conversion, you may need to contact the sender to request a corrected invoice.
Invoices are typically received within minutes after being sent by suppliers through SDI. The automatic import process in Invopop processes them as soon as they are received by our system.
Yes, multiple companies can be registered to receive invoices through a single Invopop workspace. For each company, you must:
  1. Register the Recipient Code JKKZDGR with the Italian tax authority for that specific company
  2. Have its tax ID registered using the Customer Registration workflow in Invopop
  3. Use the same Import Invoices workflow configured in the app settings
This two-step registration process (with the tax authority and with Invopop) must be completed for each company you want to register. This is particularly useful for white-labeling scenarios where a user manages multiple entities.
The two-step registration process serves different purposes:
  1. Registering with the Italian tax authority - Tells SDI to route invoices addressed to your company to Invopop’s system using the Codice Destinatario JKKZDGR.
  2. Registering with Invopop (Customer Registration workflow) - Tells Invopop’s system which invoices to accept and process for your workspace.
Both steps are necessary: the first routes the invoices to Invopop, and the second ensures Invopop knows which workspace should receive those invoices.
Signed FatturaPA XML (versions 1.2.x), conforming to the Agenzia delle Entrate schema. The signature is XAdES; SDI’s own Notifica di Esito Committente envelopes the document during transmission.

Reporting questions

Smart Receipts
Per receipt, in real time — there is no periodic batch. Invopop transmits each receipt to AdE CF as it is issued. End-of-day totals are aggregated automatically by Agenzia delle Entrate from individual transmissions.
No periodic format — per-receipt JSON sent to AdE CF’s REST endpoint. Daily/monthly aggregations are derived automatically by Agenzia delle Entrate.

Participate in our community

Ask and answer questions about Italy’s regulation →