Docs
One API for every ID check. Bearer-key auth, HMAC-signed webhooks.
Create a verification session
curl -s -X POST localhost:8080/v1/sessions \
-H "Authorization: Bearer <VERIFYMESH_API_KEY>" \
-H 'Content-Type: application/json' \
-d '{"customer_id":"acme","country":"US","subject_ref":"user_123",
"payload":{"document_type":"passport"}}'
# 201 {"session_id":"sess_...","status":"passed",
# "attempts":[{"vendor":"...","verdict":"PASS","latency_ms":812}],...}
customer_id and subject_ref are required (400 otherwise). Only a SHA-256 hash of the subject reference is stored.
Check a session
curl -s -H "Authorization: Bearer <key>" \ localhost:8080/v1/sessions/sess_... # redacted public view — timelines pass through PII redaction
Service health
curl -s localhost:8080/v1/health
# {"service":"ok","vendors":{"...":{"healthy":true},...}}Vendor webhooks
Async vendor results arrive at POST /v1/webhooks/vendor, HMAC-SHA256 verified with X-VerifyMesh-Signature over the raw body using VERIFYMESH_WEBHOOK_SECRET.
The billing rule
A billable event fires only on a definitive vendor PASS. FAIL, INCONCLUSIVE, and ERROR are never billed. One session bills at most once — failover retries are idempotent. Default rate $0.45/success (VERIFYMESH_RATE).