Search

Peppol Network

Peppol provides a standardised way to exchange electronic business documents between buyers and suppliers, both domestically and across borders. Document exchange takes place through Peppol Certified service providers that connect businesses to the Peppol network, handling the secure sending and receiving of electronic documents, which connect trading partners to the network.

Maventa is a certified Peppol Access Point, registered in the Peppol network as Visma Software International AS. By integrating with Maventa, you can offer Peppol connectivity to your customers.

How Peppol exchange works

Peppol uses a four-corner model. The sender (C1) hands the document to their Access Point (C2), which looks the recipient up in the network’s address registry to find out which Access Point serves them and which formats they accept. C2 then transmits the document to the recipient’s Access Point (C3), which passes it on to the recipient (C4).

When you send through Maventa, Maventa is C2. You interact only with your own system and the Maventa API — everything from C2 onwards is handled for you. The same applies in reverse when your customer receives: Maventa is C3, and you collect the document from Maventa.

What Maventa handles for you

A certified Access Point is only required to do three things: send and receive Peppol documents, validate them against the Peppol Schematron rules, and register participants in an SMP.

Peppol membership carries considerably more than that. Access Point certificates have to be rotated every 24 months, every registered company has to be verified annually against public business registries, transaction and end-user statistics have to be reported to OpenPeppol, and an annual eligibility test suite has to be passed to stay compliant. Maventa handles all of it — none of it reaches your integration.

On top of the compliance work, Maventa adds a layer that keeps traffic flowing when the network does not behave:

Sending invoices via Peppol

Sending invoices through the Peppol network does not require separate registration. Maventa customers can send invoices to Peppol recipients the same way they send invoices through any other network.

To send an invoice via Peppol, provide the recipient’s Peppol address and set PEPPOL as the operator.

Peppol addresses

A Peppol address is the recipient’s electronic invoicing address within the Peppol network. It consists of two parts:

For example, in Norway the prefix for organisation numbers is 0192. A Norwegian company with organisation number 123456789 would have the Peppol address 0192:123456789.

Recipient lookup

To check whether a company can receive invoices via Peppol, use Maventa’s Peppol participant lookup tool or the GET /v1/lookup/receivers API method.

The lookup confirms whether the recipient is registered in the Peppol network and returns their Peppol address and supported document types (such as INVOICE or CREDIT_NOTE).

For detailed instructions on using the lookup API — including parameters, request examples, and automatic routing — see the recipient lookup and routing section in the invoice sending guide.

When searching for Peppol recipients through the lookup API, there is a known limitation. To perform a Peppol Directory lookup, use the name field for either the recipient’s name or business ID. The bid field does not currently work for Peppol lookups. This will be corrected in a future version of the API.

Testing Peppol sending

The Maventa testing environment is connected to the Peppol test network, so Peppol sends are processed as real transactions within the test network. You can register one of your test accounts as a Peppol receiver — the registration is created in the Peppol test environment. Then send an invoice to that account from another test account to verify the full Peppol flow end to end. You can also use Peppol’s public test endpoints to send test invoices without needing a real Peppol recipient.

Format selection and conversion

You do not need to choose the output format yourself — Maventa selects it automatically based on what the recipient can receive:

  1. SMP lookup — Maventa looks up the recipient in the Peppol SMP (Service Metadata Publisher) and retrieves the document formats they have registered to accept.
  2. Format selection — Maventa picks a format that the recipient accepts and that Maventa supports. The formats Maventa supports in each market are listed on the country pages under Services & Reach. Peppol BIS Billing 3.0 is the default and is used for all cross-border traffic. For domestic traffic — where the sender and receiver are in the same country — a national format is preferred when the recipient has registered one and Maventa supports it, for example XRechnung in Germany or SI-UBL in the Netherlands.
  3. Automatic conversion — if the invoice is not already in the selected format, Maventa converts it before sending.

All invoices are validated against Peppol rules before transmission — invoices that fail validation cannot be sent.

National formats such as XRechnung (Germany) and SI-UBL (Netherlands) are used only for domestic Peppol traffic. In cross-border traffic, Peppol BIS Billing 3.0 is always used, even if the recipient has also registered a national format.

In some countries a national format is required for certain domestic invoicing — for example, XRechnung is required for invoices to German public-sector bodies — which is why Maventa prefers the national format for domestic traffic. Peppol BIS Billing 3.0 remains valid for cross-border invoicing everywhere. See the country pages under Services & Reach for country-specific format details.

