SAP Business One in Italy: SdI e-invoicing and split payment
By Zain Abbas, Kodenova · Updated
SAP Business One runs in Italy on an official SAP localization. Three things shape the ERP for an Italian company: every invoice passes through the Sistema di Interscambio (SdI) as FatturaPA XML, public bodies pay VAT straight to the state under split payment, and payments to professionals carry withholding tax that ends up in the Certificazione Unica. This page covers the localization, the SdI rules an ERP must respect, split payment, withholding, stamp duty and a SQL query that finds stamp-duty invoices before the Agenzia delle Entrate does.
I am Zain Abbas, a SAP Business One developer with more than 7 years of SAP B1 work for companies in 13 countries. I have not delivered a project for an Italian company yet, so this page is not a case study. It comes from my e-invoicing work on SAP B1 in other clearance-model countries, and the Italian rules come from SAP’s documentation and the Agenzia delle Entrate’s own guides and technical specifications, linked at the end.
What does the Italy localization of SAP Business One cover?
The localization is chosen when the company database is created and cannot be changed later, so an Italian company belongs on the Italy localization from day one. SAP’s help for release 10.0 documents:
| Area | What SAP documents |
|---|---|
| Electronic invoicing | A/R and A/P invoices exchanged with the SdI through a certified intermediary that routes, signs, archives and monitors them; Electronic Document Service required; updates delivered as file packages through the Electronic File Manager (SAP Note 2666498) |
| Split payment | Split Payment checkbox and Split Payment Account on the tax code; document total shows the net amount; Split Payment row in the Tax Summary Report |
| Withholding tax | Withholding tax codes with Invoice or Payment category, gross or net base, % Base Amount, Minimum Taxable Amount and Official Code; reports by business partner and by code; Certificazione Unica XML from the Withholding Tax Report (SAP Note 3621423) |
| Deferred VAT | Use Deferred Tax in Company Details: VAT is recognised when the payment is made, not when the invoice is created |
| Bills of exchange | Use Bill of Exchange in Basic Initialization, the Ri.Ba. collection flow |
| Intrastat | Enable Intrastat, then the Intrastat declaration wizard; monthly, or quarterly in some Italian cases |
| Tax reporting | Extended Tax Reporting with a period type, Tax Declaration Boxes setup, BAS codes |
What SAP does not deliver is the connection to the SdI itself. SAP’s page is explicit that the exchange runs through a certified intermediary, so an Italian SAP B1 installation always has three parts: the localization, the current e-invoicing file package, and the intermediary’s channel.
How does e-invoicing through the SdI work?
Since 1 January 2019 every VAT-registered person resident or established in Italy must issue invoices to Italian counterparties as XML through the SdI (Law 205/2017, art. 1 c. 916). Flat-rate taxpayers followed in two steps, from 1 July 2022 above EUR 25,000 of prior-year revenue and for everyone from 1 January 2024. An invoice sent any other way is treated as not issued: the supplier faces the penalties of art. 6 of D.Lgs. 471/1997 and the customer cannot deduct the VAT.
The Agenzia’s December 2025 guide lists the ways a file reaches the SdI: the Agenzia’s own web procedure or app, a PEC message to the SdI mailbox, or an SFTP or web service channel accredited with the SdI. An intermediary can run any of these on your behalf, which is the route SAP documents for Business One.
What the SdI checks
Before delivery the SdI verifies the mandatory data of art. 21 of DPR 633/1972, that the supplier’s VAT number and the customer’s VAT number or Codice Fiscale exist in the Anagrafe Tributaria, that the Codice Destinatario is filled, and that taxable amount, rate and VAT agree with each other (base 100 at 22% must carry 22 of VAT). It also refuses a file it has already received. Files to businesses and consumers may be unsigned; if a file is signed, the certificate is checked.
The technical rules sit in Allegato A, version 1.9.1 of 31 March 2026. The ones that touch an ERP:
- FormatoTrasmissione is FPR12 for businesses and consumers and FPA12 for public bodies.
- CodiceDestinatario is 7 alphanumeric characters. Use 0000000 when the customer receives by PEC (fill PECDestinatario) or has no channel, which includes consumers. Foreign customers get XXXXXXX.
- File name is the sender’s country code and tax number, an underscore, and a 5-character progressive, with the .xml extension. Every file name must differ from every file ever sent: 00001 is an invalid name, 00002 a duplicate. SAP KBA 3691747 covers the Business One side: the last five characters must be unique per invoice.
- Size: a single invoice file or batch cannot exceed 5 MB.
- Document types that come up in a normal SAP B1 flow: TD01 invoice, TD04 credit note, TD05 debit note, TD24 deferred invoice, TD16 internal reverse charge integration, TD17, TD18 and TD19 for foreign purchases, TD20 self-invoice to regularise a missing supplier invoice, and TD29, new in version 1.9, to report omitted or irregular invoicing.
Receipts and deadlines
The SdI answers every file with one of three receipts. A ricevuta di consegna means the invoice was delivered and counts as issued. A ricevuta di impossibilità di recapito means the checks passed but the customer’s channel did not accept the file; the invoice still counts as issued, and the customer’s VAT deduction starts when they view it in the Fatture e Corrispettivi portal. A ricevuta di scarto arrives within 5 days of receipt and means the invoice was never issued: correct the error, keep the number and date, and resend under a new file name.
Processing takes minutes to a maximum of 5 days. A deferred invoice may be issued by the 15th of the month after the operation under art. 21 c. 4 lett. a), with a transport document handed over at the time of supply. An immediate invoice has 12 days from the operation under the same article.
Both issuer and receiver must keep every e-invoice in a norm-compliant archive (art. 39 DPR 633/1972 and the Codice dell’Amministrazione Digitale). Saving the XML on a server is not archiving. The Agenzia offers a free conservazione service in the portal, and SAP’s intermediary model puts archiving on the intermediary; make sure one of them is actually doing it.
What about foreign invoices after the esterometro?
From 1 July 2022 the esterometro report was replaced by the ordinary e-invoice format (Allegato A, version 1.9 change log). Sales to customers outside Italy go to the SdI as normal invoices with CodiceDestinatario XXXXXXX. Purchases from foreign suppliers are reported by the Italian buyer as an integration or self-invoice with TD17 for services, TD18 for intra-EU goods and TD19 for goods already in Italy, by the 15th of the month after the supplier’s invoice is received (art. 1 c. 3-bis of D.Lgs. 127/2015).
In SAP B1 this means an A/P invoice from a German or Spanish vendor is not finished when it is posted: the e-invoicing package has to generate the TD17 to TD19 file from it. How your package does that depends on its version, so check the package notes under SAP Note 2666498 before go-live, and include one foreign A/P invoice in every test cycle.
How does split payment work in SAP Business One?
Under art. 17-ter of DPR 633/1972, public administrations and the listed companies pay the VAT on their purchases directly to the state and only the net amount to the supplier. The EU authorisation behind it ran to 30 June 2026 and was extended by Council Implementing Decision (EU) 2026/1728 of 10 July 2026 to 30 June 2029, with no gap. If you had set your split payment tax codes to expire in June 2026, reopen them.
SAP’s implementation is on the tax code. In the Tax Codes - Setup window you select Split Payment and enter the Split Payment Account. On an A/R invoice or credit memo with that code, the document total shows the net amount, the Remarks field gets a fixed note citing DPR 633/72 art. 17-ter, and the printed document carries a separate line showing that the total was reduced by the VAT. The journal entry debits the customer with the net amount, credits the VAT account with the tax and debits the split payment account with the same tax; a credit memo or cancellation reverses it. One rule bites people: a document cannot mix a split payment tax code with a regular one, so a mixed delivery needs two invoices.
How are withholding tax and the Certificazione Unica handled?
Payments to professionals, agents and other self-employed suppliers carry a ritenuta d’acconto that the paying company withholds and reports. SAP B1 models it with withholding tax codes under Administration, Setup, Financials, Tax, Withholding Tax. Each code has a Category: Invoice posts the withholding when the invoice is added, Payment shows it on the invoice but posts it with the payment, which is the Italian case because the withholding falls due when the fee is paid. Base Type chooses gross (with VAT) or net, % Base Amount covers cases where only part of the fee is subject, Minimum Taxable Amount sets a floor, and Official Code is what the report prints.
The Certificazione Unica is produced by the Withholding Tax Report with Output Mode set to Single Certification, one certification per supplier, as a layout or as the XML file for the authorities. SAP lists the fields it reads: Activity Code and Position Code on the Electronic Tax Reporting tab of Company Details; Expenses ‘Casa prof’, Specific WTax Amounts Setup, Employment Category and Exceptional Event on the business partner’s Accounting tab; the contact’s Fiscal Code; and the Payment Reason Code on the withholding tax code. The model changes most years, and SAP ships the new layout in SAP Note 3621423, so plan the update each January.
When is stamp duty due, and how do I check it before the Agenzia does?
Art. 6 of the DM of 17 June 2014 puts stamp duty on e-invoices: EUR 2 per invoice whose operations without VAT exceed EUR 77.47. The Agenzia’s June 2026 guide says exactly which invoices it picks: the sum of the line totals (PrezzoTotale) is above EUR 77.47, the Natura is N2.1, N2.2, N3.5, N3.6 or N4, and no exemption code NB1 to NB3 is set in AltriDatiGestionali. TD16 to TD19 and TD28 documents are left out, as are the special regimes RF05 to RF11. The issuer flags the duty with BolloVirtuale = SI; the ImportoBollo field is ignored and each flagged invoice is counted at EUR 2.
Every quarter the Agenzia publishes two lists in the Fatture e Corrispettivi portal by the 15th of the following month: Elenco A, the invoices you flagged, and Elenco B, the invoices it thinks you should have flagged. Elenco B can be corrected until the end of the following month (10 September for the second quarter). Payment is due on 31 May, 30 September, 30 November and 28 February, by IBAN debit in the portal or by F24 with codes 2521 to 2524. If the first quarter is EUR 5,000 or less it can wait for 30 September, and if the first two quarters together are EUR 5,000 or less, for 30 November.
I did not find a stamp-duty function documented for the Business One Italy localization; the flag is set by the e-invoicing package mapping. So before each quarter closes I would run this query and compare it with what the package sent. It lists A/R invoices whose lines on zero-VAT tax codes exceed EUR 77.47. Put your own codes in the IN list: the ones your package maps to Natura N2.1, N2.2, N3.5, N3.6 and N4, not exports (N3.1) or reverse charge (N6).
-- SQL Server: A/R invoices with more than EUR 77.47 of VAT-free lines, Q3 2026
SELECT H.DocNum,
H.DocDate,
H.CardCode,
H.CardName,
SUM(L.LineTotal * (1 - ISNULL(H.DiscPrcnt, 0) / 100)) AS VatFreeTotal
FROM OINV H
INNER JOIN INV1 L ON L.DocEntry = H.DocEntry
INNER JOIN OVTG V ON V.Code = L.VatGroup
WHERE H.CANCELED = 'N'
AND H.DocDate BETWEEN '20260701' AND '20260930'
AND V.Rate = 0
AND V.Code IN ('ES10', 'FC', 'NI') -- your codes for N2.1, N2.2, N3.5, N3.6, N4
GROUP BY H.DocEntry, H.DocNum, H.DocDate, H.CardCode, H.CardName
HAVING SUM(L.LineTotal * (1 - ISNULL(H.DiscPrcnt, 0) / 100)) > 77.47
ORDER BY H.DocDate, H.DocNum
-- SAP HANA version
SELECT H."DocNum",
H."DocDate",
H."CardCode",
H."CardName",
SUM(L."LineTotal" * (1 - IFNULL(H."DiscPrcnt", 0) / 100)) AS "VatFreeTotal"
FROM OINV H
INNER JOIN INV1 L ON L."DocEntry" = H."DocEntry"
INNER JOIN OVTG V ON V."Code" = L."VatGroup"
WHERE H."CANCELED" = 'N'
AND H."DocDate" BETWEEN '20260701' AND '20260930'
AND V."Rate" = 0
AND V."Code" IN ('ES10', 'FC', 'NI') -- your codes for N2.1, N2.2, N3.5, N3.6, N4
GROUP BY H."DocEntry", H."DocNum", H."DocDate", H."CardCode", H."CardName"
HAVING SUM(L."LineTotal" * (1 - IFNULL(H."DiscPrcnt", 0) / 100)) > 77.47
ORDER BY H."DocDate", H."DocNum"
Notes from running checks like this:
- Euro. LineTotal is in local currency, so the company’s local currency must be EUR.
- Credit notes. Run the same query on ORIN and RIN1; a TD04 credit note is subject to the duty on the same terms.
- Header discounts. The Agenzia sums the XML line totals. If you use header discounts, check how your package distributes them before trusting the 77.47 edge cases.
- Quarter assignment. The Agenzia assigns an invoice to the quarter of its delivery date in the receipt, not its document date. An invoice dated 30 March and delivered 1 April belongs to the second quarter.
The OINV and INV1 pages list the fields, and the SQL to HANA converter rewrites other queries.
Which ERP and accounting systems are common in Italy?
Two domestic vendors dominate the small and mid-sized market, each with its own SdI hub: TeamSystem, whose Enterprise line sends through TS Digital Invoice, and Zucchetti, with Ad Hoc Revolution and Mago4 behind the Zucchetti Digital Hub. Companies that belong to an international group, or sell abroad, more often run SAP Business One, Microsoft Dynamics 365 Business Central or Oracle NetSuite, with an intermediary for the SdI. ERPNext is the open-source option with an Italian community. The right choice depends on whether you need multi-company consolidation, HANA analytics and an add-on ecosystem, or a domestic package that already contains the accountant’s fiscal reports. The ERP Selector compares them by country requirement.
What can Kodenova do for SAP Business One users in Italy?
I work remotely from Pakistan, 4 hours ahead of Italy in winter and 3 in summer. The Italian working day from 9:00 to 14:00 is my afternoon, so meetings and pair sessions fit without anyone working at night. What I do:
- Add-ons inside SAP B1 with the UI API and DI API. See the add-on development guide.
- Integrations through the Service Layer: web shops, CRM, banks and the intermediary’s API for inbound invoices. See the Service Layer guide.
- Validation rules in SBO_SP_TransactionNotification: block an A/R invoice for an Italian customer whose Codice Destinatario and PEC are both empty, block a foreign-vendor A/P invoice that lacks the data the TD17 to TD19 integration needs, or stop a document whose number would reuse a 5-character suffix. See the TransactionNotification examples.
- Portals for staff, customers or suppliers without a full SAP B1 licence.
- Queries, reports and SQL Server to HANA migration. See the migration guide.
- AI on top of SAP B1: an MCP server so ChatGPT or Claude can answer from live SAP data, with permissions.
To be clear about scope: the e-invoicing integrations I have built are for Saudi Arabia, Ecuador, Guatemala, El Salvador and Panama. For Italy I do not sell an SdI intermediary service or a FatturaPA connector; I work on the SAP side, next to the certified intermediary and the partner’s e-invoicing package, and I do not give tax advice. Kodenova is not an SAP partner and does not resell licences; if you have a partner for licences and support, I work alongside them on development.
Sources
- SAP Help Portal: Electronic Invoicing for Italy (SAP Business One 10.0, Localization for Italy)
- SAP Help Portal: Italy: Split Payment for VAT (SAP Business One 10.0)
- SAP Help Portal: Setup and Administration: Italy (SAP Business One 10.0)
- SAP Help Portal: Withholding Tax Codes - Setup Window (SAP Business One 10.0, Italy)
- SAP Help Portal: Withholding Tax Certificate – Certificazione Unica (SAP Business One 10.0)
- SAP Help Portal: Intrastat (SAP Business One 10.0)
- SAP KBA 3691747: IT_xml file name structure does not comply with the structure required by Italian legislation
- Agenzia delle Entrate: Allegato A - Specifiche tecniche operative del SdI, versione 1.9.1 (31 March 2026, PDF)
- Agenzia delle Entrate: La fattura elettronica e i servizi gratuiti dell'Agenzia delle Entrate (December 2025, PDF)
- Agenzia delle Entrate: L'imposta di bollo sulle fatture elettroniche (June 2026, PDF)
- Agenzia delle Entrate: Fattura elettronica per i forfettari
- FatturaPA: Normativa (laws and decrees on electronic invoicing)
- Informazione Fiscale: MEF confirms split payment extension to 30 June 2029 (Council Implementing Decision (EU) 2026/1728)
Related services
Frequently asked questions
Does SAP Business One support Italian e-invoicing (FatturaPA)?
Yes. SAP documents electronic invoicing for the Italy localization: A/R and A/P invoices are exchanged with the SdI through a certified intermediary that routes, signs, archives and monitors them. The Electronic Document Service is required, and SAP delivers updates as file packages through the Electronic File Manager. Setup and packages are in SAP Note 2666498.
Is e-invoicing mandatory for every business in Italy?
Every VAT-registered person resident or established in Italy must invoice Italian counterparties as XML through the SdI. B2B and B2C invoices have been in scope since 1 January 2019, and all flat-rate (forfettari) taxpayers since 1 January 2024. Exemptions are narrow: small farmers under art. 34 c. 6 of DPR 633/1972 and persons dispensed under art. 36-bis. Health services to consumers may not be sent through the SdI.
What happens when the SdI rejects an invoice?
A ricevuta di scarto arrives within 5 days of receipt and the invoice counts as never issued. Fix the error, keep the same invoice number and date, and resend with a new file name, because the SdI refuses a file name it has seen before (error 00002). A ricevuta di consegna or a ricevuta di impossibilità di recapito means the invoice is issued.
How long does split payment stay in force in Italy?
Until 30 June 2029. The earlier EU authorisation ran to 30 June 2026, and Council Implementing Decision (EU) 2026/1728 of 10 July 2026 extended it by three years with no gap. In SAP Business One the feature is a Split Payment checkbox and account on the tax code.
When is stamp duty due on an electronic invoice?
When the invoice has more than EUR 77.47 of operations without VAT (Natura N2.1, N2.2, N3.5, N3.6 or N4). The duty is EUR 2 per invoice, flagged with Bollo virtuale = SI in the XML, and paid per quarter: 31 May, 30 September, 30 November and 28 February. If the first quarter is EUR 5,000 or less it can be paid with the second, and if the first two together are EUR 5,000 or less, by 30 November.
Can a developer outside Italy work on an Italian SAP Business One system?
Yes, with agreed access, a data protection agreement and working hours. Kodenova works remotely from Pakistan, which is 4 hours ahead of Italy in winter and 3 in summer, so the Italian morning and early afternoon are shared working time. I work in English; the Italian legal texts linked on this page are the reference for tax questions.
Ready to get started?
Tell us what you need. You get a clear technical answer, a fixed scope and a price, usually within 24 hours.
