ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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

Technical specs

Real-world B2B usage

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/ID with schemeID NO:KID for 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Ø:

xmlehf-3p0.xml
<?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).

textno-ehf-flow.txt
┌──────────────┐    ┌────────────────────┐    ┌──────────────┐
│ 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

  1. Mandatory full EHF Customization ID. The CustomizationID double-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.
  2. 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.
  3. 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.
  4. 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. 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.