VerifyHQ Docs

Identity Verification

The Identity Verification API manages the full KYC lifecycle — from initiating a verification to retrieving status and handling manual reviews. Each verification tracks document checks, liveness, and overall compliance status.

POST/verifications/identity

Start a new identity verification for a user. If an active (PENDING/IN_PROGRESS) verification exists, it returns the existing one.

Request Body

ParameterTypeDescription
userIdrequiredstringUnique identifier for the user to verify
tierenumVerification tier: BASIC, STANDARD, or ENHANCED. Defaults to BASIC.

Verification Tiers

ParameterTypeDescription
BASICtierDocument verification only
STANDARDtierDocument + liveness check
ENHANCEDtierDocument + liveness + sanctions screening

Code Examples

curl -X POST https://api.verifyhq.com/v1/verifications/identity \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "user_123",
    "tier": "ENHANCED"
  }'

Response

201 Createdjson
{
  "id": "ver_abc123",
  "userId": "user_123",
  "tier": "ENHANCED",
  "status": "PENDING",
  "steps": {
    "document": "PENDING",
    "liveness": "PENDING"
  },
  "createdAt": "2025-01-15T10:30:00Z"
}
GET/verifications/identity/:id

Retrieve a verification by its unique ID.

curl https://api.verifyhq.com/v1/verifications/identity/ver_abc123 \
  -H "X-API-Key: your_api_key"

Response

200 OKjson
{
  "id": "ver_abc123",
  "userId": "user_123",
  "tier": "ENHANCED",
  "status": "VERIFIED",
  "steps": {
    "document": "VERIFIED",
    "liveness": "PASSED"
  },
  "completedAt": "2025-01-15T10:35:00Z",
  "createdAt": "2025-01-15T10:30:00Z"
}
GET/verifications/identity/user/:userId

List all verifications for a specific user with pagination.

Query Parameters

ParameterTypeDescription
pagenumberPage number (default: 1)
limitnumberItems per page (default: 20, max: 100)
Examplebash
curl "https://api.verifyhq.com/v1/verifications/identity/user/user_123?page=1&limit=10" \
  -H "X-API-Key: your_api_key"
POST/verifications/identity/:id/review

Submit a manual review decision. For verifications in MANUAL_REVIEW or PENDING status.

Request Body

ParameterTypeDescription
decisionrequiredenumVERIFIED or REJECTED
reviewedByrequiredstringIdentifier of the reviewer
reviewNotesrequiredstringNotes explaining the review decision
Requestjson
{
  "decision": "VERIFIED",
  "reviewedBy": "admin_john",
  "reviewNotes": "Document manually verified. All fields match."
}
POST/verifications/identity/:id/restart

Invalidate the current verification and start a new one. Use when a previous verification was rejected or expired.

Examplebash
curl -X POST https://api.verifyhq.com/v1/verifications/identity/ver_abc123/restart \
  -H "X-API-Key: your_api_key"

Verification Statuses

ParameterTypeDescription
PENDINGstatusVerification created, awaiting document/liveness submissions
IN_PROGRESSstatusDocuments submitted, verification processing
MANUAL_REVIEWstatusRequires human review (flagged by AI)
VERIFIEDstatusAll checks passed successfully
REJECTEDstatusVerification failed one or more checks
EXPIREDstatusVerification timed out (not completed within window)