A build-to-order ERPNext app that generates compliant FatturaPA XML and clears every sales invoice through Italy's Sistema di Interscambio (SdI), handling delivery outcomes, cross-border reporting and digital signatures. ECOSIRE builds, installs and supports it on your bench — it is not an off-the-shelf download. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $299.00 USD; request a quote for a scoped proposal.

A build-to-order ERPNext app that generates compliant FatturaPA XML and clears every sales invoice through Italy's Sistema di Interscambio (SdI), handling delivery outcomes, cross-border reporting and digital signatures. ECOSIRE builds, installs and supports it on your bench — it is not an off-the-shelf download.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
Italian invoicing is a clearance regime, not a print job. Every B2B, B2C and B2G sales invoice must be transmitted as a structured FatturaPA XML file to the Sistema di Interscambio (SdI), which validates it, forwards it to the recipient and returns a delivery outcome — an invoice only counts as legally issued once SdI accepts it. ERPNext core produces a beautiful PDF and correct tax ledgers, but it has no native concept of the FatturaPA schema, the SdI transmission channel, the TipoDocumento/Natura/RegimeFiscale code sets, the progressive transmission number, or the ricevuta di consegna and scarto (rejection) messages that must be reconciled back onto the invoice. Teams running ERPNext in Italy are left stitching this together with a third-party intermediary and manual re-keying, which breaks the moment volumes rise or a rejection needs correcting.
FatturaPA 1.2.x XML generation mapping a submitted ERPNext Sales Invoice to a schema-valid file (CedentePrestatore, CessionarioCommittente, DatiGeneraliDocumento, line detail and VAT summary)
`Sales Invoice` `on_submit` doc event registered in `hooks.py` that validates the Italian field set and enqueues XML build as a background job, so submission never blocks on the gateway
Configurable SdI transmission channel to your accredited intermediary (REST/SOAP or SFTP), with credentials and endpoints held in a dedicated Settings DocType
Progressive transmission-number and FatturaPA filename generation (country prefix + VAT + sequential counter) enforced per company
E-Invoice log DocType tracking every message lifecycle state: Draft, Sent, Delivered, Not Delivered, Rejected (scarto), with links back to the source invoice
Scheduler event that polls the intermediary for SdI outcome receipts (ricevuta di consegna / scarto / mancata consegna) and reconciles them onto the invoice
We build a dedicated Frappe app — a proper installable app with its own module, DocTypes and hooks.py — that closes that gap inside ERPNext instead of beside it. The core is a FatturaPA builder that maps a submitted Sales Invoice to a schema-valid XML: header identity (CedentePrestatore/CessionarioCommittente), line items with the correct VAT nature codes, withholding and stamp duty, payment terms (DatiPagamento), and the mandatory progressive filename numbering. Transmission runs through a configurable channel to your chosen accredited SdI intermediary (via their REST/SOAP endpoint or SFTP), and a set of DocTypes — an E-Invoice log and outcome records — track each message's lifecycle so an accountant can see at a glance which invoices are Sent, Delivered, Rejected or Not Delivered.
Technically it hangs off the events your finance team already uses. A Sales Invoice on_submit doc event (registered in hooks.py, implemented as server-side Python rather than fragile UI automation) validates the Italian field set and enqueues XML generation via a background job so submission is never blocked by a slow gateway. A scheduler event polls the intermediary for SdI outcome messages, parses the returned ricevuta, and writes the result back onto the invoice — flipping a custom status field and, on scarto, surfacing the SItalian error code and message so the invoice can be corrected and re-sent. Cross-border purchases and sales that fall outside SdI are captured for Esterometro/cross-border reporting. Digital signature support (.p7m CAdES) is wired in where your intermediary requires it. Everything is exposed through whitelisted methods and the standard Frappe REST API, guarded by dedicated role profiles and permission rules so only authorised finance users can transmit or reprocess, and client scripts add the reprocess/re-send buttons directly onto the Sales Invoice form.
Because this is build-to-order, we scope it to your actual setup — your intermediary, your company's tax profile, your item and tax templates — rather than shipping a generic binary. After a short scoping call we confirm the field mapping and the SdI channel, build against a copy of your data, and validate end-to-end on a staging bench before touch your production site. Typical delivery is 2–4 weeks from confirmed scope. You receive the full app source in a git repo, install and configuration on your v15/v16 bench, technical and user documentation, a training session, and a post-go-live support window — so your team owns a maintainable ERPNext app, not a black box.
A company operating in Italy that needs every sales invoice cleared through SdI to be legally valid, and wants that clearance to happen inside ERPNext rather than by re-keying invoices into a separate portal.
Needs a reliable audit trail of which invoices SdI accepted, delivered or rejected, with clear error messages when a scarto occurs and a fast path to correct and re-send — without waiting on IT for every exception.
Wants a maintainable Frappe app with clean DocTypes, hooks and scheduler jobs they can own, backed by source in a git repo, instead of an opaque connector or brittle spreadsheet-and-portal workflow.
Runs one ERPNext instance across several countries and needs Italy's FatturaPA/SdI obligations handled for the Italian company without disrupting the group's existing invoicing and tax setup.
Buy the license on ecosire.com and download the ERPNext Italy E-Invoicing (SdI / FatturaPA) app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install ERPNext Italy E-Invoicing (SdI / FatturaPA) and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| FatturaPA XML generation | Built into a Frappe app, mapped to your tax templates and item data | Hand-coded from scratch against the schema | Generic mapping, often needs re-work for your setup | |
| SdI clearance + outcome handling | Scheduler polls intermediary, reconciles ricevuta/scarto onto the invoice | You design and build the polling and reconciliation | Basic send; outcome handling varies by app | |
| Rejection (scarto) workflow | Error code surfaced on invoice, correct and re-send | Depends entirely on what you build | Often a log entry with limited correction flow | |
| Cross-border / Esterometro | Captured for reporting as part of scope | Extra build effort you own | Sometimes omitted or sold separately | |
| Digital signature (.p7m CAdES) | Wired in where the intermediary requires it | You integrate the signing yourself | May be limited or intermediary-locked | |
| Fit to your bench | Scoped to your intermediary, tax profile and v15/v16 site | Fully bespoke but built from zero | One-size-fits-all; you adapt to it | |
| Source code ownership | Full app source in a git repo, handed over | You own it, but also build and debug all of it | Usually closed or license-gated | |
| Support after go-live | Post-go-live window plus optional maintenance | Your team supports it alone | Vendor support, often subscription-tied |
No. This is a build-to-order engagement: ECOSIRE builds the FatturaPA/SdI app against your specific ERPNext setup, intermediary and tax profile, then installs and supports it. You are commissioning a maintainable app scoped to your bench, not downloading a generic binary.
Typical delivery is 2–4 weeks from confirmed scope. After the scoping call we agree the field mapping and SdI channel, build against a copy of your data, and validate on a staging bench before any production change. Complex multi-company or non-standard intermediary requirements can extend that; we confirm the timeline in writing before starting.
The app generates the compliant FatturaPA XML and transmits through your chosen accredited SdI intermediary (via their REST/SOAP API or SFTP). SdI does not accept arbitrary direct connections from every company, so routing through an intermediary is the standard, supported model. We configure the channel to whichever provider you use.
We build for ERPNext / Frappe v15 and v16. The app is a standard Frappe app using DocTypes, `hooks.py` doc events, scheduler events and whitelisted methods, so it installs on a normal bench and upgrades along with your site through the usual `bench` workflow.
A scheduler job polls your intermediary for outcome receipts and reconciles them onto the invoice. On a scarto, the app records the SdI error code and message and flips the invoice status so your finance team can correct the underlying data and re-transmit — no separate portal or manual reconciliation needed.
Each engagement includes a post-go-live support window for defect fixes and outcome-handling questions. Because you receive the full source in a git repo, your team can also maintain it directly. For ongoing changes — new code sets, intermediary switches, or regulatory updates — we offer a separate support and maintenance arrangement.
No. The logic is scoped to the Italian company and hangs off the Sales Invoice `on_submit` event without altering core accounting behaviour. For multi-country groups, other entities keep their existing invoicing untouched — only the Italian entity's invoices flow through the FatturaPA/SdI pipeline.
A build-to-order ERPNext app that generates compliant FatturaPA XML and clears every sales invoice through Italy's Sistema di Interscambio (SdI), handling delivery outcomes, cross-border reporting and digital signatures. ECOSIRE builds, installs and supports it on your bench — it is not an off-the-shelf download.