Implementation June 10, 2026 12 min read

Integrating Peppol E-Invoicing with Your Belgian ERP. A Technical Guide.

Belgium's B2B Peppol mandate is live. Every VAT-registered business must now send and receive structured e-invoices via Peppol BIS Billing 3.0. This technical guide walks you through connecting your ERP — whether SAP, Dynamics 365, Odoo, or Exact Online — to the Peppol network, with concrete implementation steps and go-live checklists.

InvoStaq Regulatory Team

EU Peppol compliance & e-invoicing policy

Since January 1, 2026, every VAT-registered business in Belgium must exchange structured electronic invoices through the Peppol network using BIS Billing 3.0 (UBL 2.1 format). With enforcement penalties of €50–€250 per non-compliant invoice now active since April 2026, getting your ERP properly connected is no longer optional — it's urgent.

This guide is designed for IT managers, ERP administrators, and finance directors at Belgian companies navigating the technical side of Peppol integration. We cover the three main integration approaches, provide ERP-specific implementation paths for the most popular systems in Belgium, and include a battle-tested go-live checklist based on real-world deployments across Belgium's 1.1 million affected businesses.

1.1M+

Businesses affected

UBL 2.1

Required format

30+

Certified Access Points

3–5 days

Avg. integration time

Integration Overview

Connecting your ERP system to Belgium's Peppol network involves four fundamental components: your ERP (the invoice source), a connector or middleware layer (which transforms ERP data into compliant UBL 2.1), a certified Peppol Access Point (which transmits the invoice), and the Peppol network itself (the 4-corner delivery infrastructure).

BELGIAN ERP → PEPPOL INTEGRATION ARCHITECTUREThree integration approaches: Native Module · API · MiddlewareYOUR ERP SYSTEMSAPSAP S/4HANAD365Dynamics 365OdooOdooEXOExact OnlineAPICustom ERPCONNECTOR LAYERInvoStaq GatewayUBL 2.1 MappingBIS 3.0 ValidationKBO/BCE LookupError HandlingMonitoringLatency<200msUptime99.97%ValidationReal-timePEPPOL NETWORKAccess Point (AP)Certified Peppol APSMP / SML LookupBuyer APSupplier APTax Authority50+ERP Systems Supported3–5 daysAvg Integration Time200+Validation Rules30+Belgian AP Partners

The critical decision is how you bridge the gap between your ERP's internal data model and the Peppol BIS Billing 3.0 standard. Belgian invoices must include specific fields mandated by FPS Finance (SPF Finances):

Belgian enterprise number (KBO/BCE) as the Peppol participant identifier — format: 0208:BE0123456789
VAT identification number on both buyer and seller sides
Tax category codes conforming to Belgian VAT rates (21%, 12%, 6%, 0%)
Payment means code per BIS 3.0 codelist (30 = bank transfer, 58 = SEPA direct debit, etc.)
Invoice type code (380 = commercial invoice, 381 = credit note, 384 = corrected invoice)
Structured tax breakdown with per-line and document-level totals that reconcile
EUR as the document currency code (ISO 4217)

If your ERP can natively produce UBL 2.1 XML with all these fields correctly populated, you need only a transport layer to reach a Peppol Access Point. If it cannot — and most legacy systems cannot out-of-the-box — you'll need either a middleware mapper or an API-based conversion service.

ERP Compatibility

Belgium's business landscape runs on a diverse ERP ecosystem. Here's the current Peppol readiness status of the most widely used systems, and the specific integration paths for each.

SAP S/4HANA & SAP Business One

Native Ready

SAP S/4HANA (release 2023 FPS02+) includes the Document Compliance add-on, which natively generates Peppol BIS 3.0 UBL 2.1 invoices. Enable the Belgian localization package via transaction SPRO → Financial Accounting → Accounts Receivable → Electronic Invoicing → Belgium Peppol. SAP Business One requires the B1 E-Invoicing add-on (version 3.0+) from SAP's partner ecosystem. Map your SAP invoice types to Peppol type codes: FI → 380, CR → 381, DR → 384. The key field mapping is SAP's STCD1 (tax number 1) to the Peppol EndpointID with scheme 0208.

Microsoft Dynamics 365 Finance & BC

Native Ready

