Reference
REST API
For developers. Nothing on this page is needed to run your practice — the dashboard and your own portal do all of it. This is for two other jobs: checking a document is genuine from your own software (a case-management system, a bank's onboarding flow, a customer's procurement portal), and registering documents into your practice automatically instead of uploading them by hand.
The verification surface below is public and needs no credentials: anyone holding a document can check it, including people who have never heard of us. Registering documents into your own practice is done from your account, where those endpoints are documented.
Endpoints
Verify a document
# hash your copy locally
shasum -a 256 contract.pdf
# ask the ledger about that hash — nothing else is sent
curl -X POST https://selfservicenotary.com/api/verify \
-H 'content-type: application/json' \
-d '{"docHash":"9f2c4b1e…c81b"}'Response
{
"status": "authentic",
"docKind": "sealed",
"chainIntact": true,
"issuerVerified": true,
"signedCount": 2,
"events": [ { "seq": 1284, "scope": "seal", … } ]
}Offline verification
A QR encodes /v/<docId>#<JWS>. The fragment is an ES256 token binding the document hash to the issuer key — verify it against /api/ledger/keys with any JOSE library, then confirm your file's SHA-256 equals the token's h. Download an inclusion proof to replay the record with zero trust in this server.
