Skip to main content

Introduction

In Italy, businesses receive their invoices through the Sistema di Interscambio (SDI), which delivers each one as a FatturaPA XML document to the channel the recipient has registered with the tax authority. Invopop is registered as such a channel in its own right. SDI delivers invoices straight to Invopop, which works out which company each one is for, converts the FatturaPA document into GOBL using the GOBL FatturaPA library, and runs your workflow on the result. The original XML is kept attached exactly as SDI delivered it, alongside the delivery metadata that came with it. Detailed information about the SDI-specific extensions can be found in:

Setup

Receiving takes more setup than sending. Invopop needs to know which companies belong to your workspace, and the tax authority needs to know that those companies receive through Invopop.
1

Connect the Italy app

  1. Navigate to ConfigurationApps
  2. Find Italy in the app discovery list
  3. Click Connect to activate
2

Set up the registration workflow

The tax_id contains the company’s partita IVA without the IT prefix.
Italy customer example
This workflow claims a company’s fiscal identity for your workspace and enables certified archiving for it.

Italy register party workflow

Add to my workspace →
The party entry must carry an Italian VAT number or a codice fiscale — registration fails with a clear error otherwise. Re-running it on an already-registered company is safe.
3

Set up the import workflow

This workflow runs on every invoice SDI delivers. Extend it freely — generate a PDF, notify your systems through a webhook, push the invoice into an ERP.

Italy import invoice workflow

Add to my workspace →
4

Configure the app for receiving

Navigate to ConfigurationApps, find the Italy app, click Configure, and select the import workflow you just created. It will run automatically whenever an invoice arrives.
5

Register the recipient code with the tax authority (live only)

Skip this in sandbox — there is no tax authority to tell.
For each company that should receive through Invopop, register Invopop’s recipient code (codice destinatario) at Agenzia delle Entrate:
  1. Go to the tax authority’s portal and log in with credentials for the company being registered.
  2. Open the Fatture e Corrispettivi section.
  3. Under Fatturazione elettronica, choose Registrazione delle modalità di ricezione della fattura elettronica.
  4. Select the Codice Destinatario option and enter BDCS3JD.
  5. Click Conferma.
The recipient code is a routing address: it tells SDI where to deliver the company’s incoming invoices. Suppliers who address an invoice to an old code will not reach you, so tell the company’s suppliers whenever it changes.
6

Run the registration workflow

Run the registration workflow on the company’s party entry to complete the setup on the Invopop side.
In live workspaces both halves are needed: the recipient code registered at Agenzia delle Entrate, and the registration workflow run in Invopop. Sending never required either.

How receiving works

Every delivery goes through three stages.
  1. Receive. SDI posts the invoice to Invopop, which stores the original FatturaPA file and its delivery metadata before doing anything else, then acknowledges the delivery. Once acknowledged, SDI considers the invoice delivered and will not send it again — which is why the original bytes are stored first. Repeat deliveries of the same invoice are recognised by SDI’s delivery identifier and never duplicate.
  2. Route. Invopop reads the addressee’s fiscal ID out of the invoice itself and looks it up among the registered companies. On a match, it starts your import workflow in the owning workspace. An invoice addressed to a company nobody registered is held rather than lost, but it is not processed until that is resolved.
  3. Import. The import step converts the FatturaPA document into a GOBL invoice and creates the entry, with two files attached: the original XML exactly as delivered (sdi-inbound-invoice) and SDI’s delivery metadata (sdi-inbound-metadata), when SDI provided one.
Received invoices appear in your Expenses folder. If conversion fails, the step returns KO, but the original file stays stored — the invoice can be re-processed later without SDI needing to redeliver it. Italian preservation rules cover the invoices you receive as well as the ones you issue. Add the Archive document step after the import step to preserve each one — see the Archiving guide.

Unregistering a company

Registering a tax ID claims it for a single party record, and only one party per environment can hold a given tax ID at a time. Unregister a company when it is no longer your client, or when you need to register the same tax ID from a different party record.

Italy unregister party workflow

Add to my workspace →
The unregister action turns off receiving and clears the company’s registration, freeing the tax ID to be claimed again — from another party record in the same workspace, or from a different workspace. Running it on a company that is not registered skips rather than fails, so it is safe to re-run.
Unregistering stops receiving only. Sending never required registration, so it is unaffected. Invoices addressed to the company afterwards are no longer imported into your workspace.
Unregistering does not affect legal archiving. Invoices already preserved under conservazione a norma stay preserved, as the law requires.
The recipient code registration at Agenzia delle Entrate is separate and stays in place. If the company should stop receiving through Invopop altogether, update its reception settings at the tax authority’s portal as well.

Troubleshooting

FAQ

Register Invopop’s recipient code (BDCS3JD) with the tax authority and run the registration workflow on the company’s party entry. Invopop automatically receives matching invoices and routes them through the configured import workflow. See the receiving invoices guide.
Inbound FatturaPA XMLs are parsed via gobl.fatturapa. The original signed XML is preserved as a silo entry attachment alongside the GOBL representation.
Register the company for reception in your sandbox workspace, then send a sandbox invoice addressed to it — the app loops it back to you as an inbound delivery and runs your import workflow, exactly as a real delivery would. This is the only way to receive an invoice in sandbox: there is no tax authority to register with, and no real supplier can reach it. See receiving your own invoices.
The import step attempts to convert the FatturaPA document into GOBL. If conversion fails, the step returns KO, but the original file stays stored — the invoice can be re-processed later without SDI needing to redeliver it.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 BDCS3JD with the Italian tax authority for that specific company
  2. Have its tax ID registered by running the registration workflow on the company’s party entry
  3. Use the same import 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.
Yes, but only one party at a time can hold a given tax ID. Run the unregister workflow on the party that currently holds it, then register the new one.Registering a tax ID that another party already holds fails with a clear error.Sandbox and live are counted separately, so the same tax ID can be registered in both at the same time.
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 channel using the Codice Destinatario BDCS3JD.
  2. Registering with Invopop (the registration workflow) - Tells Invopop 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 original file is kept attached to the entry exactly as SDI delivered it, alongside SDI’s delivery metadata.
More available in our Italy FAQ section

Participate in our community

Ask and answer questions about invoicing in Italy →