Tech Blog
invoice2412 March 2026 · 4 min read

Belgium's E-Invoice Mandate and How We Built invoice24.be in Eight Weeks

Since January 2026, Belgian B2B invoices must be exchanged in a structured electronic format. We built invoice24.be, a batch PDF-to-Peppol converter, in eight weeks. Here is what we learned.

Since January 2026, Belgian businesses are required to exchange invoices in a structured electronic format aligned with the Peppol network standard. The mandate represents a significant compliance obligation for small and medium enterprises, most of whom receive invoices as PDFs and have no tooling to process structured XML.

invoice24.be is our response: a batch converter that accepts existing PDF invoices and produces Peppol-compliant e-invoices in UBL 2.1 format, ready for submission via the Peppol network.

The Technical Problem

A PDF invoice is an unstructured document. It contains the same information as a structured e-invoice (supplier details, line items, totals, VAT breakdown) but encoded as rendered text rather than machine-readable fields. Extracting this information reliably across thousands of invoice layouts is a non-trivial problem.

Our pipeline uses Claude to parse the extracted PDF text and produce a structured representation of the invoice. The extraction prompt is tailored to the Belgian context: it handles both Dutch and French invoice layouts, recognises Belgian VAT numbers (BE followed by ten digits), and correctly attributes line items with mixed VAT rates, a common pattern in Belgian service invoices.

From Extraction to UBL

The extracted data is validated against Belgian invoice rules (mandatory fields, VAT consistency, Peppol party identifiers) before being serialised to UBL 2.1 XML. The UBL schema is strict: every element must carry the correct namespace, and numeric values must be formatted with precisely two decimal places regardless of locale settings on the generating system.

We implemented the serialisation layer in TypeScript with full type coverage of the UBL 2.1 invoice schema for the fields required by Belgian law. Validation runs against both the UBL schema and the PEPPOL BIS Billing 3.0 Schematron rules before any file is delivered to the user. A document that passes our validation will be accepted by any Peppol-compliant access point.

Deployment and Scale

invoice24.be runs on Google Cloud Run in the Stockholm region. The service processes batches of up to five hundred invoices per request and exposes a REST API consumed by both the web frontend and direct integrations with Belgian accounting software.

Eight weeks from first commit to production deployment. The mandate waits for no one, and neither did we.

All postsvayoblue · 12 March 2026