Introduction
Invopopโs Smart Receipts 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. Smart Receipts 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:- Create a supplier post-registration workflow.
- Connect the Italian Smart Receipts app.
- Configure a supplier registration workflow.
- Prepare an invoicing workflow.
- 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.
Create Supplier post-registration workflow
Connect the Italian Smart Receipts app
- Navigate to Configuration โ Apps.
- Find Italian Smart Receipts in the app discovery list.
- Click Connect to activate.

Configure the supplier registration workflow
Prepare Invoice Workflow
- Template
- Code
- Build from scratch
Prepare Void Workflow
- Template
- Code
- Build from scratch
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.- Navigate to Parties โ Suppliers in the sidebar
- Click + New Supplier
- In the editor, enter the supplier details
View supplier Data for sandbox
View supplier Data for sandbox
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.
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.
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:- Set
$regiontoIT - Include
it-ticket-v1in$addons
B2C Invoice
B2C Invoice
This example shows a simple B2C invoice from an Italian supplier (Documento Commerciale). Key points to note:
- The minimal version (
ticket-b2c.min.mdx) contains only the essential fields required to create the invoice - The
it-ticket-v1addon ensures validation using AdE CF v1 rules built into GOBL - Extensions (
ext) fields specify values that cannot be determined otherwise:- Items have an extension identifying them as goods or services
- VAT exemptions require an Italian exemption code
- The
prices_includefield indicates that item prices include VAT - When running
gobl build, the system automatically calculates totals, line item sums, IVA breakdowns, and normalizes the document according to Smart Receipts requirements - The built version (
ticket-b2c.mdx) shows the normalized document with all calculated fields including line indices, sums, and total amounts
B2C Invoice Complete
B2C Invoice Complete
After the AdE (Agenzia delle Entrate) accepts the invoice, they add a reference to each line item. This reference, stored in the
it-ticket-line-ref extension, is essential for processing refunds.Notice:- This example shows a complete invoice with line references added by the AdE after acceptance
- The minimal version contains the basic invoice structure before AdE processing
- When running
gobl build, the system calculates all totals and normalizes the document - The built version shows the complete document with AdE-assigned line references, calculated totals, and all automatically generated fields
- These line references are required for creating corrective invoices and processing refunds
- The complete invoice represents the final state after successful submission to and acceptance by the AdE
Corrective Invoice
Corrective Invoice
When a customer requests a refund for specific items, you can process it by issuing a corrective invoice. Since this is still considered sending an invoice, you can use the same workflow as before.To create a corrective invoice, take the original GOBL Invoice and:
- Set the
typefield tocorrective - Add a reference to the original invoice using the
precedingobject - Include the original document number stamp from the first invoice
- Keep the lines and quantities you want to refund
- The minimal version (
ticket-b2c-corrective.min.mdx) contains only essential correction details including references to the original invoice - The corrective invoice preserves the
it-ticket-line-refextension from the original invoice for proper tracking - When running
gobl build, the system automatically calculates negative amounts for refunds, validates the corrective structure, and applies AdE rules - The built version (
ticket-b2c-corrective.mdx) shows the normalized document with calculated negative totals, tax refunds, and all automatically generated fields - The corrective invoice references the original invoice using the
precedingobject and maintains line item references for accurate tracking - This example shows a corrective invoice that refunds two units of โCleaning Productsโ from the original invoice

Refund an Invoice
Refund processing is handled through corrective invoices, which you can issue using the same workflow as regular invoices. See the โCorrective Invoiceโ accordion above for details and examples.Void an Invoice
You can void an invoice if it was issued in error, such as when a receipt is accidentally sent twice. To void an invoice:- Locate the silo entry uuid of the invoice
- Run the โVoid AdE CF Invoicesโ workflow with this uuid
๐ฎ๐น Invopop resources for Italy
๐ฎ๐น Invopop resources for Italy
Italy FAQ
Find answers to frequently asked questions about invoicing in Italy โ
Participate in our community
Ask and answer questions about invoicing in Italy โ

