How to add Peppol e-invoicing to your software without becoming an access point
Your customers need to send and receive Peppol invoices, and your product is where they create them. Here are the three ways to add it, what each one leaves to your team, and when each one fits.
Short answer
You don't need to become a Peppol access point. Map your invoices to JSON and call a Peppol API; a certified access point carries them across the network. If you send on behalf of your customers, pick a provider with a real multi-tenant sender model. getpeppr manages many customer legal entities under one master API key per environment, each identity-verified and authorised by the customer before it can send live invoices, with a TypeScript SDK and a free sandbox.
Three ways to add Peppol to your product
Become an access point yourself
- Join OpenPeppol and sign the Service Provider Agreement with your Peppol Authority, or with OpenPeppol where your country has none
- Run the network stack: an AS4 implementation and Peppol PKI certificates, plus SMP registration for the customers you receive for
- Pass OpenPeppol's AS4 onboarding test before you get a production certificate
- Generate and validate UBL, and stay compliant with the BIS specifications your service uses as they are released
Fits when e-invoicing is your product, not a feature of it.
Integrate an access point's API directly
- No accreditation on your side — the provider holds it
- You map your invoices to the provider's document model
- You build customer onboarding, identity handling and status reconciliation
Fits when you need broad direct infrastructure and have the team to build the layer above it.
Use a Peppol API built for software vendors
- Send JSON; validated UBL is generated and delivered for you
- Customer legal entities are created through the API; each customer authorises on a hosted page
- Status webhooks and a sandbox to test before anything is live
Fits when invoicing is a feature of your product. getpeppr, e-invoice.be and peppol.sh work this way.
- Peppol accreditation
Option 1 Yours to obtain and keep
Option 2 The provider's
Option 3 The provider's
- UBL generation and validation
Option 1 You build it
Option 2 Shared with the provider
Option 3 Handled by the provider
- Onboarding each customer company
Option 1 You build it
Option 2 You build it
Option 3 API, plus a hosted customer authorisation
- Keeping up with rulebook updates
Option 1 Your team
Option 2 Shared with the provider
Option 3 The provider
First decision: who is the sender?
Your own invoices
Your company sends
You bill your customers as one legal entity. One verified sender, one API key, many recipients. Every option above handles this.
On behalf of customers
Each customer sends under its own name
Each customer is a separate legal entity on the network. You need consent, identity checks and an explicit sender per invoice. Ask each provider how it does this before promising it to your customers.
What it looks like in code
import { Peppol, webhooks } from "@getpeppr/sdk";
const peppol = new Peppol({ apiKey: process.env.GETPEPPR_API_KEY! });
// 1. Send. `id` is the provider document GUID — store it on your invoice row.
const { id } = await peppol.invoices.send(invoiceData);
// 2. Status webhooks carry that same value. `event.data` is `unknown` on the
// envelope, so narrow it before reading the field.
const event = await webhooks.constructEvent(rawBody, signature, webhookSecret);
const { providerDocumentId } = event.data as { providerDocumentId?: string };
if (providerDocumentId === id) {
// Same document. Update the row you stored in step 1.
}Full walkthrough in the Platform sending and webhooks guide.
What getpeppr covers today
- Self-serve Peppol sending
- France, Belgium, Ireland, the United Kingdom, the Netherlands, Denmark, Germany, Sweden, Norway, Estonia and Iceland
- Platform plan
- EUR 99 / month
- EUR 0.25 per production document, sent or received. 50 customer legal entities included, then EUR 1 per registered legal entity per month.
- Sandbox
- Free
- Unlimited test documents and up to 10 test customer companies, before and after you go live.
This covers standard Peppol invoice sending and receiving. It is not a statement of any country's mandate, clearance or tax-reporting coverage.
Frequently asked questions
Do I need to become a Peppol access point to send e-invoices from my software?
No. You can connect through a certified access point, either by integrating its API directly or by using an API built for software vendors. Becoming an access point yourself means joining OpenPeppol, signing a Service Provider Agreement with your national Peppol Authority, running an AS4 implementation with Peppol PKI certificates and passing OpenPeppol's onboarding test — worth it when e-invoicing is your core product, rarely otherwise.
Can my SaaS send Peppol invoices on behalf of my customers?
Yes, if your provider supports a platform sender model: each customer is registered as its own legal entity, identity-verified, and authorises you to send in its name before any live invoice goes out. With getpeppr you create those legal entities through the API under one master key per environment; each customer then confirms on a getpeppr-hosted page, co-branded with your name, and a live send is refused until it has. The Platform plan includes 50 customer legal entities.
Is Peppol e-invoicing mandatory in Belgium?
Since 1 January 2026, Belgian VAT-taxable businesses must in principle issue structured electronic invoices to each other, under the law of 6 February 2024 (Moniteur belge, 20 February 2024), which added Article 53 §2bis to the VAT Code. The scope has exceptions — among them businesses without a Belgian establishment and those carrying out only Article 44 exempt supplies — and the law of 10 February 2026 narrowed it further and added a case where the recipient cannot technically receive a structured invoice. The default exchange is Peppol BIS over the Peppol network; another format is possible by mutual agreement and must still meet EN 16931. Check your own position against the sources below rather than treating this as advice.
How much does it cost to add Peppol for my customers?
On getpeppr's Platform plan: EUR 99 per month plus EUR 0.25 per production document sent or received, with 50 customer legal entities included and EUR 1 per month per registered legal entity beyond that. Production access follows a signed platform agreement and DPA.
Can I test before signing anything?
Yes. The sandbox is free and self-serve, with unlimited test documents and up to 10 test customer companies. You can also validate invoices offline with the CLI without an account at all.
Sources
- OpenPeppol — How to set up a Peppol Access Point (v2.1, April 2024) (opens in a new tab)
What becoming an access point requires: membership, Service Provider Agreement, PKI certificates, mandatory AS4 onboarding test.
- Loi du 6 février 2024 (Moniteur belge, 20 February 2024) (opens in a new tab)
The Belgian structured e-invoicing obligation between VAT-taxable businesses, and its 1 January 2026 start.
- Loi du 10 février 2026 — amendment to Article 53 §2bis (opens in a new tab)
The narrowed scope and the recipient technical-impossibility case, in force since 20 February 2026.
- SPF Finances — e-facture portal (opens in a new tab)
Who is in scope and out of scope, and that Peppol BIS is the default format absent mutual agreement.
- OpenPeppol — certified service providers (opens in a new tab)
The official register of certified Peppol access points — the list to check a provider against, whoever you are evaluating.
Add Peppol to your product
Create a free sandbox, send a test invoice, and check it against your own invoice data before you talk to anyone.
Free sandbox forever, no credit card. Production access follows a signed platform agreement and DPA. Or read the Platform docs first.