W System / Blog / Belgium Peppol e-invoicing for software builders

Belgium Peppol e-invoicing for software builders: what the mandate needs from your product

In short: Belgium is the one EU country where B2B e-invoicing over Peppol is already mandatory. Since 1 January 2026, VAT-liable businesses established in Belgium must send each other Peppol BIS Billing 3.0 invoices over the Peppol network and must be able to receive them; a PDF by e-mail no longer counts. The three-month tolerance ended on 31 March 2026, and lacking the means to send and receive now costs EUR 1,500 to 5,000 per offence. There is no national format on top of Peppol BIS, but there are Belgian habits your software must get right: 0208 addressing with the enterprise number, the reverse-charge and exemption wording, credit notes and attachments over Peppol. Next: FPS Finance becomes the Peppol Authority on 1 January 2027, and e-reporting is planned for 2028. Timeline, scope, rules, a checklist and two live calls below.

Timeline

DateWhat changesStatus
1 January 2026Structured e-invoices (Peppol BIS Billing 3.0 over Peppol) mandatory for domestic B2B supplies between VAT-liable businesses established in Belgium; every in-scope business must also be able to receive themin force (law of 6 February 2024)
1 January – 31 March 2026Tolerance: no fines for missing technical means or invoices a system could not yet issue, if the business shows it took timely and reasonable stepsended
1 January 2027FPS Finance takes over from FPS BOSA as the responsible authority and Belgian Peppol Authorityannounced 25 June 2026; EC country sheet updated 16 October 2026
1 January 2028Flat-rate (article 56) businesses lose their issuing exemption; near-real-time e-reporting via Peppol (five-corner model) to replace the annual customer listingflat-rate end in the 2024 law; e-reporting is a pre-draft law, not yet law
1 July 2030 at the latestReporting for intra-EU transactions under ViDAEU law, to be transposed

Who is in scope

Issuers: every VAT-liable business established in Belgium, including Belgian branches of foreign companies and members of VAT groups, for domestic supplies to a customer that must give its Belgian VAT number. Domestic reverse-charge supplies are included; intra-EU supplies, exports and supplies to consumers are not. Users of the small-business exemption (turnover up to EUR 25,000) and farmers under the agricultural scheme must at least be able to receive. Out of scope: businesses with only article 44 exempt supplies, flat-rate businesses for issuing (until 1 January 2028 at the latest), bankrupt businesses for issuing, and foreign companies registered for VAT in Belgium without a permanent establishment there; the FPS notes the law is still being amended on that last point. A Belgian company acting as individual or global tax representative for a non-established business does not issue under that business's number (FAQ 25).

Format and network

The format is Peppol BIS Billing 3.0 (UBL 2.1, EN 16931); Belgium adds no national CIUS. Invoices travel over Peppol: your software, or the service provider it connects to, sends to the buyer's access point found through the Peppol SMP. Belgian participants are mostly registered as 0208: plus the 10-digit enterprise number (KBO/BCE), some under 9925: plus the VAT number. A customer cannot force a supplier onto its own portal without written consent, and invoices to public bodies still go through Mercurius, which is itself a Peppol access point.

Belgian rules your invoice must follow

From the official specific questions FAQ:

Checklist for invoicing and ERP builders

Example 1: can this Belgian company receive Peppol invoices?

Disclosure: W System, which publishes this page, makes the API used in both examples. GET https://api.wsystem.dev/einvoice/route?id=BE0202239951 checks the VAT number in VIES, looks the company up on Peppol (public Peppol Directory, then SML/SMP) under the Belgian schemes and returns the Belgian mandate row. Real response from the live API on 22 October 2026 (shortened):

{
 "query": "BE0202239951",
 "vat": {
  "vat": "BE0202239951",
  "status": "valid",
  "valid": true,
  "name": "SA DPU PROXIMUS",
  "address": "Boulevard du Roi AlbertII 27, 1030 Schaerbeek",
  "consultation_number": null
 },
 "peppol": {
  "participant_id": "iso6523-actorid-upis::0208:0202239951",
  "name": "Proximus S.A.",
  "registered": true,
  "supports_peppol_bis3_invoice": true,
  "supports_peppol_bis3_creditnote": true,
  "registered_since": "2025-06-02"
 },
 "mandate": {
  "b2b_mandatory": true,
  "since": "2026-01-01",
  "scope": "Domestic B2B between Belgian VAT-registered businesses (penalties since 2026-04-01).",
  "format": "Peppol BIS Billing 3.0 (UBL) via Peppol",
  "channel": "Peppol",
  "next": "Near-real-time e-reporting planned 2028-01-01 (draft law).",
  "source": "https://finance.belgium.be/en/enterprises/vat/e-invoicing",
  "country": "BE",
  "as_of": "2026-10-21"
 },
 "recommendation": {
  "format": "peppol-bis3",
  "channel": "Peppol",
  "create_with": "POST /einvoice/create {\"format\":\"peppol-bis3\"}",
  "why": "The company is registered on Peppol for BIS Billing 3.0 invoices."
 }
}

Example 2: create a Belgian reverse-charge invoice and check it