Dynamics 365 Finance (version 10.0.36+) and Business Central (2024 Wave 2+) both support Peppol BIS 3.0 out of the box. In D365 Finance, navigate to Accounts Receivable → Setup → e-Invoice → Belgian Peppol Configuration. The system maps D365 invoice entities to UBL 2.1 elements automatically. For Business Central, install the 'Belgian E-Invoicing' extension from AppSource. Configure the Peppol endpoint under Company Information → E-Invoice Settings. The Belgian enterprise number maps from the Registration No. field. Credit notes require the original invoice reference in the 'Applies-to Doc. No.' field.

Odoo (16.0+ / 17.0)

Module Available

Odoo's Belgian e-invoicing module (l10n_be_edi_peppol) has been available since version 16.0. Install via Settings → Apps → search 'Peppol Belgium.' The module adds a Peppol tab to invoice forms where you can configure the partner's Peppol participant ID. Odoo generates UBL 2.1 XML and can transmit directly to a configured Access Point via the EDI framework. For Odoo 17.0, the module is part of the default Belgian localization. Note: Odoo's built-in validator catches most BIS 3.0 errors before submission, but it doesn't validate against the full Belgian Schematron rules — use an external validator (like InvoStaq's) for complete pre-flight checks.

Exact Online

Partner Integration

Exact Online doesn't natively produce Peppol BIS 3.0 invoices. Instead, Exact partners with certified Access Points to provide a 'send via Peppol' button within the invoicing workflow. The integration works through Exact's XML export, which a middleware service converts to UBL 2.1. Configure under Module → CRM & Documents → E-Invoicing → Peppol Settings. Exact's API (REST v1) also allows external services like InvoStaq to poll for new invoices, convert them, and submit to Peppol — all without manual intervention. The Belgian enterprise number is pulled from the Chamber of Commerce Number field.

Custom / Legacy ERP Systems

API Required

If you're running a custom-built ERP, an older version of any major platform, or a Belgian-specific solution like WinBooks, BOB, or Yuki, you'll need an external integration. The most reliable approach is a RESTful API gateway that accepts your ERP's invoice data (JSON/XML/CSV) and returns a compliant UBL 2.1 document. InvoStaq's API accepts invoice payloads in 14 formats and handles the full conversion, validation, and Peppol delivery pipeline. Average integration time for custom ERPs is 3–5 business days with our SDK.

ERP Version Compatibility Matrix

A critical lesson from Belgium's first six months is that version matters enormously. SAP customers on S/4HANA 2022 or earlier need a patch; Dynamics 365 users on versions before 10.0.36 require an update; Odoo 15 and below need to upgrade to 16.0+. If upgrading your ERP is not feasible in the near term, an external API-based connector is the fastest path to compliance — working alongside your current system without requiring any ERP modifications.

API vs. Connector vs. Native

There are three fundamental approaches to integrating your Belgian ERP with Peppol. Each has distinct trade-offs in terms of control, speed to market, maintenance overhead, and cost. Choosing the right approach depends on your ERP, invoice volume, technical team capacity, and budget.

Approach A: Native ERP Module

Advantages

Seamless workflow — invoices sent from within ERP UI
No external dependencies for core functionality
Usually included in ERP licensing at no extra charge
Automatic updates when ERP vendor releases patches

Trade-offs

Requires specific ERP version — older versions unsupported
Limited customization of UBL output and validation logic
ERP vendor support may lag behind Belgian regulatory changes
Typically handles only outbound; inbound may need separate setup

Best for: Companies on up-to-date SAP S/4HANA, Dynamics 365, or Odoo 17 with straightforward invoicing needs and low customization requirements.

Approach B: API-Based Integration

Advantages

Works with ANY ERP — no version restrictions
Full control over mapping, validation, and error handling
Supports both outbound and inbound invoice flows
Can integrate with multiple systems simultaneously (ERP + CRM + accounting)

Trade-offs

Requires developer resources for initial setup
You own the integration code and its maintenance
Network latency adds milliseconds to invoice processing
Need to handle API versioning and authentication token management

Best for: Companies with in-house dev teams, custom ERPs, multi-system landscapes, or those needing advanced validation logic beyond standard BIS 3.0.

Approach C: Middleware / Managed Connector

Advantages

Zero-code setup for supported ERPs and accounting platforms
Provider manages updates, validations, and Peppol compliance
Pre-built connectors for Belgian-specific requirements (KBO/BCE, VAT codes)
Monitoring dashboards and alerting included

Trade-offs

Monthly or per-invoice subscription costs
Less flexibility for edge cases or complex invoice structures
Dependency on third-party provider availability and roadmap
Data passes through an intermediary (evaluate data residency requirements)

Best for: SMEs without dedicated development teams, companies wanting fastest time-to-compliance, and businesses running Exact Online, WinBooks, BOB, or other Belgian accounting tools.

InvoStaq's Hybrid Approach

InvoStaq supports all three approaches through a single platform. Our Dynamics 365 native plugin embeds directly into D365 Finance and Business Central. Our REST API accepts invoice payloads from any system. And our managed connectors provide zero-code setup for Exact Online, Odoo, WinBooks, and 15+ other Belgian platforms. All routes converge on the same validation engine, the same Access Point, and the same monitoring dashboard — so you get consistent compliance regardless of how your invoices enter the pipeline.

Implementation Steps

Regardless of which integration approach you choose, the implementation follows a consistent sequence. Here's the step-by-step process that InvoStaq has refined across hundreds of Belgian deployments.

1
Register Your Peppol Participant ID

Your Belgian enterprise number (KBO/BCE) becomes your Peppol participant identifier with the scheme 0208. For example, if your enterprise number is 0123.456.789, your Peppol ID is 0208:BE0123456789. Your Access Point registers this in the Peppol SMP (Service Metadata Publisher), which lets any Peppol participant worldwide discover and send invoices to you. This registration typically takes 1–2 business days.

2
Map Your Invoice Data Model to UBL 2.1

This is the most technically intensive step. You must map every field in your ERP's invoice output to the corresponding UBL 2.1 element. Key mappings include: Customer/Vendor IDs → AccountingCustomerParty/AccountingSupplierParty, Line items → InvoiceLine with ItemClassificationCode, Tax codes → TaxCategory with Belgian VAT rate percentages, Payment terms → PaymentTerms/PaymentMeans. Document all mappings in a specification so they can be maintained as standards evolve.

3
Configure Your Connector or API Client

For API integrations, register for API credentials (OAuth 2.0 client credentials grant), build your HTTP client with proper retry logic (exponential backoff with 3 retries), and implement the invoice submission endpoint. For managed connectors, install the connector module in your ERP and configure the authentication token. For native modules, enable the Belgian e-invoicing feature flag and configure the Peppol endpoint URL.

4
Implement Validation Pre-Checks

Before any invoice reaches Peppol, validate it against three layers: (1) UBL 2.1 XML schema validation — ensures correct structure, (2) Peppol BIS 3.0 business rules — 200+ Schematron rules checking field presence, value ranges, and cross-field consistency, (3) Belgian-specific rules — enterprise number format, VAT number checksum, Belgian tax rate codes. InvoStaq's validation API returns detailed error reports with field-level fix suggestions, reducing rejection rates by 94%.

5
Set Up Inbound Invoice Processing

Receiving Peppol invoices is as important as sending them. Configure your system to: (1) Accept inbound UBL 2.1 documents via your Access Point's webhook or polling endpoint, (2) Parse the XML into your ERP's purchase invoice / AP module, (3) Perform 3-way matching against purchase orders and goods receipts, (4) Route exceptions to AP staff for review. InvoStaq's inbound processor can push parsed invoices directly into your ERP via API, or generate a human-readable PDF for manual review workflows.

6
Handle Credit Notes & Corrections

Belgian Peppol invoices require specific handling for credit notes (type code 381) and corrected invoices (type code 384). Both must reference the original invoice via the BillingReference element, including the original invoice number and issue date. Your ERP integration must capture this reference at the point of credit note creation — not as an afterthought. Configure your ERP's credit note workflow to require the original invoice number as a mandatory field before submission.

7
Build Monitoring & Alerting

Production e-invoicing demands operational monitoring. Set up dashboards tracking: delivery success rate (target: >99.5%), average validation time (<500ms), rejection reasons by category, inbound processing queue depth, and Access Point availability. Configure alerts for: >2% rejection rate in any 1-hour window, any Access Point timeout exceeding 30 seconds, and any invoice stuck in 'pending' status for more than 4 hours. InvoStaq's dashboard provides all these metrics out-of-the-box with Slack/Teams/email alerting.

Typical Timeline

For companies using supported ERPs with InvoStaq's managed connector, the full implementation — from kick-off to first production invoice — typically takes 3–5 business days. For API-based custom integrations, expect 2–4 weeks depending on your ERP's data export capabilities and internal approval processes. The longest delays are consistently non-technical: internal security reviews, change management approvals, and coordinating test windows with trading partners.

Testing & Go-Live

Peppol provides a dedicated test environment — separate from production — that mirrors the real network. Every Belgian integration should go through rigorous testing before the first live invoice is sent. Here's the testing protocol that InvoStaq recommends based on patterns from hundreds of Belgian go-lives.

Test Environment Setup

Peppol's test network (sometimes called "Peppol Testbed") uses separate SMP/SML infrastructure from production. Your Access Point provides test credentials and a test endpoint URL. Configure your ERP connector to point to the test environment by updating the endpoint configuration — not by using a separate installation. This ensures that when you switch to production, only the endpoint URL changes, not the integration logic.

Go-Live Checklist

Pre-Test Validation

Generate 5+ sample invoices from your ERP and validate each against the Peppol BIS 3.0 Schematron rules
Verify your KBO/BCE enterprise number is correctly formatted in the Peppol participant ID (0208:BE + 10 digits)
Confirm all Belgian VAT rate codes (S=21%, AA=12%, H=6%, Z=0%, E=exempt) map correctly from your ERP tax configuration
Test credit note generation with proper BillingReference linking to original invoices

Test Environment Execution

Send 10+ invoices to a test recipient through the Peppol test network and verify successful delivery
Receive 5+ inbound test invoices and confirm they parse correctly into your ERP's AP module
Test edge cases: zero-rated invoices, multi-line invoices (20+ lines), invoices with attachments (embedded PDF), foreign-currency line items
Simulate error scenarios: invalid Peppol ID lookup, network timeout, duplicate invoice detection

Production Cutover

Switch connector endpoint from test to production — verify SSL certificate and authentication
Send a single low-value invoice to a known trading partner as a live smoke test
Confirm the invoice appears in the recipient's system within 60 seconds
Enable full production traffic and monitor rejection rates for the first 4 hours

Post-Go-Live Monitoring

Track daily delivery success rate — alert if below 99%
Review the first 50 production invoices manually to catch systematic mapping errors
Confirm inbound invoices are flowing into your ERP and matching against purchase orders
Schedule a 2-week review checkpoint to assess error patterns and optimize

Common Go-Live Pitfalls in Belgium

Based on InvoStaq's experience supporting Belgian go-lives, the three most common production issues are: (1) Tax rounding discrepancies — BIS 3.0 requires line-level tax calculations to reconcile with document-level totals within €0.01. ERPs that round at the document level instead of per-line will generate invoices that fail Schematron rule BR-CO-15. (2) Missing payment means — every invoice must specify at least one PaymentMeans element. ERPs that default to "unspecified" payment terms generate invalid invoices. (3) Duplicate invoice numbers — Peppol Access Points reject invoices with the same InvoiceNumber + IssueDate + SupplierID combination. ERP systems that recycle invoice numbers across fiscal years will hit this constraint.

Penalties & Enforcement

Since April 2026, Belgium's FPS Finance actively enforces the Peppol mandate. Penalties range from €50 to €250 per non-compliant invoice, with repeat offenders facing escalating fines. VAT deductions may also be refused for invoices not transmitted via Peppol. The message is clear: the grace period is over. If your ERP integration isn't live, every invoice you send through legacy channels is a potential fine.

The good news: with the right integration approach, getting compliant is faster and less expensive than the penalties for non-compliance. A typical InvoStaq deployment for a Belgian SME costs less than the fine for 10 non-compliant invoices — and pays for itself within the first month through reduced processing costs and faster payment cycles.

Connect Your ERP to Peppol Today

InvoStaq integrates with 50+ ERP systems. Native D365 plugin, REST API, or managed connector — choose your path and go live within days. Full BIS 3.0 validation, Belgian Schematron rules, and real-time monitoring included.