Know Your Customer (KYC)
Introducing the groundbreaking solution known as Know Your Customer (KYC) is a process that businesses use to verify the identity of their clients. The primary goal of KYC is to prevent illegal activities such as money laundering, fraud, and terrorism financing by ensuring that businesses are dealing with legitimate customers. KYC is a critical component of risk management and regulatory compliance.
Request
"Requests" refer to the various HTTP methods used for interacting with the API, providing details on endpoint URLs, parameters, headers, request bodies, and examples.
Listing the Available Countries
Description:
The "Listing Available Countries" API provides a detailed overview of the countries supported by the KYC service, enabling businesses to verify client identities and ensure compliance with regulatory standards globally.
Method Call: GET
API:
https://api.thekyb.com/api/readKycCountries
- Http
- Javascript
- PHP
- Python
- Node
- cURL
GET /api/readKycCountries HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY
var requestHeaders = new Headers();
requestHeaders.append("Content-Type", "application/json");
requestHeaders.append("Accept", "application/json");
requestHeaders.append("token", "YOUR_SECRET_KEY");
var requestOptions = {
method: "GET",
headers: requestHeaders,
redirect: "follow"
};
fetch("https://api.thekyb.com/api/readKycCountries", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.thekyb.com/api/readKycCountries',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'token: YOUR_SECRET_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
import json
url = "https://api.thekyb.com/api/readKycCountries"
payload={}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
var axios = require("axios");
var config = {
method: "get",
url: "https://api.thekyb.com/api/readKycCountries",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
token: "YOUR_SECRET_KEY",
},
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
curl --location --request GET 'https://api.thekyb.com/api/readKycCountries' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'token: YOUR_SECRET_KEY'
Listing the Available Languages
Description:
The "Listing Available Languages" API delivers a comprehensive list of supported languages, allowing users to understand the linguistic accessibility of the KYC service. This helps ensure that users can engage with the service in their preferred language, enhancing usability and compliance across diverse regions.
Method Call: GET
API:
https://api.thekyb.com/api/readKycLanguages
- Http
- Javascript
- PHP
- Python
- Node
- cURL
GET /api/readKycLanguages HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY
var requestHeaders = new Headers();
requestHeaders.append("Content-Type", "application/json");
requestHeaders.append("Accept", "application/json");
requestHeaders.append("token", "YOUR_SECRET_KEY");
var requestOptions = {
method: "GET",
headers: requestHeaders,
redirect: "follow"
};
fetch("https://api.thekyb.com/api/readKycLanguages", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.thekyb.com/api/readKycLanguages',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'token: YOUR_SECRET_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
import json
url = "https://api.thekyb.com/api/readKycLanguages"
payload={}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
var axios = require("axios");
var config = {
method: "get",
url: "https://api.thekyb.com/api/readKycLanguages",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
token: "YOUR_SECRET_KEY",
},
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
curl --location --request GET 'https://api.thekyb.com/api/readKycLanguages' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'token: YOUR_SECRET_KEY'
KYC Submission
Description:
The "KYC Submission" API enables the initiation of a Know Your Customer (KYC) process by submitting necessary details for verification. Users can leverage the Document Verification Service or the Address Verification Service individually to perform KYC checks. This flexibility allows for targeted verification based on the specific needs of the client, ensuring compliance and accuracy in identity and address verification.
Document Verification
- With OCR
- Without OCR
The "Document Verification" API allows users to submit and verify documents as part of the Know Your Customer (KYC) process. This service not only ensures that the submitted identification documents are authentic and meet the required standards but also supports Optical Character Recognition (OCR) for enhanced data extraction. By using this API with OCR enabled, businesses can effectively verify the identity of their clients through detailed document checks and automated data extraction, thereby improving accuracy, security, and regulatory compliance.
Method Call: POST
API:
https://api.thekyb.com/api/search
Parameter | Description |
---|---|
services[] | Type: FormData Required: Yes Description: Defines the services provided for KYC. To use document verification, ensure that kyc is included in the services parameter. |
country_names[] | Type: FormData Required: Yes Description: The name of the country related to the KYC submission. In this case, albania indicates the country for which the KYC is being performed. |
language | Type: FormData Required: Optional Description: Specifies the language used in the KYC process. In this case, english is used, ensuring the submission is processed in the preferred language. |
document[supported_types][] | Type: FormData Required: Yes Description: Specifies the types of documents supported for verification. At least one type must be included. In this case, id_card indicates that an ID card is used. Supported types include id_card , driving_license , and passport . |
document[process_only_ocr] | Type: FormData Required: Yes Description: Indicates whether to use OCR (Optical Character Recognition) only for extracting text from documents. Set to 1 to enable OCR-only mode, which will conclude the operation after data extraction. Set to 0 to perform OCR extraction with verification. |
document[name][full_name] | Type: FormData Required: No Description: The full name of the individual as it appears on the document. This field should be included in the payload with an empty string if extraction of the name is required from the proof. |
document[document_number] | Type: FormData Required: No Description: The unique number assigned to the document. Include this field in the payload with an empty string if extraction of the document number is required from the proof. |
document[dob] | Type: FormData Required: No Description: The date of birth of the individual as it appears on the document. Format will only be the YYYY-MM-DD. Include this field in the payload with an empty string if extraction of the date of birth is required from the proof. |
document[issue_date] | Type: FormData Required: No Description: The date the document was issued. Format will only be the YYYY-MM-DD. Include this field in the payload with an empty string if extraction of the issue date is required from the proof. |
document[expiry_date] | Type: FormData Required: No Description: The date the document expires. Format will only be the YYYY-MM-DD. Include this field in the payload with an empty string if extraction of the expiry date is required from the proof. |
document[gender] | Type: FormData Required: No Description: The gender of the individual as listed on the document. Include this field in the payload with an empty string if extraction of the gender is required from the proof. |
document[age][min] | Type: FormData Required: No Description: Minimum age of the individual. The value should be between 1 and 170. The min value must be less than the max value. |
document[age][max] | Type: FormData Required: No Description: Maximum age of the individual. The value should be between 1 and 170. The max value must be greater than the min value. |
document[proof] | Type: Binary Required: Yes Description: The front side proof of the document. File size should be less than 16MB. Supported formats are image/jpeg , image/png , and application/pdf . |
document[additional_proof] | Type: Binary Required: No Description: An optional additional proof of the document. File size should be less than 16MB. Supported formats are image/jpeg , image/png , and application/pdf . |
- Http
- Javascript
- PHP
- Python
- Node
- cURL
POST /api/search HTTP/1.1
Host: api.thekyb.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Accept: application/json
token: YOUR_SECRET_KEY
Content-Length: 1706
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="services[0]"
kyc
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="country_names[0]"
albania
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="language"
english
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[supported_types][0]"
id_card
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[name][full_name]"
test
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[document_number]"
123
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[dob]"
1999-09-01
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[issue_date]"
2020-09-11
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[expiry_date]"
2029-10-29
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[gender]"
M
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[age][min]"
1
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[age][max]"
10
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[process_only_ocr]"
1
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[proof]"; filename="FILE_1.pdf"
Content-Type: application/pdf
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[additional_proof]"; filename="FILE_1.pdf"
Content-Type: application/pdf
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
var myHeaders = new Headers();
myHeaders.append("Content-Type", "multipart/form-data");
myHeaders.append("Accept", "application/json");
myHeaders.append("token", "YOUR_SECRET_KEY");
var formdata = new FormData();
formdata.append("services[0]", "kyc");
formdata.append("country_names[0]", "albania");
formdata.append("language", "english");
formdata.append("document[supported_types][0]", "id_card");
formdata.append("document[name][full_name]", "test");
formdata.append("document[document_number]", "123");
formdata.append("document[dob]", "1999-09-01");
formdata.append("document[issue_date]", "2020-09-11");
formdata.append("document[expiry_date]", "2029-10-29");
formdata.append("document[gender]", "M");
formdata.append("document[age][min]", "1");
formdata.append("document[age][max]", "10");
formdata.append("document[process_only_ocr]", "1");
formdata.append("document[proof]", "FILE_1.pdf");
formdata.append("document[additional_proof]", "FILE_1.pdf");
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: formdata,
redirect: 'follow'
};
fetch("https://api.thekyb.com/api/search", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.thekyb.com/api/search',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'services[0]' => 'kyc',
'country_names[0]' => 'albania',
'language' => 'english',
'document[supported_types][0]' => 'id_card',
'document[name][full_name]' => 'test',
'document[document_number]' => '123',
'document[dob]' => '1999-09-01',
'document[issue_date]' => '2020-09-11',
'document[expiry_date]' => '2029-10-29',
'document[gender]' => 'M',
'document[age][min]' => '1',
'document[age][max]' => '10',
'document[process_only_ocr]' => '1',
'document[proof]'=> new CURLFILE('/FILE_1.pdf'),
'document[additional_proof]'=> new CURLFILE('/FILE_1.pdf')),
CURLOPT_HTTPHEADER => array(
'Content-Type: multipart/form-data',
'Accept: application/json',
'token: YOUR_SECRET_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://api.thekyb.com/api/search"
payload={
'services[0]': 'kyc',
'country_names[0]': 'albania',
'language': 'english',
'document[supported_types][0]': 'id_card',
'document[name][full_name]': 'test',
'document[document_number]': '123',
'document[dob]': '1999-09-01',
'document[issue_date]': '2020-09-11',
'document[expiry_date]': '2029-10-29',
'document[gender]': 'M',
'document[age][min]': '1',
'document[age][max]': '10',
'document[process_only_ocr]': '1'
}
files=[
('document[proof]',('FILE_1.pdf',open('/FILE_1.pdf','rb'),'application/pdf')),
('document[additional_proof]',('FILE_1.pdf',open('/FILE_1.pdf','rb'),'application/pdf'))
]
headers = {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
var axios = require('axios');
var FormData = require('form-data');
var fs = require('fs');
var data = new FormData();
data.append('services[0]', 'kyc');
data.append('country_names[0]', 'india');
data.append('language', 'english');
data.append('document[supported_types][0]', 'id_card');
data.append('document[name][full_name]', 'test');
data.append('document[document_number]', '123');
data.append('document[dob]', '1999-09-01');
data.append('document[issue_date]', '2020-09-11');
data.append('document[expiry_date]', '2029-10-29');
data.append('document[gender]', 'M');
data.append('document[age][min]', '1');
data.append('document[age][max]', '10');
data.append('document[process_only_ocr]', '1');
data.append('document[proof]', fs.createReadStream('/FILE_1.pdf'));
data.append('document[additional_proof]', fs.createReadStream('/FILE_1.pdf'));
var config = {
method: 'post',
url: 'https://api.thekyb.com/api/search',
headers: {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY',
...data.getHeaders()
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
curl --location --request POST 'https://api.thekyb.com/api/search' \
--header 'Content-Type: multipart/form-data' \
--header 'Accept: application/json' \
--header 'token: YOUR_SECRET_KEY' \
--form 'services[0]="kyc"' \
--form 'country_names[0]="albania"' \
--form 'language="english"' \
--form 'document[supported_types][0]="id_card"' \
--form 'document[name][full_name]="test"' \
--form 'document[document_number]="123"' \
--form 'document[dob]="1999-09-01"' \
--form 'document[issue_date]="2020-09-11"' \
--form 'document[expiry_date]="2029-10-29"' \
--form 'document[gender]="M"' \
--form 'document[age][min]="1"' \
--form 'document[age][max]="10"' \
--form 'document[process_only_ocr]="1"' \
--form 'document[proof]=@"/FILE_1.pdf"' \
--form 'document[additional_proof]=@"/FILE_1.pdf"'
The "Document Verification" API allows users to submit and verify documents as part of the Know Your Customer (KYC) process. This service ensures that the submitted identification documents are authentic and meet the required standards. When OCR is disabled, the verification process focuses solely on the manual assessment of the document's authenticity and compliance. By using this API without OCR, businesses can still effectively confirm the identity of their clients through thorough document checks, enhancing security and regulatory compliance.
Method Call: POST
API:
https://api.thekyb.com/api/search
Parameter | Description |
---|---|
services[0] | Type: FormData Required: Yes Description: Defines the services provided for KYC. To use document verification, ensure that kyc is included in the services parameter. |
country_names[0] | Type: FormData Required: Yes Description: The name of the country related to the KYC submission. In this case, albania indicates the country for which the KYC is being performed. |
language | Type: FormData Required: Optional Description: Specifies the language used in the KYC process. In this case, english is used, ensuring the submission is processed in the preferred language. |
document[supported_types][0] | Type: FormData Required: Yes Description: Specifies the types of documents supported for verification. At least one type must be included. In this case, id_card indicates that an ID card is used. Supported types include id_card , driving_license , and passport . |
document[process_only_ocr] | Type: FormData Required: Yes Description: Indicates whether to use OCR (Optical Character Recognition) only for extracting text from documents. Set to 1 to enable OCR-only mode, which will conclude the operation after data extraction. Set to 0 to perform OCR extraction with verification. |
document[name][full_name] | Type: FormData Required: No Description: The full name of the individual as per the document. Validation: Only alphabets are accepted. If you want to verify the name, include this field in the payload. |
document[gender] | Type: FormData Required: No Description: Gender of the individual. Accepted values are M for Male, and F for Female. Include this field in the payload if gender verification is required. |
document[document_number] | Type: FormData Required: No Description: The document number for identification. Validation: Minimum of 2 characters. Include this field in the payload if you want to verify the document number. |
document[issue_date] | Type: FormData Required: No Description: The date when the document was issued. Ensure the issue_date is earlier than the expiry_date . Format will only be the YYYY-MM-DD. Include this field in the payload if you need to verify the issue date. |
document[dob] | Type: FormData Required: No Description: Date of Birth of the individual. Format will only be the YYYY-MM-DD. Include this field in the payload if you need to verify the date of birth. |
document[expiry_date] | Type: FormData Required: No Description: The expiration date of the document. Ensure the expiry_date is later than the issue_date . Format will only be the YYYY-MM-DD. Include this field in the payload if expiry date verification is required. |
document[age][min] | Type: FormData Required: No Description: Minimum age of the individual. The value should be between 1 and 170. The min value must be less than the max value. Include this field in the payload if you want to verify the minimum age. |
document[age][max] | Type: FormData Required: No Description: Maximum age of the individual. The value should be between 1 and 170. The max value must be greater than the min value. Include this field in the payload if you want to verify the maximum age. |
document[proof] | Type: Binary Required: Yes Description: The front side proof of the document. File size should be less than 16MB. Supported formats are image/jpeg , image/png , and application/pdf . |
document[additional_proof] | Type: Binary Required: No Description: An optional additional proof of the document. File size should be less than 16MB. Supported formats are image/jpeg , image/png , and application/pdf . |
- Http
- Javascript
- PHP
- Python
- Node
- cURL
POST /api/search HTTP/1.1
Host: api.thekyb.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Accept: application/json
token: YOUR_SECRET_KEY
Content-Length: 1706
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="services[0]"
kyc
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="country_names[0]"
albania
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="language"
english
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[supported_types][0]"
id_card
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[name][full_name]"
test
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[document_number]"
123
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[dob]"
1999-09-01
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[issue_date]"
2020-09-11
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[expiry_date]"
2029-10-29
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[gender]"
M
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[age][min]"
1
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[age][max]"
10
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[process_only_ocr]"
0
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[proof]"; filename="FILE_1.pdf"
Content-Type: application/pdf
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="document[additional_proof]"; filename="FILE_1.pdf"
Content-Type: application/pdf
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
var myHeaders = new Headers();
myHeaders.append("Content-Type", "multipart/form-data");
myHeaders.append("Accept", "application/json");
myHeaders.append("token", "YOUR_SECRET_KEY");
var formdata = new FormData();
formdata.append("services[0]", "kyc");
formdata.append("country_names[0]", "albania");
formdata.append("language", "english");
formdata.append("document[supported_types][0]", "id_card");
formdata.append("document[name][full_name]", "test");
formdata.append("document[document_number]", "123");
formdata.append("document[dob]", "1999-09-01");
formdata.append("document[issue_date]", "2020-09-11");
formdata.append("document[expiry_date]", "2029-10-29");
formdata.append("document[gender]", "M");
formdata.append("document[age][min]", "1");
formdata.append("document[age][max]", "10");
formdata.append("document[process_only_ocr]", "0");
formdata.append("document[proof]", "FILE_1.pdf");
formdata.append("document[additional_proof]", "FILE_1.pdf");
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: formdata,
redirect: 'follow'
};
fetch("https://api.thekyb.com/api/search", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.thekyb.com/api/search',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'services[0]' => 'kyc',
'country_names[0]' => 'albania',
'language' => 'english',
'document[supported_types][0]' => 'id_card',
'document[name][full_name]' => 'test',
'document[document_number]' => '123',
'document[dob]' => '1999-09-01',
'document[issue_date]' => '2020-09-11',
'document[expiry_date]' => '2029-10-29',
'document[gender]' => 'M',
'document[age][min]' => '1',
'document[age][max]' => '10',
'document[process_only_ocr]' => '0',
'document[proof]'=> new CURLFILE('/FILE_1.pdf'),
'document[additional_proof]'=> new CURLFILE('/FILE_1.pdf')),
CURLOPT_HTTPHEADER => array(
'Content-Type: multipart/form-data',
'Accept: application/json',
'token: YOUR_SECRET_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://api.thekyb.com/api/search"
payload={
'services[0]': 'kyc',
'country_names[0]': 'albania',
'language': 'english',
'document[supported_types][0]': 'id_card',
'document[name][full_name]': 'test',
'document[document_number]': '123',
'document[dob]': '1999-09-01',
'document[issue_date]': '2020-09-11',
'document[expiry_date]': '2029-10-29',
'document[gender]': 'M',
'document[age][min]': '1',
'document[age][max]': '10',
'document[process_only_ocr]': '0'
}
files=[
('document[proof]',('FILE_1.pdf',open('/FILE_1.pdf','rb'),'application/pdf')),
('document[additional_proof]',('FILE_1.pdf',open('/FILE_1.pdf','rb'),'application/pdf'))
]
headers = {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
var axios = require('axios');
var FormData = require('form-data');
var fs = require('fs');
var data = new FormData();
data.append('services[0]', 'kyc');
data.append('country_names[0]', 'india');
data.append('language', 'english');
data.append('document[supported_types][0]', 'id_card');
data.append('document[name][full_name]', 'test');
data.append('document[document_number]', '123');
data.append('document[dob]', '1999-09-01');
data.append('document[issue_date]', '2020-09-11');
data.append('document[expiry_date]', '2029-10-29');
data.append('document[gender]', 'M');
data.append('document[age][min]', '1');
data.append('document[age][max]', '10');
data.append('document[process_only_ocr]', '0');
data.append('document[proof]', fs.createReadStream('/FILE_1.pdf'));
data.append('document[additional_proof]', fs.createReadStream('/FILE_1.pdf'));
var config = {
method: 'post',
url: 'https://api.thekyb.com/api/search',
headers: {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY',
...data.getHeaders()
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
curl --location --request POST 'https://api.thekyb.com/api/search' \
--header 'Content-Type: multipart/form-data' \
--header 'Accept: application/json' \
--header 'token: YOUR_SECRET_KEY' \
--form 'services[0]="kyc"' \
--form 'country_names[0]="albania"' \
--form 'language="english"' \
--form 'document[supported_types][0]="id_card"' \
--form 'document[name][full_name]="test"' \
--form 'document[document_number]="123"' \
--form 'document[dob]="1999-09-01"' \
--form 'document[issue_date]="2020-09-11"' \
--form 'document[expiry_date]="2029-10-29"' \
--form 'document[gender]="M"' \
--form 'document[age][min]="1"' \
--form 'document[age][max]="10"' \
--form 'document[process_only_ocr]="0"' \
--form 'document[proof]=@"/FILE_1.pdf"' \
--form 'document[additional_proof]=@"/FILE_1.pdf"'
Address Verification
Description:
The "Address Verification (KYC)" API enables users to submit and verify address-related documents as part of the Know Your Customer (KYC) process. This service ensures that the provided address information is accurate and matches the documents submitted. By using this API, businesses can effectively validate the residential address of their clients, thereby enhancing security and meeting regulatory compliance requirements.
Method Call: POST
API:
https://api.thekyb.com/api/search
Parameter | Description |
---|---|
services[] | Type: FormData Required: Yes Description: This parameter specifies the services provided by the KYC system. To perform Address Verification, include kyc in the services parameter. |
country_names[] | Type: FormData Required: Yes Description: The country associated with the address being verified. Example: albania . |
language | Type: FormData Required: Optional Description: The language to be used for the KYC process. Example: english . |
address[proof] | Type: FormData Required: Yes Description: The primary address document proof in binary format. |
address[additional_proof] | Type: FormData Required: No Description: An additional document proof to support the address verification, in binary format. |
address[full_address] | Type: FormData Required: Yes Description: The full address of the individual as it appears on the document. |
- Http
- Javascript
- PHP
- Python
- Node
- cURL
POST /api/search HTTP/1.1
Host: api.thekyb.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Accept: application/json
token: YOUR_SECRET_KEY
Content-Length: 869
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="services[0]"
kyc
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="country_names[0]"
albania
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="language"
english
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="address[full_address]"
address
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="address[proof]"; filename="FILE_1.pdf"
Content-Type: application/pdf
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="address[additional_proof]"; filename="FILE_1.pdf"
Content-Type: application/pdf
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
var myHeaders = new Headers();
myHeaders.append("Content-Type", "multipart/form-data");
myHeaders.append("Accept", "application/json");
myHeaders.append("token", "YOUR_SECRET_KEY");
var formdata = new FormData();
formdata.append("services[0]", "kyc");
formdata.append("country_names[0]", "albania");
formdata.append("language", "english");
formdata.append("address[full_address]", "address");
formdata.append("address[proof]", "FILE_1.pdf");
formdata.append("address[additional_proof]", "FILE_1.pdf");
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: formdata,
redirect: 'follow'
};
fetch("https://api.thekyb.com/api/search", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.thekyb.com/api/search',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'services[0]' => 'kyc',
'country_names[0]' => 'albania',
'language' => 'english',
'address[full_address]' => 'address',
'address[proof]'=> new CURLFILE('/FILE_1.pdf'),
'address[additional_proof]'=> new CURLFILE('/FILE_1.pdf')
),
CURLOPT_HTTPHEADER => array(
'Content-Type: multipart/form-data',
'Accept: application/json',
'token: YOUR_SECRET_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://api.thekyb.com/api/search"
payload={'services[0]': 'kyc',
'country_names[0]': 'albania',
'language': 'english',
'address[full_address]': 'address',
files=[
('address[proof]',('output.pdf',open('/FILE_1.pdf','rb'),'application/pdf')),
('address[additional_proof]',('output.pdf',open('/FILE_1.pdf','rb'),'application/pdf'))
]
headers = {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
var axios = require('axios');
var FormData = require('form-data');
var fs = require('fs');
var data = new FormData();
data.append('services[0]', 'kyc');
data.append('country_names[0]', 'albania');
data.append('language', 'english');
data.append('address[full_address]', 'address');
data.append('address[proof]', fs.createReadStream('/FILE_1.pdf'));
data.append('address[additional_proof]', fs.createReadStream('/FILE_1.pdf'));
var config = {
method: 'post',
url: 'https://api.thekyb.com/api/search',
headers: {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY',
...data.getHeaders()
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
curl --location --request POST 'https://api.thekyb.com/api/search' \
--header 'Content-Type: multipart/form-data' \
--header 'Accept: application/json' \
--header 'token: YOUR_SECRET_KEY' \
--form 'services[0]="kyc"' \
--form 'country_names[0]="albania"' \
--form 'language="english"' \
--form 'address[full_address]="address"' \
--form 'address[proof]=@"/FILE_1.pdf"' \
--form 'address[additional_proof]=@"/FILE_1.pdf"'
Read KYC Detail
Description:
The "Read Kyc Response" endpoint retrieves and displays the response for a Know Your Customer (KYC) verification request. By using a unique KYC request identifier, this endpoint provides detailed information about the status of both document verification and address verification processes, including any associated data and results.
Method Call: GET
API:
https://api.thekyb.com/api/readKycResponse?kyc_request_id=KYC_REQUEST_ID
- Http
- Javascript
- PHP
- Python
- Node
- cURL
GET /api/readKycResponse?kyc_request_id=KYC_REQUEST_ID HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY
var requestHeaders = new Headers();
requestHeaders.append("Content-Type", "application/json");
requestHeaders.append("Accept", "application/json");
requestHeaders.append("token", "YOUR_SECRET_KEY");
var requestOptions = {
method: "GET",
headers: requestHeaders,
redirect: "follow"
};
fetch("https://api.thekyb.com/api/readKycResponse?kyc_request_id=KYC_REQUEST_ID", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.thekyb.com/api/readKycResponse?kyc_request_id=KYC_REQUEST_ID',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'token: YOUR_SECRET_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
import json
url = "https://api.thekyb.com/api/readKycResponse?kyc_request_id=KYC_REQUEST_ID"
payload={}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'token': 'YOUR_SECRET_KEY'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
var axios = require("axios");
var config = {
method: "get",
url: "https://api.thekyb.com/api/readKycResponse?kyc_request_id=KYC_REQUEST_ID",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
token: "YOUR_SECRET_KEY",
},
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
curl --location --request GET 'https://api.thekyb.com/api/readKycResponse?kyc_request_id=KYC_REQUEST_ID' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'token: YOUR_SECRET_KEY'
Response
The KYC Verification API offers two types of responses when a verification request is made: an HTTP response and a callback response. Both responses are presented in JSON format with an application/json header. The response header also includes a Key Signature, which is utilized for verifying the authenticity of the response source.
Listing the Available Countries
Description:
The "Listing Available Countries" API provides a detailed list of all countries where the KYC service is supported, helping businesses understand the geographical scope of their compliance efforts and ensuring that they can meet regulatory requirements across different regions.
API:
https://api.thekyb.com/api/readKycCountries
Response:
{
"error": false,
"message": "all kyc countries",
"data": {
"countries": [
"afghanistan",
"aland_island",
"albania",
...
]
}
}
Response Parameters:
Parameter | Description |
---|---|
error | Indicates whether an error occurred during the API request. false indicates that the request was successful without errors. |
message | A descriptive message indicating the status or outcome of the request. In this case, it says "all kyc countries". |
data.countries | An array listing all the countries available for KYC (Know Your Customer) checks. |
Listing the Available Languages
Description:
The "Listing Available Countries" response serves as a valuable resource for users to explore and understand the geographic coverage of the product. By providing a comprehensive list of covered countries and associated details, users can gain a clear picture of the product's global availability and make informed decisions regarding its usage in various regions.
API:
https://api.thekyb.com/api/readKycCountries
Response:
{
"error": false,
"message": "all kyc languages",
"data": {
"languages": [
"afrikaans",
"albanian",
"amharic",
...
]
}
}
Response Parameters:
Parameter | Description |
---|---|
error | Indicates whether an error occurred during the API request. false indicates that the request was successful without errors. |
message | A descriptive message indicating the status or outcome of the request. In this case, it says "all kyc languages". |
data.languages | An array listing all the languages available for KYC (Know Your Customer) checks. |
Document Verification
Description:
The "Document Verification" API response includes a unique kyc_request_id and a service_id, which can be used to track and reference the verification request. These identifiers allow businesses to track and manage the document verification process efficiently.
API:
https://api.thekyb.com/api/search
Response:
{
"kyc_request_id": "KYC_REQUEST_ID",
"service_id": "SERVICE_ID",
}
Response Parameters:
Parameter | Description |
---|---|
kyc_request_id | A unique identifier for the KYC verification request. Used for tracking and referencing. |
service_id | A unique identifier for the service associated with the KYC request. Used for tracking and referencing. |
Address Verification
Description:
The "Address Verification" API response provides a unique kyc_request_id and service_id. These identifiers are essential for tracking and referencing the address verification request within the broader KYC process, allowing for seamless integration and management of verification tasks.
API:
https://api.thekyb.com/api/search
Response:
{
"kyc_request_id": "KYC_REQUEST_ID",
"service_id": "SERVICE_ID",
}
Response Parameters:
Parameter | Description |
---|---|
kyc_request_id | A unique identifier for the KYC verification request. Used for tracking and referencing. |
service_id | A unique identifier for the service associated with the KYC request. Used for tracking and referencing. |
Document Verification Read KYC Detail
Description:
The "Read Kyc Response" endpoint retrieves and displays the response for a Know Your Customer (KYC) verification request. By using a unique KYC request identifier, this endpoint provides detailed information about the status of the document verification process.
API:
https://api.thekyb.com/api/readKycResponse?kyc_request_id=KYC_REQUEST_ID
Response:
{
"error": false,
"message": "kyc request data fetched successfully",
"data": {
"request_status": "verification.declined",
"kyc_response_data": {
"_id": "66bf5c10082d64acf7",
"kyc_request_id": "66bf5c0d32bee2a5",
"service_id": "66bf5c0c1ddebe69f",
"user_id": "65b8ff11e583c43644",
"country": "PK",
"updated_at": "2024-08-16T14:02:56.060000Z",
"created_at": "2024-08-16T14:02:56.054000Z",
"declined_codes": [
"SPDR07",
"SPDR11",
"SPDR69",
"SPDR68",
"SPDR08",
"SPDR06"
],
"declined_reason": "Provided document does not match the criteria",
"services_declined_codes": {
"document": [
"SPDR07",
"SPDR11",
"SPDR69",
"SPDR68",
"SPDR08",
"SPDR06"
]
},
"verification_data": {
"document": {
"name": {
"first_name": null,
"middle_name": null,
"last_name": null,
"full_name": "Alam"
},
"document_number": "3240276648",
"dob": "1999-09-09",
"gender": "M",
"age": "24",
"expiry_date": "2029-09-29",
"issue_date": "2020-09-29",
"selected_type": [
"id_card"
],
"supported_types": [
"id_card",
"driving_license",
"passport"
],
"document_country_name": "Pakistan",
"document_country_code": "PAK"
}
},
"verification_result": {
"document": {
"document": 0,
"name": 0,
"dob": 0,
"expiry_date": 0,
"issue_date": 0,
"gender": 1,
"age": 1,
"document_number": 0,
"document_country": 1,
"selected_type": 1
}
}
},
"kyc_request": {
"_id": "66bf5c0d32bee2a5ee0",
"user_id": "65b8ff11e583c43644",
"company_id": "65b8ff12e583c4364",
"service_id": "66bf5c0c1ddebe69ff",
"kyc_request_type": [
"document"
],
"status": "verification.declined",
"language_code": "EN",
"language_name": "english",
"country_code": "PK",
"country_name": "pakistan",
"document": {
"supported_types": [
"id_card",
"driving_license",
"passport"
],
"name": {
"full_name": "test"
},
"gender": "M",
"document_number": "12345",
"issue_date": "2024-08-16",
"dob": "2024-08-16",
"expiry_date": "2024-08-16",
"age": {
"min": "1",
"max": "30"
},
"proof": "https://api.thekyb.com/api/get-file/65b8ff11e583c436440f/66bf5c0d32bee2a5ee0ed?download=0&expires=172381783&signature=72abae8f6aa61237f62109cfbbdb08c859e216e2e94413ebfd541442c2bc5",
"additional_proof": "https://api.thekyb.com/api/get-file/65b8ff11e583c436440f/66bf5c0d32bee2a5ee0e?download=0&expires=172381783&signature=8c4be8b537400d917daff8fdc9b18b1782846999a9e9e694cb6376b4c",
"proof_meta_detail": {
"extension": "png",
"mime_type": "image/png",
"file_size": 149476,
"filename": "front-image.png"
},
"additional_proof_meta_detail": {
"extension": "jpeg",
"mime_type": "image/jpeg",
"file_size": 60185,
"filename": "back-image.jpeg"
}
},
"address": null,
"created_at": "2024-08-16T14:02:53.317000Z",
"updated_at": "2024-08-16T14:02:56.071000Z"
}
}
}
Response Parameters:
Parameter | Description |
---|---|
error | Indicates whether the request was successful or not. |
message | Provides a message regarding the API response. |
data.request_status | The status of the KYC request. |
data.kyc_response_data._id | Unique identifier for the KYC response data. |
data.kyc_response_data.kyc_request_id | Unique identifier for the KYC request. |
data.kyc_response_data.service_id | Identifier for the service related to the KYC request. |
data.kyc_response_data.user_id | Identifier for the user associated with the KYC request. |
data.kyc_response_data.country | Country code of the KYC request. |
data.kyc_response_data.updated_at | Timestamp of the last update to the KYC response. |
data.kyc_response_data.created_at | Timestamp of the creation of the KYC response. |
data.kyc_response_data.declined_codes | List of codes explaining the verification decline. |
data.kyc_response_data.declined_reason | Reason for the declined verification. |
data.kyc_response_data.services_declined_codes | Codes for services that were declined, such as document verification. |
data.kyc_response_data.verification_data.document | Details of document verification, including name, document number, and dates. |
data.kyc_response_data.verification_result.document | Results of the document verification, showing which checks passed or failed. |
data.kyc_request._id | Unique identifier for the KYC request. |
data.kyc_request.user_id | Identifier for the user associated with the KYC request. |
data.kyc_request.company_id | Identifier for the company related to the KYC request. |
data.kyc_request.service_id | Identifier for the service related to the KYC request. |
data.kyc_request.kyc_request_type | Types of KYC request. |
data.kyc_request.status | The status of the KYC request, indicating its current state. Possible values include: verification.declined – The KYC request has been declined. verification.accepted – The KYC request has been accepted and verified. pending – The KYC request is still under review and has not yet been processed. |
data.kyc_request.language_code | Language code used for the KYC request. |
data.kyc_request.language_name | Name of the language used in the KYC request. |
data.kyc_request.country_code | Country code of the KYC request. |
data.kyc_request.country_name | Country name of the KYC request. |
data.kyc_request.document | Document details including types, proof URLs, and metadata. |
data.kyc_request.address | Address verification details. |
data.kyc_request.created_at | Timestamp when the KYC request was created. |
data.kyc_request.updated_at | Timestamp when the KYC request was last updated. |
Address Verification Read KYC Detail
Description:
The "Read Kyc Response" endpoint retrieves and displays the response for an Address Verification KYC request. By using a unique KYC request identifier, this endpoint provides detailed information about the status of the address verification process.
API:
https://api.thekyb.com/api/readKycResponse?kyc_request_id=KYC_REQUEST_ID
Response:
{
"error": false,
"message": "kyc request data fetched successfully",
"data": {
"request_status": "verification.declined",
"kyc_response_data": {
"_id": "66bf5c5b082d64acf702",
"kyc_request_id": "66bf5c5acc9d6b99c80",
"service_id": "66bf5c5a2138fa4dde00",
"user_id": "65b8ff11e583c4364407",
"country": "PK",
"updated_at": "2024-08-16T14:04:11.938000Z",
"created_at": "2024-08-16T14:04:11.932000Z",
"declined_codes": [
"SPDR23"
],
"declined_reason": "Provided document does not match the criteria",
"services_declined_codes": {
"address": [
"SPDR23"
]
},
"verification_data": {
"address": {
"full_address": null,
"native_full_address": "",
"address_country_name": "Pakistan",
"address_country_code": "PAK"
}
},
"verification_result": {
"address": {
"full_address": 0,
"address_document_country": 1,
"address_document": 1
}
}
},
"kyc_request": {
"_id": "66bf5c5acc9d6b99c80d",
"user_id": "65b8ff11e583c436440fa",
"company_id": "65b8ff12e583c436440",
"service_id": "66bf5c5a2138fa4dde03",
"kyc_request_type": [
"address"
],
"status": "verification.declined",
"language_code": "EN",
"language_name": "english",
"country_code": "PK",
"country_name": "pakistan",
"document": null,
"address": {
"full_address": "test address",
"proof": "https://api.thekyb.com/api/get-file/65b8ff11e583c436440fa/66bf5c5acc9d6b99c80d?download=0&expires=17238179&signature=92d7a4af44e8969d56d14ca4293f01fc43b0ff9c5a7b28ab2858a60fbbde",
"additional_proof": "https://api.thekyb.com/api/get-file/65b8ff11e583c436440fa/66bf5c5acc9d6b99c80db?download=0&expires=17238179&signature=1ac3cb44950052ed5bbffcdd22ad371db236dac0f6fbecae9a36753278fd",
"proof_meta_detail": {
"extension": "jpg",
"mime_type": "image/jpeg",
"file_size": 168145,
"filename": "front-image.jpg"
},
"additional_proof_meta_detail": {
"extension": "jpg",
"mime_type": "image/jpeg",
"file_size": 155144,
"filename": "back-image.jpg"
}
},
"created_at": "2024-08-16T14:04:10.340000Z",
"updated_at": "2024-08-16T14:04:11.950000Z"
}
}
}
Response Parameters:
Parameter | Description |
---|---|
error | Indicates whether the request was successful or not. |
message | Provides a message regarding the API response. |
data.request_status | The status of the KYC request, which could be verification.declined , verification.accepted , or pending . |
data.kyc_response_data._id | The unique identifier for the KYC response. |
data.kyc_response_data.kyc_request_id | The unique identifier for the KYC request. |
data.kyc_response_data.service_id | The unique identifier for the service associated with the KYC request. |
data.kyc_response_data.user_id | The unique identifier for the user associated with the KYC request. |
data.kyc_response_data.country | The country code where the KYC request was made. |
data.kyc_response_data.updated_at | The timestamp when the KYC response was last updated. |
data.kyc_response_data.created_at | The timestamp when the KYC response was created. |
data.kyc_response_data.declined_codes | An array of codes indicating why the KYC request was declined. |
data.kyc_response_data.declined_reason | The reason for the decline of the KYC request. |
data.kyc_response_data.services_declined_codes | Declined codes specific to the services, such as address. |
data.kyc_response_data.verification_data .address.full_address | The full address as provided in the request. |
data.kyc_response_data.verification_data .address.native_full_address | The native language version of the full address. |
data.kyc_response_data.verification_data .address.address_country_name | The name of the country for the address. |
data.kyc_response_data.verification_data .address.address_country_code | The country code for the address. |
data.kyc_response_data.verification_result .address.full_address | Verification result for the full address. |
data.kyc_response_data.verification_result .address.address_document_country | Verification result for the address document country. |
data.kyc_response_data.verification_result .address.address_document | Verification result for the address document. |
data.kyc_request._id | The unique identifier for the KYC request. |
data.kyc_request.user_id | The unique identifier for the user associated with the KYC request. |
data.kyc_request.company_id | The unique identifier for the company associated with the KYC request. |
data.kyc_request.service_id | The unique identifier for the service associated with the KYC request. |
data.kyc_request.kyc_request_type | The type of KYC request. |
data.kyc_request.status | The status of the KYC request. |
data.kyc_request.language_code | The language code used in the KYC request. |
data.kyc_request.language_name | The name of the language used in the KYC request. |
data.kyc_request.country_code | The country code for the KYC request. |
data.kyc_request.country_name | The name of the country for the KYC request. |
data.kyc_request.document | Document-related details for the KYC request. |
data.kyc_request.address.full_address | The full address provided in the request. |
data.kyc_request.address.proof | URL to the proof document provided for the address. |
data.kyc_request.address.additional_proof | URL to the additional proof document provided for the address. |
data.kyc_request.address .proof_meta_detail.extension | The file extension of the proof document. |
data.kyc_request.address .proof_meta_detail.mime_type | The MIME type of the proof document. |
data.kyc_request.address .proof_meta_detail.file_size | The file size of the proof document. |
data.kyc_request.address .proof_meta_detail.filename | The filename of the proof document. |
data.kyc_request.address .additional_proof_meta_detail.extension | The file extension of the additional proof document. |
data.kyc_request.address .additional_proof_meta_detail.mime_type | The MIME type of the additional proof document. |
data.kyc_request.address .additional_proof_meta_detail.file_size | The file size of the additional proof document. |
data.kyc_request.address .additional_proof_meta_detail.filename | The filename of the additional proof document. |
data.kyc_request.created_at | The timestamp when the KYC request was created. |
data.kyc_request.updated_at | The timestamp when the KYC request was last updated. |
Declined Reasons
When a verification request involving Document and Address services is declined, the following reasons are provided to the end user or client.
Status Code | Description |
---|---|
SPDR01 | Face could not be verified. |
SPDR03 | Image is altered or photoshopped. |
SPDR04 | Copy of the image found on web. |
SPDR19 | Face could not be detected in image, please upload image again with your face clearly visible. |
SPDR37 | Face liveness detection failed. |
SPDR40 | The answer to the question is incorrect. |
SPDR43 | Camera is not accessible for verification. |
SPDR58 | Face in the image is with wearing glasses. |
SPDR59 | Face proof is taken from another screen. |
SPDR60 | Face proof is taken from internet. |
SPDR61 | More than one face in one image. |
SPDR62 | Face proof is a screenshot. |
SPDR96 | Face is not visible due to low lighting. |
SPDR97 | Face image is blurry. |
SPDR98 | Face image is cropped or edited. |
SPDR99 | Face is not found on the document. |
SPDR101 | Face is hidden on the document. |
SPDR109 | Uploaded image is found on the internet. |
SPDR144 | Hat or mask is found on the face. |
SPDR168 | Face is not detected in the uploaded image. |
SPDR218 | Face proof is edited using filters. |
SPDR219 | The uploaded face picture is blur and not clearly visible. |
SPDR230 | The uploaded face picture does not match the face photo on the provided document. |
SPDR231 | The face picture on the provided document is not clearly visible. |
SPDR233 | Face proof has a solid color in the background. |
SPDR241 | The verification process was canceled by the user. |
SPDR249 | Front or backside proof is not provided. |
SPDR251 | Document front proof is not provided. |
SPDR252 | Proof and additional proof are of same side of the document. |
SPDR261 | MRZ Number on the document does not match. |
SPDR262 | Data is hidden on the provided document. |
SPDR263 | Uploaded image of the document is pixelated. |
SPDR264 | Face image is not present on the document. |
SPDR265 | Invalid CPF number provided. |
SPDR268 | The provided image is corrupted. |
SPDR274 | End user did not submit complete verification proofs or data. |
SPDR276 | The user does not want to share camera or documents. |
SPDR277 | Closed eyes are detected. |
SPDR278 | Face proof is altered or photoshopped. |
SPDR279 | Face proof is blur and not clear for verification. |
SPDR280 | Eyes not visible and are covered with glasses. |
SPDR281 | Multiple faces detected in face proof. |
SPDR282 | Uploaded document is a test ID. |
SPDR283 | Face could not be detected. |
SPDR287 | Duplicate account is detected. |
SPDR291 | Entire Face is not clear in the provided face proof. |
SPDR02 | Image of the face not found on the document. |
SPDR05 | Document and Document Two does not belong to the same person. |
SPDR06 | Document originality could not be verified. |
SPDR07 | Name on the document doesn't match. |
SPDR08 | DOB on the document doesn't match. |
SPDR09 | Date on the document doesn't match. |
SPDR10 | Issue date on the document doesn't match. |
SPDR11 | Number on the document doesn't match. |
SPDR12 | The issuing country of document is not supported, please upload a valid document. |
SPDR13 | Document doesn't match the provided options. |
SPDR14 | Age could not be verified. |
SPDR15 | Face on the document doesn't match with camera image. |
SPDR16 | The expiry date of the document does not match the record, please upload a document with valid expiry date. |
SPDR17 | The document is expired, please upload a new document which is not expired. |
SPDR18 | The uploaded image of the document is blur, please provide a clear photo of document. |
SPDR21 | Proof and Additional Proof are of different documents. |
SPDR36 | Both Documents do not belong to the same person. |
SPDR42 | Front and backside images of the document did not match, please upload images of the same document. |
SPDR44 | Gender could not be verified. |
SPDR45 | Place of issue could not be verified. |
SPDR47 | Document proof is a screenshot. |
SPDR48 | Document proof is altered/edited. |
SPDR49 | Document proof is paper based which is not accepted. |
SPDR50 | Document proof is punched/broken. |
SPDR51 | Document proof is from another screen. |
SPDR52 | Hologram is missing on the document. |
SPDR53 | Document proof is not fully displayed. |
SPDR54 | Document is blur. |
SPDR55 | Information on the document proof is not visible. |
SPDR56 | Information on the document is edited. |
SPDR57 | Information on the document is hidden. |
SPDR63 | Front and backside images are not of the same document. |
SPDR64 | Proof and additional proof does not belong to the same person. |
SPDR66 | Both documents should belong to the same person. |
SPDR67 | Document should be from the provided country. |
SPDR68 | Issue date does not match with the provided one. |
SPDR69 | Expiry date does not match with the provided one. |
SPDR70 | Submitted document is expired. |
SPDR71 | Issue date on the document is not clearly visible. |
SPDR72 | Expiry date on the document is not clearly visible. |
SPDR73 | Date of Birth on the document does not match with the provided one. |
SPDR74 | Date of Birth on the document is not clearly visible. |
SPDR75 | Name on the document does not match with the provided one. |
SPDR76 | Name on the document is not clearly visible. |
SPDR77 | Document number does not match with the provided one. |
SPDR78 | Document number is not clearly visible. |
SPDR79 | Original document number could not be authenticated. |
SPDR86 | E-document data does not match with provided document proof. |
SPDR87 | Face on the E-document does not match with selfie. |
SPDR88 | Uploaded document is Black and White. |
SPDR89 | Uploaded image of the document is edited or cropped. |
SPDR90 | Uploaded image is found on the internet. |
SPDR91 | Document is laminated. |
SPDR92 | Document is scanned or colored copy. |
SPDR93 | Document is paper-based or laminated. |
SPDR94 | Uploaded document is a test card. |
SPDR100 | Picture on the document is not updated. |
SPDR103 | The uploaded document is not matched with the mentioned document type. |
SPDR104 | Last name in the uploaded document doesn’t match the record. |
SPDR105 | First name in the uploaded document doesn’t match the record. |
SPDR220 | The document number on the document is invalid. |
SPDR107 | Uploaded document is a test card. |
SPDR111 | Uploaded document is expired. |
SPDR113 | The issuing country of document is not supported. |
SPDR114 | Gender on the document does not match with the provided gender. |
SPDR116 | Gender is not mentioned in the uploaded document. |
SPDR117 | Gender is unclear in the uploaded document. |
SPDR118 | The Uploaded documents have different names. |
SPDR120 | Information on the document is not readable. |
SPDR121 | Entire document is not visible. |
SPDR122 | Uploaded document of the image is blur. |
SPDR124 | The uploaded document doesn’t match with the mentioned document type. |
SPDR125 | Uploaded front side and backside are of different documents. |
SPDR128 | Uploaded document is laminated. |
SPDR129 | Document might be broken, damaged, or punched. |
SPDR130 | Uploaded image of the document is a screenshot. |
SPDR131 | Document is captured from another device. |
SPDR133 | Document is paper-based or laminated. |
SPDR134 | Uploaded image of the document is found on the internet. |
SPDR135 | Uploaded image is a test card. |
SPDR136 | Uploaded document is black and white. |
SPDR137 | Document is not found in the uploaded image. |
SPDR140 | Middle name in the uploaded document doesn’t match the record. |
SPDR142 | Issuing date of the document is not visible. |
SPDR156 | Expiry date is not found on the uploaded document. |
SPDR159 | Expiry date of the document is not found. |
SPDR165 | Name is not found on the uploaded document. |
SPDR166 | Face image doesn’t match with the face on document. |
SPDR169 | Issue date of the uploaded document doesn’t match the record. |
SPDR171 | Expiry date of the uploaded document is not visible. |
SPDR174 | Name in the uploaded document is not visible. |
SPDR179 | Name is not found on the document. |
SPDR181 | Expiry date of the uploaded document is not match. |
SPDR221 | The gender mentioned on the document does not match with the provided information. |
SPDR222 | The gender on the document is not clearly visible. |
SPDR223 | The issue date on document is not present. |
SPDR224 | The date of birth on document is not clearly visible. |
SPDR234 | The date of birth on document is not present. |
SPDR226 | The nationality on the document does not match the provided information. |
SPDR227 | The nationality on the document is not clearly visible. |
SPDR228 | The nationality on the document is not mentioned. |
SPDR229 | The expiry date on document is not present. |
SPDR232 | The name on document is not present. |
SPDR235 | Face in provided document is edited. |
SPDR236 | Font in provided document is edited. |
SPDR237 | Background in provided document is edited. |
SPDR238 | Text in provided document is edited. |
SPDR239 | MRZ in provided document is edited. |
SPDR240 | Provided document is edited via applying filters. |
SPDR187 | Nationality could not be verified. |
SPDR190 | The provided document is broken. |
SPDR193 | The provided document is photocopy(color or black & white). |
SPDR194 | The provided document is edited. |
SPDR197 | The provided document is scanned. |
SPDR200 | The provided document is punched. |
SPDR201 | The provided document is cracked. |
SPDR202 | The provided document is cropped. |
SPDR203 | The provided document is handwritten. |
SPDR204 | Document does not belong to GCC countries. |
SPDR205 | Document type is not supported. |
SPDR206 | Document type is not allowed. |
SPDR207 | MRZ not detected on the document. |
SPDR208 | Document is not visible or present in the proof. |
SPDR209 | Student card is not acceptable. |
SPDR210 | Dual cards detected. |
SPDR211 | The uploaded document is not supported. |
SPDR212 | First name on the document doesn't match. |
SPDR213 | Middle name on the document doesn’t match. |
SPDR214 | Last name on the document doesn’t match. |
SPDR215 | The uploaded document is inverted or in mirror view. |
SPDR216 | The uploaded document is broken with affected data. |
SPDR217 | The same proof are not allowed for document and document two ID Card. |
SPDR225 | The proof has been uploaded and not captured in real time. |
SPDR271 | Frontside of the document is not displayed. |
SPDR272 | Backside of the document is not displayed. |
SPDR275 | Face could not be detected OR same side of the document is provided. |
SPDR284 | The complete verification data was not provided by the user. |
SPDR285 | Document proofs do not belong to the same person. |
SPDR286 | Document Proof inconsistent creation and modification dates found. |
SPDR82 | Address on the document is not clearly visible. |
SPDR25 | Country on the address document could not be verified. |
SPDR24 | Document type is different from the provided options. |
SPDR27 | The address document is expired. |
SPDR31 | Address proof and document proof are of different persons. |
SPDR80 | Address on the document does not match with the provided one. |
SPDR83 | Address is not present on the provided document. |
SPDR302 | Name or Address is not present on the provided document. |
SPDR269 | Address was not found in any Database. |
SPDR23 | Address did not match the record, please provide a document with valid address. |
SPDR112 | Country on the address document could not verified. |