For more information about Peppol formats, see the Peppol profiles and specifications.

When delivery does not succeed immediately

The Peppol network is not free of technical problems. A receiving Access Point can be down, a certificate can have expired at the other end, or a large payload can be rejected on the first attempt.

Maventa identifies these failure modes and retries automatically — around 20 attempts spread over two days — before reporting the send as failed. During that window the invoice stays in a sending state rather than failing, so there is no need to resend from your side.

Documents that hit a problem Maventa has not seen before are held in a quarantine area for investigation. In many cases the issue is resolved there and the document is delivered without the sender ever being involved.

Do not build automatic resending on top of a send that has not yet reported a final status. Use webhooks to react to the final outcome instead.

Receiving invoices via Peppol

To receive invoices through the Peppol network, a company must be registered as a Peppol receiver.

Once registered, the company can receive electronic invoices from any sender connected to the Peppol network. The company’s details are published in the Peppol Directory, which serves as a shared address book listing all registered receivers, their supported document types, and format versions.

Document types

During registration, the company selects which document types it wants to receive:

Registering as a Peppol receiver

Once a company account has been created in Maventa and receiving is enabled (VISMA network), the company can be registered as a Peppol receiver by creating a Peppol profile.

Maventa registers the company in the Peppol Service Metadata Publisher — a registry that stores which organisations can receive documents via Peppol and how to reach them, which then synchronises with the Peppol Directory.

If the company is already registered to receive invoices through a different Access Point, that registration must be removed by the previous Access Point before Maventa can complete the new registration.

Company email requirement

The company email must be set on the Maventa account before registration (required at minimum in Norway).

Register for invoices and credit notes

Call POST /v1/company/profiles with the following parameters:

After registration completes, the response includes the Peppol address the company was registered with.

To receive notifications when registration completes, register a webhook with the NETWORKS event type.

Use GET /v1/company/profiles to view active profiles for the PEPPOL network.

Register for self-billing

Call POST /v1/company/profiles with the following parameters:

Use GET /v1/company/profiles to view active profiles for the PEPPOL network.

Remove a registration

To remove a company from the Peppol network, call DELETE /v1/company/profiles with the profile ID of the registration to delete.

Supported countries and identifiers

Maventa registers companies with the following identifiers (schemes):

Country Identifier Prefix
Finland Organisaatioiden Välinen Tiedonsiirto — a Finnish electronic address identifier created by combining prefix '0037' with the Business ID 0216
Sweden Organisation number 0007
Norway Organisation number 0192
Denmark Det Centrale Virksomhedsregister — the Danish Central Business Register number 0184
Netherlands Kamer van Koophandel — the Dutch Chamber of Commerce registration number or VAT number Depends on which identifier was used to register the company account in Maventa
Belgium Organisation number (Crossroads Bank for Enterprises — the Belgian business register number, also known as KBO in Dutch) 0208
Germany VAT number 9930
France Système d'Identification du Répertoire des Entreprises: a 9-digit number identifying the French legal entity or Système d'Identification du Répertoire des Établissements: a 14-digit number identifying a specific establishment, formed from the SIREN plus a 5-digit NIC suffix Depends on which identifier was used to register the company account in Maventa
Estonia Registrikood: the Estonian company registration code held in the e-Business Register (Äriregister) or VAT number Depends on which identifier was used to register the company account in Maventa
Latvia VAT number 9939
Poland VAT number (Numer Identyfikacji Podatkowej: the Polish tax identification number) 9945
Italy VAT number (The Italian VAT identifier) 9906

Where a country has two options, the prefix follows the identifier used to create the company account in Maventa. An Estonian company created with a company code registers under 0191, and one created with a VAT number registers under 9931. An Estonian company cannot be registered under both. France and the Netherlands follow the same rule for choosing the prefix.

Poland and Italy are available to selected partners only, and both route domestic traffic through a national platform rather than Peppol. See e-invoicing in Poland and e-invoicing in Italy before registering.

For France, this Peppol registration covers cross-border traffic only. Domestic French invoicing runs through the regulated network, where the company is registered separately under scheme 0225. See e-invoicing in France for the full picture.

To register a participant outside of these countries or with a different identifier, contact Maventa.

Registration timing

Registrations are usually processed immediately. If there are issues with the Peppol register, there may be a delay of up to a few days.

Before registering

Before creating a new registration, check the company’s existing registrations with GET /v1/company/profiles:

