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.
| - | Sandbox | Live |
|---|---|---|
| Supplier | Test data accepted | Real Partita IVA and AdE credentials required |
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.
Create Supplier post-registration workflow
- Template
- Code
- Build from scratch
Smart Receipts supplier post-registration workflow
Registered. You will select this workflow in the Italian Smart Receipts app configuration later.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
- Template
- Code
- Build from scratch
Smart receipts supplier registration workflow
Prepare Invoice Workflow
- Template
- Code
- Build from scratch
Smart Receipts issue receipt workflow
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. Weโll demonstrate the manual process first, followed by the API flow.- 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
Processing state. Tap the Meta tab to see the registration link:

meta row where
the key is set to registration-link.
Register a supplier via the API
The whole registration process can also be completed programmatically. This is useful in white-label setups where you want to collect the supplierโs credentials inside your own product instead of sharing Invopopโs hosted form.Upload the supplier
name and an Italian tax_id (Partita IVA). Optionally include the it-fiscal-code identity and an email address to pre-fill the registration form.Run the registration workflow
Fetch the registration link
meta row where the key is registration-link. The link_url will look like this:exp and sig query parameters are validated on every request, so always use the link_url exactly as returned. Requests with missing or modified parameters are rejected.Submit the credentials
PUT request to the link_url (keeping the query parameters intact) with the following JSON body:| Field | Required | Description |
|---|---|---|
fiscal_id | Yes | The supplierโs Partita IVA, without the IT country prefix. |
codice_fiscale | Yes | The supplierโs codice fiscale. It will be stored in the supplier party for future use. |
password | Yes | The supplierโs AdE portal password. |
pin | Yes | The supplierโs AdE portal PIN. |
email | No | Email address to receive AdE notifications. Updates the supplier party if changed. |
200 response means the registration is complete and the post-registration workflow configured in the app will be launched. Errors are returned as {"error": "<message>"} with a 400 status for client errors (invalid or expired link, missing fields) or 500 for server errors.The same endpoint can be called again with the same link to update the supplierโs credentials when they expire.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
- 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
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
- 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
FAQ
How do I configure my workspace for Italian invoicing?
How do I configure my workspace for Italian invoicing?
Where do I find Italy-specific GOBL documentation?
Where do I find Italy-specific GOBL documentation?
it-sdi-v1 addon documents required FatturaPA fields.How do I correct mistakes in an issued AdE CF invoice?
How do I correct mistakes in an issued AdE CF invoice?
- Void the incorrect invoice using the โVoid AdE CF Invoicesโ workflow
- Issue a new invoice with the correct information
Do I still need to add a series and code to the invoice?
Do I still need to add a series and code to the invoice?
Is AdE CF a substitute for SDI?
Is AdE CF a substitute for SDI?
What GOBL fields are required for Smart Receipts?
What GOBL fields are required for Smart Receipts?
it-ticket-v1 addon handles the AdE CF-specific fields. Each receipt gets a unique Lottery Code if the lottery functionality is enabled.๐ฎ๐น Invopop resources for Italy
๐ฎ๐น Invopop resources for Italy

