Verifiable proof, not just a PDF

A FactureCheck PDF conformance report isn't just a document someone can edit afterwards — it is individually registered at the moment it is issued, so anyone holding a copy can later confirm it is genuine.

How a report becomes proof

POST /api/v1/validate?report=pdf returns a PDF report instead of JSON, and registers the SHA-256 hash of that exact PDF's bytes in the proof-of-issuance registry at the moment it is rendered.

What's stored — and what never is

Only the hash and result metadata: sha256, issued_at, verdict, profile, syntax, ruleset_versions. The invoice's own content, its filename, and the requester's IP address are never stored alongside it — registering proof of issuance does not require keeping what was issued.

Checking a report

GET /api/v1/verify/{sha256} answers {"known": false} for a hash this service never issued — not an error, a normal answer that lets you detect a forged or altered report — or, for a genuine one:

{
  "known": true,
  "issued_at": 1785000000,
  "verdict": "acceptable",
  "profile": "Xrechnung",
  "syntax": "UBL",
  "ruleset_versions": { "xrechnung_schematron": "2.5.0", "xrechnung_cius": "3.0.2" }
}

The /verify page computes the hash of a PDF entirely in your browser (Web Crypto SubtleCrypto) — the file itself is never uploaded to check it.

Verify a report Validate your invoice free