E-invoicing in Portugal in short
Public bodies in Portugal receive electronic invoices: the State since 18 April 2019 and the others since 18 April 2020. Their suppliers must send them, under Decreto-Lei 111-B/2017: large companies since 1 January 2021, small, medium and micro companies, and public bodies acting as suppliers, from 1 January 2027. Until 31 December 2026 a PDF still counts as an electronic invoice (State Budget for 2026, Lei 73-A/2025, art. 95).
eSPap, the public administration's shared services agency, sets the technical requirements and validates invoices against CIUS-PT, the Portuguese core invoice usage specification of EN 16931, in UBL 2.1. Suppliers reach the public bodies through e-invoicing service providers or eSPap's portal for suppliers.
Between businesses, invoices are not required to be structured e-invoices: they come from certified invoicing software and carry a unique document code (ATCUD, Decreto-Lei 28/2019).
How to check a CIUS-PT invoice
- Open the validator with the CIUS-PT invoice profile, or the credit note one. A file with the CIUS-PT identifier picks the right one by itself.
- Paste the UBL or drop the file, then press Validate.
- Click a rule id for what it checks.
What is checked
The UBL 2.1 schema, then eSPap's Schematron for CIUS-PT 2.1.1, with the EN 16931 rules as CIUS-PT adapts them, in one set. The Portuguese rules ask for the VAT numbers of seller and buyer (BR-CIUS-PT-01, BR-CIUS-PT-03), full addresses (BR-CIUS-PT-05), an order reference (BR-CIUS-PT-24), the invoice a credit note corrects (BR-CIUS-PT-25), and check the format of each field and the document type codes Portugal adds, such as FT, FS and NC (DT-CIUS-PT-003_i).
eSPap has not published CIUS-PT for CII yet, so there is no CII profile. eSPap's examples name CIUS-PT 1.0.0; ours have the identifier of the current release.
Profiles to check with
- Portugal CIUS-PT Invoice (UBL): A Portuguese e-invoice for the public administration, checked against the UBL 2.1 schema and eSPap's CIUS-PT rules (EN 16931 and BR-CIUS-PT). Validate
- Portugal CIUS-PT Credit Note (UBL): A Portuguese credit note (nota de crédito) for the public administration, checked against the UBL 2.1 CreditNote schema and the CIUS-PT rules. Validate
Rules invoices break most
Each one has a page with what it checks, its test and, for many, how to fix it.
BR-CIUS-PT-01: An Invoice shall contain the Seller VAT identifier (BT-31).BR-CIUS-PT-03: An Invoice shall contain the Buyer VAT identifier (BT-48).BR-CIUS-PT-05: The Seller postal address (BG-5) shall contain a Seller address line 1 (BT-35).BR-CIUS-PT-24: The Purchase order reference (BT-13) or the Sales order reference (BT-14) shall be filled, or both.BR-CIUS-PT-25: A Credit Note shall contain the Preceding Invoice Reference (BG-3).DT-CIUS-PT-003_i: The BT-3 only allows the following values: 380, 383, 386, 389, FT, FS, FR, ND, RP, RE, CS, LD, RA.
Questions
Is the invoice uploaded?
No. The schema check and the rules both run in your browser. Only the API and URL monitors validate on our servers.
Does a valid result mean the public body will accept the invoice?
It means the invoice passes the schema and the CIUS-PT rules eSPap validates with. The public body can still reject it for reasons outside the file, such as a commitment number it does not know.
Which version of the rules is used?
CIUS-PT 2.1.1 (26 February 2021), the current release. A weekly check tells us when eSPap publishes a newer one.
Can I check invoices from code?
Yes: the API and the command-line client with --schema pt-cius-invoice, or --schema auto for a folder of mixed invoices.
Official sources
- eSPap: e-invoicing FAQ (in Portuguese)
- eSPap: e-invoicing rules for public procurement (in Portuguese)
Other countries
- French e-invoice validator
- German e-invoice validator: XRechnung and ZUGFeRD
- Belgian e-invoice validator: Peppol BIS
- KSeF invoice validator: FA(3)
- Croatian eRačun validator
- RO e-Factura validator
- FatturaPA validator
- UAE e-invoice validator (PINT AE)
- InvoiceNow validator (PINT SG)
- JP PINT validator
- Australian e-invoice validator (PINT A-NZ)
- Spanish e-invoice validator
- Dutch e-invoice validator: SI-UBL 2.0 and NLCIUS
- Danish e-invoice validator: OIOUBL 2.1
- Norwegian e-invoice validator: EHF
- Swedish e-invoice validator: Peppol BIS
- Finnish e-invoice validator: Finvoice
- Austrian e-invoice validator for e-Rechnung.gv.at
- Czech e-invoice validator: ISDOC
- ZATCA e-invoice validator (FATOORA)