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. |
| 2028 | Planned: near-real-time reporting of invoice data to the tax administration, by the supplier and the customer alike. |
A three-month penalty tolerance ran to 31 March 2026 and has now passed. The 2028 e-reporting layer is not law yet: it comes from the federal coalition agreement, and the draft law the Council of Ministers approved on 18 July 2026 is still with the Data Protection Authority and the Council of State. That announcement names no start date, so 2028 is the year the authority gives and not a fixed day.
Last verified against the Belgian federal e-invoicing portal einvoice.belgium.be (the tolerance notice of 18 December 2025 and the e-reporting FAQ) and the Council of Ministers' press release of 18 July 2026 on the e-reporting draft law on 20 September 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 Peppol BIS UBL against the full EN 16931 + Peppol BIS 3.0 Schematron (
peppolVersionin the response). Parse reads its fields and runs no rules. - Validation depth on the Peppol path is Authority-checked: Beliq asserts verdict parity against OpenPeppol’s own unit-test corpus (335 cases) plus its published example invoices. The pinned Peppol BIS Schematron carries no Belgian national rule family, so the shared corpus is the only suite that applies. It exercises some of the pack’s rules and not others: what the test suites cover gives the count. A calendar-enforced re-check watches for any future national CIUS. See how verification works for the tier definitions and the
verificationTierfield that reports them.
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 exchange on your behalf, or the reporting leg Belgium plans to add in 2028.
Today you send Beliq’s UBL output through your chosen Access Point (BYOC). See what a Peppol Access Point is if you have not procured one yet. Managed delivery over Peppol is in build.
e-reporting (plan ahead, 2028)
From 2028 Belgium plans to widen the obligation with a near-real-time e-reporting layer, reported by the supplier and the customer alike. It is not law yet: the draft law the Council of Ministers approved on 18 July 2026 is still under advice, and that announcement names no start date. It would be an 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 | n/a |
| Peppol Network transmission (4-corner) | Not offered; see boundary above | Your Access Point provider |
| e-reporting (planned, 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", and 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").