Belgium
Belgian B2B e-invoicing with Beliq — Peppol BIS 3.0 UBL, the KBO/BCE endpoint scheme, and the Peppol transmission boundary.
Belgium’s B2B e-invoicing mandate went live 2026-01-01 (with a 3-month tolerance period to 2026-03-31). Unlike Germany, France, Italy, or Spain, Belgium defines no national format and no national CIUS — it uses standard Peppol BIS Billing 3.0 UBL (EN 16931) directly. The European Commission’s eInvoicing-in-Belgium page states it plainly: “There is no ad hoc or national CIUS version.” So a Belgian invoice in Beliq is a Peppol BIS invoice — see the Peppol BIS format reference for the full element layout.
Mandate timeline
| Date | What changes |
|---|---|
| 1 January 2026 | Issuing and receiving structured e-invoices is mandatory for domestic B2B. |
| 1 January 2028 | Near-real-time e-reporting is added on the Peppol 5-corner model. |
A three-month penalty tolerance ran to 31 March 2026 and has now passed.
Last verified against FPS Finance and the European Commission eInvoicing country page on 9 July 2026. Official source.
For the dates beliq tracks across every covered country, see the mandate calendar.
What Beliq does today
- Generate Belgian Peppol invoices via
standard: "peppol-bis"(profilepeppol), addressed with the Belgian enterprise-number endpoint scheme (KBO/BCE, Peppol EAS0208). - Validate and parse Peppol BIS UBL against the full EN 16931 + Peppol BIS 3.0 Schematron (
peppolVersionin the response). - Compliance status for
belgium_peppolissupported— it rides thefully-verifiedPeppol BIS pipeline (9 OpenPeppol positive examples + 227 negative test cases). Belgium adds no national rules, so there is no Belgium-specific corpus; that is recorded as a tracked gap with a quarterly re-check for any future national CIUS.
One Belgium-specific rule (already in Peppol BIS)
The shared Peppol BIS pack carries one Belgium-specific assertion, PEPPOL-COMMON-R043: a KBO/BCE enterprise number (EAS 0208) must be 10 digits and pass the mod-97 checksum (the last two digits equal 97 − (first 8 digits mod 97)). This is a Peppol-common rule, not a Belgian CIUS — but it means the enterprise number you pass must be checksum-valid.
What Beliq does not do (Peppol transmission boundary)
Belgium’s B2B network is the Peppol Network. Beliq is not a Peppol Access Point. It does not:
- Transmit invoices over Peppol or register you as a Peppol participant.
- Operate the 4-corner (or, from 2028, 5-corner) exchange on your behalf.
You send Beliq’s UBL output through your chosen Access Point (BYOC). Beliq’s job ends at a correct, Peppol-valid document.
e-reporting (plan ahead — 2028)
From 2028-01-01 Belgium widens the obligation with a near-real-time e-reporting layer using the Peppol 5-corner model. This is a future operational obligation handled by your Access Point / reporting provider — not a Beliq capability today.
Integration architecture (Beliq vs Peppol Access Point)
| Concern | In Beliq today | Outside Beliq (your stack / partner) |
|---|---|---|
| Peppol BIS 3.0 UBL invoice XML | Generate, Validate, Parse | — |
| Peppol Network transmission (4-corner) | Not offered — see boundary above | Your Access Point provider |
| e-reporting (5-corner, 2028) | Not offered | Your Access Point / reporting provider |
Generating a Belgian Peppol invoice
Address both parties with the Belgian enterprise-number scheme (KBO/BCE, EAS 0208) via the peppol block. Provide either a buyerReference or an orderReference (Peppol requires one). The simpler alternative is to omit the peppol block and pass a vatId (BE…) + address.countryCode: "BE" — Beliq then derives the BE:VAT scheme (EAS 9925) automatically.
curl -X POST https://api.beliq.eu/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"standard": "peppol-bis",
"profile": "peppol",
"output": "xml",
"invoice": {
"number": "2026-0001",
"issueDate": "2026-05-28",
"currencyCode": "EUR",
"buyerReference": "BE-PO-4471",
"seller": {
"name": "Verkoper Test BV",
"vatId": "BE0203201340",
"peppol": { "schemeId": "0208", "id": "0203201340" },
"address": { "street": "Teststraat 1", "city": "Brussel", "postalCode": "1000", "countryCode": "BE" }
},
"buyer": {
"name": "Koper Test BV",
"vatId": "BE0776119566",
"peppol": { "schemeId": "0208", "id": "0776119566" },
"address": { "street": "Voorbeeldlaan 2", "city": "Antwerpen", "postalCode": "2000", "countryCode": "BE" }
},
"lines": [
{
"description": "Professionele diensten",
"quantity": 1,
"unitCode": "C62",
"unitPrice": 100.00,
"lineTotal": 100.00,
"vatRate": 21,
"vatCategoryCode": "S"
}
],
"taxSummary": [
{ "vatCategoryCode": "S", "vatRate": 21, "taxableAmount": 100.00, "taxAmount": 21.00 }
],
"totalNetAmount": 100.00,
"totalTaxAmount": 21.00,
"totalGrossAmount": 121.00
}
}'The enterprise numbers above (0203201340, 0776119566) are checksum-valid per PEPPOL-COMMON-R043. The Belgian VAT id reuses the same enterprise number (BE + the 10 digits).
Validation behaviour
On /v1/validate and /v1/generate, Belgian invoices run the full EN 16931 + Peppol BIS 3.0 Schematron; failures carry the relevant BR-* / PEPPOL-* rule id (e.g. PEPPOL-COMMON-R043 for a malformed enterprise number). The response reports profileDetected: "peppol" and a peppolVersion. CreditNote payloads are supported (documentType: "creditnote").