Norway — EHF, DFØ and PEPPOL for B2G
Norway mandated B2G e-invoicing since 2 July 2012, with the proprietary EHF (Elektronisk Handelsformat) format transported on the PEPPOL network. B2B remains voluntary but widely adopted (over 85% of invoices in 2025). Fiscal SAF-T is mandatory since 2020 for audit transmission.
Regulatory timeline
- 1 January 2011 — EHF 1.5 published. First EHF format published by Direktoratet for forvaltning og IKT (Difi, DFØ's ancestor) for Norwegian B2G e-invoicing, based on UBL 2.0.
- 2 July 2012 — Central B2G mandate. The Norwegian government mandates EHF for all central administration suppliers and public entities above NOK 500,000 annual purchase.
- 1 January 2017 — EHF 3.0 on PEPPOL BIS 3.0. Major migration to EHF 3.0 compliant with PEPPOL BIS Billing 3.0 (UBL 2.1, EN 16931). Unified transport network on PEPPOL.
- 21 April 2017 — Regulation FOR-2017-04-21-518. The regulation on electronic invoices in public procurement transposes EU Directive 2014/55, extends obligation to all communities (Fylker, Kommuner) from 1 April 2019.
- 1 January 2020 — Mandatory SAF-T. Skatteetaten mandates SAF-T (Standard Audit File for Tax) in fiscal reception and audit for all bookkeeping-liable companies (Bokføringsplikt).
- 1 January 2023 — EHF 3.0 enriched. Anskaffelser Schematron update with national rules on KID (customer reference), NOK 2-decimal rounding, BR-NO-X codes.
- 11 March 2025 — EU ViDA adoption. Norway (outside EU but EEA) consults on ViDA alignment to preserve interoperability with EU partners.
- 2027-2028 — Announced B2B mandate (consultation). Skatteetaten and DFØ study a Norway-wide B2B mandate aligned with ViDA, no firm schedule to date.
Deep dives — 10 dedicated pages
Ten dedicated pages drill into every dimension of the Norwegian e-invoicing ecosystem — the pioneering reforms (EHF B2G 2012, founding PEPPOL Authority, SAF-T 2020, MVA regimes), the technical specs (organisasjonsnummer, the Altinn platform), and the real-world B2B usage that long pre-dates and coexists with EU regulation (retail EANCOM, North Sea oil & gas EDI, industrial OFTP2, and Norway's EEA / ViDA position).
Pioneering reforms
- EHF — national PEPPOL format, mandatory B2G 2012 · EHF (Elektronisk Handelsformat): Norway's PEPPOL BIS profile, mandatory for state suppliers since 2012 — one of the world's earliest universal B2G mandates. UBL 2.1, EN 16931, ICD 0192.
- PEPPOL — founding Authority and leadership · Norway (DFØ, ex-Difi) is a founding PEPPOL Authority and among the highest-adoption countries worldwide. 4-corner model, AS4 transport, SMP/SML directory, participant ID 0192.
- SAF-T — accounting reporting mandatory (on demand) 2020 · SAF-T Financial mandatory on demand since 1 January 2020, run by Skatteetaten. OECD-inspired XML schema, standardised accounts and VAT codes, feeding the MVA-melding since 2022.
- MVA — VAT regimes and the digital MVA-melding · Norwegian VAT (Merverdiavgift): standard 25%, reduced 15% (food), low 12% (transport, lodging, cinema). Code-based MVA-melding using SAF-T VAT codes since 2022. NOK 50,000 threshold.
Technical specs
- Organisasjonsnummer — company, VAT and PEPPOL identifiers · 9-digit org.nr (Brønnøysundregistrene, modulo-11 check). VAT number = org.nr + MVA suffix. In PEPPOL the org.nr is the participant identifier under ICD 0192. Three identifiers not to confuse.
- Altinn — government services and reporting platform · Norwegian government digital gateway (since 2003, Altinn 3 cloud API-first). Filing for MVA-melding, SAF-T, annual accounts. ID-porten / Maskinporten auth, run by Digdir + Skatteetaten + Brønnøysundregistrene.
Real-world B2B usage
- Retail EDIFACT — NorgesGruppen, Coop, Rema 1000, Bunnpris · Grocery retail: EANCOM (GS1 EDIFACT subset) for ORDERS, DESADV, INVOIC, paired with EHF/PEPPOL for the invoice. NorgesGruppen (Kiwi, Meny, Spar), Coop Norge, Rema 1000. GS1 Norway GLN / GTIN.
- Oil & gas EDI — Equinor, Aker BP, Yara, North Sea · Offshore supply chain: EDIFACT (ORDERS, DESADV, INVOIC) + OFTP2 over ENX, EHF/PEPPOL invoices. Equinor (ex-Statoil), Aker BP, Norsk Hydro, Yara. EPIM coordinates North Sea licence data.
- Industrial EDI — Kongsberg, Jotun, Elkem, Tomra, DNV · Industrial verticals: defence/maritime (Kongsberg Gruppen), paints (Jotun), silicon (Elkem), recycling (Tomra), certification (DNV). EDIFACT + OFTP2 over ENX, EHF/PEPPOL invoices.
- EEA and ViDA — non-EU, already ahead on e-invoicing · Norway = EEA (1994) but not EU: adopts the internal-market acquis, not taxation. With EHF (PEPPOL BIS = EN 16931) it already sits on ViDA's technical base, without being bound by it. Challenge: DRR interoperability.
Technical schema
EHF is a Norwegian CIUS on PEPPOL BIS Billing 3.0 (UBL 2.1). The
CustomizationID double-references the PEPPOL profile and
the Anskaffelser profile to signal additional national rules (BR-NO).
-
EHF Customization ID:
urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0#conformant#urn:fdc:anskaffelser.no:2017:eFakt:billing:3.0— PEPPOL + Anskaffelser.no extension reference. -
Organisasjonsnummer: 9 digits with MOD-11 checksum,
assigned by Brønnøysundregistrene; PEPPOL schemeID
0192. -
Norwegian VAT ID:
NO+ 9 digits +MVA(Merverdiavgift). Specific non-EU format. -
KID (Kundeidentifikasjon): numeric payment reference
with MOD-10 or MOD-11 checksum, up to 25 digits. Used in
PayeeFinancialAccount/IDwith schemeIDNO:KIDfor automatic bank reconciliation. - VAT rates: 25 % standard, 15 % reduced (food), 12 % super-reduced (passenger transport, hospitality, cinema, cultural events), 0 % (exports, certain exemptions).
Structure of an EHF 3.0 invoice to DFØ:
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0#conformant#urn:fdc:anskaffelser.no:2017:eFakt:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>NO-2026-00000142</cbc:ID>
<cbc:IssueDate>2026-04-15</cbc:IssueDate>
<cbc:DueDate>2026-05-15</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>NOK</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>DFO-2026-OPDR-00789</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0192">123456789</cbc:EndpointID>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Ediverse Demo Norge AS</cbc:RegistrationName>
<cbc:CompanyID schemeID="0192">123456789</cbc:CompanyID>
</cac:PartyLegalEntity>
<cac:PartyTaxScheme>
<cbc:CompanyID>NO123456789MVA</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0192">986252932</cbc:EndpointID>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Direktoratet for forvaltning og økonomistyring (DFØ)</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
<cac:PayeeFinancialAccount>
<cbc:ID schemeID="NO:KID">12345678901</cbc:ID>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="NOK">2500.00</cbc:TaxAmount>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="NOK">10000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="NOK">10000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="NOK">12500.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="NOK">12500.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
</Invoice>Submission flow
Norway uses 4-corner PEPPOL: the supplier transmits via their PEPPOL
Access Point (Visma, Inexchange, Pagero, Logiq, etc.), which resolves
the recipient Organisasjonsnummer via the SMP managed by DFØ
(smp.anskaffelser.no). AS4 transport delivers to the
recipient Access Point which pushes to the destination ERP (Unit4 for
DFØ, SAP for many municipalities).
┌──────────────┐ ┌────────────────────┐ ┌──────────────┐
│ Supplier │───>│ PEPPOL Access │───>│ Recipient │
│ (ERP, EHF/ │ │ Point (sender) │ │ Access Point │
│ UBL) │ │ │ │ (DFØ/SAP) │
└──────────────┘ └─────────┬──────────┘ └──────┬───────┘
│ AS4 │
▼ ▼
┌────────────────────┐ ┌──────────────┐
│ SML/SMP │ │ Unit4 (DFØ │
│ (Anskaffelser SMP) │ │ federal ERP)│
└────────────────────┘ └──────────────┘Anskaffelser.no (government portal for public procurement) is the reference point for EHF specifications. DFØ operates the central SMP referencing the Organisasjonsnummer of the State, Fylker (10 merged regions since 2024), and 357 Kommuner.
Validation
- DFØ — Direktoratet: dfo.no — Directorate for Public Administration and Financial Management, SMP operator, EHF support.
- Anskaffelser.no: anskaffelser.no — public procurement portal, EHF specifications, online validator.
- Skatteetaten: skatteetaten.no — Norwegian Tax Administration, SAF-T, VAT rules, audits.
- Brønnøysundregistrene: brreg.no — Centralised Norwegian Registers, Organisasjonsnummer assignment.
- PEPPOL Norway Authority: anskaffelser.no/peppol — Norway PEPPOL authority, Access Point accreditation.
Common pitfalls
-
Mandatory full EHF Customization ID. The
CustomizationIDdouble-reference (PEPPOL + Anskaffelser) is mandatory for a destination Access Point to apply BR-NO rules. A PEPPOL BIS without Anskaffelser extension will be treated as generic BIS and may miss KID, reduced VAT etc. checks. - KID modulo 10 or modulo 11 by bank. The KID reference uses modulo 10 (standard Luhn algorithm) or modulo 11 (Norwegian algorithm) depending on the creditor bank. Verify the algorithm with the bank (DNB, Nordea, SpareBank 1) before issuing; silent rejection otherwise.
- Organisasjonsnummer MOD-11 checksum. The check uses MOD-11 with weight [3,2,7,6,5,4,3,2]. If the calculated check digit is 10, the Organisasjonsnummer is invalid (not assigned). Implement validation on ERP side before emission.
- NO outside EU — VAT and reverse charge. Norway is not an EU member: cross-border operations with the EU follow export/import rules, not intra-EU reverse charge. The Norwegian VAT ID does not validate via VIES; use Skatteetaten registration or Brønnøysund registry.
- 5-year archiving Bokføringsloven. The Accounting Act (Bokføringsloven 2004 § 13) mandates 5 years after the end of the fiscal year, extended to 10 years for certain documents (real estate investment goods invoices). Original UBL or PDF/A-3 format must be kept with integrity guarantees.
Cross-links
- EN 16931 — European semantic comparison (EHF 3.0 is compliant).
- PEPPOL — European network used in Norway for EHF.
- Sweden — Nordic neighbour on PEPPOL via DIGG.
- Denmark — Nordic neighbour with NemHandel/OIOUBL.
- Finland — Nordic neighbour with Finvoice and PEPPOL.
- Official sources: dfo.no, anskaffelser.no, skatteetaten.no.