Peppol BIS Billing 3.0 & EN 16931 e-Invoice Engine API
Instant <5ms Peppol BIS 3.0, UBL 2.1 & UN/CEFACT CII e-Invoice Validator & JSON Parser
The Peppol BIS Billing 3.0 & EN 16931 e-Invoice Engine API provides high-performance, deterministic edge validation and semantic JSON transformation for modern European and international electronic invoices. Designed to execute within sub-5ms V8 isolates, it supports both OASIS UBL 2.1 (Invoice and CreditNote) and UN/CEFACT CII (CrossIndustryInvoice / Factur-X / ZUGFeRD 2.2) XML standards.
Built for active regulatory mandates including the German Growth Opportunities Act (Wachstumschancengesetz), French B2B electronic invoicing reforms, Polish KSeF, Italian SDI, and cross-border OpenPeppol networks across Europe, Singapore, Australia, and New Zealand. Every validation request rigorously evaluates EN 16931 business rules (BR-01 through BR-65), cross-calculates line item pricing and allowances, checks VAT category percentages and exemptions, and verifies ISO 6523 Electronic Address Scheme (EAS) participant identifiers.
The parser converts complex XML invoices into strongly-typed, predictable JSON representations, eliminating heavyweight Java/Schematron infrastructure and slashing invoice processing pipelines from seconds down to single-digit milliseconds.
Features
- Dual-syntax engine: OASIS UBL 2.1 (Invoice & CreditNote) and UN/CEFACT CII (Factur-X / ZUGFeRD 2.2)
- Comprehensive EN 16931-1:2017 & Peppol BIS Billing 3.0 business rule coverage (BR-01..65, PEPPOL-EN16931-R*)
- Deterministic line item, allowance/charge, and monetary total balance sheet reconciliation
- VAT category verification (UNTDID 5305 S, Z, E, AE, K, G, O, L) with arithmetic rounding delta bounds
- OpenPeppol ISO 6523 EAS scheme validation (0088 GLN, 0184 DK:CVR, 0208 BE:CBE, 9930 DE:VAT, 0204 Leitweg-ID, etc.)
- Payment means check with ISO 13616 Modulo-97 IBAN checksum validation
- Sub-5ms pure compute execution on Cloudflare Workers edge isolates with zero cold starts
- Standard JSON response envelope with latency and version metadata
Endpoints
| Method | Path | Description | Example |
|---|---|---|---|
POST | /api/v1/validate | Validate XML e-invoice against EN 16931 and Peppol BIS 3.0 business rules | {"xml":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\">...</Invoice>"} |
POST | /api/v1/parse | Extract structured semantic JSON invoice model with full validation report | {"xml":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\">...</Invoice>"} |
GET | /api/v1/eas-schemes | List and search ISO 6523 Electronic Address Schemes (EAS) for Peppol participants | /api/v1/eas-schemes?country=DE |
GET | /api/v1/tax-categories | List UNTDID 5305 VAT categories and exemption rules | /api/v1/tax-categories |
GET | /api/v1/provenance | Get statutory standards compliance and scheduled verification status | /api/v1/provenance |
GET | /health | Service health check | /health |
FAQ
What is Peppol BIS Billing 3.0 and EN 16931?
Peppol BIS Billing 3.0 is the official Core Invoice Usage Specification (CIUS) implementing the European Standard EN 16931 for cross-border electronic invoicing across the OpenPeppol network.
Which XML syntax formats are supported by this API?
The API supports both syntaxes recognized under EN 16931: (1) OASIS UBL 2.1 (Invoices and Credit Notes) and (2) UN/CEFACT CrossIndustryInvoice (CII 16B), including Factur-X and ZUGFeRD 2.2 profiles.
How are business rules evaluated without Schematron or Java?
Our engine executes a pure functional TypeScript rule matrix running in V8 WebAssembly/Isolate memory, evaluating mathematical equations, party schemas, EAS codes, and tax breakdowns in under 5 milliseconds.
How does the API handle German Leitweg-ID and public sector invoicing?
The API validates EAS scheme 0204 (DE:LEITWEG) and BuyerReference requirements mandated by German federal and state public procurement authorities (XRechnung).
What happens when an invalid invoice is submitted?
The API returns HTTP 200 with valid: false, status: "NON_COMPLIANT", and an array of specific rule violation objects containing the exact rule ID (e.g., BR-CO-10), path, and descriptive failure message.