API Documentation
Account
Lists
Face Match
Types
ID Check
Verify Document
ID Check
Verify Document
Validates the ID document provided and returns detailed information about the document, risk signals, and an overall decision.
POST
/
liveness
/
verify-document
curl --request POST \
--url https://api.sandbox.verisoul.ai/liveness/verify-document \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{
"session_id": "00009588-9835-4fb4-8173-5bf9017d945c"
}'
{
"metadata": {
"project_id": "00000000-0000-0000-0000-000000000001",
"session_id": "00009588-9835-4fb4-8173-5bf9017d945c",
"account_id": "example-account-id",
"referring_session_id": "example-referring-session-id",
"request_id": "c702ef50-6d8e-4276-ac68-69940d9ec002",
"timestamp": "2025-03-16T20:17:54.460Z"
},
"decision": "Fake",
"risk_score": 100,
"risk_flags": [
"proxy_detected",
"datacenter_detected",
"low_id_face_match_score",
"repeat_id"
],
"document_signals": {
"id_age": 28,
"face_age_estimate": "over25",
"id_face_match_score": 0,
"id_barcode_status": "no_barcode_specified_by_template",
"id_face_status": "likely_original_face",
"id_text_status": "likely_original_text",
"is_id_digital_spoof": "likely_physical_id",
"is_full_id_captured": "full_id_detected",
"id_validity": "likely_authentic_id"
},
"device_network_signals": {
"ip_document_country_mismatch": false,
"device_risk": false,
"proxy": true,
"vpn": false,
"datacenter": true,
"tor": false,
"spoofed_ip": false,
"recent_fraud_ip": false,
"device_network_mismatch": true
},
"referring_session_signals": {
"impossible_travel": false,
"ip_mismatch": false,
"user_agent_mismatch": false
},
"document_data": {
"template_info": {
"document_country_code": "US",
"document_country": "United States of America",
"document_state": null,
"template_type": "passport"
},
"user_data": {
"first_name": "David",
"last_name": "Williams",
"date_of_birth": "1997-10-26",
"date_of_expiration": "2034-01-15",
"date_of_issue": "2024-01-16",
"id_number": "1234567890",
"id_number2": null,
"address": null
},
"photo_urls": {
"face": "https://storage.googleapis.com/facematch-prod/00009588...",
"id_scan_front": "https://storage.googleapis.com/facematch-prod/00009588..."
}
},
"session_data": {
"network": {
"ip_address": "2a09:bac3:ac1d:15e1::22e:34",
"service_provider": "Cloudflare, Inc.",
"connection_type": "private_relay"
},
"location": {
"continent": "NA",
"country_code": "US",
"state": "Oklahoma",
"city": "Vinita",
"zip_code": "74301",
"timezone": "America/Chicago",
"latitude": 36.627,
"longitude": -95.1504
},
"browser": {
"type": "Mobile Safari",
"version": "18.1.1",
"language": "en-US",
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1.1 Mobile/15E148 Safari/604.1",
"timezone": "America/Chicago"
},
"device": {
"category": "mobile",
"type": "iPhone",
"os": "iOS 18.1.1",
"cpu_cores": 4,
"memory": 0,
"gpu": "Apple GPU"
}
},
"matches": {
"num_accounts_linked": 2,
"accounts_linked": [
{
"account_id": "example-account-id-1",
"match_types": [
"document_name"
]
},
{
"account_id": "example-account-id-2",
"match_types": [
"document_name",
"document_number",
"face"
]
}
]
}
}
Authorizations
API key authentication
Body
application/json
Response
200 - application/json
Document verification completed
The response is of type object
.
curl --request POST \
--url https://api.sandbox.verisoul.ai/liveness/verify-document \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{
"session_id": "00009588-9835-4fb4-8173-5bf9017d945c"
}'
{
"metadata": {
"project_id": "00000000-0000-0000-0000-000000000001",
"session_id": "00009588-9835-4fb4-8173-5bf9017d945c",
"account_id": "example-account-id",
"referring_session_id": "example-referring-session-id",
"request_id": "c702ef50-6d8e-4276-ac68-69940d9ec002",
"timestamp": "2025-03-16T20:17:54.460Z"
},
"decision": "Fake",
"risk_score": 100,
"risk_flags": [
"proxy_detected",
"datacenter_detected",
"low_id_face_match_score",
"repeat_id"
],
"document_signals": {
"id_age": 28,
"face_age_estimate": "over25",
"id_face_match_score": 0,
"id_barcode_status": "no_barcode_specified_by_template",
"id_face_status": "likely_original_face",
"id_text_status": "likely_original_text",
"is_id_digital_spoof": "likely_physical_id",
"is_full_id_captured": "full_id_detected",
"id_validity": "likely_authentic_id"
},
"device_network_signals": {
"ip_document_country_mismatch": false,
"device_risk": false,
"proxy": true,
"vpn": false,
"datacenter": true,
"tor": false,
"spoofed_ip": false,
"recent_fraud_ip": false,
"device_network_mismatch": true
},
"referring_session_signals": {
"impossible_travel": false,
"ip_mismatch": false,
"user_agent_mismatch": false
},
"document_data": {
"template_info": {
"document_country_code": "US",
"document_country": "United States of America",
"document_state": null,
"template_type": "passport"
},
"user_data": {
"first_name": "David",
"last_name": "Williams",
"date_of_birth": "1997-10-26",
"date_of_expiration": "2034-01-15",
"date_of_issue": "2024-01-16",
"id_number": "1234567890",
"id_number2": null,
"address": null
},
"photo_urls": {
"face": "https://storage.googleapis.com/facematch-prod/00009588...",
"id_scan_front": "https://storage.googleapis.com/facematch-prod/00009588..."
}
},
"session_data": {
"network": {
"ip_address": "2a09:bac3:ac1d:15e1::22e:34",
"service_provider": "Cloudflare, Inc.",
"connection_type": "private_relay"
},
"location": {
"continent": "NA",
"country_code": "US",
"state": "Oklahoma",
"city": "Vinita",
"zip_code": "74301",
"timezone": "America/Chicago",
"latitude": 36.627,
"longitude": -95.1504
},
"browser": {
"type": "Mobile Safari",
"version": "18.1.1",
"language": "en-US",
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1.1 Mobile/15E148 Safari/604.1",
"timezone": "America/Chicago"
},
"device": {
"category": "mobile",
"type": "iPhone",
"os": "iOS 18.1.1",
"cpu_cores": 4,
"memory": 0,
"gpu": "Apple GPU"
}
},
"matches": {
"num_accounts_linked": 2,
"accounts_linked": [
{
"account_id": "example-account-id-1",
"match_types": [
"document_name"
]
},
{
"account_id": "example-account-id-2",
"match_types": [
"document_name",
"document_number",
"face"
]
}
]
}
}