ERPNext for Italy: importing supplier e-invoices

A self-hosted ERPNext can import supplier XML e-invoices from a ZIP and create suppliers, addresses and purchase invoices. This page covers the prerequisites, the review steps and what remains your responsibility.

On this page

How ERPNext handles Italian supplier e-invoices

Italian suppliers send their invoices as XML files that they have already transmitted through the government's electronic invoicing system, and finance teams often receive them as a single ZIP archive. Someone has to turn those files into accurate supplier records and purchase invoices in the books. ERPNext can do that intake step: it reads the XML files from the ZIP, creates suppliers and their addresses where they do not yet exist, and creates purchase invoices from the document content. Electronic invoicing has been mandatory for domestic B2B and B2C transactions in Italy since January 1, 2019, so this intake runs every month on a steady stream of files. The import covers supplier invoice intake only. It does not produce the Italian tax filing, and your tax advisor should confirm which returns your company must file and how the imported data feeds them.

Several decisions stay with your team. ERPNext does not decide the VAT treatment of each purchase, including the rate, the deductibility and any reverse charge, so the tax codes and item tax templates must be set by someone who understands Italian VAT. It does not decide whether withholding applies to a supplier or what amount to withhold, and it does not choose the accounting period in which an invoice belongs. Approval of each purchase invoice before it is submitted is also a business decision, and it should be tied to a named approver rather than left to whoever ran the import. Confirm these rules with your accountant before the first production import, and write them into the procedure that the import operator follows.

Before the first run, check the prerequisites that the import depends on. The import documentation requires a default stock UOM to be set and the Check Supplier Invoice Uniqueness option to be enabled, which stops the same invoice from being loaded twice when a supplier resends a file. Test the import on a copy of your data, using sample files from real suppliers, and compare the created suppliers, addresses and invoice totals against the source XML. Read the ERPNext documentation on importing supplier e-invoices for the current setting names and the exact steps in your release, and confirm them in your own environment before you rely on them.

Mapping the import prerequisites to ERPNext settings

This table maps each prerequisite for importing supplier e-invoices to the ERPNext setting or step that satisfies it and the person who should confirm it. Read it as a checklist to complete before the first test import, and treat the last row as a reminder that tax and period decisions stay with your accountant.

PrerequisiteERPNext setting or stepWho confirms it
Default stock UOMSet a default stock unit of measure in Stock Settings so imported invoice lines have a valid unit to post againstInventory or stock lead
Check Supplier Invoice UniquenessEnable this option in Accounts Settings so a supplier invoice number cannot be posted twice for the same supplierFinance controller
ZIP of supplier XML filesConfirm that the ZIP holds the XML files suppliers sent through the Italian government system, and keep an untouched copy for auditAccounts payable team
Auto-created suppliersReview suppliers created by the import, check tax identifiers, names and default payable accounts, then merge duplicatesMaster data owner
Auto-created addressesCheck supplier addresses created from the XML against the supplier's registered details before any invoice is submittedAccounts payable team
Auto-created purchase invoicesReview draft purchase invoices, item mapping, quantities, rates and taxes before submitting, since submitted invoices post to the ledgerAccountant reviewing purchases
Tax determination and period controlsThis import does not decide tax treatment or closed periods. Confirm VAT codes, tax templates and frozen accounting periods with the accountant before go-liveAccountant or tax advisor

What the ZIP import creates and what it does not

The ZIP import takes a package of supplier XML e-invoices, reads each file, and creates the supplier, its address and a purchase invoice in ERPNext. The supplier is matched or created from the seller details in the XML, the address is attached to that supplier, and the invoice lands as a draft purchase invoice with the lines, quantities and tax that the file contains. Nothing is paid, received into stock or posted to the ledger by the import alone, so the draft is where your review starts. The draft purchase invoice is not a checked invoice: it reflects what the supplier's file said, including any mistake the supplier made in a tax code, unit or item description. Before submission, someone should compare the header totals, tax lines, supplier tax ID and item mapping against the original XML and the PDF or paper copy the supplier also sent.

Each created record needs its own review. A new supplier may be created with a name, tax ID or address that differs from the vendor master you already maintain, which can split one supplier into two and fragment payables and purchase history. Items may not map to your existing item codes, so the default stock UOM and the item groups used for receipts matter for stock valuation. The duplicate risk is the most costly error: the same invoice can arrive twice, in a re-sent ZIP or a supplier's second transmission. Check Supplier Invoice Uniqueness is the control meant to limit that by flagging a repeated supplier and invoice number, but it depends on the invoice number being read consistently, so test it with a deliberately re-sent file before you rely on it.

The exact XML fields the import reads, and how they map to supplier, address, tax and line-item values in ERPNext, must be confirmed against the current ERPNext documentation on importing e-invoices from suppliers and a test ZIP built from your own suppliers' files. Suppliers often use different software versions or optional elements, so one clean sample does not prove coverage. Ask your finance and tax team to sign off a sample of created records against the source XML, and record which fields are not populated so that manual entry or a custom script can be planned for them.

Configuring stock and accounts settings before the first import

