EU e-invoicing compliance

Prove an e-invoice is actually compliant

Validate Factur-X, ZUGFeRD and XRechnung against the official veraPDF and KoSIT engines — and generate compliant hybrid PDFs. Honest attestation: an engine that did not run returns null, never a fabricated pass.

veraPDF · PDF/A-3 KoSIT · EN 16931 EU-hosted · nothing stored
Factur-XZUGFeRD XRechnungEN 16931
Free validatorNo signup

Rate-limited per IP. For volume, an API key or your pipeline, see the API.

Belgium & Poland are live; France requires every business to accept e-invoices from 1 September 2026; Germany 2025–2028.
Why FacturProof

Three checks, one honest verdict

Most tools stop at the XML schema. A compliant e-invoice must also be a valid PDF/A-3 and satisfy the EN 16931 business rules — and an auditor cares about all three.

Official engines

veraPDF for PDF/A-3 and KoSIT for the EN 16931 schematron — the same tools an auditor trusts, not a re-implementation.

Never a fake pass

An engine that could not run returns null — never a green tick we cannot stand behind. Your attestation means exactly what it says.

Validate & generate

Check incoming invoices, or build a byte-stable hybrid Factur-X PDF/A-3 from EN 16931 JSON — self-verified before it is returned.

Read incoming invoices

Parse any invoice you receive

From 1 September 2026 every French business must be able to ACCEPT e-invoices — legally through an approved platform, or a compatible solution connected to one. FacturProof is not an approved platform and does not replace that connection: it reads and checks the invoices you receive. /v1/extract reads a hybrid Factur-X/ZUGFeRD PDF, raw CII XML, or a UBL invoice into clean header JSON — number, dates, parties, VAT ids, totals, tax breakdown.

Try it now — no signup

Paste or upload an invoice in the free viewer and see every field rendered as a readable table, right in your browser.

Open the invoice viewer

Same engine, via API

POST /v1/extract for 1 credit — the identical parser the viewer uses, wired into your pipeline, MCP agent or n8n workflow.

POST /v1/extract1 credit
Re-emit, compliant

Turn any invoice into a compliant Factur-X PDF

/v1/convert reads an inbound CII/UBL XML or hybrid PDF and re-emits a self-checked, MINIMUM-profile Factur-X PDF/A-3 — validated by the same veraPDF and KoSIT engines before it is returned.

POST /v1/convert2 credits
Download a converted sample
# Convert an inbound invoice to Factur-X
curl -X POST https://www.facturproof.com/v1/convert \
  -H "X-API-Key: ek_live_…" \
  -F "file=@inbound.xml" -o converted.pdf
Trust your supplier's VAT id

Verify an EU VAT number — with a signed proof

/v1/vat/verify checks a VAT id against the official EU VIES service and returns a signed Ed25519 evidence certificate — a proof a tax auditor or your buyer's system can verify offline, without trusting us or re-querying VIES. Honest on failure: if VIES is down we return a service-unavailable signal, never a fabricated "valid".

POST /v1/vat/verify1 creditfree trial: /v1/vat/verify/try
Verify a certificate — free
# Add requester_vat (your EU VAT) for an OFFICIAL
# VIES consultation number — the EU's own dated reference
curl -X POST "https://www.facturproof.com/v1/vat/verify?vat=LU26375245&requester_vat=FR…" \
  -H "X-API-Key: ek_live_…"

# => { "valid": true, "name": "AMAZON EUROPE…",
#      "consultation_number": "WAPIAAAA…",
#      "attestation": { "alg": "Ed25519",
#        "key_id": …, "signature": … } }
# Anyone can re-check it at https://www.facturproof.com/verify
For developers

One API. Also MCP and n8n.

Prepaid credits, billed per call — a run that produces no verdict is never charged. Drop it into any stack, into an AI agent via Model Context Protocol, or into an n8n workflow with no code.

POST /v1/validatePOST /v1/renderMCP tooln8n templatesPOST /v1/eudr/geojson/try
# Validate an invoice — honest attestation back
curl -X POST https://www.facturproof.com/v1/validate \
  -H "X-API-Key: ek_live_…" \
  -F "file=@invoice.pdf"

# => { "pdfa_pass": true, "schematron_pass": true,
#      "profile_detected": "EN16931",
#      "engines": { "verapdf": …, "kosit": … } }

# EUDR geolocation pre-flight (keyless) — is the GeoJSON TRACES-valid?
curl -X POST https://www.facturproof.com/v1/eudr/geojson/try \n  -H "Content-Type: application/json" \n  --data-binary "@plots.geojson"

# => { "valid": true, "feature_count": 3,
#      "total_area_ha": 12.4, "findings": [] }
Pricing

Prepaid credits. No subscription lock-in.

validate = 1 credit · extract = 1 credit · vat-verify = 1 credit · render = 2 credits · convert = 2 credits · credits never expire. Prices exclude VAT.

Free
€0
50 validations / month
  • No card required
  • Full honest attestation
Start free
Popular
Starter
€9
100 credits
  • validate & render
  • API · MCP · n8n
Get credits
Business
€29
500 credits
  • Best for integrators
  • Priority engine queue
Get credits
Scale
€79
2000 credits
  • High volume
  • Same honest verdicts
Get credits
Get started

Get your API key

Enter your email — we create a free account and show your key once. No card required.

POST /v1/signupX-API-Key: ek_live_…MCP · n8n
Free API keyFree

Rate-limited per IP.