A renovation invoice between two placeholder Belgian companies (made-up enterprise numbers): reverse charge (category AE) with the wording in BT-120, enterprise numbers as 0208 endpoints and legal entity ids, legal form and register in BT-33, and a delivery date before the issue date in BT-72. The API builds Peppol BIS 3 UBL and checks it with the official CEN EN 16931 rules. It does not yet run the Peppol-specific rules, does not send anything and does not judge the VAT treatment. Not tax advice.

curl -X POST https://api.wsystem.dev/einvoice/create \
  -H 'Content-Type: application/json' --data @invoice.json

invoice.json:

{
 "format": "peppol-bis3",
 "invoice_number": "2026-0318",
 "issue_date": "2026-10-22",
 "due_date": "2026-11-21",
 "currency": "EUR",
 "buyer_reference": "PO-4471",
 "delivery_date": "2026-10-16",
 "seller": {
  "name": "Renovatie Voorbeeld BV",
  "vat_id": "BE0123456749",
  "company_id": "0123456749",
  "company_id_scheme": "0208",
  "legal_form": "BV, RPR Gent",
  "street": "Voorbeeldstraat 1",
  "city": "Gent",
  "postal_code": "9000",
  "country": "BE"
 },
 "buyer": {
  "name": "Kantoor Exemple SRL",
  "vat_id": "BE0765432146",
  "company_id": "0765432146",
  "company_id_scheme": "0208",
  "street": "Rue de l'Exemple 2",
  "city": "Namur",
  "postal_code": "5000",
  "country": "BE"
 },
 "lines": [
  {
   "description": "Renovation works on office building, October 2026",
   "quantity": 1,
   "unit": "C62",
   "unit_price": 4800,
   "vat_category": "AE",
   "vat_rate": 0
  }
 ],
 "vat_exemption_reason": {
  "AE": "Reverse charge - Autoliquidation - Verlegging van heffing"
 },
 "payment": {
  "iban": "BE68539007547034",
  "terms": "30 days"
 }
}

Real response from the live API on 22 October 2026 (the generated XML left out):

{
 "valid": true,
 "format": "peppol-bis3",
 "syntax": "UBL 2.1",
 "document_type": "ubl_inv",
 "totals": {
  "currency": "EUR",
  "line_total": "4800.00",
  "vat_total": "0.00",
  "total_with_vat": "4800.00",
  "payable": "4800.00"
 },
 "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\" xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\" xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\"><cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID><cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID><cbc:ID>2026-0318</cbc:ID><cbc:IssueDate>2026-10-22</cbc:IssueDate><cbc:DueDate>2026-11-21</cbc:DueDate><cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode><cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode><cbc:BuyerReference>PO-4471</cbc:BuyerReference><cac:AccountingSupplierParty><cac:Party><cbc:EndpointID schemeID=\"0208\">0123456749</cbc:EndpointID><cac:PostalAddress><cbc:StreetName>Voorbeeldstraat 1</cbc:StreetName><cbc:CityName>Gent</cbc:CityName><cbc:PostalZone>9000</cbc:PostalZone><cac:Country><cbc:IdentificationCode>BE</cbc:IdentificationCode></cac:Country></cac:PostalAddress><cac:PartyTaxScheme><cbc:CompanyID>BE0123456749</cbc:CompanyID><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:PartyTaxScheme><cac:PartyLegalEntity><cbc:RegistrationName>Renovatie Voorbeeld BV</cbc:RegistrationName><cbc:CompanyID schemeID=\"0208\">0123456749</cbc:CompanyID><cbc:CompanyLegalForm>BV, RPR Gent</cbc:CompanyLegalForm></cac:PartyLegalEntity></cac:Party></cac:AccountingSupplierParty><cac:AccountingCustomerParty><cac:Party><cbc:EndpointID schemeID=\"0208\">0765432146</cbc:EndpointID><cac:PostalAddress><cbc:StreetName>Rue de l'Exemple 2</cbc:StreetName><cbc:CityName>Namur</cbc:CityName><cbc:PostalZone>5000</cbc:PostalZone><cac:Country><cbc:IdentificationCode>BE</cbc:IdentificationCode></cac:Country></cac:PostalAddress><cac:PartyTaxScheme><cbc:CompanyID>BE0765432146</cbc:CompanyID><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:PartyTaxScheme><cac:PartyLegalEntity><cbc:RegistrationName>Kantoor Exemple SRL</cbc:RegistrationName><cbc:CompanyID schemeID=\"0208\">0765432146</cbc:CompanyID></cac:PartyLegalEntity></cac:Party></cac:AccountingCustomerParty><cac:Delivery><cbc:ActualDeliveryDate>2026-10-16</cbc:ActualDeliveryDate></cac:Delivery><cac:PaymentMeans><cbc:PaymentMeansCode>58</cbc:PaymentMeansCode><cac:PayeeFinancialAccount><cbc:ID>BE68539007547034</cbc:ID></cac:PayeeFinancialAccount></cac:PaymentMeans><cac:PaymentTerms><cbc:Note>30 days</cbc:Note></cac:PaymentTerms><cac:TaxTotal><cbc:TaxAmount currencyID=\"EUR\">0.00</cbc:TaxAmount><cac:TaxSubtotal><cbc:TaxableAmount currencyID=\"EUR\">4800.00</cbc:TaxableAmount><cbc:TaxAmount currencyID=\"EUR\">0.00</cbc:TaxAmount><cac:TaxCategory><cbc:ID>AE</cbc:ID><cbc:Percent>0</cbc:Percent><cbc:TaxExemptionReasonCode>VATEX-EU-AE</cbc:TaxExemptionReasonCode><cbc:TaxExemptionReason>Reverse charge - Autoliquidation - Verlegging van heffing</cbc:TaxExemptionReason><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory></cac:TaxSubtotal></cac:TaxTotal><cac:LegalMonetaryTotal><cbc:LineExtensionAmount currencyID=\"EUR\">4800.00</cbc:LineExtensionAmount><cbc:TaxExclusiveAmount currencyID=\"EUR\">4800.00</cbc:TaxExclusiveAmount><cbc:TaxInclusiveAmount currencyID=\"EUR\">4800.00</cbc:TaxInclusiveAmount><cbc:PayableAmount currencyID=\"EUR\">4800.00</cbc:PayableAmount></cac:LegalMonetaryTotal><cac:InvoiceLine><cbc:ID>1</cbc:ID><cbc:InvoicedQuantity unitCode=\"C62\">1</cbc:InvoicedQuantity><cbc:LineExtensionAmount currencyID=\"EUR\">4800.00</cbc:LineExtensionAmount><cac:Item><cbc:Name>Renovation works on office building, October 2026</cbc:Name><cac:ClassifiedTaxCategory><cbc:ID>AE</cbc:ID><cbc:Percent>0</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:ClassifiedTaxCategory></cac:Item><cac:Price><cbc:PriceAmount currencyID=\"EUR\">4800</cbc:PriceAmount></cac:Price></cac:InvoiceLine></Invoice>",
 "errors": [],
 "warnings": [],
 "checked": {
  "xsd": true,
  "EN16931": true,
  "XRechnung": false,
  "PeppolBIS3": false,
  "SK_national": false,
  "NO_national": false
 },
 "notes": [
  "Built to the Peppol BIS Billing 3.0 structure and checked against EN 16931 only; Peppol-specific rules are not run yet."
 ],
 "disclaimer": "Technical check against the official EN 16931 / XRechnung rule sets. A technically valid file is not tax or legal advice. Peppol BIS 3 specific rules (PEPPOL-EN16931-*) are not checked yet."
}