When adding profiles to a company that is already registered — for example adding self-billing on top of an existing INVOICE_AND_CREDIT_NOTE registration — send only the profiles that are not yet registered. The POST /v1/company/profiles request is processed as a single operation: if any profile in the profiles array is already registered for the company, the entire request fails and none of the new profiles are added. Do not re-send profiles that are already active.

Message Level Status (MLS)

Message Level Status (MLS) is a new Peppol message that tells the sending Access Point what happened to a document after it left the network — whether the receiving Access Point accepted it, rejected it, or could not pass it on to the recipient. It replaces the older Message Level Response (MLR).

MLS is exchanged between Access Points (C2 and C3), not between trading partners. As a Maventa integrator you do not send or receive MLS messages yourself — Maventa handles them on your behalf and reflects the outcome in the invoice status and events you already consume.

MLS is a technical delivery status. It is not a business response. If you need the buyer to communicate an approval, rejection, or payment status, that is still an invoice response.

What changes for integrators

Timeline

OpenPeppol has published a phased rollout. The dates below come from the Peppol MLS Phase-In and Peppol MLR Deprecation and Phase-out plans.

Date Milestone
1 July 2026 Specifications in force. Access Points begin implementing.
28 February 2027 All Access Points must be able to receive MLS, with the capability registered in the SMP.
31 March 2027 Sending MLS becomes mandatory. Service levels become enforceable.
1 May 2027 MLR fully retired — no Access Point may send or receive it. Planned date; the phase-out plan is still under member review.

If your integration reads MESSAGE_LEVEL_RESPONSE documents from the Documents endpoint, plan to remove that handling. Do not register new companies for the MLR profile.

MLS support is currently being implemented at Maventa, in line with the OpenPeppol timeline. No action is required from integrators — we will announce the release in the developer changelog, including what MLS-derived statuses look like on invoices and documents.

For the full specifications, see the Peppol eDelivery documentation.

Back to top

AI Chat Support 24/7

  • Get help via AI chat available 24/7 whenever it suits you
  • Chat extensively uses Maventa support pages, websites, and blogs in its answers
  • If you need assistance that the AI cannot provide, you can also ask a customer service agent to join the conversation
  • Support requests processed Monday to Friday
Cancel Open chat

Got feedback?

Did you not find what you were looking for? Or was something explained unclearly? Or just want to share your thoughts? We are happy to hear your feedback!

Note: This form is not a way to get support, this is only for feedback for the documentation website. If you need support, please contact Maventa support.

Integration Guide Services & Reach API Specification Changelogs Integration guide Getting Started Invoice sending Consumer Invoicing Printing Email invoicing Invoice receiving Scanning Detect Fraud reporting Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Validation Peppol BIS 3.0 Finvoice 3.0 Document types and type codes Maventa JSON (table) Maventa JSON (json schema) Companies and Settings Department Company Users Billing Accounts receivable Ropo's reminder and collection service Amili Kassavirta Amili Perintä Receivables webhooks Services and reach Maventa services and reach e-invoicing in Finland Mass Printing Service e-invoicing in Sweden e-invoicing in Norway e-invoicing in Denmark e-invoicing in the Netherlands e-invoicing in Belgium e-invoicing in Germany e-invoicing in Estonia e-invoicing in Latvia e-invoicing in Poland e-invoicing in Italy e-invoicing in France e-invoicing in Spain Api specification API overview Getting Started Common & authentication API Invoices API Documents API Companies & settings API Lookups API Detect API Validator API Receivables API Billing API Scanning API B2CFI API B2CNO API B2CSE API Partner API Getting Started Account Configuration API Methods Invoice Sending API Methods Invoice Receiving API Methods B2C Norway API Methods B2C Finland API Methods Other API Methods Changelogs Product changelog Developer Changelog
Clear Send

Enter your credentials to Maventa testing environment, to authenticate and try things out with the Swagger UI. This will fetch a Bearer token using OAuth2 with the endpoint POST https://ax-stage.maventa.com/oauth2/token. The token is stored in your browser's session storage (cleared when you close the tab) and used in Swagger calls done from this documentation website. The token is valid for 1 hour.

Never use your production credentials here. This is only for testing the Maventa test environment in the Swagger UI.
Reset All None
eui global company lookup document:receive document:send invoice:receive invoice:send company:read company:write validate receivables:assignments analysis billing:reports partner:invoice_delivery_actions partner:lookups partner:takeovers partner:lyanthe_scan_service fi_bank_message:send fi_bank_message:receive
Cancel Sign In