Skip to main content

Introduction

The SDI system operates using a standardized XML format called FatturaPA, which ensures all invoices contain the required information and comply with the strict validation rules established by the Italian tax authority (Agenzia delle Entrate). To ensure proper routing of invoices to the correct recipient, the SDI system uses a unique identifier called a Recipient Code, which is assigned to each registered SDI provider. To receive FatturaPA XML documents, Invopop uses the GOBL FatturaPA library to automatically process conversions into GOBL format. Detailed information about the SDI-specific extensions and validations can be found in:

Setup

1

Connect the SDI Italy app

  1. Navigate to ConfigurationApps
  2. Locate SDI Italy in the app discovery list
  3. Tap Connect to activate
Connect SDI Italy app
Unlike sending, receiving invoices requires additional configuration after the initial connection.
2

Set up the Customer Registration Workflow

Use this workflow to register a company to receive invoices through SDI.

SDI register party workflow

Add to my workspace →
3

Import Invoices Workflow

Use this workflow to import and process invoices received through SDI. This workflow must be selected in the SDI Italy app configuration to automatically process incoming invoices.

SDI import invoices workflow

Add to my workspace →
4

Configure the app for receiving invoices

To start processing incoming invoices navigate to ConfigurationApps, find the SDI Italy app and tap Configure and select the appropriate Import Invoices workflow
Select Import Invoices workflow
This workflow will automatically trigger whenever a new invoice is received through SDI. Any errors in the import process will trigger the rescue steps in the workflow, allowing identification and resolution of issues.
5

Register with Italian tax authority (live only)

In Sandbox skip this step, as Invopop simulates the receiving environment.
For each company you want to receive invoices, register the Recipient Code (Codice Destinatario) at Agenzia Entrate.
  1. Access the Italian tax authority’s website and log in with valid credentials for the company being registered.
Register with Italian tax authority
  1. Tap on the Fatture e Corrispettivi section.
  2. In the box Fatturazione elettronica, tap on Registrazione delle modalità di ricezione della fattura elettronica.
  3. Select the Recipient Code (Codice Destinatario) option and enter the code JKKZDGR provided by Invopop
  4. Tap on Conferma
Make sure you notify the companies about their new Codice Destinatario. It works as a routing identifier that tells the SDI system where to deliver incoming electronic invoices. Invoices sent to an outdated Codice Destinatario will be rejected.
6

Run the Customer Registration workflow in Invopop

In Invopop, execute the customer registration workflow on the supplier’s silo entry to complete the setup for that company.
In live workspaces make sure you both register Codice Destinatario JKKZDGR and run the customer registration workflow. Registration is only needed for receiving invoices, not sending.

Receiving invoices

Once registered, any invoices addressed to the registered companies with the Recipient Code will be automatically received and processed through the Import Invoices workflow configured in the app settings. Received invoices will appear in your Expenses folder. If errors occur during the import process, they will trigger the rescue steps in the workflow, allowing users to check what went wrong and take appropriate action.

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 again from a different party record. Use this workflow to stop a company from receiving invoices through SDI:

SDI unregister party workflow

Add to my workspace →
The sdi-it.unregister action turns off invoice receiving for the company and clears its SDI registration from the party record. Once it completes, the tax ID is free to register again, whether from another party record in the same workspace or from a different workspace. Running it on a party that is not registered skips the step rather than failing, so it is safe to re-run.
Unregistering stops receiving only. Sending never required registration, so it is unaffected. Invoices addressed to the company after it is unregistered 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 Italian tax authority as well.

FAQ

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.
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.
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 supplier already registered in a different workspace or with a different entry.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 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.
More available in our Italy FAQ section

Participate in our community

Ask and answer questions about invoicing in Italy →