Validate, fix, and certify EU e-invoices.
One API call.

Auto-fix structural errors in EN 16931, Peppol BIS, XRechnung, Factur-X, and FatturaPA invoices. Evidence pack included. Amounts, VAT, and IBANs are never touched.

Read the docs
EN 16931Peppol BIS 3.0XRechnungFactur-XFatturaPA

Got a broken invoice?

Upload it. We'll fix it. Download it.

UBL 2.1CIIFactur-X

See the Engine in Action

Three scenarios. User-triggered. Every state transition is explicit.

Compliance Engine
1
<Invoice xmlns="urn:oasis:names:...ubl:2">
2
<CustomizationID>urn:cen.eu:en16931:2017</CustomizationID>
3
<ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ProfileID>
4
<ID>INV-2026-0847</ID>
5
<IssueDate>2026-02-19</IssueDate>
6
<InvoiceTypeCode>380</InvoiceTypeCode>
7
<Note>Project delivery Q1</Note>
8
<MandateTypeCode>B2B</MandateTypeCode>UBL-CR-435
9
<AccountingSupplierParty>
10
<Party>
11
<EndpointID schemeID="0088">4398823</EndpointID>
12
<PartyName>
13
<Name>Müller GmbH</Name>
14
<PayableAmount currencyID="EUR">12,450.00</PayableAmount>
15
<TaxAmount currencyID="EUR">2,365.50</TaxAmount>

Findings

UBL-CR-435FATALAUTO-FIX

UBL 2.1 Cross-Industry

Disallowed element MandateTypeCode

Validation: FAILED1 issue found

Best experienced on desktop for the full interactive console.

How It Works

Send an invoice

Your ERP exports XML. Send it to the API or upload it to the validator.

Engine validates and fixes

Checks 1,300+ rules. Auto-fixes structural errors. Financial fields are never modified.

Get compliant invoice + evidence pack

Download the fixed invoice and an audit-ready evidence pack documenting every fix applied.

See it in action

Input

1
<Invoice xmlns="urn:oasis:names:...ubl:2">
2
<CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</CustomizationID>
3
<ID>INV-2026-0847</ID>
4
<BuyerReference></BuyerReference>error
5
<InvoiceTypeCode>380</InvoiceTypeCode>
6
<MandateTypeCode>B2B</MandateTypeCode>error
7
<AccountingSupplierParty>
8
<Party><EndpointID schemeID="0088">4398823</EndpointID>
×4 errors found
3 auto-fixed
!1 requires your input

Fixes Applied

!
BR-DE-15: Added missing Buyer Reference from order data
UBL-CR-435: Removed duplicate namespace declaration
BR-DE-21: Corrected payment means code to valid value
UBL-CR-680: Removed disallowed MandateTypeCode element

Evidence Pack

Audit-ready proof, included with every validation

Five lines to compliance

1import { InvoiceNavigator } from '@invoicenavigator/sdk'
2 
3const nav = new InvoiceNavigator({ apiKey: 'your-api-key' })
4const result = await nav.validateAndFix(invoiceXml)
5 
6console.log(result.fixedValid) // true
7console.log(result.evidencePackUrl) // https://...
1{
2 "originalValid": false,
3 "fixedValid": true,
4 "errorsFound": 4,
5 "fixesApplied": 3,
6 "inputRequired": 1,
7 "evidencePackUrl": "https://invoicenavigator.eu/verify/ep_abc123",
8 "fixSummary": [
9 { "rule": "BR-DE-15", "action": "auto-fixed", "detail": "Added Buyer Reference" },
10 { "rule": "UBL-CR-435", "action": "auto-fixed", "detail": "Removed duplicate namespace" }
11 ]
12}

Simple pricing

Same engine, every plan. One metric: invoices processed.

Free

€0 /month

500 invoices/month

7-day data retention

  • Full validation
  • Auto-fix
  • Evidence preview
  • API access + SDK
  • GitHub Action
  • Sandbox
Recommended

Pro

99 /month

10,000 invoices/month

90-day data retention

€10 per 1K overage

Everything in Free, plus:

  • Evidence pack PDF download + verify URL
  • Webhook callbacks
  • Priority support (<24h)

Processing 100K+ invoices/month? Apply for the Founding Pilot →

Start validating.

500 invoices/month, free. No credit card required.