Free sandbox · Certified Peppol AP · Multi-country

Peppol e-invoicing API in just two calls

A Peppol e-invoicing API that hides the BIS schemas, the access-point onboarding, and the schematron. Send Peppol invoices by posting JSON, receive Peppol invoices through a signed webhook. Peppol integration with your ERP, accounting system or SaaS, on every Peppol-connected country. Free sandbox, pay-per-invoice from €0.18.

JSON in, UBL out

Skip the XML hell. Send simple JSON. We handle Peppol compliance for you.

Ship fast

Same code from sandbox to production. Flip an env var to go live.

Sandbox first

Test mode emails the UBL XML to you instead of routing it through Peppol. Develop without sending real invoices.

// 1. Submit your invoice data
POST /api/documents
// 2. Send via Peppol network
POST /api/documents/:id/send
3,000+
customers on the e-invoice.be platform
Certified Peppol Access Point
30+ countries reachable. Real invoices processed every day, not a reseller or marketplace.
Live since 2025
Production traffic across the EU and global Peppol network. SDKs for five languages plus MCP.

Peppol integration in days, not months

Two REST calls cover send and receive. The API handles BIS 3.0 validation, UBL serialisation, and Peppol routing. PDF to Peppol works too.

Two calls. JSON in, UBL out.

Send the invoice as flat JSON, the API generates Peppol BIS 3.0 UBL XML and routes it through our certified Peppol Access Point. Inbound flows back as JSON.

  • PDF, JSON or UBL accepted on the way in
  • Invoices, credit notes, debit notes, self-billing
  • Per-document timeline of every state change
Request log2 calls · 231ms
  1. 1POST/api/documents201142ms
  2. 2POST/api/documents/:id/send20289ms
Delivered to participant inbox
Read the quickstart

Sandbox without sending

Test mode validates and serializes exactly like production, then emails the UBL XML to you instead of routing it through Peppol. Same code, same shapes, one env var to flip.

Active
Sandbox
Switch
Production
Mode
Test mode
Output
UBL by email
Cost
€0
Get sandbox keys

Send on behalf of N customers, not just yourself

Manage tenants through one integration. Create accounts, mint and rotate per-tenant API keys, and register your customers on the Peppol network programmatically. Built for SaaS, ERPs, and managed-service partners.

  • Provision tenants and credentials in code
  • Per-tenant API keys with rotation and revocation
  • Register customers on Peppol on their behalf
Tenants4 of 142
  • ten-9k2m4p…acme-bvbaLive
  • ten-3p8r2t…beta-sarlLive
  • ten-7w4x6y…delta-gmbhPending
  • ten-5h2k9m…gamma-bvDraft
One organization key · N tenants
Request access

No XML, no schemas, no headache

We own the BIS 3.0 mapping and the schematron validation. You own the JSON, which uses flat fields like vendor_name and customer_peppol_id.

  • EN16931 + Peppol BIS Billing 3.0 compliance
  • Validation errors with hints, not stack traces
  • Validate JSON or UBL before you commit a doc
Request · JSON
vendor_name: "Acme NV"
customer_peppol_id:
"0208:0123456789"
invoice_id: "INV-101"
items: [...]
Response · UBL
<?xml version="1.0"?>
<Invoice xmlns="…">
<ID>INV-101</ID>
…BIS 3.0…
</Invoice>
Schema reference

Inbound is a webhook, not a poll

Subscribe once, get HMAC-SHA256-signed POSTs on every send and receive event. Polling is also supported via the REST API.

  • document.received, document.sent and their .failed twins
  • X-Signature header verifies authenticity end-to-end
  • Per-webhook delivery history and a /test endpoint
Event streamLive
  • document.receiveddoc_3k8d9f…just now
  • document.sentdoc_2f4h6j…12s ago
  • document.sent.faileddoc_8h3j5k…1m ago
  • document.receiveddoc_9m2p4r…3m ago
HMAC-SHA256 · X-Signature header
Webhook docs

MCP server for AI agents

Twelve read-only tools over the Model Context Protocol. Connect Claude, Cursor or VS Code to inspect invoices, look up Peppol participants, and pull stats. Sends still go through the REST API.

mcp tools12 available
  • get_document
  • get_inbox
  • get_outbox
  • get_lookup_peppol_id
  • get_lookup_participants
  • get_stats
Claude · Cursor · VS Code
MCP server

Drop into Cursor or Claude Code

Point your AI coding tool at the OpenAPI spec and ship typed integration code in minutes. The same spec backs our SDKs, the MCP server, and agent-discovery files, so autonomous agents are covered too.

