Skip to main content

Verification Methods

All verification sessions expire 10 minutes after creation. If the user doesn’t complete verification within that window, you’ll need to create a new session. Design your UX to guide users through verification promptly and handle the expired session error gracefully. See Errors & Edge Cases for details.
Phone verification must be completed before identity verification can begin. Choose one method from each step below. Most teams use the same approach (Opal, API-driven, or BYO) for both steps, but you can mix — for example, SNA for phone and KBA for identity.

Choosing Your Phone Verification Method

Choosing a Phone Method

MethodUser ExperienceImplementationReliabilityBest For
OpalPolished, pre-builtMinimal (embed SDK)HighMost teams
SMSStandard (enter code)Medium (collect + submit)HighCustom UI with Method SMS delivery
SNAInvisible (no user action)Medium (background URL calls)Variable (carrier-dependent)Mobile-first products, with SMS fallback
BYO SMSYour existing flowLow (report result)Depends on your providerTeams with existing SMS verification
Recommended pattern: Use SNA as primary with SMS as automatic fallback. This gives the best conversion rate while ensuring every user can complete verification.
Phone verification has a maximum attempt limit enforced by the underlying SMS provider. If the limit is reached, the error ENTITY_PHONE_VERIFICATION_MAX_ATTEMPTS is returned and you’ll need to wait before retrying. Design your flow to inform users of the limit and avoid excessive retries.

Choosing Your Identity Verification Method

Choosing an Identity Method

MethodUser ExperienceImplementationBest For
OpalGuided, pre-builtMinimalMost teams
KBAMulti-question quizMedium (present questions, collect answers)API-only integrations without existing KYC
BYO KYCYour existing flowLow (report result)Teams with existing KYC provider
About element and method_verified methods: The API also lists element and method_verified as valid verification methods. element is the predecessor to Opal — new integrations should use Opal instead. method_verified is an internal method used by Method and is not available for external use.