PEPPOL BIS Billing (EHF/OIO)
PEPPOL (Pan-European Public Procurement OnLine) BIS Billing is an international standard for electronic invoicing that enables automatic end-to-end distribution of invoices and credit notes through the PEPPOL Network.
Similar to how INFO-Subscription automatically delivers Norwegian eFaktura eInvoices to consumers, the platform has an integration that allows automatic distribution of invoices and credit notes through the PEPPOL Network to businesses and organizations.
Supported Countries
INFO-Subscription currently supports PEPPOL invoicing for the following countries:
Norway - Uses EHF (Elektronisk Handelsformat) format
Denmark - Uses OIO (Offentlig Information Online) format
Sweden - Uses OIO format
Note
Although OIO is a Danish name, the same format is used for both Denmark and Sweden within the PEPPOL network.
Payment Provider Types
The Payment Provider type varies by country:
EHF (Norway)
Provider Type: EHF
Required Identifier: Norwegian Organization Number (9 digits)
Use Case: Business-to-business and business-to-government invoicing in Norway
OIO (Denmark)
Provider Type: OIO
Required Identifier: CVR (Central Business Register number, 8 digits) or GLN (Global Location Number, 13 digits)
Use Case: Business-to-business and business-to-government invoicing in Denmark
Note
For Danish organizations, CVR is the most commonly used identifier. GLN is typically used for larger organizations with multiple locations or specific supply chain requirements.
Note
GLN was previously communicated as EAN (European Article Number), so many people know OIO invoicing as “EAN invoicing”. Both terms refer to the same identifier system.
OIO (Sweden)
Provider Type: OIO
Required Identifier: GLN (Global Location Number)
Use Case: Business-to-business and business-to-government invoicing in Sweden
Registration Process
Unlike eFaktura, AvtaleGiro, or similar consumer-facing payment methods, there is no automatic mandate registration or scanning for PEPPOL invoicing. The subscriber or merchant needs to manually register the PEPPOL endpoint information.
The registration process follows these steps:
Verify that the recipient is registered in the PEPPOL network (using the lookup endpoint).
Create a provider agreement with the appropriate identifiers.
Create a payment agreement pointing to the provider agreement.
Register the payment agreement for the subscription.
PEPPOL Network Lookup
Before creating a PEPPOL agreement, you can verify that the recipient exists in the PEPPOL network using the lookup endpoint:
Endpoint: Invoice Document Network Lookup
Important
To use the lookup endpoint, you must know the Document Network (i.e., the target country) of the subscriber. It is the recipient’s country that matters, not the selling organization’s or merchant’s country.
Example lookup request for Norway (EHF):
{
"documentNetwork": "0192",
"recipientIdentifier": "999999999"
}
Example lookup request for Denmark (OIO):
{
"documentNetwork": "0096",
"recipientIdentifier": "10150817"
}
Example lookup request for Sweden (OIO):
{
"documentNetwork": "0107",
"recipientIdentifier": "7312345678901"
}
Note
The documentNetwork parameter uses ISO6523 codes:
0192 - Norway (EHF)
0096 - Denmark (OIO)
0107 - Sweden (OIO)
For more details, see the PEPPOL ICD codelist.
Registration Workflow
The following sequence diagram illustrates the typical PEPPOL agreement registration process:
%%{init: { 'sequence': { 'mirrorActors': false } } }%%
sequenceDiagram
actor Merchant
participant API as INFO-Subscription API
participant PEPPOL as PEPPOL Network
Merchant->>API: Lookup recipient in PEPPOL network<br/>(POST /invoice/documentnetworklookup)
API->>PEPPOL: Query recipient registration
PEPPOL-->>API: Recipient found/not found
API-->>Merchant: Lookup result
alt Recipient is registered in PEPPOL
Merchant->>API: Create subscriber<br/>(if not exists)
API-->>Merchant: Subscriber ID
Merchant->>API: Create provider agreement<br/>(POST /paymentagreement)
Note right of API: Include:<br/>- ProviderType: EHF or OIO<br/>- Identifier (Org.nr, CVR, GLN)
API-->>Merchant: Provider Agreement ID
Merchant->>API: Register payment agreement<br/>for subscription<br/>(POST /subscription/{id}/changePaymentAgreement)
API-->>Merchant: Payment agreement registered
Note right of API: Future invoices will be<br/>sent via PEPPOL network
else Recipient not in PEPPOL
Merchant->>Merchant: Use alternative payment method
end
Creating a PEPPOL Agreement
To create a PEPPOL payment agreement, you need to:
Determine the appropriate provider type based on the recipient’s country:
Norway →
EHFDenmark →
OIOSweden →
OIO
Gather the required identifier:
For EHF (Norway): Norwegian Organization Number
For OIO (Denmark): CVR or GLN
For OIO (Sweden): GLN
Create the payment agreement using the Payment Agreement endpoint:
Example request for EHF (Norway):
{
"subscriberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"providerType": "EHF",
"providerAgreementReference": "999999999",
"paymentMethod": "eInvoice"
}
Example request for OIO (Denmark with CVR):
{
"subscriberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"providerType": "OIO",
"providerAgreementReference": "10150817",
"paymentMethod": "eInvoice"
}
Example request for OIO (Sweden with GLN):
{
"subscriberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"providerType": "OIO",
"providerAgreementReference": "7312345678901",
"paymentMethod": "eInvoice"
}
Assign the agreement to the subscription using the change payment agreement endpoint.
Invoice and Credit Note Distribution
Once a PEPPOL agreement is registered and active:
Invoices generated for the subscription will automatically be sent through the PEPPOL network to the recipient’s endpoint.
Credit Notes will also be distributed through the PEPPOL network.
The recipient will receive the documents in their accounting system or PEPPOL access point.
The distribution is fully automated once the agreement is in place.
Differences from Consumer eInvoicing
PEPPOL invoicing differs from consumer-focused solutions like eFaktura in several key ways:
Feature |
Consumer eInvoicing (eFaktura) |
PEPPOL (EHF/OIO) |
|---|---|---|
Target Audience |
Consumers (B2C) |
Businesses/Organizations (B2B/B2G) |
Registration |
Automatic scanning available |
Manual registration required |
Mandate Discovery |
System can scan for mandates |
Lookup endpoint must be used |
Network Type |
National (Norway) |
International (PEPPOL) |
Payment Type |
Direct from consumer |
Invoice-based (no direct payment) |
See Also
Payment Agreements - General information about payment agreements
Invoice API - Invoice management endpoints
Payment Agreement API - Payment agreement endpoints