Guide · source-checked 2026-09-18
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
They all end on the same network. What changes is how much of it your team has to build and keep up to date.
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
- Become an access point yourself:
- Yours to obtain and keep
- Integrate an access point's API directly:
- The provider's
- Use a Peppol API built for software vendors:
- The provider's
UBL generation and validation
- Become an access point yourself:
- You build it
- Integrate an access point's API directly:
- Shared with the provider
- Use a Peppol API built for software vendors:
- Handled by the provider
Onboarding each customer company
- Become an access point yourself:
- You build it
- Integrate an access point's API directly:
- You build it
- Use a Peppol API built for software vendors:
- API, plus a hosted customer authorisation
Keeping up with rulebook updates
- Become an access point yourself:
- Your team
- Integrate an access point's API directly:
- Shared with the provider
- Use a Peppol API built for software vendors:
- The provider
First decision: who is the sender?
This one question decides which option fits. Answer it before comparing providers.
Your company sends
You bill your customers as one legal entity. One verified sender, one API key, many recipients. Every option above handles this.
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
Send an invoice, keep the id, match status webhooks on the same id.
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
These figures come from the same constants the pricing page uses, kept in step with the product by parity tests.
Self-serve Peppol sending
France, Belgium, Ireland, the United Kingdom, the Netherlands, Denmark, Germany, Sweden and Norway
Assisted onboarding in .
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
Every external claim on this page was checked against a primary source on 2026-09-18. Mandates and provider offerings change — re-check the linked source before making a decision.
- OpenPeppol — How to set up a Peppol Access Point (v2.1, April 2024) →
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) →
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 →
The narrowed scope and the recipient technical-impossibility case, in force since 20 February 2026.
- SPF Finances — e-facture portal →
Who is in scope and out of scope, and that Peppol BIS is the default format absent mutual agreement.
- OpenPeppol — certified service providers →
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.