COMPLIANCE API — ELECTRONIC INVOICING

Validate and fix your electronic invoices through an API.

Send a Factur-X, CII or UBL file: Factlint judges it against EN 16931 and the national rule floor you target, and returns either a usable document or the exact list of what is missing — for each defect, its rule, its XPath location, and whether it can be fixed automatically.

Same file, same rule set, same verdict — ten years from now.

Free, no account needed
Unlimited volume on /validate
Verdicts replayable for ten years
Accepted formatsFactur-XZUGFeRDUN/CEFACT CIIUBL 2.1
Rule floors appliedDEXRechnung 3.0.2 (KoSIT)EUEN 16931-1:2017FREN 16931 CIUS France + BR-FR-CTC (FNFE)
# Sending the invoice to the Factlint compliance engine
curl -X POST https://api.factlint.com/v1/validate \
  -F "file=@facture_2026_048.pdf" \
  -F "ruleset=eu-en16931-2026-08" \
  -F "pinned=true"
Saxon-HE engine & CEN Schematron: Every request is validated against a deterministic, time-stamped container of artefacts.
Factur-X · ZUGFeRD · UN/CEFACT CII · UBL 2.1
Format: PDF/A-3 & XML•Zero retention
Next deadlineGermany
  • issuing — businesses with turnover above €800k
  • issuing — micro-enterprises
  • receiving and e-reporting — businesses not registered for VAT

Not every file now in circulation passes.

Check an invoicefree, no account
65+
Schematron rules
EN 16931 CEN
4
Sealed rule sets
Replayable verdicts
4
Formats supported
Factur-X · ZUGFeRD · UN/CEFACT CII · UBL 2.1
Zero
Data retention
Processed in RAM
Product commitments

Factlint's non-negotiable guarantees

Built for demanding architects and developers. A validation infrastructure that is deterministic, zero-trust and reproducible.

Nothing is kept

Full GDPR confidentiality

Processing is 100% in volatile memory (RAM). Your invoice payload — customer names, addresses, amounts, IBAN bank details — is never written to disk, nor to any log file.

Ephemeral processing in RAM
No business data in the logs
Hosted in the EU
Strict isolation between sessions

Replayable verdicts

Every report is backed by a rule set that is pinned, time-stamped and hashed (SHA-256). Even when the standard moves on, the verdict stays identical and verifiable ten years later.

engine.pinned: true

No amount is ever written

Financial discrepancies (VAT, net and gross totals, taxable bases) are computed and offered in the suggested_value field. They are never rewritten automatically, so that the liability stays where it belongs — with you.

A strict product rule, with no exception

No sign-up required

Immediate access

The validation endpoint POST /v1/validate is open and free, and available straight away — no account and no API key needed for your integration tests.

Zero friction to start
Unlimited validation
Java, Node and PHP SDKs ready

What goes in, what comes out

Your invoice goes in, a usable document comes out

Or, failing that, the exact list of what is missing — with its rule, its location and who has to supply it. There is no third answer.

Your invoiceValidateFixEnrichConvertSealUsable invoice

The invoice is compliant

It goes back unchanged. Your pipeline carries on with no intervention.

status: passed

A value is missing

Factlint says which one, where, and under which rule. It never invents it: a made-up invoice number is worse than an empty field.

status: needs_input

The defect is structural

Factlint fixes it and returns the exact diff, by XPath. Date format, decimal separator, currency-code casing, PDF/A-3 envelope.

status: fixed

An amount does not add up

Factlint computes the expected value and suggests it — it never writes it. An amount, a VAT rate or an IBAN is not corrected on the issuer’s behalf.

status: blocked

You need to be able to prove it

The evidence pack seals the verdict together with the fingerprint of the rule set that produced it. Replayable identically for the whole tax retention period.

evidence pack

Modular API architecture

The compliance pipeline

Five independent building blocks, or a single POST /v1/process call that orchestrates them all.

STEP 01
Free & unlimited
POST /v1/validate

Validate

5 automated levels of checking

STEP 02
Reversible diff
POST /v1/fix

Fix

Automatic correction of defects

STEP 03
VIES & BAN
POST /v1/enrich

Check third parties

Live checks on SIREN / VAT numbers

STEP 04
Byte for byte
POST /v1/convert

Convert

Extract or attach the XML

STEP 05
Attestation you can rely on
POST /v1/evidence

Seal

Cryptographic proof of the verdict

POST /v1/validateFree & unlimited

How the Validate step works

PDF/A-3 container (veraPDF), attachments and XMP, profile coherence, XSD validation, then European (CEN EN 16931) and national Schematron.

Deterministic execution
Payload: Multipart / XML / PDF
Response: JSON standardized schema
POST /v1/processOrchestrator

Need to run everything in one request?

The /v1/process endpoint chains validation, autofix, BAN/VIES enrichment, conversion and cryptographic sealing into a single HTTP call.

Explore the API
Immutable verdicts

A dated verdict you can replay years later

Regulatory rule sets keep moving (Factur-X 1.08 to 1.09, half-yearly CEN revisions, DGFiP specifications V3.0 to V3.2). An invoice that was in order when it was issued risks being wrongly rejected two years later by a newer validator.

At Factlint, every verdict carries the exact identifier, the SHA-256 hash and the effective date of the rule set — and of every artefact used (Schematron, XSD, veraPDF, Saxon).

European core sealed
eu-en16931-2026-08

The eu-en16931-2026-08 manifest is sealed in full. Its artefacts (Saxon 12.5, CEN Schematron 1.3.16) are hashed and kept executable.

Evidence pack — cryptographic attestation
IMMUTABLE VERDICT
RULESET IDENTIFIER
eu-en16931-2026-08
SHA256 MANIFEST FINGERPRINT
3433666fbc3699ef87b003a8d9a21fe6c83f98218172c9a
VERIFIED ARTEFACTS
• schematron-cen v1.3.16Verified
• saxon-he v12.5Verified
• verapdf-engine v1.24Verified
SEAL FINGERPRINT
24257f71985f39dced920d95758bb3c8a91012f
TEST YOUR INVOICE IN FIVE SECONDS

Drop in an invoice, see what breaks

Five automated levels of checking, a readable report, and the detail of what ran. No account, no API key, no volume limit — and the document is never kept.

Free, no card needed
Processed entirely in RAM
Factur-X, XRechnung and CII supported