EHF Billing 3.0
Norway · officially identical to Peppol BIS 3.0EHF Billing 3.0 is Norway's e-invoice profile — and, since Digdir's October 2025 announcement, it's officially just Peppol BIS Billing 3.0 with no extensions and no rules of its own. If you already generate and validate Peppol BIS invoices, you already generate and validate EHF.
Part of CrateAPI's format coverage — see all formats.
What it is
EHF Billing 3.0 doesn't have a separate rule set: Digdir's October 2025 announcement (anskaffelser.dev) confirms it's implemented as Peppol BIS Billing 3.0 without extensions or extra rules, and we verified this empirically too — the official EHF rules package has no separate billing schematron at all. CrateAPI validates and generates EHF on the exact same pipeline as Peppol; profile=ehf is a separate, discoverable name for it, not a separate rule engine.
Where it's mandatory
Norway runs its e-invoicing over the Peppol network (Digdir/DFØ); EHF Billing 3.0 is the name it uses for that traffic. We don't have a verified mandate-tracker entry for Norway yet, so check anskaffelser.dev directly for current requirements by sector rather than a date from us.
What we don't do. CrateAPI doesn't transmit invoices to the Peppol network or any Access Point — we generate and validate EHF XML; sending it runs over your own Peppol Access Point, same as any other Peppol profile.
Try it
curl -X POST "https://api.crateapi.com/v1/generate/ubl?profile=ehf" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d @invoice.json -o invoice.xml
Relevant endpoints
| Endpoint | Notes |
|---|---|
POST /v1/generate/ubl?profile=ehf | Same pipeline as Peppol BIS Billing 3.0 — a separate profile name for discoverability, not a separate rule set. |
POST /v1/validate/ubl?profile=ehffree | Free, no API key — same free-forever validation as every other profile. |
Convert and render aren't extended to this profile yet — generate and validate are live today, convert/render are next.
Samples & docs
Read the full API reference for exact parameters, or try the format with your own file in the free validator.
FAQ
Is EHF Billing 3.0 really the same as Peppol BIS 3.0?
Yes — per Digdir's official announcement (anskaffelser.dev, October 2025), EHF Billing 3.0 is implemented as Peppol BIS Billing 3.0 without extensions or additional rules. We verified this empirically too: the official EHF rules package has no separate billing schematron.
Do I need a different call if I already generate Peppol invoices?
No — the XML is identical either way; profile=ehf exists as a separate, discoverable name so Norwegian integrations can ask for it explicitly, not because the rules differ.
Does CrateAPI send invoices into the Peppol network?
No — we generate and validate the XML; transmission runs over your own Peppol Access Point, same as any Peppol-based profile.