To check a file your product already makes, drop it into the free e-invoice validator (no key) or post it to /einvoice/validate. Free for 20 calls a day per IP; details on the e-invoice API page.

Questions and answers

Who must send Peppol e-invoices in Belgium?

Since 1 January 2026, VAT-liable businesses established in Belgium (including Belgian branches of foreign companies and VAT groups) must issue structured e-invoices for domestic B2B supplies to customers that give a Belgian VAT number. Users of the small-business exemption scheme and farmers under the special agricultural scheme must at least be able to receive them. Not obliged: businesses with only article 44 exempt supplies, flat-rate businesses for issuing (until 1 January 2028 at the latest), bankrupt businesses for issuing, and foreign businesses registered for VAT in Belgium without a permanent establishment there.

Which Peppol identifier does a Belgian company use?

Usually 0208 followed by the 10-digit enterprise number (KBO/BCE), for example 0208:0202239951. Some companies are also or only registered under 9925 with the VAT number. Look up both before deciding a customer cannot receive.

What are the fines?

Not having the technical means to issue and receive a structured e-invoice costs EUR 1,500 for a first offence, EUR 3,000 for a second and EUR 5,000 for later ones; a repeat counts only if found at least three months after the previous fine (Royal Decree of 8 July 2025). The existing fines for missing, late or incorrect invoices also apply to e-invoices.

Are credit notes and attachments sent via Peppol too?

Yes. A document that changes a structured e-invoice and refers to it is itself a structured e-invoice, so credit notes go over Peppol. Attachments belong to the invoice and must travel in the same UBL message (embedded or as an external link), not by e-mail; EN 16931 allows pdf, png, jpg, csv, xlsx and ods.

Does Belgium send invoice data to the tax administration yet?

No. In the current phase nothing is reported. Near-real-time e-reporting via Peppol is planned for 2028 in the coalition agreement and a pre-draft law, but it is not law yet. When it comes it replaces the annual customer listing.

Does my invoicing software have to become a Peppol access point?

No. The FPS BOSA list of compliant solutions is for end-user software; software vendors that want to connect to Peppol can work through a certified Peppol service provider. Becoming one yourself goes through the Belgian Peppol Authority (peppol.be).

Sources

Related

Checked against the FPS BOSA and FPS Finance pages on e-invoice.belgium.be and the European Commission country sheet on 22 October 2026.

Facts checked 2026-10-22. W System is the maker of this product. Not affiliated with the European Commission. Not legal or tax advice.