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.

EHF — national PEPPOL format, mandatory B2G since 2012

EHF (Elektronisk Handelsformat, "electronic commerce format") is Norway's e-invoicing format. In practice it is Norway's PEPPOL BIS Billing profile: a UBL 2.1 message carried over the PEPPOL network, plus a few national rules. For newcomers: think of a Europe-wide standardised XML invoice, to which Norway has added its own checks. Made mandatory for state suppliers in 2012, EHF is one of the world's earliest universal B2G mandates.

History — from the 2012 mandate to EHF 3.0

Norway digitised public procurement very early. The agency Difi (Agency for Public Management and ICT) drove EHF from 2008-2010, building on Danish UBL work (OIOUBL). By 2012 the state required EHF from its suppliers: it was one of the first countries in the world to mandate a universal structured e-invoice for the public sector. As PEPPOL gained momentum — with Norway a founding PEPPOL Authority — EHF converged on the PEPPOL BIS profiles, until EHF 3.0 (2017) literally became PEPPOL BIS Billing 3.0 augmented with national rules.

text ehf-timeline.txt
2008-2010  | Difi (Agency for Public Management and ICT) coordinates the
           | digitisation of public procurement. First EHF work
           | (Elektronisk Handelsformat) based on Danish UBL/OIOUBL.
           |
2011       | EHF 1.x published — invoice + credit note in UBL 2.0. The
           | government announces a B2G mandate timeline.
           |
2012       | B2G mandate: every central-government supplier must issue
           | invoices in EHF. One of the world's FIRST universal B2G
           | mandates — ahead of Italy (SdI 2014).
           |
2013-2014  | EHF 2.0 — alignment with PEPPOL BIS profiles. Norway is
           | already a founding PEPPOL Authority (OpenPEPPOL 2012).
           |
2017       | EHF 3.0 = PEPPOL BIS Billing 3.0 + national rules (CIUS).
           | Migration to UBL 2.1, EN 16931 conformance (EU/EEA mandate).
           |
2019       | Difi becomes Digdir / e-invoicing responsibility moves to
           | DFØ (Agency for Public and Financial Management).
           |
2024-2026  | EHF 3.0 stable. Norway among the highest PEPPOL adoption
           | rates worldwide. Alignment work with ViDA / Digital Reporting.

Governance — DFØ (formerly Difi)

EHF is governed by DFØ (Direktoratet for forvaltning og økonomistyring — Agency for Public and Financial Management). The agency history is a classic pitfall: responsibility moved from Difi (until 2019) to Digdir and then to DFØ, which today publishes the EHF specifications, the Schematron rule sets and the documentation on Anskaffelser.no (the public procurement portal).

As the national PEPPOL Authority, DFØ also accredits Norwegian Access Points and Service Metadata Publishers, and represents Norway within OpenPEPPOL. Any change to the national rules (CIUS) follows the PEPPOL BIS release cycle, two windows per year (spring / autumn).

Technical schema — UBL 2.1 + Norwegian CIUS

EHF 3.0 is not a proprietary schema: it is UBL 2.1 constrained by PEPPOL BIS Billing 3.0, itself a CIUS (Core Invoice Usage Specification) of EN 16931. Norway adds a layer of national rules enforced by Schematron files. Key points:

  • CustomizationID — declares EN 16931 conformance + the PEPPOL billing 3.0 profile.
  • EndpointID / CompanyID schemeID="0192" — the Norwegian PEPPOL participant ID: the organisasjonsnummer (9 digits) under ICD code 0192.
  • DocumentCurrencyCode — usually NOK on the domestic market.
  • TaxTotal / TaxSubtotal — VAT category codes (S, AA, Z, E…) and Norwegian MVA rates (25 / 15 / 12%).
  • National rules NO-R-xxx — Norway-specific Schematron checks (e.g. organisasjonsnummer consistency, KID reference format).
xml ehf-3.0-invoice.xml
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
  <cbc:ID>2026-04211</cbc:ID>
  <cbc:IssueDate>2026-06-16</cbc:IssueDate>
  <cbc:DocumentCurrencyCode>NOK</cbc:DocumentCurrencyCode>

  <cac:AccountingSupplierParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0192">991825827</cbc:EndpointID>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Bergen Maritime Engineering AS</cbc:RegistrationName>
        <cbc:CompanyID schemeID="0192">991825827</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingSupplierParty>

  <cac:AccountingCustomerParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0192">974761076</cbc:EndpointID>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Statens vegvesen</cbc:RegistrationName>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingCustomerParty>

  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="NOK">3000.00</cbc:TaxAmount>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:TaxExclusiveAmount currencyID="NOK">12000.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="NOK">15000.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="NOK">15000.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
</Invoice>

EHF vs PEPPOL BIS vs Factur-X

DimensionEHF 3.0 (NO)PEPPOL BIS 3.0Factur-X (FR)
SyntaxUBL 2.1UBL 2.1 / CIIPDF/A-3 + embedded CII
BaselineEN 16931 + PEPPOL CIUSEN 16931 (CIUS)EN 16931 (profiles)
National rulesSchematron NO-R-xxxNone (pan-European)French profiles
Native transportPEPPOL (AS4)PEPPOL (AS4)Independent (PDF email, PPF…)
Identifierorg.nr ICD 0192country-dependentSIRET / SIREN
B2G mandate2012 (pioneer)varies2026+ (France)

Adoption — universal B2G, rising B2B

  • B2G: 100% mandatory. Every state supplier and, by extension, suppliers to municipalities (kommuner, fylkeskommuner) must issue EHF since 2012, with the obligation later generalised across the public sector.
  • B2B: voluntary but massive. EHF is the de facto B2B rail in Norway — large buyers require EHF from their suppliers, pulling private adoption well beyond the legal scope.
  • Receiving via PEPPOL. Because EHF travels on PEPPOL, a foreign supplier connected to the network can invoice a Norwegian public entity without bespoke integration.
  • Volume. Norway is among the highest-PEPPOL-adoption countries worldwide, with hundreds of millions of documents exchanged on the network each year.

Common pitfalls

  • Conflating EHF and PEPPOL BIS. EHF 3.0 IS PEPPOL BIS 3.0, but with extra Norwegian Schematron rules. An invoice that passes generic PEPPOL validation can still fail a NO-R-xxx rule.
  • Forgetting schemeID 0192. In Norway the PEPPOL participant ID is the organisasjonsnummer under ICD 0192. Using another scheme breaks SMP/SML routing.
  • Assuming EHF died with Difi. The agency changed name (Difi → Digdir → DFØ for e-invoicing), but EHF is very much alive. Searching docs under "Difi" leads to stale pages.
  • Currency. The domestic market invoices in NOK; an EUR amount without the correct exchange rate fails consistency checks.
  • Encoding. EHF 3.0 mandates UTF-8. Older EHF 2.0 flows tolerate other settings — never mix versions.