UBL/XML Validation

Bring your invoice output into compliance with Peppol BIS 3.0 and EN16931. We fix the schematron violations, country profile mismatches, and long-tail edge cases that break in production.

Good fit

Who this is for

  • Finance and ERP teams whose invoices are getting rejected or returned by receivers and access points.
  • Companies expanding from one country profile (e.g. XRechnung) into additional Peppol markets like Belgium or the Netherlands.
  • Organisations that pass test validation but see failures in production with real invoice data.
  • Teams preparing for go-live that need a clean compliance baseline across all document types.
Not a fit

Who it isn't for

  • Companies that have not yet mapped their invoice data to UBL. Start with a Readiness Assessment.
  • Teams looking for a one-click validator tool. Our free Peppol Validator handles that.
  • Organisations that only send domestic invoices within a single, stable country profile.
Deliverables

What you get

01

Schematron audit

Rule-by-rule audit of your invoice output against EN16931 business rules and Peppol BIS 3.0 schematron. Every violation documented with root cause and fix path.

02

Country profile coverage

Validation against each country profile in scope. Belgian e-FFF, XRechnung, NLCIUS, Factur-X, and others. Cross-country mismatches surfaced and resolved.

03

Validation Report

Full report with pass/fail/warning for every rule checked. Grouped by rule set, annotated with severity and remediation guidance. The deliverable you hand to your ERP team.

04

Fix implementation

We work with your ERP team to implement fixes. Mapping corrections, tax breakdown adjustments, attachment encoding, and credit-note edge cases. Not just a report. Fixes that land in production.

05

Regression test suite

Test suite covering all document types and country profiles in scope. Re-run after fixes to confirm compliance. Handed over so your team can run it on future changes.

Anonymised customer profile. Names and figures changed. Company details available on request under NDA.

Case study

German manufacturer expanding into Belgian and Dutch e-invoicing

Client profile
Type
Mittelstand manufacturer
Headcount
~250 staff
Current state
Sending XRechnung
Expansion
B2B + BE/NL markets
Buyer: Head of finance + ERP lead|Rejection rate: climbing|Country profiles: DE, BE, NL

The situation

A German Mittelstand manufacturer with around 250 staff has been sending XRechnung invoices to German public-sector customers for two years. The process works. But rejection rates have been climbing as the country profile validation rules tighten with each schematron update.

The head of finance and the ERP lead share ownership of the initiative. The company plans to extend e-invoicing to B2B customers and expand into Belgian and Dutch markets. Both countries require Peppol BIS 3.0 compliance with their own country profile extensions. The current XRechnung output has never been tested against those profiles.

What commonly goes sideways

For a profile like this, the most common issues we would surface in the validation audit include:

Tax breakdown rejections

Cross-country rejections cluster around the BR-CO-15 family of tax breakdown rules. The German profile tolerates certain rounding approaches that the Belgian profile rejects outright. Multi-rate invoices are the worst offenders.

PDF attachment encoding

PDF-attachment embedding that works for XRechnung breaks Peppol BIS in production. The MIME type encoding accepted by German receivers is rejected by the Peppol BIS 3.0 schematron when the same invoice targets Belgian or Dutch receivers.

Credit note edge cases

Long-tail credit-note edge cases never caught in test. Negative amount handling, tax rounding on partial credits, and multi-line credit notes with mixed VAT rates all surface only with real production data.

Country profile gaps

Fields required by the Belgian e-FFF profile (such as TaxRepresentativeParty for non-BE sellers) are absent from the XRechnung output. The ERP mapping was built for a single country and has no awareness of multi-profile requirements.

What a UBL/XML Validation engagement covers for this profile

In a validation engagement for this profile we would collect production invoice samples across all document types: standard invoices, credit notes, and self-billing documents. We run every sample against the full EN16931 business rule set, the Peppol BIS 3.0 schematron, and each country profile in scope.

The Validation Report documents every violation with root cause and severity. We then work with the ERP team to implement fixes. Tax breakdown recalculations, attachment MIME type corrections, credit-note rounding adjustments, and country-profile-specific field additions. Every fix is re-validated before sign-off.

The engagement ends with a regression test suite that covers all document types and country profiles. The team can re-run it on future ERP changes or schematron updates. No dependency on us for ongoing compliance checks.

Indicative outcomes
~80%

reissue and rejection volume cut within 4 weeks

Systematic fix of the top violation families eliminates the bulk of rejections. Remaining cases addressed in regression testing.

8–15 days

rejection-driven AR delay reduced

Every rejected invoice restarts the AR clock. Eliminating rejections recovers cash flow that was stuck in the reissue-and-wait cycle.

~70%

manual re-issuing workload eliminated

Finance staff currently re-keying and re-sending rejected invoices. Fixing the root cause removes the manual loop entirely for the addressed violation classes.

Sample deliverable
Sample artefact

