Introduction

Invopop’s Ticket (DC) Italy provider allows you to generate and issue electronic tickets (documento commerciale/scontrino elettronico) in Italy.

The documento commerciale is a digital fiscal document that records sales transactions and transmits them to the Agenzia delle Entrate (AdE). This digital receipt replaces traditional paper receipts while maintaining full fiscal compliance and serves as official proof of purchase for your customers.

Italian law requires businesses to transmit sales data digitally through either a certified Registratore Telematico (RT) or the AdE’s online portal. Ticket (DC) streamlines this process by providing a secure interface to relay your sales data to the AdE through a local provider.

Important distinctions for the Documento Commerciale:

  • It is not an invoice (fattura) - invoices require detailed buyer information and follow different tax rules
  • It does not replace transport documents (documento di trasporto)
  • It is not a simple internal receipt - it serves an official fiscal function requiring AdE transmission
  • It must include VAT at the time of sale - deferred VAT payment is not permitted

Prerequisites

Before you begin, ensure you have:

  • An Italian tax ID (Partita IVA) for the supplier
  • Invoice line items that include:
    • Quantity
    • Name
    • Price (including VAT)
    • VAT rate
    • Item type (specified in extension)

Setup

There are five key processes to prepare:

  1. Create a supplier post-registration workflow
  2. Connect the Ticket (DC) Italy app
  3. Configure a supplier registration workflow
  4. Prepare an invoicing workflow
  5. Prepare a voiding workflow

These instructions work in both sandbox and live environments. The only differences are in supplier data and registration details when using test environments.

Follow these steps in the Invopop Console.

1

Create Supplier post-registration workflow (optional)

Head over to the Workflows section and create a new “Contacts” workflow.

Rename the workflow to something you can identify later, in this case we decided to call it “Post-registration flow”, and add a single step to change the state to registered.

At this point you can add any webhooks or notification steps that might be useful for your systems to receive after a supplier has successfully registered.

Tap the Save button.

2

Connect the AdE CF Italy app

  1. Navigate to Configuration > Apps.
  2. Find Ticket (DC) Italy in the app discovery list.
  3. Click Connect to activate.

Click the Configure button on the App, and choose the “Post-registration flow” workflow we created in the previous step, or leave empty.

Click the Save button.

3

Configure the supplier registration workflow

Back in the Workflows section, create a new “Contacts” workflow called “Register Supplier”.

The new workflow will need to perform three steps:

  • Sign the Envelope
  • Register the Issuer
  • Set State - with configuration set to processing.

Add any additional steps you may need, and save the new workflow.

4

Prepare Invoice Workflow

For this example the workflow will be named something like “Issue AdE CF Invoices”, and it will consist of the following Steps:

  • Add Sequential Code - with dynamic sequences, and name like “AdE Invoices”.
  • Send to AdE CF (Italy).
  • Generate PDF - configured for your environment.
  • Set State - to “sent”.

Tap the Save button to ensure the workflow has been persisted.

5

Prepare Void Workflow

And finaly, we need a workflow to void invoices. In this case the workflow will be named “Void AdE CF Invoices”, and it will consist of the following Steps:

  • Void the invoice.
  • Set State - to “sent”.

Tap the Save button to ensure the workflow has been persisted.

Running

Each company who will issue e-receipts must first register as a supplier in Invopop. In this section we’ll first explain how to register a supplier using the registration workflow we setup, and then how to issue and void invoices on behalf of that supplier, with the corresponding workflows.

As usual, the recommended approach for running jobs is to perform two steps; first upload the document to the silo, second create a job.

Register a Supplier

You can register suppliers either manually via the Invopop Console or programmatically via the API. The process is essentially the same, so for this guide we’ll demonstrate the manual process.

Suppliers in Italy using this system must generate and provide their AdE credentials so that invoices can be processed on their behalf. This is not an automated service and can only be performed manually by a representative of the supplier.

  1. Navigate to Contacts > Suppliers in the sidebar
  2. Click + New Supplier
  3. In the editor, enter the supplier details

Here’s an example using test data (only valid for sandbox environments):

{
    "$schema": "https://gobl.org/draft-0/org/party",
    "uuid": "018fbeda-bc61-7000-b66d-398ce3e21c43",
    "name": "Milano Pizza",
    "tax_id": {
        "country": "IT",
        "code": "48220010093"
    },
    "identities": [
        {
            "key": "it-fiscal-code",
            "code": "MRTMTT91D08F205J"
        }
    ]
}

You may notice that we included the Italian fiscal code in the supplier, this is not necessary at the moment but will be asked for, if not provided, during the registration process.

Tap Build, ensure there are no errors, and click Save.

We should now see the document. Find and click the Select Workflow button. Select the Register Supplier workflow created during setup, and click Run Workflow.

The execution should be successful, and the silo entry will now be in the “Processing” state. Tap the Meta tab to see the registration link:

You can access the registration link via the API by fetching the silo entry and reading the meta row where the key is set to registration-link.

Tap the registration link and a new browser window will be presented with a form to upload the credentials for the supplier. Note that this form can be shared directly with the supplier if required.

The details from this form are sent securely to local partner who will be responsible for sending them to the AdE. We will update the supplier with the provided codice fiscale for future use but will not store any type of credentials.

AdE Credentials need to be renwed every 90 days. This can be done using this same portal that is created when registering a supplier.

Send an Invoice

Use these GOBL document examples as templates in the Invopop Console or when creating silo entries via the API.

For proper validation and normalization, set these properties in your GOBL Invoices:

While Invopop attempts to set these automatically based on other invoice fields, we recommend defining them explicitly.

Void an Invoice

To void an invoice:

  1. Locate the silo entry uuid of the invoice you want to void
  2. Run the “Void AdE CF Invoices” workflow with this uuid

Note: You can only void invoices that were originally sent through this app.

FAQ

Please contact the Invopop support team if you have any questions that are not listed here.