This sequence confirms the company foundation, sets the stock and supplier invoice prerequisites, and proves the import on a non-production site before any real supplier files reach your accounts payable records.

  1. Confirm company and chart of accounts

    A finance lead and an ERPNext administrator confirm that the Italian company record exists with the correct legal name, tax identifiers and default currency, and that the chart of accounts includes payable accounts the import can post to. Check the company's default accounts for payables and expenses in the Company record. The step is done when the finance lead signs off on the account mapping in a short written note that names each account the import will use. Confirm exact field labels and account types in your ERPNext version before you start.

  2. Set the default stock UOM

    An ERPNext administrator sets a default stock unit of measure in the stock settings, since the import depends on one being present to create purchase invoice lines. Review the unit of measure list so the default matches how your warehouse counts goods, such as Nos for discrete items. The step is complete when a test purchase invoice line can be saved without a unit of measure error. Confirm the exact settings page name and location in your version of ERPNext, because menu paths change between releases.

  3. Enable supplier invoice uniqueness check

    An ERPNext administrator turns on Check Supplier Invoice Uniqueness in the accounts settings so the same supplier invoice number cannot be booked twice when a supplier resends a file or a ZIP is imported again. Record who made the change and when, since this control supports your duplicate payment review. The step is done when a deliberate duplicate test entry is rejected. Confirm the setting name in your version before changing it.

  4. Prepare a sample ZIP on a non-production site

    A platform engineer and an accounts payable lead create a non-production site, load the same company setup and select a small set of anonymized or approved supplier XML files packed in a ZIP. Keep the sample to files the team already knows the expected results for, so differences are easy to spot. The step is complete when the sample set and its expected outcomes are stored with the change record. Do not use live supplier data on a site that is not controlled as production.

  5. Run the test import and review results

    An accounts payable lead runs the e-invoice import from the sample ZIP and compares each created record with the source XML, checking totals, tax lines, currency, supplier identifiers and invoice numbers. Look for suppliers created twice, addresses attached to the wrong supplier, and invoices that the uniqueness check should have caught. The step is done when every discrepancy is logged, fixed in configuration or explained, and the test run is repeated cleanly.

  6. Review created suppliers and addresses

    A master data owner reviews the suppliers and addresses the import created, confirming that supplier names, tax codes, billing addresses and supplier groups match your vendor master policy. Decide whether auto-created records need a review status before they can be used for payments. The step is complete when the owner approves a written rule for handling new suppliers and the list of records has been reconciled against the expected vendor set.

  7. Approve purchase invoices under role permissions

    A finance approver reviews the imported purchase invoices and submits them under the roles defined for accounts payable, confirming that only the intended users can submit or amend them. Check that the approving role cannot also create and approve the same invoice, consistent with your segregation of duties design. The step is done when a sample of imported invoices has been approved by the correct role and the access test confirms that users without that role cannot submit them.

Evidence to keep for the import

An auditor or accountant should be able to start from any purchase invoice, reach the XML it came from, and see who created it and when. The cards below cover the source files, the ERPNext records they produce, and the logs that show how the import ran.

Original ZIP and XML files

Keep the ZIP exactly as the supplier or intermediary delivered it, along with the extracted XML files, in storage your retention policy controls. Record a checksum for each file when it arrives, so you can prove later that nothing was edited. Store the files outside the ERPNext database and outside any folder that users can overwrite. Confirm with your tax adviser how long Italian records must be kept and who in your organization owns that obligation.

Import logs and run history

Keep the record of each import run: the date, the user or scheduled job that ran it, the ZIP name, and which files succeeded, failed or were skipped. A failed file with a clear reason is evidence that the process caught a problem rather than hiding it. Review these logs at month end, and archive them with the source files so a single run can be reconstructed later.

Purchase invoices and their audit trail

The purchase invoices created by the import are the accounting record, so the document history matters as much as the amounts. Check that each invoice shows its creation user and timestamp, and that any later amendment is visible in version history. Ask the implementation team to confirm which ERPNext audit features are enabled in your version before you rely on them as audit evidence.

Supplier master records

The import creates suppliers and addresses automatically, so each supplier's tax identifiers, names and addresses should be reviewed after the first run. Keep a dated export of the supplier list alongside the import logs. Changes made later to a supplier record should be traceable, because a changed tax identifier can affect how an invoice is matched and reported.

Link from each invoice to its XML

Each purchase invoice should carry a reference to the XML file it came from, such as the file name and the supplier's invoice number. Use that pair as the lookup key during audits: open the invoice, find the XML name, then open the stored file and compare totals and tax lines. Test this with a sample of invoices before go-live, since a missing reference makes reconciliation manual.

Settings in force at import time

The import depends on a default stock UOM and on Check Supplier Invoice Uniqueness being enabled. Export and file the stock and accounts settings as they stood during each import period. If a setting changes later, the evidence should show what applied when the invoices were created, so an auditor does not assume the current configuration produced older records.

Choosing where the import runs

