The Verification Flow
Step-by-Step Sequence
1
Create Entity with PII
Create an Entity with at minimum a name and phone number. If you’re using the API-driven flow (not Opal), providing more PII (DOB, SSN, address) significantly improves match rates. Opal collects PII directly from the user during its flow, so upfront PII is less critical when using Opal. See Maximizing Success.
2
Check available verification methods
Inspect
entity.verification.phone.methods and entity.verification.identity.methods to see which verification methods are available for this Entity.3
Create phone verification session
Choose a phone verification method (SMS, SNA, or BYO SMS) and create a verification session.
4
Complete phone verification
Complete the phone verification using the method-specific flow (submit SMS code, process SNA URLs, or report BYO result).
5
Create identity verification session
Once phone is verified, teams authorized for BYO KYC can report the result of their own identity checks through an identity verification session. Opal handles identity verification within its embedded flow. Creating the session before phone verification is complete returns
MISSING_PHONE_VERIFICATION. If Method cannot match the Entity’s PII, it returns MISSING_IDENTITY_MATCH.6
Complete identity verification
Complete the Opal flow or create the BYO KYC session to record the result of your own identity checks.
State Diagram
Webhooks
Subscribe to verification session events to track progress:entity_verification_session.create— Fired when a new verification session is created.entity_verification_session.update— Fired when a session’s status changes (e.g.,pending→verified,pending→failed).