Portugal — ATCUD, SAF-T & B2G mandate
ATCUD + SAF-T universal · B2G via FE-AP · No B2B mandate yet — regulator: Autoridade Tributária e Aduaneira (AT). Facts last refreshed: 2026-05-05.
POST /v1/documents/send.
TL;DR
- Portugal requires every invoice (B2B, B2C, B2G) to carry an ATCUD — a unique code generated by AT-certified software.
- SAF-T reporting (monthly accounting export) is universal for VAT-registered businesses since 2008.
- B2G via FE-AP (Faturação Eletrónica na Administração Pública) universal since 2021.
- Full B2B mandate proposed for 2027; legislation pending.
Deadlines
| Date | Who | What |
|---|---|---|
| 2008-01-01 | All taxpayers | SAF-T monthly export. |
| 2021-01-01 | Public-sector contracting (B2G) | FE-AP universal. |
| 2023-01-01 | All invoices | ATCUD mandatory on every invoice. |
| ≥ 2027 | B2B (proposed) | Universal e-invoicing mandate; AT consultation underway. |
Background
Portugal's regime is multi-layered: every invoice carries an ATCUD (a 8-character code from a registered series), every taxpayer files SAF-T monthly, and every public-sector invoice goes through FE-AP. Flowie handles all three: the JSON payload you send is automatically annotated with an ATCUD from your registered series, included in the SAF-T monthly export, and routed via FE-AP for B2G recipients.
Format profile
- CIUS-PT for B2G (Peppol BIS extended with FE-AP rules).
- SAF-T (PT) monthly XML export to AT.
- ATCUD unique code on every invoice — registered through Portal das Finanças.
- Portuguese NIF: 9 digits.
Required fields
-
seller.taxId.nifstring (9 digits)required
Portuguese NIF.
-
atcud.seriesstringrequired
Registered invoice series ID; Flowie pre-registers and rotates.
-
buyer.taxId.nifstring (9 digits)required for B2B
Buyer NIF.
Public sector (B2G)
| Hub | Peppol identifier scheme | Lookup |
|---|---|---|
| FE-AP (eSPap) | 9946:PT-<nif> | https://www.espap.gov.pt |
Public-sector hub operated by eSPap; B2G invoices route through FE-AP regardless of channel.
B2B reporting / clearance
Portal das Finanças (SAF-T) — Monthly SAF-T (PT) export — accounting + invoices.
Error codes
| Code | Meaning | Fix |
|---|---|---|
ATCUD-MISS | ATCUD missing or malformed. | Flowie generates from the registered series; manual integrations must call /v1/compliance/pt/atcud first. |
FEAP-PT-101 | FE-AP profile validation failed. | Inspect error.details — usually a public-sector procurement code missing. |
Testing in sandbox
| What you want to test | How |
|---|---|
| PT B2G via FE-AP | Recipient 9946:PT-500000000; sandbox returns synthetic ATCUD. |
| SAF-T export | POST /v1/compliance/saft with country: "PT". |
FAQ
Do I need to be AT-certified to issue invoices in Portugal?
The seller's billing software must be — and Flowie is. Customers using Flowie inherit the certification.
References
Primary sources (government / regulator / standards body):
- EU Commission · eInvoicing in Portugal — Pan-EU reference factsheet.
- Portal das Finanças (AT) — Tax authority main portal.
- e-Fatura portal — Official AT e-fatura portal.
- AT · SAF-T (PT) technical questions — Official SAF-T PT specification reference.
- ESPAP · CIUS-PT / FE-AP B2G platform — Shared services — public sector e-invoicing.
Industry analyses (vendor trackers — useful for cross-referencing):
- EDICOM · Portugal e-invoicing — Industry tracker — CIUS-PT / SME 2025 deadline.