Installing ERPNext with the bench command line tool places the application, its Python and Node dependencies, the database and the background workers directly on a Linux server you control. Your team creates the bench, adds the ERPNext app, creates the site and then runs upgrades and restarts as part of its own change process. Self-hosting ERPNext is free according to the ERPNext pricing page, so the cost is the infrastructure plus the people who run it.

  • Who patches: Your team applies minor releases and major upgrades, including the operating system and database packages.
  • Who backs up: Your team schedules and tests database and file backups for the site.
  • Who supports: Warranty coverage from Frappe depends on running a listed version with a matching Frappe Cloud support plan, so confirm this before choosing a self-managed model.
  • Who imports: Your administrators enable the stock and accounts settings the import depends on, and they own the import runbook.
  • Best fit: Teams with Linux operations skills and a change process that already covers other internal applications.

Confirm with Frappe which versions and support terms apply to your deployment before you commit to this model.

Questions buyers ask before importing Italian supplier invoices

How much does it cost to import Italian supplier e-invoices into ERPNext?

The cost is mostly the labor to set up the prerequisites, clean the supplier master, and test the import against your real files. No supplied figure gives a price for this work, and DeployOpen does not publish prices, so a quote follows from a written scope. Ask for the cost split between configuration, data cleanup, testing and any recurring support, and note which parts are one-time and which recur as your supplier base changes. The main cost drivers are the number of suppliers, the variation in XML files you receive, and how much duplicate or incomplete supplier data you already hold.

How long does an Italian e-invoice import setup take?

Duration depends on the size of the supplier base, the state of the supplier master and how many invoice formats your suppliers send. No supplied fact gives a timeline for this importer, so ask for a schedule tied to the written scope. Sequence the work so that the stock UOM, the supplier invoice uniqueness check and the accounts settings are fixed before any bulk import, because later changes can force a re-test. Plan time for a trial run on a copy of your data before the first real batch.

What format variation in XML files should we expect?

Expect enough variation that a single sample file is not a sufficient test. Suppliers use different invoicing software, so line structure, tax detail, payment terms and addresses can differ between files that all look valid. Collect a representative set from each major supplier, including credit notes and multi-line invoices, and confirm with the importer's documentation which fields it reads and how it handles anything it does not recognize. Ask for a list of rejected or partially imported files as part of testing.

Does the supplier master need cleanup before the first import?

Usually yes. The importer can create suppliers, addresses and purchase invoices automatically, but existing records with near-duplicate names, tax identifiers or addresses can lead to duplicate suppliers or invoices being attached to the wrong party. Review your current supplier list for duplicates, confirm tax identifiers and remove inactive records before the first run. The cleanup effort grows with the number of suppliers and the age of the data, so ask for it to be estimated separately in the quote.

How many invoices can we import in one batch?

The documented limit for the general Data Import tool is a few thousand records at a time, which is a useful planning guide but not a confirmed limit for the e-invoice importer. Confirm the batch size, file size and ZIP handling limits with the vendor or in your own test environment before planning a bulk load. Import in staged batches, check each one for skipped or duplicated invoices, and then move to the next.

What does the client need to provide for this work?

You need to provide sample XML files from your suppliers, access to a non-production ERPNext environment, a clean list of suppliers with tax identifiers, the chart of accounts and stock settings you intend to use, and a named owner in accounting who can approve test results. Also provide the ZIP files your suppliers or your intake process produce, and confirm how long you keep source files for audit purposes. Missing samples are the most common reason testing takes longer than planned.

Can our own team do this without a partner?

Yes, if you have someone who knows ERPNext accounting and stock settings, can work with XML invoice files, and can run a structured test. A partner adds value when the supplier base is large, the format variation is high, or the team lacks time for cleanup and testing. Decide based on the skills in-house and the risk of duplicate or misposted invoices. DeployOpen plans, implements and tests self-hosted open-source platforms in your infrastructure under a written scope, so you can compare that against your own effort estimate.

How DeployOpen scopes Italian e-invoice imports

DeployOpen plans, implements, customizes, hardens, documents and supports self-hosted ERPNext inside your own infrastructure. For Italian supplier e-invoice imports, we start from how your purchase cycle, stock settings and accounts settings actually run, then build and hand over the import path in writing.

How we scope

  • We confirm which supplier XML files arrive in ZIP packages and how often your team receives them.
  • We map default stock UOM, supplier invoice uniqueness and purchase account settings before any build starts.
  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work begins.

How we build

  • We configure the import prerequisites in stock and accounts settings and document each value chosen.
  • We test the import with sample supplier ZIP files from your own suppliers, including duplicate and malformed files.
  • We review how auto-created suppliers and addresses are matched, so existing master data is not duplicated.

How we hand over

  • You receive a runbook covering the import steps, expected errors and who reviews each created purchase invoice.
  • We document the configuration, test cases and results so your finance and audit teams can review them.
  • We walk your operators through the import and the checks they perform on purchase invoices after each run.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • We can review the import path when ERPNext moves to a new supported version, before the upgrade is scheduled.
  • Confirm with your accountant and tax advisor which Italian e-invoicing rules apply to your company before go-live.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.