Paste this into your AI tool
https://api.e-invoice.be/api/openapi.json
OpenAPI 3.1 · always in sync with the API
  • CursorAdd to chat context
  • Claude CodeReference in your prompt
  • GitHub CopilotWorkspace reference
Also discoverable: agent.json · A2A · MCP server
View OpenAPI spec

What is Peppol e-invoicing?

Peppol is a standardised network for exchanging electronic business documents. It uses a four-corner model: a sender submits an invoice through their Access Point, the Peppol network routes it via SML/SMP lookup, and the receiver's Access Point delivers it. All invoices follow EN16931 and UBL 2.1 (Peppol BIS 3.0). Belgium made B2B Peppol e-invoicing mandatory in January 2026. Over 30 countries are reachable on the network today.

e-invoice.be is a certified Peppol Access Point. The API lets developers send and receive Peppol invoices by posting JSON. The platform handles UBL serialisation, schematron validation, AS4 transport, and participant registration.

What is Peppol e-invoicing?

Peppol e-invoicing is how businesses send invoices as structured data across the Peppol network, instead of as PDFs in email.

Every invoice is a Peppol BIS 3.0 UBL XML document, validated against EN16931 rules and routed through certified Peppol Access Points straight into your customer's ERP or accounting system. Belgium B2B started in 2026, France phases in from 2026, Germany B2B follows in 2027, and the rest of the EU joins under ViDA by 2030. The Peppol network already reaches the UK, Australia, New Zealand, Singapore and dozens of other countries.

What is the Peppol API?

An e-invoicing API for sending and receiving Peppol invoices over the network. Send JSON, receive UBL.

The Peppol API from e-invoice.be takes compact JSON, generates compliant Peppol BIS 3.0 UBL XML, routes it through a certified Peppol Access Point, and delivers it to your customer's inbox. Inbound invoices flow back as JSON or webhook events. Built for ERP, SaaS, and managed-service integrations across every Peppol-connected country. One integration covers the EU and worldwide.

One API, 30+ countries

Every Peppol-connected country reachable through a single integration. Country-specific format profiles handled automatically.

BelgiumBIS 3.0
NetherlandsBIS 3.0
GermanyXRechnung
FranceFactur-X
PolandBIS 3.0
ItalyFatturaPA
SwedenBIS 3.0
NorwayBIS 3.0
DenmarkOIOUBL
FinlandBIS 3.0
IrelandBIS 3.0
SingaporeBIS 3.0
AustraliaBIS 3.0
New ZealandBIS 3.0
JapanBIS 3.0
30+more countriesvia Peppol network

Every format, one endpoint

Post JSON. The API validates, serialises to the right UBL/XML profile, and routes via Peppol. You never touch raw XML.

UBL 2.1

Universal Business Language, the base format for Peppol.

EN16931

European standard for e-invoice semantic data model.

Peppol BIS 3.0

Current Peppol e-invoicing specification.

XRechnung

German CIUS of EN16931 for public sector and B2B.

Factur-X / ZUGFeRD

Hybrid PDF/XML format used in France and Germany.

FatturaPA

Italian SDI e-invoicing format.

OIOUBL

Danish UBL profile for public and private invoicing.

ERP integrations

Connects to every ERP. No plug-in required.

SAPOracleDynamics 365NetSuiteOdooSageExactTwinfieldYukiCustom ERP

The API is ERP-agnostic. Map your fields to our flat JSON schema and ship.

Peppol for developers

Idiomatic Peppol SDKs for Python, TypeScript, Java, PHP and Ruby

Rich types, auto-retry with backoff, auto-pagination and built-in error handling. Pick a language, copy the install line, and ship.

TypeScript

Node.js / TypeScript

npm: e-invoice-api

Learn more
Python

Python

PyPI: e-invoice-api

Learn more
PHP

PHP

Packagist: e-invoice/e-invoice-api

Learn more
Ruby

Ruby

RubyGems: e-invoice-api

Learn more
Java

Java

Maven: be.einvoice:einvoice-api

Learn more
MCP

Peppol MCP Server

MCP server · 12 read-only tools

Or skip the SDKs and call the REST API directly. API documentation.

Ship a Peppol integration in four steps

From zero to production Peppol invoices. The same code runs in sandbox and production.

  1. 1

    Sandbox key in 30 seconds

    Create an account, grab a test API key, and start sending invoices to the sandbox immediately. No sales call.

  2. 2

    POST your first JSON invoice

    Submit invoice data as flat JSON. The API validates against BIS 3.0, serialises to UBL, and returns the document.

  3. 3

    Receive your first webhook

    Subscribe to inbound events. When a Peppol invoice arrives for your participant ID, you get a signed POST.

  4. 4

    Switch to production

    Complete KYC (24-48h wire transfer). We register your Peppol participant. Same code, same endpoints. Flip an env var.

