Skip to main content
ERPNext Portugal (SAF-T & Certified Invoicing) — A build-to-order ERPNext app that turns your Portuguese ERPNext into an AT-c — 1/1Illustrative preview

A build-to-order ERPNext app that turns your Portuguese ERPNext into an AT-certified billing system:

certified invoice series with ATCUD and QR code, hash-chained documents, IVA tax templates and one-click SAF-T(PT) XML export.

ECOSIRE scopes, builds, installs and supports it.

What is ERPNext Portugal (SAF-T & Certified Invoicing)?

A build-to-order ERPNext app that turns your Portuguese ERPNext into an AT-certified billing system: certified invoice series with ATCUD and QR code, hash-chained documents, IVA tax templates and one-click SAF-T(PT) XML export. ECOSIRE scopes, builds, installs and supports it. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Certified invoice, credit note and debit note series as dedicated DocTypes with gap-free sequential counters enforced server-side
ATCUD generation (AT series validation code + sequential number) written to a custom field and rendered on every certified document
Document hash chaining wired into hooks.py before_submit/on_submit doc events so each document signs over the previous document's hash
RSA digital signing with your AT-registered private key, matching the software-certification signature format
QR-code payload builder producing the AT-specified field string, embedded into compliant print formats
SAF-T(PT) XML export as a whitelisted server method assembling Header, MasterFiles and SourceDocuments, XSD-validated before download
SAF-T generation exposed over the Frappe REST API for programmatic retrieval by your accountant or filing tool
IVA tax templates and item tax rules for standard, intermediate, reduced and exempt rates with correct exemption reason codes
Portuguese chart of accounts mapping aligned to SNC account structure for the tax table and MasterFiles output
Client scripts that lock series selection and block manual edits to numbering on submitted documents
Role profiles and permission rules restricting signing keys and series setup to finance roles only
Scheduler event to pre-stage the monthly SAF-T file ahead of the AT filing deadline
Cancellation and credit-note handling that preserves the hash chain and reason codes as required by the AT
Targets ERPNext / Frappe v15 with forward-compatibility checks for v16

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Portuguese SMEs run on hard rules from the Autoridade Tributária (AT): every invoice must belong to a certified series, carry an ATCUD code and a QR code, be sequentially numbered without gaps, and be linked to the previous document through a signed hash chain. On top of that, the monthly SAF-T(PT) file must be produced in the AT's exact XML schema for e-Fatura submission. Stock ERPNext gives you Sales Invoices, IVA tax accounts and PDF print formats, but it has no concept of a certified series, no ATCUD, no RSA document signing, and no SAF-T(PT) generator. Bookkeepers end up patching gaps by hand or bolting on a second tool — which is exactly what the AT rules are designed to prevent.

ECOSIRE builds a proper Frappe app (its own module, not loose customizations) that plugs these gaps directly inside ERPNext. We add DocTypes for certified series and their sequential counters, and wire document signing into hooks.py on_submit/before_submit doc events so that at submission time each Sales Invoice, Credit Note and related document is hash-chained to its predecessor and signed with your AT-registered RSA private key. Custom fields carry the ATCUD (series-validation-code + sequential number) and the computed QR-code payload, rendered into compliant print formats. IVA is handled through pre-built tax templates and item tax rules for the standard, intermediate, reduced and exempt rates, with the correct exemption reason codes for zero-rated lines.

The SAF-T(PT) export is a whitelisted server method that assembles the full audit file — Header, MasterFiles (customers, products, tax table), and SourceDocuments (SalesInvoices with the signed hashes and ATCUD) — validated against the AT XSD before download. It is exposed both as a desk button and over the Frappe REST API so your accountant or an external filing tool can pull the file programmatically. Role profiles and permission rules keep signing keys and series configuration limited to finance roles, client scripts guard against manual tampering with numbering, and a scheduler event can pre-stage the monthly file so it is ready before the AT deadline. Everything targets ERPNext v15 and is forward-checked for v16.

Because this is build-to-order, you are not downloading a generic marketplace app and hoping it fits. After a short scoping call we confirm your legal series, IVA profile, chart-of-accounts mapping and AT certification details, then build and test the app against your data on a staging bench. You receive the installable source, install and configuration on your environment, documentation, a training session and a post-go-live support window. Typical delivery is one working week from confirmed scope, depending on how many document types and edge cases (self-billing, cash-VAT, retention) you need covered.

What you get

  • Installable source code for your version of the app (Frappe app with its own module, packaged for bench install)
  • Installation and configuration on your ERPNext environment (certified series, RSA key, IVA templates, CoA mapping)
  • Technical documentation covering DocTypes, hooks, whitelisted methods, custom fields and the SAF-T generator
  • User guide plus a live training session for your bookkeeping and finance team
  • Post-go-live support window for defect fixes and questions after launch
  • UAT on a staging bench with a documented rollback plan before production cutover
  • Git repository handover with full commit history and README
  • Sample SAF-T(PT) output validated against the AT XSD for your first filing period

