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:
Example SDI supplier registration workflow with states
Copy
Ask AI
{ "name": "SDI register customer", "description": "Register a company to receive invoices through SDI", "schema": "org/party", "steps": [ { "id": "2a34f560-fd13-11ef-998c-e97f18c9212e", "name": "Set State", "provider": "silo.state", "summary": "Set state to `processing`{.state .processing}", "config": { "state": "processing" } }, { "id": "3b5c7890-fd13-11ef-998c-e97f18c9212e", "name": "Register SDI Customer (Italy)", "provider": "sdi-it.register", "summary": "Register company as receiver", "config": { "environment": "production" } }, { "id": "4c6d8910-fd13-11ef-998c-e97f18c9212e", "name": "Set State", "provider": "silo.state", "summary": "Set state to `registered`{.state .registered}", "config": { "state": "registered" } } ], "rescue": [ { "id": "5d7e9a20-fd13-11ef-998c-e97f18c9212e", "name": "Set State", "provider": "silo.state", "summary": "Set state to `error`{.state .error}", "config": { "state": "error" } } ]}
Before starting, review the workflows guide to understand the general setup process.In Console, create a new workflow and choose Empty Party workflow as the base. Then name the workflow with a descriptive label such as โSDI Register Supplierโ.The new workflow will need to perform these steps:
Set State: Select Processing to mark the start of the registration.
Register SDI Customer (Italy): This step registers the company as an invoice receiver through SDI. Make sure to select the Production environment to go live.
Set State: Once the registration is complete, select Registered.
In the Error Handling section, add a Set State step and choose Error to capture any issues during registration.This minimal workflow is required to onboard a customer for SDI e-invoicing in Italy. You can extend it with notification steps, such as sending confirmation emails or updating external systems when registration succeeds or fails.
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.
{ "name": "Import SDI Invoices", "description": "Import and process invoices received through SDI", "schema": "bill/invoice", "steps": [ { "id": "6e8f0b30-fd13-11ef-998c-e97f18c9212e", "name": "Import from SDI (Italy)", "provider": "sdi-it.import", "summary": "Convert received FatturaPA to GOBL", "config": { "environment": "production" } }, { "id": "7f9a1c40-fd13-11ef-998c-e97f18c9212e", "name": "Generate PDF", "provider": "pdf", "summary": "Italian", "config": { "date_format": "%Y-%m-%d", "locale": "it", "logo_height": 40 } }, { "id": "8a0b2d50-fd13-11ef-998c-e97f18c9212e", "name": "Set State", "provider": "silo.state", "summary": "Set state to `sent`{.state .sent}", "config": { "state": "sent" } } ], "rescue": [ { "id": "9b1c3e60-fd13-11ef-998c-e97f18c9212e", "name": "Set State", "provider": "silo.state", "summary": "Set state to `error`{.state .error}", "config": { "state": "error" } } ]}
This workflow automates the import and processing of incoming invoices via Italyโs SDI.Before starting, review the workflows guide to understand the general setup process.In Console, create a new workflow and choose Empty Invoice workflow as the base. Then add the following steps:
Import from SDI (Italy): Retrieves invoices in the FatturaPA format from SDI and converts them into GOBL. Set the environment to Production for real operations.
Generate PDF: Generates a visual representation of the invoice in Italian, using the specified locale (it), date format (%Y-%m-%d), and logo height (40px).
Set State: Marks the invoice as Sent once itโs successfully processed.
In the Error Handling section, add a Set State step with the state set to Error to capture and flag failed imports.This is the minimal workflow required to automate the reception and visualization of invoices received through SDI. You may expand it with additional steps such as storing a backup copy, notifying clients, or integrating the documents into an ERP system.
4
Configure the app for receiving invoices
To start processing incoming invoices navigate to Configuration โ Apps, find the SDI Italy app and tap Configure and select the appropriate 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.
In the box Fatturazione elettronica, tap on Registrazione delle modalitร di ricezione della fattura elettronica.
Select the Recipient Code (Codice Destinatario) option and enter the code JKKZDGR provided by Invopop
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 SDI register customer 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.
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.