Global ID Validation
Validates government-issued IDs and personal identifiable information (PII) globally by comparing user-provided data against government, authoritative, and commercial data sources.
curl --request POST \
--url https://api.youverify.co/v2/api/identity/global/validate \
--header 'Content-Type: application/json' \
--header 'token: <api-key>' \
--data '
{
"addressDetails": {
"addressLine1": "19 CASUARINA",
"addressLine2": "",
"houseNumber": "19",
"street": "CASUARINA",
"city": "KILMORE",
"postalCode": "3764",
"state": "",
"countryCode": "AU"
},
"fullName": "TOM CLARKE",
"firstName": "TOM",
"lastName": "CLARKE",
"id": "12345678",
"countryCode": "AU",
"dateOfBirth": "1800-01-01",
"mobile": "",
"email": "",
"advanced": true,
"isSubjectConsent": true
}
'import requests
url = "https://api.youverify.co/v2/api/identity/global/validate"
payload = {
"addressDetails": {
"addressLine1": "19 CASUARINA",
"addressLine2": "",
"houseNumber": "19",
"street": "CASUARINA",
"city": "KILMORE",
"postalCode": "3764",
"state": "",
"countryCode": "AU"
},
"fullName": "TOM CLARKE",
"firstName": "TOM",
"lastName": "CLARKE",
"id": "12345678",
"countryCode": "AU",
"dateOfBirth": "1800-01-01",
"mobile": "",
"email": "",
"advanced": True,
"isSubjectConsent": True
}
headers = {
"token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
addressDetails: {
addressLine1: '19 CASUARINA',
addressLine2: '',
houseNumber: '19',
street: 'CASUARINA',
city: 'KILMORE',
postalCode: '3764',
state: '',
countryCode: 'AU'
},
fullName: 'TOM CLARKE',
firstName: 'TOM',
lastName: 'CLARKE',
id: '12345678',
countryCode: 'AU',
dateOfBirth: '1800-01-01',
mobile: '',
email: '',
advanced: true,
isSubjectConsent: true
})
};
fetch('https://api.youverify.co/v2/api/identity/global/validate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.youverify.co/v2/api/identity/global/validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'addressDetails' => [
'addressLine1' => '19 CASUARINA',
'addressLine2' => '',
'houseNumber' => '19',
'street' => 'CASUARINA',
'city' => 'KILMORE',
'postalCode' => '3764',
'state' => '',
'countryCode' => 'AU'
],
'fullName' => 'TOM CLARKE',
'firstName' => 'TOM',
'lastName' => 'CLARKE',
'id' => '12345678',
'countryCode' => 'AU',
'dateOfBirth' => '1800-01-01',
'mobile' => '',
'email' => '',
'advanced' => true,
'isSubjectConsent' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.youverify.co/v2/api/identity/global/validate"
payload := strings.NewReader("{\n \"addressDetails\": {\n \"addressLine1\": \"19 CASUARINA\",\n \"addressLine2\": \"\",\n \"houseNumber\": \"19\",\n \"street\": \"CASUARINA\",\n \"city\": \"KILMORE\",\n \"postalCode\": \"3764\",\n \"state\": \"\",\n \"countryCode\": \"AU\"\n },\n \"fullName\": \"TOM CLARKE\",\n \"firstName\": \"TOM\",\n \"lastName\": \"CLARKE\",\n \"id\": \"12345678\",\n \"countryCode\": \"AU\",\n \"dateOfBirth\": \"1800-01-01\",\n \"mobile\": \"\",\n \"email\": \"\",\n \"advanced\": true,\n \"isSubjectConsent\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.youverify.co/v2/api/identity/global/validate")
.header("token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"addressDetails\": {\n \"addressLine1\": \"19 CASUARINA\",\n \"addressLine2\": \"\",\n \"houseNumber\": \"19\",\n \"street\": \"CASUARINA\",\n \"city\": \"KILMORE\",\n \"postalCode\": \"3764\",\n \"state\": \"\",\n \"countryCode\": \"AU\"\n },\n \"fullName\": \"TOM CLARKE\",\n \"firstName\": \"TOM\",\n \"lastName\": \"CLARKE\",\n \"id\": \"12345678\",\n \"countryCode\": \"AU\",\n \"dateOfBirth\": \"1800-01-01\",\n \"mobile\": \"\",\n \"email\": \"\",\n \"advanced\": true,\n \"isSubjectConsent\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.youverify.co/v2/api/identity/global/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"addressDetails\": {\n \"addressLine1\": \"19 CASUARINA\",\n \"addressLine2\": \"\",\n \"houseNumber\": \"19\",\n \"street\": \"CASUARINA\",\n \"city\": \"KILMORE\",\n \"postalCode\": \"3764\",\n \"state\": \"\",\n \"countryCode\": \"AU\"\n },\n \"fullName\": \"TOM CLARKE\",\n \"firstName\": \"TOM\",\n \"lastName\": \"CLARKE\",\n \"id\": \"12345678\",\n \"countryCode\": \"AU\",\n \"dateOfBirth\": \"1800-01-01\",\n \"mobile\": \"\",\n \"email\": \"\",\n \"advanced\": true,\n \"isSubjectConsent\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 200,
"message": "success",
"data": {
"id": "6525026f085d5ae6ac556b6f",
"fullName": "TOM CLARKE",
"firstName": "TOM",
"lastName": "CLARKE",
"dateOfBirth": "1800-01-01",
"mobile": "",
"email": "",
"addressDetails": {
"addressLine1": "19 CASUARINA",
"addressLine2": "",
"houseNumber": "19",
"street": "CASUARINA",
"city": "KILMORE",
"postalCode": "3764",
"state": "",
"countryCode": "AU"
},
"validationDetails": {
"fullName": {
"status": "partial_matched",
"value": "TOM CLARKE",
"validationMessage": "Partial match made on Complete Name"
},
"lastName": {
"status": "full_matched",
"value": "CLARKE",
"validationMessage": "Full match made on Last Name/Surname"
},
"address": {
"status": "partial_matched",
"value": "19 CASUARINA",
"validationMessage": "Partial match made on Address Elements provided in Address Lines"
},
"city": {
"status": "full_matched",
"value": "KILMORE",
"validationMessage": "Full match made on City/Locality"
},
"postalCode": {
"status": "full_matched",
"value": "3764",
"validationMessage": "Full match made on Postal Code/Zip Code"
},
"state": {
"status": "full_matched",
"value": "",
"validationMessage": "Full match made on State/Province"
},
"firstName": {
"status": "not_matched",
"value": "TOM",
"validationMessage": "No match made on First Name/Given Name"
},
"houseNumber": {
"status": "not_matched",
"value": "19",
"validationMessage": "No match made on House Number/Street Number"
},
"street": {
"status": "not_matched",
"value": "CASUARINA",
"validationMessage": "No match made on Street/Thoroughfare"
},
"dateOfBirth": {
"status": "not_matched",
"value": "1800-01-01",
"validationMessage": "No match made on Date of Birth"
},
"dayOfBirth": {
"status": "not_matched",
"value": "01",
"validationMessage": "No match made on Day of Birth"
},
"monthOfBirth": {
"status": "not_matched",
"value": "01",
"validationMessage": "No match made on Month of Birth"
},
"yearOfBirth": {
"status": "not_matched",
"value": "1800",
"validationMessage": "No match made on Year of Birth"
},
"percentage": {
"percentageFullyMatched": 36,
"percentageNotMatched": 40,
"percentagePartialMatched": 24
}
},
"addressReliability": {
"reliability": "10",
"adaptation": "30"
},
"identityReliability": {
"reliability": "30",
"adaptation": "0"
},
"overallReliability": {
"reliability": "30",
"adaptation": "30"
},
"parentId": null,
"status": "found",
"reason": null,
"dataValidation": true,
"isConsent": true,
"idNumber": "12345678",
"businessId": "62b2e8b281442b03187f7896",
"type": "globalIdentityValidation",
"requestedAt": "2023-10-10T07:51:12.278Z",
"requestedById": "62b2e8b381442b75857f7898",
"country": "Global",
"createdAt": "2023-10-10T07:51:12.487Z",
"lastModifiedAt": "2023-10-10T07:51:12.487Z",
"adverseMediaReport": null,
"metadata": {},
"requestedBy": {
"firstName": "API",
"lastName": "user",
"middleName": "",
"id": "62b2e8b381442b25857f788"
}
},
"links": []
}{
"success": false,
"statusCode": 401,
"message": "Permission denied",
"name": "UnauthorizedError",
"data": {}
}{
"success": false,
"statusCode": 402,
"message": "Insufficient fund",
"name": "PaymentRequiredError",
"data": {}
}{
"success": false,
"statusCode": 404,
"message": "You have attempted to get a resource that does not exist.",
"name": "ResourceNotFoundError",
"data": {}
}{
"success": false,
"statusCode": 429,
"message": "Too many requests",
"name": "RateLimitError",
"data": {}
}{
"success": false,
"statusCode": 500,
"message": "Internal Server Error",
"name": "Error",
"data": {}
}Authorizations
Your Youverify API secret key. Never expose client-side.
Headers
API secret token
Body
Indicate that subject has given consent. Must be true
Two-letter country code that complies with ISO 3166-1 alpha-2
Candidate's National ID (required for specific countries)
Last name to compare against the ID and/or credit file
First name to compare against an ID and/or credit file
Date of Birth to compare against ID and/or credit file
Full name of the candidate to compare against the ID and/or credit file
Phone Number to compare against the ID and/or credit file
Email to compare against the ID and/or credit file
Perform an Advanced Search (not available in certain countries)
Address details object for address matching
Show child attributes
Show child attributes
Response
Success
curl --request POST \
--url https://api.youverify.co/v2/api/identity/global/validate \
--header 'Content-Type: application/json' \
--header 'token: <api-key>' \
--data '
{
"addressDetails": {
"addressLine1": "19 CASUARINA",
"addressLine2": "",
"houseNumber": "19",
"street": "CASUARINA",
"city": "KILMORE",
"postalCode": "3764",
"state": "",
"countryCode": "AU"
},
"fullName": "TOM CLARKE",
"firstName": "TOM",
"lastName": "CLARKE",
"id": "12345678",
"countryCode": "AU",
"dateOfBirth": "1800-01-01",
"mobile": "",
"email": "",
"advanced": true,
"isSubjectConsent": true
}
'import requests
url = "https://api.youverify.co/v2/api/identity/global/validate"
payload = {
"addressDetails": {
"addressLine1": "19 CASUARINA",
"addressLine2": "",
"houseNumber": "19",
"street": "CASUARINA",
"city": "KILMORE",
"postalCode": "3764",
"state": "",
"countryCode": "AU"
},
"fullName": "TOM CLARKE",
"firstName": "TOM",
"lastName": "CLARKE",
"id": "12345678",
"countryCode": "AU",
"dateOfBirth": "1800-01-01",
"mobile": "",
"email": "",
"advanced": True,
"isSubjectConsent": True
}
headers = {
"token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
addressDetails: {
addressLine1: '19 CASUARINA',
addressLine2: '',
houseNumber: '19',
street: 'CASUARINA',
city: 'KILMORE',
postalCode: '3764',
state: '',
countryCode: 'AU'
},
fullName: 'TOM CLARKE',
firstName: 'TOM',
lastName: 'CLARKE',
id: '12345678',
countryCode: 'AU',
dateOfBirth: '1800-01-01',
mobile: '',
email: '',
advanced: true,
isSubjectConsent: true
})
};
fetch('https://api.youverify.co/v2/api/identity/global/validate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.youverify.co/v2/api/identity/global/validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'addressDetails' => [
'addressLine1' => '19 CASUARINA',
'addressLine2' => '',
'houseNumber' => '19',
'street' => 'CASUARINA',
'city' => 'KILMORE',
'postalCode' => '3764',
'state' => '',
'countryCode' => 'AU'
],
'fullName' => 'TOM CLARKE',
'firstName' => 'TOM',
'lastName' => 'CLARKE',
'id' => '12345678',
'countryCode' => 'AU',
'dateOfBirth' => '1800-01-01',
'mobile' => '',
'email' => '',
'advanced' => true,
'isSubjectConsent' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.youverify.co/v2/api/identity/global/validate"
payload := strings.NewReader("{\n \"addressDetails\": {\n \"addressLine1\": \"19 CASUARINA\",\n \"addressLine2\": \"\",\n \"houseNumber\": \"19\",\n \"street\": \"CASUARINA\",\n \"city\": \"KILMORE\",\n \"postalCode\": \"3764\",\n \"state\": \"\",\n \"countryCode\": \"AU\"\n },\n \"fullName\": \"TOM CLARKE\",\n \"firstName\": \"TOM\",\n \"lastName\": \"CLARKE\",\n \"id\": \"12345678\",\n \"countryCode\": \"AU\",\n \"dateOfBirth\": \"1800-01-01\",\n \"mobile\": \"\",\n \"email\": \"\",\n \"advanced\": true,\n \"isSubjectConsent\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.youverify.co/v2/api/identity/global/validate")
.header("token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"addressDetails\": {\n \"addressLine1\": \"19 CASUARINA\",\n \"addressLine2\": \"\",\n \"houseNumber\": \"19\",\n \"street\": \"CASUARINA\",\n \"city\": \"KILMORE\",\n \"postalCode\": \"3764\",\n \"state\": \"\",\n \"countryCode\": \"AU\"\n },\n \"fullName\": \"TOM CLARKE\",\n \"firstName\": \"TOM\",\n \"lastName\": \"CLARKE\",\n \"id\": \"12345678\",\n \"countryCode\": \"AU\",\n \"dateOfBirth\": \"1800-01-01\",\n \"mobile\": \"\",\n \"email\": \"\",\n \"advanced\": true,\n \"isSubjectConsent\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.youverify.co/v2/api/identity/global/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"addressDetails\": {\n \"addressLine1\": \"19 CASUARINA\",\n \"addressLine2\": \"\",\n \"houseNumber\": \"19\",\n \"street\": \"CASUARINA\",\n \"city\": \"KILMORE\",\n \"postalCode\": \"3764\",\n \"state\": \"\",\n \"countryCode\": \"AU\"\n },\n \"fullName\": \"TOM CLARKE\",\n \"firstName\": \"TOM\",\n \"lastName\": \"CLARKE\",\n \"id\": \"12345678\",\n \"countryCode\": \"AU\",\n \"dateOfBirth\": \"1800-01-01\",\n \"mobile\": \"\",\n \"email\": \"\",\n \"advanced\": true,\n \"isSubjectConsent\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 200,
"message": "success",
"data": {
"id": "6525026f085d5ae6ac556b6f",
"fullName": "TOM CLARKE",
"firstName": "TOM",
"lastName": "CLARKE",
"dateOfBirth": "1800-01-01",
"mobile": "",
"email": "",
"addressDetails": {
"addressLine1": "19 CASUARINA",
"addressLine2": "",
"houseNumber": "19",
"street": "CASUARINA",
"city": "KILMORE",
"postalCode": "3764",
"state": "",
"countryCode": "AU"
},
"validationDetails": {
"fullName": {
"status": "partial_matched",
"value": "TOM CLARKE",
"validationMessage": "Partial match made on Complete Name"
},
"lastName": {
"status": "full_matched",
"value": "CLARKE",
"validationMessage": "Full match made on Last Name/Surname"
},
"address": {
"status": "partial_matched",
"value": "19 CASUARINA",
"validationMessage": "Partial match made on Address Elements provided in Address Lines"
},
"city": {
"status": "full_matched",
"value": "KILMORE",
"validationMessage": "Full match made on City/Locality"
},
"postalCode": {
"status": "full_matched",
"value": "3764",
"validationMessage": "Full match made on Postal Code/Zip Code"
},
"state": {
"status": "full_matched",
"value": "",
"validationMessage": "Full match made on State/Province"
},
"firstName": {
"status": "not_matched",
"value": "TOM",
"validationMessage": "No match made on First Name/Given Name"
},
"houseNumber": {
"status": "not_matched",
"value": "19",
"validationMessage": "No match made on House Number/Street Number"
},
"street": {
"status": "not_matched",
"value": "CASUARINA",
"validationMessage": "No match made on Street/Thoroughfare"
},
"dateOfBirth": {
"status": "not_matched",
"value": "1800-01-01",
"validationMessage": "No match made on Date of Birth"
},
"dayOfBirth": {
"status": "not_matched",
"value": "01",
"validationMessage": "No match made on Day of Birth"
},
"monthOfBirth": {
"status": "not_matched",
"value": "01",
"validationMessage": "No match made on Month of Birth"
},
"yearOfBirth": {
"status": "not_matched",
"value": "1800",
"validationMessage": "No match made on Year of Birth"
},
"percentage": {
"percentageFullyMatched": 36,
"percentageNotMatched": 40,
"percentagePartialMatched": 24
}
},
"addressReliability": {
"reliability": "10",
"adaptation": "30"
},
"identityReliability": {
"reliability": "30",
"adaptation": "0"
},
"overallReliability": {
"reliability": "30",
"adaptation": "30"
},
"parentId": null,
"status": "found",
"reason": null,
"dataValidation": true,
"isConsent": true,
"idNumber": "12345678",
"businessId": "62b2e8b281442b03187f7896",
"type": "globalIdentityValidation",
"requestedAt": "2023-10-10T07:51:12.278Z",
"requestedById": "62b2e8b381442b75857f7898",
"country": "Global",
"createdAt": "2023-10-10T07:51:12.487Z",
"lastModifiedAt": "2023-10-10T07:51:12.487Z",
"adverseMediaReport": null,
"metadata": {},
"requestedBy": {
"firstName": "API",
"lastName": "user",
"middleName": "",
"id": "62b2e8b381442b25857f788"
}
},
"links": []
}{
"success": false,
"statusCode": 401,
"message": "Permission denied",
"name": "UnauthorizedError",
"data": {}
}{
"success": false,
"statusCode": 402,
"message": "Insufficient fund",
"name": "PaymentRequiredError",
"data": {}
}{
"success": false,
"statusCode": 404,
"message": "You have attempted to get a resource that does not exist.",
"name": "ResourceNotFoundError",
"data": {}
}{
"success": false,
"statusCode": 429,
"message": "Too many requests",
"name": "RateLimitError",
"data": {}
}{
"success": false,
"statusCode": 500,
"message": "Internal Server Error",
"name": "Error",
"data": {}
}