E-Invoicing Guide
General API Information
Customer Data
Other than when issuing simplified invoices, electronic documents always require full identification of the customer, including additional address information for the transport system. It is recommended to provide a well-maintained customer database on POS software side, and eventually a function to enter data of walk-in customers. Details about customer data can be found at Ctm Elements.
Customer data is mandatory for the E-Invoice. For B2B invoices, a TaxId must also always be specified.
ESR Specification
First you have to trigger the electronic delivery of a transaction document. To do so, please specify Document Delivery ESR.DD, (e.g.: DD="IT"/DD="DE"). If you want to use the test system just append -TEST, f.e: "IT-TEST".
Secondly, you must specify the recipient of the Document Delivery (DDto) if required.
In the DDto field, the delimiter ; can be used to add additional information.
| Attribute | Description | Example(s) |
|---|---|---|
ESR.DD | System through which the E-Invoice is transmitted. At minimum, the country code must be specified; a specific system can also be provided if applicable. | "DE" "IT" "IT-TEST" "IT-FatturaPA" |
ESR.DDto | Country-specific recipient identifier for the E-Invoice. The value and format depend on the country and whether the invoice is (B2B, B2G). | "VSRLPXY" (IT, B2B) "j.doe@efsta.eu" (DE, B2B) |
Standalone e-invoicing
The EFR interface can be used without a fiscal printer/device and without formal fiscalization by utilizing the DO="noprint" and NFS="INVOICE" properties. This mode allows you to generate E-Invoices without printing or registering them in the fiscal system, making it ideal for digital-only workflows.
When these two properties specified, the transaction is processed as a non-fiscal document and is not included in the system's grand totals or audit trail. This is useful for:
- Standalone e-documents: Create e-invoices independently from the main POS system (e.g. in the backoffice where applicable, or if the transaction was fiscalized outside of the EFR)
- Testing environments: Test invoice generation before enabling full fiscalization
Please note that it's still required to properly fiscalize e-invoices created by the POS in specific countries. When used on the POS, the DO="noprint" parameter should not be used to let EFR decide if the transaction needs to be fiscalized in the respective country.
Standalone e-invoices registered with DO="noprint" and NFS="INVOICE" are not included in fiscal reports or grand totals and are treated as informational documents only. They are useful for documentation purposes but do not fulfill fiscal compliance requirements if those are needed for your use case.
Example Request
- JSON
- XML
{"Tra":
{"ESR":
{"DD": "IT-TEST", "DDto": "WSRLPXY", "NFS": "INVOICE", "DO": "noprint",
"Ctm":
{"TaxId": "IT02348690211", "Nam": "The Buyercompany S.p.A", "Adr": "Via Roma 1",
"Zip": "12345", "City": "Milano (MI)"
},
"PosA": {
"Pos": { "PN": "1", "Dsc": "test", "TaxG": "B", "Amt": "1.00"}},
"PayA": {
"Pay": { "Dsc": "Contanti", "PayG": "cash", "Amt": "1.00"}}
}
}
}
<Tra>
<ESR DD="IT-TEST" DDto="WSRLPXY" NFS="INVOICE" DO="noprint">
<Ctm TaxId="IT02348690211" Nam="The Buyercompany S.p.A" Adr="Via Roma 1" Zip="12345" City="Milano (MI)"/>
<PosA>
<Pos PN="1" Dsc="test" TaxG="B" Amt="1.00"/>
</PosA>
<PayA>
<Pay Dsc="Contanti" PayG="cash" Amt="1.00"/>
</PayA>
</ESR>
</Tra>