API vs. building it yourself

We handle the Peppol infrastructure so you can focus on what makes your product different.

We handle

  • Expensive Peppol license
  • AS4 transport + SBDH envelope
  • TLS certificates and key management
  • Schematron validation (BIS 3.0, EN16931)
  • Peppol participant registration
  • Multi-tenant routing and isolation
  • BIS version upgrades and format drift
  • SMP/SML lookups and caching

You keep control of

  • Business logic and approval workflows
  • ERP field mapping
  • Customer relationships
  • Invoice numbering and sequencing
  • Reconciliation and error handling
  • Branding and white-label options
  • Data retention policies
Ready for production

Real Peppol, edge cases included

Two calls cover the easy case. The features below cover what actually happens in production: PDF scans that need OCR, receivers with stale SMP records, and schematron rules that fire on a country profile.

  • PDF to Peppol

    Upload a PDF, the API extracts the data and ships a compliant UBL invoice over Peppol.

  • UBL validation

    Validate against Peppol BIS 3.0 and EN16931 schematron rules before sending. No surprise rejections.

  • Peppol participant lookup

    Search and verify any Peppol ID, with capability metadata, before you address an invoice to it.

Beyond sending invoices

The same integration covers adjacent Peppol workflows.

Self-billing invoices

Issue invoices on behalf of your supplier. Supported as a first-class document type via the API.

Read more

B2G invoicing

Send compliant invoices to government entities across Belgium and the EU via Peppol.

Read more

PDF to UBL conversion

Upload a PDF invoice. The API extracts structured data and produces a valid Peppol UBL document.

Read more

API FAQ

Before you integrate

How long it takes, what it costs, what's covered. Code-level answers live in the docs.

Validate and inspect Peppol invoices with the Peppol Invoice Viewer.

How long does integration take?

A weekend for a tracer-bullet send-and-receive integration; one to two weeks for a production-ready ERP integration with reconciliation and error handling.

The API hides the BIS schemas, schematron, and Access Point onboarding, so most of the work is on your side: mapping ERP fields to our flat JSON and wiring up the inbound webhook.

Do I have to replace my invoicing software?

No. e-invoice.be is the compliance layer that snaps onto your existing stack. Your ERP, accounting suite, or billing system keeps producing invoices the way it always has. The Peppol formatting, validation, routing, and archiving happen below the surface.

We are infrastructure, not an invoicing app.

What does it cost?
Pro
from €0.25 per invoice
Enterprise
from €0.18 per invoice (volume-negotiated)
Account, Peppol ID, sandbox
free

Both sending and receiving are billed per invoice. No setup fees, no monthly minimums.

Is there a sandbox? Can I evaluate before signing anything?

Yes. Open an account, get a test API key in 30 seconds, and send invoices that get validated and serialized exactly like production but emailed back to you instead of routed over the Peppol network. The same code goes to production by flipping an env var. No sales call required.

What about receiving invoices, not just sending?

Inbound is webhook-driven. Subscribe once, receive a signed POST whenever a Peppol invoice arrives for your participant ID, and fetch the full document via the API.

Polling endpoints are also available if you can't expose a webhook endpoint.

Which countries and mandates does this cover?

Every country reachable on the Peppol network. One integration covers:

  • Belgium (B2B mandate, 2026)
  • France (mandate phasing in from 2026)
  • Germany (B2B mandate, 2027)
  • Poland, Romania, Spain and the rest of the EU under ViDA
  • UK, Australia, New Zealand, Singapore and other Peppol-connected geographies

Country-specific BIS profiles and schematron rules are handled in the mapping; you don't manage them.

Can I run Peppol on behalf of my customers?

Yes. Manage tenants through one integration: provision accounts, mint and rotate per-tenant API keys, and register your customers on the Peppol network programmatically. Built for ERPs, SaaS platforms, and managed-service partners running invoicing for many companies.

What if my ERP only emits PDFs?

Upload the PDF, the API extracts the data, validates against Peppol BIS 3.0, and ships a compliant UBL invoice. Useful when the ERP can't be persuaded to emit structured invoice data on day one.

Do I need KYC to start?
Sandbox / lookups
no KYC
Send over Peppol
KYC required (24–48h)

KYC is a one-time wire-transfer verification. It keeps spammers off the network and protects deliverability for every legitimate sender.

What is a Peppol e-invoice?

A Peppol e-invoice is a structured electronic document exchanged over the Peppol network. It follows the EN16931 European standard and uses UBL 2.1 XML (Peppol BIS 3.0). Unlike a PDF, a Peppol e-invoice is machine-readable from the start, so it can be processed automatically by any receiving system without manual data entry.

