KYC Verification Flow
The verification flow is the core KYC process that validates a user’s identity. This can be started after prefill or directly with user-provided information.Starting Verification
Request
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | Your internal user identifier |
firstName | string | Yes | Legal first name |
middleName | string | No | Middle name |
lastName | string | Yes | Legal last name |
email | string | Yes | Email address |
phoneNumber | string | Yes | Phone number with country code |
dateOfBirth | string | Yes | Date of birth (YYYY-MM-DD) |
ssn | string | Yes | Social Security Number |
address | object | Yes | Residential address |
sessionToken | string | Yes | Session token |
agreementTime | datetime | Yes | When user agreed to terms |
referralCode | string | No | Referral code if applicable |
ipAddress | string | No | User’s IP address |
Address Object
| Field | Type | Required | Description |
|---|---|---|---|
addressLine1 | string | Yes | Street address |
addressLine2 | string | No | Apt/Suite/Unit number |
city | string | Yes | City |
state | string | Yes | State (2-letter code) |
postalCode | string | Yes | ZIP/Postal code |
country | string | Yes | Country code (e.g., “US”) |
Response
Verification Outcomes
Instant Approval
If the identity can be verified immediately:participantId and account fields are populated only after approval. Use these identifiers for subsequent trading API calls.
Document Verification Required
If additional documents are needed, the response includes DocV details:| Field | Description |
|---|---|
sdkKey | Socure SDK public key for initializing the DocV SDK |
docvTransactionToken | Session token passed to the SDK’s launch() method |
eventId | Event tracking identifier |
qrCode | Base64-encoded QR code image for mobile scanning |
url | Direct URL for web-based document upload |
Socure SDK Integration
For native mobile document capture, integrate the Socure DocV SDK:- Initialize the SDK with
sdkKey - Launch verification with
docvTransactionToken - Poll
/v1/kyc/statusor use webhooks to get the final decision
Alternative: Web-Based Verification
If not using the SDK, users can complete document verification via:- QR Code - User scans QR code with mobile device to capture documents
- Direct URL - User opens URL on any device to upload documents
Checking Status
Poll the status endpoint to track verification progress:Status Values
Decision
| Value | Description |
|---|---|
pending | Verification in progress |
approved | Identity verified successfully |
denied | Verification failed |
Status
| Value | Description |
|---|---|
initiated | Verification started |
in_review | Being reviewed |
document_required | Documents needed |
document_review | Documents being reviewed |
complete | Process complete |
Integration Flow
Best Practices
- Validate input before submission - Check all required fields
- Use webhooks if available - Don’t rely solely on polling
- Handle all decision states - Show appropriate UI for each
- Store externalId - You’ll need it to check status later
- Implement retry logic - API calls may occasionally fail
- Log all responses - For debugging and compliance