Overview
Breaking change — effective 17 August 2026:
Privy-Version: 2026-08-17.heimdallstandardizes response field names and changesstatusfromoktosuccess. New integrations must send this request header. Inspect thePrivy-Versionresponse header to identify your current version, and review the response changes and migration steps before adopting it.
Privy User Verification v2 verifies user identity data against an Authoritative Partner before Privy issues a digital certificate. The API accepts identity details, a selfie, and an identity-card image in one server-to-server request.
The integration has two operations:
| Operation | Purpose |
|---|---|
POST /api/v2/userverification | Verify a user and return the certificate-issuance result. |
GET /api/v1/quota/user-verification | Read the merchant's remaining User Verification quota. |
Every request uses HTTP Basic authentication and the Merchant-Key header.
Keep both credentials on the merchant backend.
Verification flow
- Collect the user's NIK, name, date of birth, email, and phone number.
- Capture a clear selfie and identity-card image.
- Convert both images to base64 strings.
- Send the verification request from the merchant backend.
- Check
userStatusto determine whether the digital certificate was issued or held. - Store
transaction_idfor support and reconciliation.
The operation is synchronous. A successful HTTP response can contain either a
verified or rejected business result, so do not use the HTTP status alone to
decide whether the user passed verification.
Continue with the quickstart, or review the request fields.