Is e-invoicing mandatory in Belgium?

Yes. Since January 2026, all Belgian B2B transactions must use structured e-invoicing via the Peppol network. This applies to every VAT-registered business in Belgium. The mandate covers domestic B2B invoices. B2G (business-to-government) e-invoicing was already mandatory before this.

What is Peppol for e-invoicing?

Peppol (Pan-European Public Procurement OnLine) is a network and set of standards for exchanging electronic business documents. For e-invoicing, it provides a four-corner model: the sender's Access Point transmits the invoice to the receiver's Access Point over a secure AS4 channel, with routing handled by SML and SMP lookups. This means any two businesses on the Peppol network can exchange invoices without bilateral integration.

Which countries use Peppol for e-invoicing?

Over 30 countries are connected to the Peppol network. This includes Belgium, the Netherlands, Germany, France, Italy, Sweden, Norway, Denmark, Finland, Ireland, Poland, Singapore, Australia, New Zealand, Japan, and the UK. The EU ViDA regulation will extend mandatory e-invoicing across the bloc by 2030. e-invoice.be reaches all Peppol-connected countries through a single API integration.

How does Peppol e-invoicing work?

Peppol uses a four-corner model:

  1. Corner 1: the sender (your business)
  2. Corner 2: the sender's Access Point (e-invoice.be)
  3. Corner 3: the receiver's Access Point
  4. Corner 4: the receiver

When you send an invoice via the API, e-invoice.be validates it against BIS 3.0, serialises it to UBL XML, looks up the receiver's Access Point via SMP, and transmits the document over a secure AS4 channel.

How do I connect to the Peppol network?

Create an account on e-invoice.be, complete the one-time KYC verification (24-48h), and we register your business as a Peppol participant. You get a Peppol ID and can start sending and receiving invoices immediately. No need to become a certified Access Point yourself. The API and SDKs handle all the protocol-level complexity.

Is the Peppol API free?

The account, Peppol ID registration, and sandbox are free. Production usage is pay-per-invoice:

Pro
from €0.25 per invoice
Enterprise
from €0.18 per invoice

Both sending and receiving are billed. No setup fees, no monthly minimums.

Can I convert PDF invoices to Peppol UBL via the API?

Yes. Upload a PDF invoice to the API, and it extracts the structured data using OCR and field recognition, validates the result against Peppol BIS 3.0, and produces a compliant UBL 2.1 XML document. You can then send it over Peppol or download the UBL for archival. You can also validate and inspect invoices using the free Peppol Invoice Viewer tool.

Which ERP systems do you integrate with?

The API is ERP-agnostic. It works with SAP, Oracle, Microsoft Dynamics 365, NetSuite, Odoo, Sage, Exact, Twinfield, Yuki, and any custom ERP that can make HTTP calls. You map your ERP fields to our flat JSON schema. No plug-ins or middleware required. SDKs are available for Python, TypeScript, Java, PHP, and Ruby.

Do you support self-billing and credit notes?

Yes. The API supports invoices, credit notes, debit notes, self-billing invoices, and self-billing credit notes as first-class document types. Each uses the same POST endpoint with a document_type field. Self-billing lets you issue invoices on behalf of your supplier, which is common in logistics, staffing, and marketplace scenarios.

What is Peppol BIS 3.0?

Peppol BIS 3.0 (Business Interoperability Specification) is the current invoicing specification on the Peppol network. It defines the UBL 2.1 XML structure, validation rules (schematron), and business rules that every Peppol invoice must follow. BIS 3.0 implements the European EN16931 standard. The e-invoice.be API handles BIS 3.0 compliance automatically: you post JSON, and the API serialises and validates to BIS 3.0.

What is the Peppol MCP server?

The Peppol MCP (Model Context Protocol) server lets AI agents and LLM-powered tools interact with the e-invoice.be API programmatically. It exposes 12 read-only tools for looking up Peppol participants, validating invoices, and querying invoice data. Install it with npx e-invoice-api-mcp@latest or connect via the streamable HTTP endpoint at api.e-invoice.be/mcp.

Peppol API scope call

Scoping a Peppol integration? 15 minutes saves a week.

Bring your ERP fields, your timeline, and the BIS 3.0 edge cases you're worried about. We'll walk through the mapping, the sandbox plan, and what production looks like.

Tom Van Asbroeck
Hosted by Tom Van AsbroeckPeppol & tax expert

Vendor-neutral. No obligation to ship on e-invoice.be.

Peppol API: Integration, Validation & UBL/XML | e-invoice.be