PEPPOL · EN-16931 · UBL 2.1
Compliant e-invoices, composed with care.
Peppify turns a simple input into a standards-perfect invoice, tucks a human-readable PDF inside it, and delivers it to the PEPPOL network — all from your own machine.
Due 23 Jun 2026
BE 0674.415.660
BE 0123.456.789
| Advisory — May | 12 h | € 1.080,00 |
| UBL integration | 1 | € 450,00 |
The composition
Five movements, one invoice
From a line of input to a delivered, auditable document — Peppify handles each step in order.
Create
From a simple JSON file or the web form, it builds standards-perfect UBL 2.1 XML.
Render
A human-readable PDF — in EN, NL, FR or DE — embedded inside the XML (rule R008).
Validate
Structural checks and the official UBL 2.1 XSD schemas, before anything is sent.
Send
Delivered to PEPPOL through the Peppyrus Access Point, with automatic retry.
Report
Fetch validation and transmission reports for every message you send.
Details that matter
The fine print, done right
The small touches that make a receiver’s bookkeeping — and yours — effortless.
A PDF inside the XML
Every invoice carries its own human-readable rendering, so receivers’ software always has something to show.
Scan-to-pay QR
An EPC / SEPA Girocode on euro credit-transfer invoices — the recipient scans it to pre-fill IBAN, amount and reference.
Validated before it flies
Structural checks plus the official UBL 2.1 XSD schemas catch problems on your machine, not after sending.
Auto-reconciliation
Bank details live in structured cac:PaymentMeans (IBAN / BIC), so receivers’ bookkeeping can match payments automatically.
VAT-exempt friendly
First-class support for tax categories E and O — for businesses that don’t charge VAT.
Credit notes too
Compliant UBL 2.1 credit notes via the command line, alongside the regular invoice flow.
Run it yourself
Up in one command
The Docker image bundles Python and every native library, so the host needs nothing but Docker. Prefer bare metal? Run it under gunicorn or straight from the CLI.
Your Peppyrus API key is read once at startup and stays server-side — the web UI never exposes it to the browser. Everything binds to 127.0.0.1 by default.
# add your Peppyrus credentials, then start $ cp .env.example .env $ docker compose up --build → web UI on http://127.0.0.1:5000 # or drive it from the command line $ python cli.py create --in invoice.json $ python cli.py validate --file out.xml $ python cli.py send # → PEPPOL ✓
Made for the small business that issues its own invoices — not for enterprise volume.
One organisation, one API key, your own machine. Deliberately simple, deliberately yours.
Compose your first invoice.
Clone it, add your credentials, and send a compliant e-invoice today.