How do I check a signed file later?
Anyone can confirm a signed PDF is exactly what this service produced,
without an API key, by uploading it at /verify — the page
recomputes its SHA-256 and reports a match or "No match", in Italian or English
(?lang=it or ?lang=en; by default the language of the signed
request). To do the same
thing from code, compute the hash yourself and compare it to
signedSha256 from a GET on the envelope:
curl -F "document=@signed.pdf" https://your-host/verify
The same check, for a machine
No key either, and rate-limited per address. Ask for JSON:
GET /verify/{sha256}.json
POST /verify.json (multipart, part "document")
200 OK
{
"schema": 1,
"queriedSha256": "ab12...",
"found": true,
"integrity": { "result": "matches_a_signed_file", "algorithm": "sha256" },
"signature": { "level": "SES", "legalQualification": "simple_electronic_signature",
"status": "completed", "completedAt": "...", "signerCount": 2,
"signers": [{ "fullName": "Anna Rossi", "signedAt": "..." }], "isTest": false },
"seal": { "requested": true, "padesProfile": "B-T", "applied": true },
"timestamp": { "requested": true, "applied": true },
"evidence": { "chain": { "intact": true, "events": 14 },
"purged": false,
"retention": "10 years from the envelope closing, unless the organisation chose a shorter period" }
}
It is deliberately never collapsed into one valid
boolean. A matching hash says the file is exactly what was signed here;
it does not say the seal was qualified (qualified is never
asserted: no certificate in this deployment is declared qualified), that a
timestamp is still verifiable, or that the signer was who they claimed. Each
fact is its own field with its own words, and found: false carries
the same reasons the page gives. An envelope whose evidence has been purged
still answers from its recorded hash and says evidence.purged: true.
A test envelope says isTest: true.
A single changed byte — a re-saved PDF, a copy run through another tool — is enough for this to stop matching. That is the point: it is tamper-evidence, not a checksum for its own sake.
Where the fingerprint comes from: What the signer sees.