The Verification Flow
Step-by-Step Sequence
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.
Check available verification methods
Inspect
entity.verification.phone.methods and entity.verification.identity.methods to see which verification methods are available for this Entity.Create phone verification session
Choose a phone verification method (SMS, SNA, or BYO SMS) and create a verification session.
Complete phone verification
Complete the phone verification using the method-specific flow (submit SMS code, process SNA URLs, or report BYO result).
Create identity verification session
Once phone is verified, create an identity verification session (KBA or BYO KYC). This will fail with
MISSING_PHONE_VERIFICATION if phone verification is not complete, or MISSING_IDENTITY_MATCH if Method couldn’t match the Entity’s PII.Complete identity verification
Complete the identity verification using the method-specific flow (submit KBA answers or report BYO KYC result).
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).