UBL/XML Validation Report

Client: ████████ GmbH

Run date
██.██.2026
Total14
Passed8
Failed4
Warnings2
EN16931 business rules
FAIL
BR-CO-15error

Invoice total with VAT must equal Invoice total without VAT plus Invoice total VAT amount

Tax breakdown rounding differs between DE and BE country profiles. ██████ line-level amounts.

PASS
BR-CO-16error

Amount due for payment must equal Invoice total with VAT

FAIL
BR-S-08error

For each tax breakdown where category code is Standard, the taxable amount must equal the sum of line extension amounts

Multi-rate invoices split incorrectly. ██% VAT category not summed across all line items.

PASS
BR-CL-10error

Endpoint identifier scheme must be from code list

Peppol BIS 3.0 rules
FAIL
PEPPOL-EN16931-R004error

Tax calculation tolerances exceeded on credit note

Credit-note tax rounding edge case. Negative amounts produce ██████ cent deviation.

PASS
PEPPOL-EN16931-R002error

Customization ID must correspond to the specification

WARN
PEPPOL-EN16931-R080warning

Document level allowance reason must be provided

Commercial discount lines missing AllowanceChargeReason. Accepted by DE profile, rejected by BE.

Country profile: Belgian e-FFF
PASS
BE-R-001error

Belgian structured communication (OGM) must follow +++DDD/DDDD/DDDDD+++ format

WARN
BE-R-003warning

Tax representative party name required for non-BE seller

DE seller entity missing TaxRepresentativeParty. Required for BE-destined invoices.

Country profile: XRechnung
PASS
BR-DE-01error

Buyer reference (Leitweg-ID) must be provided for German public sector

PASS
BR-DE-15error

Seller contact telephone number is required

Attachment and embedding
FAIL
ATT-01error

PDF/A-3 embedded XML attachment must reference correct MIME type

PDF attachment uses application/pdf MIME type. Works for XRechnung viewer but breaks Peppol BIS ██████ validation.

PASS
ATT-02error

Additional document reference must include attachment

Report generated against Peppol BIS 3.0, EN16931, and applicable country profiles. Redacted fields (██) contain client-specific data available under NDA.

Process

How we run it

1

Kickoff and sample collection

Week 1

Align on country profiles in scope, document types, and known rejection patterns. Collect production invoice samples across all ERP outputs.

2

Full validation audit

Week 1–2

Run every sample against EN16931 business rules, Peppol BIS 3.0 schematron, and applicable country profiles. Document every violation with root cause analysis.

3

Validation Report delivery

Week 2–3

Deliver the full Validation Report. Walk through findings with finance and ERP teams. Prioritise fixes by severity and business impact.

4

Fix implementation

Week 3–5

Work alongside your ERP team to implement mapping corrections, tax breakdown fixes, attachment encoding changes, and credit-note adjustments.

5

Regression testing and handover

Week 5–6

Re-run the full test suite against corrected output. Confirm compliance across all profiles. Hand over the regression suite for ongoing use.

Investment

Format and pricing

From €8,000

Fixed scope. Fixed price. Final price depends on country profile coverage and invoice volume.

FAQ

Frequently asked questions

Do you fix the issues or just report them?
Both. The Validation Report documents every violation. Then we work with your ERP team to implement the fixes. You end the engagement with compliant output, not just a list of problems.
Which country profiles do you cover?
We validate against any Peppol country profile: Belgian e-FFF, XRechnung (Germany), NLCIUS (Netherlands), Factur-X/Chorus Pro (France), and others. The scope is agreed during kickoff based on your target markets.
Our invoices pass the free validator. Why do we still get rejections?
Free validators typically check schema and core EN16931 rules. Production rejections often come from country-profile-specific rules, receiver-side schematron extensions, or edge cases in credit notes and multi-rate invoices that only surface with real data at scale.
How is this different from running your free Peppol Validator?
The free tool checks one document at a time against standard rules. This engagement audits your full production output, covers all country profiles in scope, identifies systematic patterns, implements fixes, and hands over a regression test suite. It is a structured consulting engagement, not a tool.
Can you work with our ERP vendor directly?
Yes. We regularly work alongside SAP, Microsoft Dynamics, Oracle, and custom ERP teams. We provide the technical specification for each fix. Your vendor implements, we verify.
How long does the engagement take?
Typically 2 to 6 weeks depending on country profile complexity and volume. A single-country engagement with clean data can finish in 2 to 3 weeks. Multi-country with legacy ERP outputs takes longer. We confirm the timeline during kickoff.
Discovery call

Discuss on a discovery call

30 minutes with a co-founder or senior e-invoicing expert. You leave the call with a clear next step. Tailored proposal in your inbox within 48 hours.

Vendor-neutral. No obligation to switch platforms.

UBL/XML Validation Advisory | Peppol BIS 3.0 & EN16931 | e-invoice.be