Who this is for

Portuguese SME bookkeeper

Handles day-to-day billing and the monthly e-Fatura obligation. Needs ATCUD, QR codes and gap-free certified series to appear automatically on every invoice, and a one-click SAF-T(PT) file that passes AT validation without manual XML surgery.

Finance manager at a growing PT company

Wants ERPNext to be the single certified system of record instead of running a separate billing tool. Cares about audit-safe hash chaining, correct IVA treatment across rates, and controlled access to signing keys and series configuration.

Outsourced accountant / TOC serving multiple clients

Files SAF-T for several companies and needs to pull the audit file programmatically over the Frappe REST API, with consistent tax-table and exemption-code mapping across each client's ERPNext.

IT lead or ERPNext administrator

Owns the bench and upgrades. Wants a clean Frappe app with hooks.py doc events and whitelisted methods rather than scattered customizations, a git repo handover, and v15/v16 compatibility so future upgrades don't break compliance.

How ERPNext Portugal (SAF-T & Certified Invoicing) Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
SAF-T(PT) XML exportBuilt-in whitelisted generator, XSD-validated, REST-accessiblePossible but you build and maintain the schema yourselfOften partial or a fixed schema versionNot available in ERPNext core
ATCUD & QR codesAuto-generated per certified series on every documentHand-coded per project, easy to get wrongUsually included but rigidly configuredNo ATCUD or QR concept
Certified series & hash chainingDocTypes + hooks.py signing, gap-free and audit-safeDepends entirely on developer rigorProvided but hard to adapt to edge casesNo certified series or document signing
IVA templates & exemption codesPre-built rate templates with correct exemption reasonsConfigured from scratch each timeGeneric tax setup, PT codes may be missingGeneric tax accounts, no PT exemption codes
Fit to your businessScoped to your series, CoA and document typesFully bespoke but slow and costlyTake-it-or-leave-it feature setGeneral-purpose, no PT localization
Delivery & timelineone working week from confirmed scope, staging UAT includedOften months with uncertain scopeInstant install but generic fitImmediate but non-compliant for PT
Support & updatesPost-go-live window + optional maintenance for AT changesYou own all future maintenanceVendor roadmap, may lag AT changesNo PT-specific support
Source & ownershipFull git repo handover, no lock-inYou own it but built aloneUsually closed or license-restrictedN/A

Frequently Asked Questions about ERPNext Portugal

How long does delivery take?

This is a build-to-order app, not an instant download. Typical delivery is one working week from confirmed scope. The exact timeline depends on how many document types (invoices, credit/debit notes, self-billing, cash-VAT) and edge cases you need, and how quickly we can validate against your data on a staging bench.

Is the invoicing actually AT-certified?

The app implements the AT technical requirements — certified series, ATCUD, QR codes, sequential numbering and RSA hash-chained document signing using your registered key, plus SAF-T(PT) export in the AT schema. Software certification is granted by the AT to the taxpayer/software producer; we build to those specifications and hand over the source so your certification path is clean. We confirm your specific certification and series details during scoping.

How do updates and support work after go-live?

Every engagement includes a post-go-live support window for defect fixes and questions, and you receive the full git repository so nothing is locked to us. When the AT changes the SAF-T schema or signing rules, or when you upgrade ERPNext, we can provide updates under a support or maintenance arrangement agreed at handover.

Which ERPNext versions are supported?

We target Frappe/ERPNext v15 and forward-check the build for v16. If you are on an older version we will flag any migration needs during the scoping call before committing to scope.

Can our accountant pull the SAF-T file automatically?

Yes. The SAF-T(PT) generator is a whitelisted server method exposed over the Frappe REST API as well as a desk button, so an external filing tool or your accountant's script can request the validated XML programmatically, subject to role permissions.

Will this interfere with our existing ERPNext customizations?

It ships as a self-contained Frappe app with its own module, custom fields and hooks rather than edits to core files, which keeps it upgrade-safe and easy to review. We run UAT on a staging bench with a rollback plan before any production cutover.

What do you need from us to start?

A short scoping call to confirm your legal invoice series, IVA rate profile, chart-of-accounts mapping, AT certification/series details and which document types are in scope. From there we lock the scope and begin the build.

Request a quote

ERPNext Portugal

A build-to-order ERPNext app that turns your Portuguese ERPNext into an AT-certified billing system: certified invoice series with ATCUD and QR code, hash-chained documents, IVA tax templates and one-click SAF-T(PT) XML export. ECOSIRE scopes, builds, installs and supports it.

  • Certified invoice, credit note and debit note series as dedicated DocTypes with gap-free sequential counters enforced server-side
  • ATCUD generation (AT series validation code + sequential number) written to a custom field and rendered on every certified document
  • Document hash chaining wired into hooks.py before_submit/on_submit doc events so each document signs over the previous document's hash
  • RSA digital signing with your AT-registered private key, matching the software-certification signature format

Request a Quotation

Tell us about your ERPNext Portugal requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.