PrivyPrivy
Sign in
  • Documentation
Back to Documentation
Digital ID
Get Started
Changelog
Concepts
    EnvironmentsAuthenticationData PackagesVerification FlowUser JourneySession Lifecycle
Guides
API Reference
powered by Zudoku
Sign in
Concepts

Verification Flow

Privy controls the order of the verification steps on its servers. The user cannot skip a required step: OTP follows the face match, and consent follows OTP. Both data packages use the same flow.

Code
Identifier input → Liveness + face match → OTP → Consent → Success
Widget screenWhat happensWidget event
Identifier inputThe user enters a PrivyID, email, NIK, or mobile number.privy:ready on startup
Liveness + face matchPrivy checks that a live person is present and compares the face with the face on file.None
OTPThe user confirms a one-time password.None
ConsentThe user reviews the data that the merchant receives.None
SuccessThe user continued.privy:success
Identifier input errorThe identifier does not match a registered identity.None
No data sharedThe user rejected the request, or the confirmation window ended.privy:cancel if rejected. privy:error with session_expired if timed out.
BlockedThree liveness or face-match attempts failed. The session cannot continue.privy:error

The user journey shows the screen for each step. The session lifecycle explains how to keep and reuse a session.

Last modified on October 23, 2026
Data PackagesUser Journey