Italy: How to manage invoices with OpenFiskal
OpenFiskal issues commercial documents, not invoices. You issue the invoice with your own invoicing tool: what changes is whether the receipt for that sale has already been issued or not.
OpenFiskal cannot be switched off for a single sale. If you have not set anything up in advance, the receipt goes out anyway: that is the more common case, and it is the first one below.
Index
- When you are required to issue an invoice
- What to issue the invoice with
- Invoicing after the receipt
- Invoicing before the receipt
When you are required to issue an invoice
The customer has to ask for the invoice no later than the moment you make the sale. If they ask at the counter, before you close the payment, you are required to issue it.
If the customer comes back the next day, or writes a week later, that obligation no longer applies. You can still issue it, and it is what most shops do rather than lose the customer.
What to issue the invoice with
You issue the invoice yourself, with the system you already use.
If you want to automate the step, the Shopify App Store has several apps that generate the electronic invoice and send it to the Sistema di Interscambio (SdI) starting from the Shopify order. If you run an ERP, a direct integration is worth looking at too. See the available apps.
Invoicing after the receipt
The sale has already been certified by a commercial document and has already gone into that day's corrispettivi, the daily sales totals sent to the Agenzia delle Entrate. The invoice you issue now is not a new sale: it is the same money, documented a different way.
Nothing about this is automatic. The SdI has no way of knowing that the invoice refers to a sale that was already certified: you have to tell it, by putting the receipt reference in the invoice.
Where to find the receipt number
OpenFiskal generates a commercial document number for every sale, in the format DCWxxx/xxx-xxx. You will find it as a metafield on the Shopify order.

How to add the reference to the invoice
The reference goes in the “AltriDatiGestionali” block of the electronic invoice, which has four fields.
- TipoDato. A label saying what kind of reference this is.
- RiferimentoTesto. The commercial document number, for example DCW0042.
- RiferimentoNumero. The amount of the sale already certified by the commercial document.
- RiferimentoData. The date of the receipt, meaning the day you made the sale, which you will find on the Shopify order. Not the date of the invoice, which can be days later.
Where you fill these in depends on the software you use: some expose them directly, others call them “dati gestionali” or “attributi avanzati”. Some systems also have a function that converts a receipt into an invoice and pre-fills the references, but you always have to start the process yourself.
What happens next, in the books
The reference is there for your accountant, who has two things to do by hand.
- Record the invoice in the sales invoice register.
- Make a manual correction to deduct the same amount from that period's corrispettivi, so the money is not taxed twice.
The reference in the invoice is what holds the two entries together. It makes checking the totals immediate and, if the Guardia di Finanza inspects, it documents why that day's corrispettivi were adjusted.
If this happens to you often, the way to avoid all of it is in the next section.
Invoicing before the receipt
If a portion of your customers always want an invoice, it is better not to issue the receipt in the first place than to link the documents every time.
OpenFiskal cannot be switched off for a single sale: every sale on a fiscalized register generates a commercial document. What you can do is keep one register out of fiscalization.
- Add a new register in Shopify and assign it to a second device, a phone for example. A newly created register starts out unfiscalized.
- In OpenFiskal, leave that register out of fiscalization. If you want to use one you had already fiscalized, you can remove it.
- Give the register a name that leaves no doubt, “Fatture” for example, so nobody uses it by mistake.
- Use that register only for sales where you genuinely issue the invoice.
The advantage is that the interface is the same Shopify POS your staff already know, the order shows up in Shopify reports and inventory stays in sync. The difference is that OpenFiskal creates no commercial document, so there is nothing to link and nothing to deduct.
On that device you can take payments with Tap to Pay. If you want to use a Wisepad or Shopify Terminal reader, you will need a dedicated one: each reader pairs with a single device.
Guide: How to fiscalize registers and online sales (AdE - Italy)
If your case is not one of these, write to us at hello@openfiskal.com.
Updated on: 08/09/2026
Thank you!