curl -X POST \
"https://verilock.io/api/v1/sessions" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"profile_id": "01234567-89ab-cdef-0123-456789abcdef",
"applicant_email": "jean.dupont@example.com",
"applicant_name": "Jean Dupont",
"external_id": "usr_12345",
"redirect_url": "https://example.com/kyc/complete",
"metadata": {
"plan": "premium"
}
}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://verilock.io/api/v1/sessions',
[
'headers' => [
'Authorization' => 'Bearer qi_live_your_api_key_here',
'Accept' => 'application/json',
],
'json' => [
'profile_id' => '01234567-89ab-cdef-0123-456789abcdef',
'applicant_email' => 'jean.dupont@example.com',
'applicant_name' => 'Jean Dupont',
'external_id' => 'usr_12345',
'redirect_url' => 'https://example.com/kyc/complete',
'metadata' => ['plan' => 'premium'],
],
]
);
{
"id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"session_token": "tok_abc123def456...",
"session_url": "https://verilock.io/verify/tok_abc123def456...",
"status": "created",
"expires_at": "2026-03-15T11:30:00Z"
}
KYC Verification
Create Session
Create a new verification session to begin the KYC process for an applicant.
POST
/
sessions
curl -X POST \
"https://verilock.io/api/v1/sessions" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"profile_id": "01234567-89ab-cdef-0123-456789abcdef",
"applicant_email": "jean.dupont@example.com",
"applicant_name": "Jean Dupont",
"external_id": "usr_12345",
"redirect_url": "https://example.com/kyc/complete",
"metadata": {
"plan": "premium"
}
}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://verilock.io/api/v1/sessions',
[
'headers' => [
'Authorization' => 'Bearer qi_live_your_api_key_here',
'Accept' => 'application/json',
],
'json' => [
'profile_id' => '01234567-89ab-cdef-0123-456789abcdef',
'applicant_email' => 'jean.dupont@example.com',
'applicant_name' => 'Jean Dupont',
'external_id' => 'usr_12345',
'redirect_url' => 'https://example.com/kyc/complete',
'metadata' => ['plan' => 'premium'],
],
]
);
{
"id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"session_token": "tok_abc123def456...",
"session_url": "https://verilock.io/verify/tok_abc123def456...",
"status": "created",
"expires_at": "2026-03-15T11:30:00Z"
}
Request Body Parameters
string
required
UUID of the verification profile to use. Profiles define the steps, thresholds, and document types for the session.
string
Applicant’s email address
string
Applicant’s full name
string
Your internal reference ID for this session
string
URL to redirect the applicant after completing the hosted flow
integer
Session expiration in seconds (min: 300, max: 86400, default: 3600)
object
Arbitrary key-value pairs attached to the session
curl -X POST \
"https://verilock.io/api/v1/sessions" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"profile_id": "01234567-89ab-cdef-0123-456789abcdef",
"applicant_email": "jean.dupont@example.com",
"applicant_name": "Jean Dupont",
"external_id": "usr_12345",
"redirect_url": "https://example.com/kyc/complete",
"metadata": {
"plan": "premium"
}
}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://verilock.io/api/v1/sessions',
[
'headers' => [
'Authorization' => 'Bearer qi_live_your_api_key_here',
'Accept' => 'application/json',
],
'json' => [
'profile_id' => '01234567-89ab-cdef-0123-456789abcdef',
'applicant_email' => 'jean.dupont@example.com',
'applicant_name' => 'Jean Dupont',
'external_id' => 'usr_12345',
'redirect_url' => 'https://example.com/kyc/complete',
'metadata' => ['plan' => 'premium'],
],
]
);
{
"id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"session_token": "tok_abc123def456...",
"session_url": "https://verilock.io/verify/tok_abc123def456...",
"status": "created",
"expires_at": "2026-03-15T11:30:00Z"
}
Use
session_token to initialize the Web, Flutter, or React Native SDK. Use session_url to redirect the user to the hosted verification flow.
