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
When document verification is required:Verification Outcomes
Instant Approval
If the identity can be verified immediately:Automatic User ProvisioningWhen a user receives
decision: "ACCEPT", the system automatically:- Creates an EP3 participant for the user
- Provisions a trading account
- Returns the
participantIdandaccountidentifiers in the response
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. Use theuser_id you provided in the start request:
Status Values
Decision
| Value | Description |
|---|---|
ACCEPT | Identity verified successfully |
REJECT | Verification failed |
REVIEW | Verification in progress, may require action |
| (empty) | KYC not started |
Status
| Value | Description |
|---|---|
NOT_STARTED | User has not initiated KYC |
OPEN | Verification in progress with Socure |
ON_HOLD | Waiting for user to upload documents (DocV) |
CLOSED | Final decision reached (check decision field) |
SubStatus
| Value | Description |
|---|---|
pending | Waiting for Socure decision |
Document Request Initiated | User must complete document verification |
| (empty) | No additional status info |
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

