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.
See the Engine in Action
Three scenarios. User-triggered. Every state transition is explicit.
<Invoice xmlns="urn:oasis:names:...ubl:2"> <CustomizationID>urn:cen.eu:en16931:2017</CustomizationID> <ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ProfileID> <ID>INV-2026-0847</ID> <IssueDate>2026-02-19</IssueDate> <InvoiceTypeCode>380</InvoiceTypeCode> <Note>Project delivery Q1</Note> <MandateTypeCode>B2B</MandateTypeCode>UBL-CR-435 <AccountingSupplierParty> <Party> <EndpointID schemeID="0088">4398823</EndpointID> <PartyName> <Name>Müller GmbH</Name> <PayableAmount currencyID="EUR">12,450.00</PayableAmount> <TaxAmount currencyID="EUR">2,365.50</TaxAmount>Findings
UBL 2.1 Cross-Industry
Disallowed element MandateTypeCode
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
<Invoice xmlns="urn:oasis:names:...ubl:2"> <CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</CustomizationID> <ID>INV-2026-0847</ID> <BuyerReference></BuyerReference>error <InvoiceTypeCode>380</InvoiceTypeCode> <MandateTypeCode>B2B</MandateTypeCode>error <AccountingSupplierParty> <Party><EndpointID schemeID="0088">4398823</EndpointID>Fixes Applied
Evidence Pack
Five lines to compliance
| 1 | import { InvoiceNavigator } from '@invoicenavigator/sdk' |
| 2 | |
| 3 | const nav = new InvoiceNavigator({ apiKey: 'your-api-key' }) |
| 4 | const result = await nav.validateAndFix(invoiceXml) |
| 5 | |
| 6 | console.log(result.fixedValid) // true |
| 7 | console.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
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 →