# Shufti for Developers — Full Documentation
> REST API documentation for Shufti identity, business, and transaction verification services.
# Get Started
Source: https://developers.shuftipro.com/docs/get_started.md
Shufti's REST API offers a developer-friendly solution for seamlessly integrating Identity, Business, and Transaction Verification/Monitoring services into web or mobile applications. This API ensures secure access through Basic Authentication and Access Token-based Authentication. Developers can streamline their integration process using a single API endpoint, accessible via a single URL, simplifying the connection to all verification services. Shufti provides extensive documentation that covers parameters, supported countries, languages, compatible browsers, devices, and jurisdiction codes, making integration hassle-free. Moreover, the API includes Test IDs, assisting developers in conducting thorough testing during integration to guarantee smooth functionality before deploying the services.
Before getting started, make sure you have the following:
1. **Setup Shufti Account:** This is a client account to access the Shufti's REST API and back-office. To set up your Shufti account, [click here](https://shuftipro.com/demo-request/).
2. **API Keys:** Shufti API uses API keys to authenticate requests. You can view your API keys in the settings of your back office. To get your API keys, [click here](https://backoffice.shuftipro.com/settings/api-keys).
3. **Get Authorized:** Shufti API uses API keys to authenticate requests. You can view and manage your API keys in your Shufti back office. API authorization is performed via HTTP Basic Auth & Access Token. The verification request will fail without authorization.
## Authentication
### Basic Auth
Shufti provides Authorization to clients through the **Basic Auth** header. Your Client ID will serve as your **Username** while the Secret Key will serve as your **Password**. The API will require this header for every request.
| Fields | Required | Description |
| -------- | -------- | ---------------------------------- |
| username | Yes | Enter Client ID as username. |
| password | Yes | Enter your Secret Key as password. |
To obtain the **client_id** and **secret_key**, please navigate to the settings page in your backoffice.
**Caution**
If you misplace the secret key, it is necessary to generate a new key from the back office. Ensure that you save the secret key when generating a new one. The generated key will not be displayed in the back office.
**http**
```json
//POST / HTTP/1.1 basic auth
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"verification_mode" : "any",
"face" : {
"proof" : ""
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
email : "johndoe@example.com",
country : "GB",
language : "EN",
verification_mode : "any",
}
payload['face'] = {
proof : ""
}
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY");
fetch('https://api.shuftipro.com/', { method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token
},
body: JSON.stringify(payload)}).then(function(response) {
return response.json();
}).then(function(data) { return data; });
```
**php**
```php
"ref-".rand(4,444).rand(4,444),
"callback_url" => "https://yourdomain.com/profile/notifyCallback",
"email" => "johndoe@example.com",
"country" => "GB",
"language" => "EN",
"verification_mode" => "any",
];
$verification_request['face'] = [
"proof" => ""
];
$auth = $client_id.":".$secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($verification_request);
$response = send_curl($url, $post_data, $headers, $auth);
function send_curl($url, $post_data, $headers, $auth){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return json_decode($body,true);
}
echo $response['verification_url'];
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
url = 'https://api.shuftipro.com/'
client_id = 'YOUR-CLIENT-ID'
secret_key = 'YOUR-SECRET-KEY'
verification_request = {
"reference" : "ref-{}{}".format(randint(1000, 9999), randint(1000, 9999)),
"callback_url" : "https://yourdomain.com/profile/notifyCallback",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"verification_mode" : "any"
}
verification_request['face'] = {
"proof" : ""
}
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
json_response = json.loads(response.content)
print('Verification URL: {}'.format(json_response))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
require 'open-uri'
url = URI("https://api.shuftipro.com/")
CLIENT_ID = "YOUR-CLIENT-ID"
SECRET_KEY = "YOUR-SECRET-KEY"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN",
redirect_url: "http://www.example.com",
verification_mode: "any"
}
verification_request["face"] = {
proof: ""
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}"
request.body = verification_request.to_json
response = http.request(request)
puts response.read_body
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"reference\" : \"1234567\",\n \"callback_url\" : \"http://www.example.com/\",\n \"email\" : \"johndoe@example.com\",\n \"country\" : \"GB\",\n \"language\" : \"EN\",\n \"verification_mode\" : \"any\",\n \"face\" : {\n \"proof\" : \"\"\n }\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"verification_mode" : "any",
"face" : {
"proof" : ""
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"": ""1234567""," + "\n" +
@" ""callback_url"": ""http://www.example.com/""," + "\n" +
@" ""email"": ""johndoe@example.com""," + "\n" +
@" ""country"": ""GB""," + "\n" +
@" ""language"": ""EN""," + "\n" +
@" ""verification_mode"": ""any""," + "\n" +
@" ""face"": {" + "\n" +
@" ""proof"": """"" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"verification_mode": "any",
"face": {
"proof": ""
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
### Access Token
Shufti provides Bearer Access Token Authorization method. Clients can generate temporary access token using new access token endpoint. The shared token will be used to authorize API requests.
**Caution**
The token shared with the client will be valid for 1 hour and can be used once only.
| Field | Required | Description |
| ------------- | -------- | ------------------------------- |
| Authorization | Yes | Enter your authorization token. |
**Info**
Shufti uses following BASE URL for every request: ```https://api.shuftipro.com/```
---
# General Parameters
Source: https://developers.shuftipro.com/docs/general_parameters.md
This section outlines the universal parameters that are integral to every verification request processed by Shufti. These parameters are consistently required across all types of verification services we offer, ensuring a standardized approach to initiating and handling verifications.
Parameters | Description
-------------- | --------------
reference | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 characters** Each request is issued a unique reference ID which is sent back to Shufti's client with each response. This reference ID helps to verify the request. The client can use this ID to check the status of already performed verifications.
country | Required: **No** Type: **string** Length: **2 characters** You may omit this parameter if you don't want to enforce country verification. If a valid country code is provided, then the proofs (images/videos) for document verification or address verification must be from the same country. Country code must be a valid ISO 3166-1 alpha-2 country code. Please consult Supported Countries for country codes. **Note:** Country validation is only enforced in the production environment. In the test (sandbox) environment, the country parameter is accepted but not validated against the submitted proofs.
language | Required: **No** Type: **string** Length: **2 characters** If the Shufti client wants their preferred language to appear on the verification screens they may provide the 2-character long language code of their preferred language. The list of Supported Languages can be consulted for the language codes. If this key is missing in the request the system will select the default language as English.
email | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **128 characters** This field represents email of the end-user.
customer_unique_id | Required: **No** Type: **string** Minimum: **6 characters** Maximum Length: **64 characters** The customer ID is a unique identifier used to distinguish individual users in the system. If included in an API request, the same customer ID will be returned in the response. If the customer ID is not provided by the merchant, a new customer ID will be automatically generated and returned in the response. **Note:** It is recommended to send the customer_unique_id in the request object to maintain the customer record and prevent fraud.
callback_url | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 characters** A number of server-to-server calls are made to Shufti's client to keep them updated about the verification status. This allows the clients to keep the request updated on their end, even if the end-user is lost midway through the process. **Note:** The callback domains must be registered within the Backoffice to avoid encountering a validation error. For registering callback domain, click here. **e.g:** example.com, test.example.com
redirect_url | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 characters** Once an on-site verification is complete, User is redirected to this link after showing the results. **Note:** The redirect domains must be registered within the Backoffice to avoid encountering a validation error. For registering redirect domain, click here. **e.g:** example.com, test.example.com
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proof that can be used for verification. In a "video_only” mode, Shufti's client can only send "Base64” of videos wherein formats of proofs should be MP4 or MOV. "any” mode can be used to send a combination of images and videos as proofs for verification.
fraud_hub | Required: **No** Type: **string** Length: **1 character** Enable this option to receive a fraud score and risk signals related to the user's device behavior, network activity, and document integrity in the API response.
allow_offline | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter allows users to upload images or videos in case of non-availability of a functional webcam.If value: 0, users can capture photos/videos with the camera only.
allow_online | Required: **No** Type: **string** Accepted Values: **0, 1** Default-Value: **1** This parameter allows users to capture image or videos in real-time when internet is available. If value: 0 users can upload already captured images or videos. **Note:** if **allow_offline:** 0 priority will be given to **allow_offline**.
allow_na_ocr_inputs | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** In onsite with ocr verification request, it allows the end-user to select **N/A** on the OCR form and the verification step will be accepted.
decline_on_single_step | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** If enabled, the verification request will be declined when one of the verification steps is not verified.
show_results | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** If Value for this parameter is 1, verification result will be displayed to the end-user, showing them whether their verification is accepted or declined. If the value of this parameter is set 0, verification results will not be shown to end-user.
show_feedback_form | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter will work only for onsite verification. If its value is 1 at the end of verification, a feedback form is displayed to the end-user to collect his/her feedback. If it is 0 then it will not display the feedback page to the end-user.
allow_retry | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** In onsite verification request, If the document is declined by AI, the end-user can re-upload the document up to 3 times.
manual_review | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** This key can be used if the client wants to review verifications after processing from Shufti has completed. Once the user submits any/all required documents, Shufti returns a status of review.pending. The client can then review the verification details and Accept OR Decline the verifications from the back-office.
enhanced_originality_checks | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** If enabled, this key will be used for performing a strict text edit check on the ID document and decline the verification request if the edited text is found. It will restrict the end-users to scan a QR code to continue the verification journey on mobile if the process is initiated from a Desktop device. This configuration will ensure quality image from the native camera to detect edited text on ID documents.
show_ocr_form | Required: **No** Type: **boolean** Accepted Values: **0, 1** default value: **1** The default value for this is **1**. If this is set to **0**, the user will not be shown the OCR form to validate the extracted information. This can be used within the **Document**, **Document Two**, and **Address service**. This value can also be applied to all services collectively. However, preference will be given to the value set within the service. **Note:** Setting the value at 0 may cause data inaccuracy as the user does not have option to validate the extracted information.
ttl | Required: **No** Type: **int** Default: **60** Maximum: **43200** Give a numeric value for minutes that you want the verification url to remain active.**Note:** The minimum request timeout duration has been set to 30 minutes, regardless of the TTL value provided in the request.
allow_warnings | Required: **No** Type: **string** Accepted Values: **0, 1** default value: **0** If the value is set to **1**, the system will return any detected anomalies in the response, including metadata alterations, image manipulation, suspicious camera interactions and format-related issues.If the value is set to **0**, the detected anomalies will not be returned in the response.
skip_address_if_extracted_on_document | Required: **No** Type: **Boolean** Accepted Values: **0, 1** The default value is **0**. When set to **1**, this parameter enables the system to automatically validate the address extracted from the document during document verification process. The system will not prompt the user to submit the proof of address again, streamlining the verification process. **Note:** This feature works if both document and address verification are enabled in a single flow. To enable this feature, OCR extraction for the address must first be enabled in the document verification process.
device_metadata | Required: **No** Type: **object** Supported Verification Type: **Offsite** This parameter enables enhanced fraud analysis alongside the verification process in offsite verification requests. It is highly recommended to include device metadata in your request payload to help Shufti perform comprehensive fraud detection. The device_metadata object accepts the following parameters: **ip_address:** The IP address of the end-user's device. **user_agent:** The user agent string from the end-user's browser or application. **device_fingerprint:** A unique identifier generated to recognize the end-user's device. **session_id:** The unique session identifier associated with the end-user's current session. **user_id:** The unique identifier for the end-user in the merchant's system. **Note:** This parameter only works for offsite verification requests and will not be processed for onsite requests.
```json title=general-request-parameters
{
"reference": "",
"country": "",
"language": "en",
"callback_url": null,
"redirect_url": "",
"verification_mode": "any",
"fraud_hub": "1",
"email": "",
"customer_unique_id": "",
"allow_offline": "1",
"allow_online": "1",
"show_consent": "0",
"decline_on_single_step": "1",
"manual_review": "0",
"show_privacy_policy": "0",
"show_results": "1",
"show_feedback_form": "0",
"allow_na_ocr_inputs": "0",
"allow_retry": "0",
"ttl": 60,
"enhanced_originality_checks": "0",
"skip_address_if_extracted_on_document": "0",
"allow_warnings": "0",
"device_metadata": {
"ip_address": "192.168.1.1",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"device_fingerprint": "d9e8f7g6h5i4j3k2l1m0",
"session_id": "sess_abc123xyz789",
"user_id": "user_12345"
},
{
//services like face, document, ...
}
}
```
---
# Multi Service Integration
Source: https://developers.shuftipro.com/docs/multi_service_integration.md
Shufti allows clients to use multiple services at once through one API request. This means you can customise and test your KYC process according to your specific needs. With Shufti, clients can utilize multiple verification services, including document verification, facial recognition, address verification, consent verification, due diligence checks, and KYB (Know Your Business) services. This flexibility lets clients choose and combine services precisely suited to their requirements, enhancing flexibility and efficiency in their KYC processes.
## Onsite Multi Service Integration
In a Multi Service Onsite verification request, clients can leverage multiple KYC services at once. This mode of verification involves direct interaction between the end user and Shufti, where the end user provides the required information and proof to perform the verification. The option to enable or disable OCR (Optical Character Recognition) is also available, facilitating the automatic extraction of data from the end user's documents. If the "With OCR" feature is activated by the merchant and the payload is incomplete, the system will automatically extract the needed information. In contrast, choosing to proceed "without OCR" indicates that all necessary data has been provided by the end user in the payload through manual submission.
**Info**
In a Multi-Service Onsite Integration, the following services can be utilized together:
- **[Facial Biometric Service](/docs/user_identification_authentication/facial_biometrics/how_it_works)**
- **[Document Verification Service](/docs/user_identification_authentication/document_verification/how_it_works)**
- **[Address Verification and Validation Service](/docs/user_identification_authentication/address_verification_and_validation/standard_address_verification/how_it_works)**
- **[Consent Service](/docs/user_identification_authentication/consent_verification/how_it_works)**
- **[Phone Multi-Factor Authentication](/docs/user_identification_authentication/phone_verification_and_validation/how_it_works)**
- **[Email Multi-Factor Authentication](/docs/user_identification_authentication/email_verification_and_validation/how_it_works)**
- **[KYB Service](/docs/business_identification_risk/know_your_business/standard_kyb/how_it_works)**
- **[Due Diligence Form](/docs/user_identification_authentication/due_diligence_form/how_it_works)**
- **[Individual AML Screening](/docs/user_identification_authentication/user_aml_screening/how_it_works)**
**withOCR**
```json title=merge-request-onsite-with-ocr
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
// replace "Basic" with "Bearer in case of Access Token"
{
"reference": "ABCD1234",
"country": "",
"language": "en",
"callback_url": null,
"redirect_url": "https://backoffice.shuftipro.com/demo-redirect",
"email": "john.doe@example.com",
"verification_mode": "any",
"allow_offline": "1",
"allow_online": "1",
"show_consent": "1",
"decline_on_single_step": "1",
"manual_review": "1",
"show_privacy_policy": "1",
"show_results": "1",
"show_feedback_form": "1",
"allow_na_ocr_inputs": "1",
"allow_retry": "1",
"allow_warnings":"1",
"ttl": 60,
"enhanced_originality_checks": "1",
"face": {
"proof": "",
"check_duplicate_request": 1
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": [
"id_card",
"passport",
"driving_license",
"credit_or_debit_card"
],
"backside_proof_required": "0",
"allow_ekyc": "0",
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1"
},
"verification_mode": "any",
"fetch_enhanced_data": "1",
"name": {
"first_name": "",
"middle_name": "",
"last_name": "",
"fuzzy_match": "1"
},
"dob": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"gender": "",
"age": {
"min": "22",
"max": "28"
}
},
"address": {
"proof": "",
"additional_proof": "",
"address_fuzzy_match": "1",
"backside_proof_required": "0",
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1"
},
"verification_mode": "any",
"enhanced_address_verification": "0",
"full_address": "10 Downing st, Westminster, London SW1A 2AA, UK"
},
"consent": {
"proof": "",
"supported_types": [
"handwritten",
"printed"
],
"text": "Shufti",
"verification_mode": "any"
},
"phone": {
"phone_number": "+123456789123",
"random_code": 7928,
"text": "Hi, Your Shufti verification code is"
},
"email_verify": {
"email": "john.doe@example.com"
},
"questionnaire": {
"uuid": [
"******"
],
"questionnaire_type": "pre_kyc",
"kyi_request": 0
},
"kyb": {
"additional_proof_labels": " "
},
"background_checks": {
"name": {
"first_name": "",
"last_name": "",
"fuzzy_match": "1"
},
"dob": "1990-01-02",
"ongoing": "1",
"filters": [
"sanction",
"warning",
"fitness-probity",
"pep",
"pep-class-1",
"pep-class-2",
"pep-class-3",
"pep-class-4"
]
}
}
```
**withoutOCR**
```json title=merge-request-onsite-without-ocr
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
// replace "Basic" with "Bearer in case of Access Token"
{
"reference": "ABCD1234",
"country": "",
"language": "en",
"callback_url": null,
"redirect_url": "https://backoffice.shuftipro.com/demo-redirect",
"email": "john.doe@example.com",
"verification_mode": "any",
"allow_offline": "1",
"allow_online": "1",
"show_consent": "1",
"decline_on_single_step": "1",
"manual_review": "1",
"show_privacy_policy": "1",
"show_results": "1",
"show_feedback_form": "1",
"allow_na_ocr_inputs": "0",
"allow_retry": "1",
"allow_warnings":"1",
"ttl": 60,
"enhanced_originality_checks": "1",
"face": {
"proof": "",
"check_duplicate_request": 1
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": [
"id_card",
"passport",
"driving_license",
"credit_or_debit_card"
],
"backside_proof_required": "0",
"allow_ekyc": "0",
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1"
},
"verification_mode": "any",
"fetch_enhanced_data": "1",
"name": {
"first_name": "John",
"middle_name": "Mic",
"last_name": "Doe",
"fuzzy_match": "1"
},
"dob": "2024-02-01",
"issue_date": "2024-02-01",
"expiry_date": "2024-02-01",
"document_number": "123456789",
"gender": "M",
"age": {
"min": "18",
"max": "70"
}
},
"address": {
"proof": "",
"additional_proof": "",
"address_fuzzy_match": "1",
"backside_proof_required": "0",
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1"
},
"verification_mode": "any",
"enhanced_address_verification": "0",
"full_address": "10 Downing st, Westminster, London SW1A 2AA, UK"
},
"consent": {
"proof": "",
"supported_types": [
"handwritten",
"printed"
],
"text": "I am John Doe",
"verification_mode": "any"
},
"phone": {
"phone_number": "+12345678123",
"random_code": 1220,
"text": "Hi, Your code for verification is"
},
"email_verify": {
"email": "john.doe@example.com"
},
"questionnaire": {
"uuid": [
"*****"
],
"questionnaire_type": "pre_kyc",
"kyi_request": 0
},
"kyb": {
"additional_proof_labels": ""
},
"background_checks": {
"name": {
"first_name": "John",
"middle_name": "Mic",
"last_name": "Doe",
"fuzzy_match": "1"
},
"dob": "1990-01-01",
"ongoing": "1",
"filters": [
"sanction",
"warning",
"fitness-probity",
"pep",
"pep-class-1",
"pep-class-2",
"pep-class-3",
"pep-class-4",
"adverse-media",
"adverse-media-financial-crime",
"adverse-media-violent-crime",
"adverse-media-sexual-crime",
"adverse-media-terrorism",
"adverse-media-fraud",
"adverse-media-narcotics",
"adverse-media-general",
"adverse-media-v2-property",
"adverse-media-v2-financial-aml-cft",
"adverse-media-v2-fraud-linked",
"adverse-media-v2-narcotics-aml-cft",
"adverse-media-v2-violence-aml-cft",
"adverse-media-v2-terrorism",
"adverse-media-v2-cybercrime",
"adverse-media-v2-general-aml-cft",
"adverse-media-v2-regulatory",
"adverse-media-v2-financial-difficulty",
"adverse-media-v2-violence-non-aml-cft",
"adverse-media-v2-other-financial",
"adverse-media-v2-other-serious",
"adverse-media-v2-other-minor"
]
}
}
```
## Offsite Multi Service Integration
In a Multi Service Offsite verification request, clients can employ multiple KYC services at the same time. In this verification mode, the client is responsible for gathering the necessary information and proofs from the end user and then submitting it to Shufti for verification. Additionally, clients can choose to activate or deactivate the OCR (Optical Character Recognition) feature. Enabling OCR allows for the automated extraction of essential data from the end user's documents. If the "With OCR" option is selected and the payload is incomplete, the system will automatically extract the required data. On the other hand, proceeding "without OCR" implies that the payload already includes all necessary data, which has been manually entered by the merchant.
**Info**
In a Multi-Service Offsite Integration, the following services can be utilized together:
- **[Facial Biometric Service](/docs/user_identification_authentication/facial_biometrics/how_it_works)**
- **[Document Verification Service](/docs/user_identification_authentication/document_verification/how_it_works)**
- **[Address Verification and Validation Service](/docs/user_identification_authentication/address_verification_and_validation/standard_address_verification/how_it_works)**
- **[Consent Service](/docs/user_identification_authentication/consent_verification/how_it_works)**
- **[KYB Service](/docs/business_identification_risk/know_your_business/standard_kyb/how_it_works)**
- **[Individual AML Screening](/docs/user_identification_authentication/user_aml_screening/how_it_works)**
**withOCR**
```json title=merge-request-offsite-with-ocr
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
// replace "Basic" with "Bearer in case of Access Token"
{
"reference": "ABCD1234",
"country": "",
"language": "en",
"callback_url": null,
"redirect_url": "https://backoffice.shuftipro.com/demo-redirect",
"email": "john.doe@example.com",
"verification_mode": "any",
"allow_offline": "1",
"allow_online": "1",
"show_consent": "1",
"decline_on_single_step": "1",
"manual_review": "1",
"show_privacy_policy": "1",
"show_results": "1",
"show_feedback_form": "1",
"allow_na_ocr_inputs": "1",
"allow_retry": "1",
"allow_warnings":"1",
"ttl": 60,
"enhanced_originality_checks": "1",
"face": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"check_duplicate_request": 1
},
"document": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"additional_proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": [
"id_card",
"passport",
"driving_license",
"credit_or_debit_card"
],
"backside_proof_required": "0",
"allow_ekyc": "0",
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1"
},
"verification_mode": "any",
"fetch_enhanced_data": "1",
"name": {
"first_name": "",
"middle_name": "",
"last_name": "",
"fuzzy_match": "1"
},
"dob": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"gender": "",
"age": {
"min": "22",
"max": "28"
}
},
"address": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"additional_proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"address_fuzzy_match": "1",
"backside_proof_required": "0",
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1"
},
"verification_mode": "any",
"enhanced_address_verification": "0",
"full_address": "10 Downing st, Westminster, London SW1A 2AA, UK"
},
"consent": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": [
"handwritten",
"printed"
],
"text": "Shufti",
"verification_mode": "any"
},
"kyb": {
"company_name": "SHUFTI PRO LIMITED"
},
"background_checks": {
"name": {
"first_name": "John",
"last_name": "Doe",
"fuzzy_match": "1"
},
"dob": "1990-01-02",
"ongoing": "1",
"filters": [
"sanction",
"warning",
"fitness-probity",
"pep",
"pep-class-1",
"pep-class-2",
"pep-class-3",
"pep-class-4"
]
}
}
```
**withoutOCR**
```json title=merge-request-offsite-without-ocr
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
// replace "Basic" with "Bearer in case of Access Token"
{
"reference": "ABCD1234",
"country": "",
"language": "en",
"callback_url": null,
"redirect_url": "https://backoffice.shuftipro.com/demo-redirect",
"email": "john.doe@example.com",
"verification_mode": "any",
"allow_offline": "1",
"allow_online": "1",
"show_consent": "1",
"decline_on_single_step": "1",
"manual_review": "1",
"show_privacy_policy": "1",
"show_results": "1",
"show_feedback_form": "1",
"allow_na_ocr_inputs": "0",
"allow_retry": "1",
"allow_warnings":"1",
"ttl": 60,
"enhanced_originality_checks": "1",
"face": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"check_duplicate_request": 1
},
"document": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"additional_proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": [
"id_card",
"passport",
"driving_license",
"credit_or_debit_card"
],
"backside_proof_required": "0",
"allow_ekyc": "0",
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1"
},
"verification_mode": "any",
"fetch_enhanced_data": "1",
"name": {
"first_name": "John",
"middle_name": "Mic",
"last_name": "Doe",
"fuzzy_match": "1"
},
"dob": "2024-02-01",
"issue_date": "2024-02-01",
"expiry_date": "2024-02-01",
"document_number": "123456789",
"gender": "M",
"age": {
"min": "18",
"max": "70"
}
},
"address": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"additional_proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"address_fuzzy_match": "1",
"backside_proof_required": "0",
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1"
},
"verification_mode": "any",
"enhanced_address_verification": "0",
"full_address": "10 Downing st, Westminster, London SW1A 2AA, UK"
},
"consent": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": [
"handwritten",
"printed"
],
"text": "I am John Doe",
"verification_mode": "any"
},
"kyb": {
"company_name": "SHUFTI PRO LIMITED"
},
"background_checks": {
"name": {
"first_name": "John",
"middle_name": "Mic",
"last_name": "Doe",
"fuzzy_match": "1"
},
"dob": "1990-01-01",
"ongoing": "1",
"filters": [
"sanction",
"warning",
"fitness-probity",
"pep",
"pep-class-1",
"pep-class-2",
"pep-class-3",
"pep-class-4",
"adverse-media",
"adverse-media-financial-crime",
"adverse-media-violent-crime",
"adverse-media-sexual-crime",
"adverse-media-terrorism",
"adverse-media-fraud",
"adverse-media-narcotics",
"adverse-media-general",
"adverse-media-v2-property",
"adverse-media-v2-financial-aml-cft",
"adverse-media-v2-fraud-linked",
"adverse-media-v2-narcotics-aml-cft",
"adverse-media-v2-violence-aml-cft",
"adverse-media-v2-terrorism",
"adverse-media-v2-cybercrime",
"adverse-media-v2-general-aml-cft",
"adverse-media-v2-regulatory",
"adverse-media-v2-financial-difficulty",
"adverse-media-v2-violence-non-aml-cft",
"adverse-media-v2-other-financial",
"adverse-media-v2-other-serious",
"adverse-media-v2-other-minor"
]
}
}
```
## Responses
**onsite**
```json title=sample-response-object-onsite-request
{
"reference": "ABCD1234",
"event": "request.pending",
"verification_url": "https://app.shuftipro.com/verification/process/K8OLRvrrJWPSdr7UvbsdkBYKSBCUIvdyycpYFJhhAaZhVDfrpzGXaFDm",
"email": "john.doe@example.com",
"country": ""
}
```
**offsite**
```json title=sample-response-object-offsite-request
{
"reference": "ABCD1234",
"event": "review.pending",
"email": "john.doe@example.com",
"country": "",
"verification_data": {
"face": {
"duplicate_account_detected": false
},
"document": {
"name": {
"first_name": "John",
"middle_name": null,
"last_name": "Doe"
},
"dob": "1990-09-01",
"expiry_date": "2028-03-01",
"issue_date": "2018-03-01",
"document_number": "123456789113",
"gender": "M",
"age": "34",
"selected_type": "id_card",
"supported_types": [
"id_card",
"passport",
"driving_license",
"credit_or_debit_card"
]
},
"address": {
"full_address": "10 Downing st, Westminster, London SW1A 2AA, UK"
},
"consent": {
"text": "Shufti",
"selected_type": "handwritten",
"supported_types": ["handwritten", "printed"]
},
"background_checks": {
"dob": "1990-01-02",
"name": {
"first_name": "John",
"last_name": "Doe"
}
}
},
"verification_result": {
"face": 1,
"document": {
"document": 1,
"document_must_not_be_expired": 1,
"document_proof": 1,
"face_on_document_matched": 1,
"name": 1,
"dob": 1,
"issue_date": 1,
"expiry_date": 1,
"document_number": 1,
"gender": 1,
"age": 1
},
"address": {
"address_document": 1,
"address_document_must_not_be_expired": 1,
"address_document_proof": 1,
"match_address_proofs_with_document_proofs": 1,
"full_address": 1
},
"consent": {
"consent": 1,
"consent_face_match": 1
},
"background_checks": 1
},
"info": {
"agent": {
"is_desktop": false,
"is_phone": false,
"useragent": "PostmanRuntime/7.32.3",
"device_name": "1",
"browser_name": "",
"platform_name": ""
},
"geolocation": {
"host": "212.103.50.243",
"ip": "212.103.50.243",
"rdns": "212.103.50.243",
"asn": "9009",
"isp": "M247 Ltd",
"country_name": "Germany",
"country_code": "DE",
"region_name": "Hesse",
"region_code": "HE",
"city": "Frankfurt am Main",
"postal_code": "60326",
"continent_name": "Europe",
"continent_code": "EU",
"latitude": "50.1049",
"longitude": "8.6295",
"metro_code": "",
"timezone": "Europe/Berlin"
}
},
"warnings": {
"document": {
"png_format_detected": "The image is in PNG format, which limits the detection of compression artifacts and other tampering detection signs."
},
"address": {
"metadata_alteration_detected": "The image metadata is incomplete or altered, suggesting it may have been modified or processed, thereby raising concerns about image authenticity."
}
}
}
```
**Info**
For a comprehensive overview of responses for a verification request, [click here](/docs/verification_endpoints/responses#verification-response).
---
# Test ID Samples
Source: https://developers.shuftipro.com/docs/test_ids.md
The below-provided Test ID Samples for different services can be used either during the testing or the integration process. This facilitates the technical teams to use dummy documents in order to test out the requests, responses, callbacks, etc without having them upload/provide their real identity documents.
**Caution**
These test samples can only be used for test accounts not for the production account.
## Face Test ID Samples
## Document/Document Two Test ID Samples
## Address Document Test ID Samples
## Consent Test ID Samples
---
# Glossary
Source: https://developers.shuftipro.com/docs/glossary.md
| Term | Definition |
|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Client/Merchant** | The entity or individual utilizing Shufti's services for identity verification. Typically, the one integrating and initiating verification processes on their platform. |
| **End User** | The individual whose identity is being verified through Shufti's services or also referred to as Client’s/Merchant’s customer. |
| **Verify/Iframe** | Shufti's verification component/interface enabling end users to securely provide information for the identity verification process. Client can also customise iframe according to their branding by using [iframe customisation](/docs/backoffice/plug_and_play_integration/iframe_branding). | |
| **Test ID Sample** | Test IDs are samples that can be utilized for various services during the testing or integration process on a trial account. These assist technical teams in testing requests, responses, callbacks, etc. using dummy documents. Shufti provides [sample ID documents](/docs/user_identification_authentication/document_verification/sample_id_documents), [face images](/docs/user_identification_authentication/facial_biometrics/sample_face_documents.md), [consent documents](/docs/user_identification_authentication/consent_verification/sample_consent_documents), and [sample address documents](/docs/user_identification_authentication/address_verification_and_validation/sample_address_documents) for testing verifications. |
| **PII Data** | Personally Identifiable Information refers to information that can be used to identify an individual, including details like name, date of birth, or address. Shufti provides clients with control over the visibility of end user's [PII Data](/docs/backoffice/account_settings#personally-identifiable-information-pii-data). | |
| **Proof** | The identity documents or face image uploaded/captured by the end user for verification. |
| **Meta Data Inconsistency** | It refers to any change or discrepancy in the metadata of an end user's provided proofs (e.g., change in image creation date, edited recently can be detected with this.) |
| **Back office** | The user interface where clients manage their Shufti account, view reports, configure verification settings, and perform verifications. |
| **Fuzzy Match** | It allows accommodating variations in data, enabling flexible comparisons during the verification process. |
---
# Revision History
Source: https://developers.shuftipro.com/docs/revision_history.md
| Date | Description |
|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 01 Sep 2026 | Expanded [e-IDV Pro](/docs/user_identification_authentication/eidv_pro/how_it_works) coverage for Pakistan with two newly integrated **passive** sources. **CNIC Lookup** takes the CNIC and date of birth and returns the holder's identity together with their driving licence card — licence number, type, allowed vehicles, issue date, validity window, status and issuing district. **ePOA** additionally takes the driving licence number and returns the holder's identity with their registered address. Name the source with `type` (`PK-CNIC-LOOKUP` / `PK-EPOA`) when both are enabled on the account; with only one enabled it is optional. The CNIC is accepted bare or dashed. See the updated [request payloads](/docs/user_identification_authentication/eidv_pro/offsite#request-payloads-for-offsite-verifications), [responses](/docs/user_identification_authentication/eidv_pro/responses) and [supported countries](/docs/coverage/countries?service=eidv-pro). |
| 31 Aug 2026 | Expanded [e-IDV Pro](/docs/user_identification_authentication/eidv_pro/how_it_works) coverage for Indonesia and Vietnam with four newly integrated **passive** data sources. Indonesia adds a resident identity card lookup (full name, date of birth, 16-digit resident ID number and gender, with the registered address returned where available) and a vehicle registration lookup covering three provinces — DI Yogyakarta, Banten and Sulawesi Utara — keyed on the number plate. Vietnam adds a vehicle inspection certificate lookup over two sources: one keyed on the plate plus the chassis (VIN) number, the other on the plate plus the inspection stamp / certificate number. The vehicle sources return a `vehicle_details` section in place of personal details, and decline with the new **SPDR396** [reason code](/docs/user_identification_authentication/eidv_pro/declined_reasons) when the registration is not found. See the updated [request payloads](/docs/user_identification_authentication/eidv_pro/offsite#request-payloads-for-offsite-verifications), [responses](/docs/user_identification_authentication/eidv_pro/responses) and [supported countries](/docs/coverage/countries?service=eidv-pro). |
| 19 Aug 2026 | Introduced the `pdf_mode` parameter for the Hash Submission approach of [Qualified Electronic Signature (QES)](/docs/business_identification_risk/qualified_electronic_signature/onsite), which declares that each digest submitted in `qes.hashes` is the ByteRange digest of a PDF. The CMS signature is then built to the PAdES profile — the signed attributes are exactly `content-type`, `message-digest` and `signing-certificate-v2`, with `signing-time` excluded, because a PDF already records the signing time natively in the signature dictionary's `/M` entry and a duplicate inside the CMS causes strict validators to report the signature as the older PAdES-BES rather than a PAdES-BASELINE profile. Sent with `qes.proofs` (Document Upload) the parameter is ignored, and omitting it retains `signing-time` exactly as before for CAdES signatures over non-PDF content. |
| 10 Aug 2026 | Documented the `validate_document` parameter for Document Based [Enhanced KYB](/docs/business_identification_risk/know_your_business/enhanced_kyb/how_it_works), which uses the data extracted from the submitted business document to look up and validate the business against official registry data, reporting the outcome as part of the KYB result. Document validation currently resolves one document per request, so exactly one label must be provided — `additional_proof_labels` for [Onsite](/docs/business_identification_risk/know_your_business/enhanced_kyb/onsite) and `proofs` for [Offsite](/docs/business_identification_risk/know_your_business/enhanced_kyb/offsite). Sending more than one is rejected with a validation error. |
| 03 Aug 2026 | Expanded [e-IDV Pro](/docs/user_identification_authentication/eidv_pro/how_it_works) coverage with 41 newly integrated services — 22 **active** eIDs and 19 **passive** data-source lookups — across 29 countries, with Bolivia, Côte d'Ivoire, South Korea, Latvia, and Serbia joining the [supported countries](/docs/coverage/countries?service=eidv-pro) for the first time. Sample request payloads and responses for every new service are available on the [Offsite](/docs/user_identification_authentication/eidv_pro/offsite) and [Responses](/docs/user_identification_authentication/eidv_pro/responses) pages via the new provider selector. |
| 30 Jul 2026 | Introduced the `id_number` and `proof_number` parameters in [e-IDV Pro Offsite](/docs/user_identification_authentication/eidv_pro/offsite) to support Saudi Arabia's National Address Verification Service (Saudi Post). Both are 10-digit numeric values submitted together to verify and retrieve the applicant's registered address on file. Saudi Arabia (SA) is now listed under [Passive e-IDV supported countries](/docs/coverage/countries?service=eidv-pro). |
| 27 Jul 2026 | Introduced the `ocr_autofill` parameter in [e-IDV Pro Onsite](/docs/user_identification_authentication/eidv_pro/onsite), which pre-fills the eIDV form with the data extracted from the document submitted in [Document Verification](/docs/user_identification_authentication/document_verification/onsite). The pre-filled values stay editable so the end user can review and correct them before submitting. The parameter applies to onsite passive eIDV requests that also include the Document Verification service, and enabling it enforces `show_ocr_form` as **1** and `allow_fallback` as **0**. |
| 24 Jul 2026 | Removed several non-business-related documents from [Document Based KYB](/docs/coverage/documents#document-based-kyb) coverage. The following are no longer supported: Official Identification (Mexico), Apostille Authentication Number (Montana, United States), Company Verification (Pakistan), Verify Identity (Philippines), and Certificate of Public Liability Insurance (United Kingdom). Guatemala is no longer supported for Document Based KYB. |
| 03 Jul 2026 | The KYB service now supports 45 additional [countries](/docs/coverage/countries?service=kyb#kyb) for business verification. This expands global reach for company registration and jurisdiction checks. |
| 30 Jun 2026 | Introduced `enable_choice_document_eidv` and `signal_for_choice` parameters in [e-IDV Pro Onsite](/docs/user_identification_authentication/eidv_pro/onsite) and [Document Verification Onsite](/docs/user_identification_authentication/document_verification/onsite), allowing the end user to choose between Document Verification and eIDV service when both services are selected. |
| 24 June 2026 | Added [Travel Rule](/docs/travel_rule/introduction) documentation in the developer guide, covering the FATF Travel Rule compliance flow for VASP-to-VASP crypto transfers, including wallet verification, VASP directory, transactions, responses, and declined reasons. |
| 24 June 2026 | Added [Business Keys](/docs/backoffice/features/business_keys) feature documentation in the back office, explaining how to group customers and verifications by source, brand, or business line, with per-key configuration and duplicate account detection. |
| 02 June 2026 | Added [Qualified Electronic Signature (QES)](/docs/business_identification_risk/qualified_electronic_signature/how_it_works) documentation in the developer guide, explaining how Shufti orchestrates eIDAS-compliant qualified electronic signatures, including identity proofing, qualified certificate issuance, and signature collection. |
| 12 May 2026 | Added [Fraud Hub solution](/docs/user_identification_authentication/fraud_hub) in the Backoffice, an advanced risk intelligence module for fraud detection. It analyzes device behavior, network activity, and document integrity to generate real-time risk scores, helping merchants assess user risk and adjust onboarding strategies. |
| 12 May 2026 | Enhanced [Individual AML Screening](/docs/user_identification_authentication/user_aml_screening/how_it_works) and [Business AML Screening](/docs/business_identification_risk/business_aml_screening/how_it_works) documentation with new sections covering Search by Profile, AML Match Score engine, Context Parameter, Face Match, Custom Risk Scoring Engine, AI Compliance Agent, and Case Management. Introduced two new parameters — `unique_id` and `context` — for Individual AML [Onsite](/docs/user_identification_authentication/user_aml_screening/onsite) and [Offsite](/docs/user_identification_authentication/user_aml_screening/offsite) integrations, and `unique_id` and `context` for Business AML [Onsite](/docs/business_identification_risk/business_aml_screening/onsite) and [Offsite](/docs/business_identification_risk/business_aml_screening/offsite) integrations. Added [AML Supported Languages](/docs/coverage/languages#aml-supported-languages) page listing all 80 supported languages. |
| 23 Apr 2026 | Added Crypto Wallet Screening documentation, covering the end-to-end screening flow against Sanctions, Warnings, and Adverse Media databases. Includes Offsite integration, Declined Reasons, and Responses. For more details, refer to [Crypto Wallet Screening](/docs/user_identification_authentication/crypto_wallet_screening/how_it_works.md). |
| 20 Apr 2026 | Added [Transaction Trust Monitoring](/docs/transaction_trust_screening/how_it_works) (Know Your Transaction) documentation in the developer guide, covering real-time transaction risk screening with Offsite integration and the complete list of datapoints and attributes. |
| 14 Apr 2026 | The eIDV onsite and offsite configurations have been updated across **active**, **passive**, and **biometric** enriched eIDs. Additionally, the [eIDV country coverage](https://developers.shuftipro.com/docs/coverage/countries?service=eidv-pro#e-idv-pro) has been expanded to include a wider range of supported eIDs. |
| 09 Apr 2026 | Introduced `ai_business_insights` parameter in [Enhanced KYB](../docs/business_identification_risk/know_your_business/enhanced_kyb/how_it_works.md), leveraging AI to extract business information. |
| 03 Apr 2026 | Introduced `skip_document_type_and_country_selection` parameter in [Document](../docs/user_identification_authentication/document_verification/onsite) and [Address](../docs/user_identification_authentication/address_verification_and_validation/standard_address_verification/verification_parameters) verification, enabling the KYC flow to bypass the country and document type selection screen for a more streamlined user experience. |
| 01 Mar 2026 | Introduced the `enhanced_address_extraction` parameter within [Enhanced Address Verification](../docs/user_identification_authentication/address_verification_and_validation/enhanced_address_verification/verification_parameters), leveraging AI to automatically extract and validate additional information. |
| 29 Jan 2026 | Added detail documentation for [1:1 Facial Authentication](/docs/user_identification_authentication/one_to_one_authentication/how_it_works.md) in the back office, enabling users to securely enroll and authenticate using facial biometrics for improved security. |
| 29 Jan 2026 | Introduced `customer_unique_id` parameter in [General Parameters](/docs/general_parameters.md) and added detailed [Customer ID feature documentation](/docs/backoffice/features/customer_id.md), including the new `/customer/details` endpoint for managing customer identifiers and linking verifications to consistent customer profiles. |
| 02 Jan 2026 | Detailed documentation has been added for the [Age Verification feature](/docs/user_identification_authentication/age_verification/how_it_works.md) in the back office, enabling the verification of a user's age through various services, including facial biometrics, document verification, and eIDV. |
| 02 Jan 2026 | Added NFC-enabled countries to Shufti’s overall verification coverage |
| 25 Dec 2025 | Introduced [Fast ID Verification](/docs/user_identification_authentication/fast_id.md), a streamlined identity verification process that allows users to verify their identity quickly and securely using advanced facial recognition and document scanning technologies. |
| 25 Dec 2025 | Added [Plug & Play Integration Section](/docs/backoffice/plug_and_play_integration/journey_builder.md) in the back office, providing users with easy-to-use tools and guides for integrating identity verification services into their applications without extensive coding. |
| 04 Dec 2025 | Documentation for [Enhanced KYB](/docs/business_identification_risk/know_your_business/enhanced_kyb/how_it_works.md) has been added to the developer guide, offering detailed information on how to perform thorough business background checks and verify corporate entities. |
| 04 Dec 2025 | Added [Business AML Screening Documentation](/docs/business_identification_risk/business_aml_screening/how_it_works.md) in the developer guide, providing guidance on how to conduct Anti-Money Laundering (AML) checks on businesses to ensure compliance with regulatory requirements. |
| 24 Oct 2025 | Detailed documentation for [Enhanced Address Verification](/docs/user_identification_authentication/address_verification_and_validation/enhanced_address_verification/how_it_works.md) is now available in the developer guide, providing comprehensive information on advanced address verification methods. |
| 13 Oct 2025 | [Consent Verification Documentation](/docs/user_identification_authentication/consent_verification/how_it_works.md) has been added to the developer guide, explaining how to verify user consent for data processing and other activities. |
| 13 Oct 2025 | Added [e-IDV Pro Documentation](/docs/user_identification_authentication/eidv_pro/how_it_works.md) in the developer guide, providing instructions on how to use electronic identity verification services for professional and high-security applications. |
| 03 Oct 2025 | Detailed documentation for [Standard KYB](/docs/business_identification_risk/know_your_business/standard_kyb/how_it_works.md) is now available in the developer guide, offering basic information on business identification and risk assessment. |
| 18 Sept 2025 | Added [Investor Verification Documentation](/docs/business_identification_risk/investor_verification/how_it_works.md) in the developer guide, providing guidance on how to verify the identity and status of investors for financial and regulatory compliance. |
| 09 Sept 2025 | Added [Electronic Signature Documentation](/docs/electronic_signature/how_it_works.md) in the developer guide, explaining how to integrate electronic signature services for secure and legally binding document signing. |
| 22 Aug 2025 | Detailed documentation for [VideoIdent](/docs/user_identification_authentication/video_kyc/how_it_works.md) has been added to the developer guide, offering information on video-based identity verification methods. |
| 22 Aug 2025 | Added [Phone MFA Documentation](/docs/user_identification_authentication/phone_verification_and_validation/how_it_works.md) in the developer guide, providing instructions on how to implement multi-factor authentication using phone-based verification. |
| 22 Aug 2025 | Added [Email MFA Documentation](/docs/user_identification_authentication/email_verification_and_validation/how_it_works.md) in the developer guide, explaining how to implement multi-factor authentication using email-based verification. |
| 22 Aug 2025 | Detailed documentation for [User Risk Assessment](/docs/user_identification_authentication/user_risk_assessment/how_it_works.md) has been added to the developer guide, providing information on assessing and managing user risk. |
| 07 Aug 2025 | [Due Diligence Form Documentation](/docs/user_identification_authentication/due_diligence_form/how_it_works.md) is now available in the developer guide, explaining how to use due diligence forms for user information collection and verification. |
| 04 July 2025 | Documentation for [Standard Address Verification](/docs/user_identification_authentication/address_verification_and_validation/standard_address_verification/how_it_works.md) has been added to the developer guide, offering basic information on address verification methods. |
| 19 June 2025 | Added [User AML Screening Documentation](/docs/user_identification_authentication/user_aml_screening/how_it_works.md) in the developer guide, providing guidance on conducting Anti-Money Laundering (AML) checks on individual users. |
| 22 May 2025 | Detailed documentation for [Document Verification](/docs/user_identification_authentication/document_verification/how_it_works.md) is now available in the developer guide, offering information on verifying various types of identification documents. |
| 21 Apr 2025 | Added [Facial Biometrics Documentation](/docs/user_identification_authentication/facial_biometrics/how_it_works.md) in the developer guide, providing instructions on using facial recognition technology for identity verification. |
| 14 Mar 2025 | [General Parameters Documentation](/docs/general_parameters.md) has been added to the developer guide, explaining the common parameters used across Shufti identity verification services. |
| 14 Mar 2025 | Added [Verification Endpoints Documentation](/docs/verification_endpoints/requests.md) in the developer guide, providing information on the API endpoints used for identity verification requests and responses. |
| 03 Feb 2025 | [Getting Started Guide](/docs/get_started.md) is now available in the developer guide, offering an overview and initial steps for integrating Shufti identity verification services. |
| 03 Feb 2025 | Added [Verification Modes Documentation](/docs/verification_methods/onsite.md) in the developer guide, explaining the different modes available for identity verification, such as onsite and offsite. |
| 15 Jan 2025 | [Glossary of Terms](/docs/glossary.md) has been added to the developer guide, providing definitions for common terms used in identity verification and regulatory compliance. |
| 15 Jan 2025 | Added [Revision History Documentation](/docs/revision_history.md) in the developer guide, providing a record of changes and updates to the documentation over time. |
---
# Onsite Verification Mode
Source: https://developers.shuftipro.com/docs/verification_methods/onsite.md
The Onsite verification process by Shufti offers an intuitive and direct interaction for end users through the sophisticated iFrame/Verify component. This user-centric approach enables individuals to seamlessly submit the required verification proofs, such as ID, Address Documents etc, while receiving real-time guidance to navigate the verification process effortlessly. Upon completion, the verification results are made readily available to clients through the comprehensive Backoffice portal or can be conveniently delivered via an API response, providing flexible and efficient access to vital information.
**Info**
In onsite verification, Shufti customers will make an API call, and will receive a verification URL in the response. The end-users will be redirected to the URL and Shufti's AI technology will perform verification, interacting directly with the end-users.
Here are the reasons why you should opt for onsite verification:
- A well-researched and enhanced UI/UX, designed for end users to successfully complete the verification process on their first attempt.
- Real-time instructions guide users, ensuring high conversion rates.
- An auto-capture feature that ensures optimal proof images are taken.
- Real-time feedback and a retry option that effectively turns failed verifications due to human error into successful ones.
## Onsite With OCR
In this automated process, Shufti extracts and verifies all the required information parameters (e.g. First Name, Last Name, Document Number, DOB etc..) from the end user's document proof, minimizing human errors and typographical mistakes, thereby enhancing the conversion rate.
In the verification request, Merchant specifies the keys for the parameters to be verified. Shufti collects the image or video proofs from end-users and extracts the required information from the provided document. All the OCR extracted data will be shown in the verification form, through which the user can cross check all the extracted information. This reduces the manual work for the end-user.
OCR is offered on the following services: (Document and Address) but Shufti customers can also avail other non-OCR services such as Face & Phone Verification along with these OCR services.
## Onsite Without OCR
In the 'Onsite without OCR' verification mode, the service involves a manual process where end users actively participate by providing essential data such as First Name, Last Name, Document Number, Date of Birth, etc. This data is then compared with the information in the uploaded proof documents. This approach emphasizes user involvement in the data entry process, integral to the service's verification methodology.
In the verification process without OCR functionality, the merchant specifies the keys for the parameters that need verification. Instead of automatically extracting information from documents, Shufti requires end-users to manually input their data, such as personal details and document information, to match with their provided image or video proofs. This manual data entry is essential for the verification, allowing users to ensure accuracy by directly inputting and verifying their information, thereby maintaining the integrity of the verification process without relying on OCR.
**Note**
Shufti offers following services in On-site verification: (Face, Document, Document Two, Address, Consent, Phone, Email Verification, Background Checks and Enhance Due Diligence)
---
# Offsite Verification Mode
Source: https://developers.shuftipro.com/docs/verification_methods/offsite.md
The Offsite verification process by Shufti is characterized by its efficient and straightforward approach. In this clients are responsible for gathering the necessary verification proofs/data from end users. This process streamlines the collection of essential data, enabling clients to submit it directly to Shufti effortlessly for verification. The verification results are conveniently accessible either via the comprehensive Backoffice portal or can be readily retrieved through an API response. This flexibility ensures clients have efficient access to critical information.
**Info**
In offsite verification, Shufti doesn't interact with the end-user to perform verification. Shufti's customers will collect the proofs from their end-users and provide them in Base 64 format in the API parameters. Shufti's AI will perform the verification and provide the results in the response back to the customers.
Offsite verification has the following limitations:
- End users will not directly interact with Shufti.
- Merchants will be solely responsible for collecting and sharing end users data/proofs.
- Merchants will provide the end user's data in Base 64 format.
## Offsite With OCR
In this automated process, Shufti extracts and verifies all the required information parameters (e.g. First Name, Last Name, Document Number, DOB etc..) from the end user's document proof provided by merchant via API, minimizing human errors and typographical mistakes, thereby enhancing the conversion rate.
In the verification request, Merchant specifies the keys for the parameters to be verified and is solely responsible for providing all the image or video proofs from end-users. From these provided proof all the required information is extracted and verified, and the verification results are delivered to the Merchant.
OCR is offered on the following services: (Document and Address) but Shufti customers can also avail other non-OCR services such as Face & Phone Verification along with these OCR services.
Shufti offers following services in Off-site verification: (Face, Document, Document Two, Address, Consent)
## Offsite Without OCR
In the 'Offsite without OCR' verification mode, Shufti clients need to provide end user details, including personal details and document information, along with image or video proofs for verification. This service involves a manual process where the client-provided end-user data such as First Name, Last Name, Document Number, Date of Birth, etc is verified by matching it with the client-provided proofs of the end user.
---
# Fast ID
Source: https://developers.shuftipro.com/docs/user_identification_authentication/fast_id.md
Shufti Fast ID is a revolutionary service that transforms customer onboarding by enabling instant identity verification with just a facial scan. By eliminating the repetitive process of verifying identity documents, it also accelerates the onboarding journey while enhancing security and convenience. Once a user provides their facial proof, they can quickly select their profile from the system. If there’s a match, onboarding is completed instantly; otherwise, the user proceeds with the standard KYC process. This seamless, secure solution improves user experience by simplifying verification steps.
Fast ID streamlines verification and login processes across multiple platforms by allowing verified user data to be securely reused across related business entities or subsidiaries. Once verified with one entity, the data can be accessed across affiliated platforms for instant re-verification with just a facial scan, improving efficiency and security.
**Info**
**What is Standard KYC?**: Standard KYC is a thorough verification process requiring end users to submit the requested information, such as identity documents, in real-time.
## How it works?
1. **Consent:** The end user provides consent for identity verification.
2. **Face Verification:** The end user verifies their face using Shufti's Facial Biometrics service.
3. **Database Screening:** The end user's face scan is screened against our verified users' database.
a. It is matched against previously verified users to detect duplicates.
b. Any matches trigger additional validation or alerts based on client configuration.
4. **Selection Process:** Shufti displays five masked records along with one correct profile, and the end user selects the most relevant record that matches their profile.
a. **Correct Record Selection:** If the correct record is chosen, the end user is successfully onboarded into the merchant's system.
b. **Incorrect Record Selection:** If the wrong record is selected, the user reverts to the Standard KYC process as defined by the merchant.
5. **Step-up Verification:** In case sufficient verification data is not available as requested by the Merchant e.g. **Requested Data:** Face, ID document, and address document; **Found in Verified user Database:** Face and ID Document only, the system will direct the user to provide the missing information (Address Document) to complete the verification process.
**Info**
The service is explicitly developed for **On-site** verifications.
## Benefits of Fast ID
- **Reduced Onboarding Time:** Quickly enroll new customers without the need for extensive document verification.
- **Single-Step Re-verification:** Re-verify users with a facial scan, skipping document submissions for faster access.
- **Higher Pass Rates:** Improve your customer acquisition with fewer enrollment drop-offs.
- **Verified Data Reuse Across Subsidiaries:** Securely share verified user data across subsidiaries, reducing repetitive verifications.
- **Increased Customer Satisfaction:** Provide a smoother, hassle-free verification experience.
## Parameter & Description
| Parameter | Description |
| ----------------------- | ----------- |
| **allow_fast_id** | Required: **No** Type: **string** Accepted Values: **0, 1** Default-Value: **1** This parameter enables end users to bypass the lengthy verification steps by verifying their identity through facial proof alone. Shufti Pro conducts a search using the provided facial proof against our verified user database and presents five random identities. The user can then select the relevant identity from the listed options for cross-authentication. If the value is **0**, the end user will undergo standard KYC flow.|
## Fast ID Request Object
[](https://app.getpostman.com/run-collection/9386910-dd23787b-afe3-4ec3-ae2a-32f5844d420f?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-dd23787b-afe3-4ec3-ae2a-32f5844d420f%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=fast-id-request-object
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"reference": "ABCD1234",
"country": "",
"language": "en",
"email": "john.doe@example.com",
"allow_fast_id": "1", //This key facilitates consent and enables Fast ID.
"face": {
"proof": "",
"check_duplicate_request": 0
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": [
"id_card"
],
"document_number": ""
}
}
```
---
# Fraud Hub
Source: https://developers.shuftipro.com/docs/user_identification_authentication/fraud_hub.md
Fraud Hub is an advanced risk intelligence module designed to provide comprehensive fraud detection and risk assessment for identity verification workflows. It analyzes multiple data points across device behavior, network activity and document integrity to generate intelligent risk scores. By leveraging deep learning models and sophisticated pattern recognition, Fraud Hub identifies potential fraudulent activity in real-time.
The service goes beyond traditional document verification by examining the context surrounding the verification attempt, including device characteristics, network routing, document authenticity signals, and indicators of image manipulation. This multi-layered approach enables merchants to make informed decisions about user risk profiles and adjust their onboarding strategies accordingly.
## How it Works
Fraud Hub operates through a sophisticated analysis pipeline that examines three critical dimensions of verification risk:
**Device and Network Intelligence:** The system analyzes the device and network from which the verification request originates, detecting risks such as VPN/proxy usage, geolocation mismatches, emulation, and IP instability. These signals are combined to assess the legitimacy of the verification source.
**Document Integrity Analysis:** Beyond standard document verification, Fraud Hub conducts advanced authenticity checks to detect manipulation such as digital edits, low image quality, scanned copies, fabricated templates, and web-sourced documents. It also validates security features like holograms and magnetic stripes to identify forged, altered, or stolen documents.
**Facial Integrity Analysis:** Beyond standard face verification, Fraud Hub conducts advanced checks to detect image manipulation, including digital edits, low-quality images, and spoofing attempts. It also analyzes facial authenticity to identify tampered or fraudulent facial submissions.
**Risk Scoring and Aggregation:** All detected signals are processed through machine learning models to generate comprehensive risk scores. Each category receives an individual score and summary, along with an overall fraud risk score, enabling merchants to assess specific risk dimensions or rely on a single aggregated score for streamlined decision-making.
The system processes verification requests in real time, running parallel checks across all three dimensions and returning detailed results along with an overall risk score. This supports advanced risk strategies, from routing high-risk cases to manual review to automatically declining applications with critical fraud indicators.
## Parameter & Description
| Parameter | Description |
| --------- | ----------- |
| **fraud_hub** | Required: **No** Type: **string** Length: **1 character** Enable this option to receive a fraud score and risk signals related to the user's device behavior, network activity, and document integrity in the API response. |
## Fraud Hub Request Object
```json title=fraud-hub-request-object
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"reference": "ABCD1234",
"country": "",
"language": "en",
"email": "john.doe@example.com",
"fraud_hub": "1", //This key enables Fraud Hub to receive fraud score and risk signals in the API response.
"face": {
"proof": "",
"check_duplicate_request": 0
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": [
"id_card"
],
"document_number": ""
}
}
```
## Response Structure
Fraud Hub data is returned as part of the verification response under the **fraud_hub_data_points** key. The response contains three main sections, each providing distinct risk intelligence.
### Device and Network Intelligence
The device and network section evaluates the technical characteristics and geolocation indicators of the verification attempt.
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| is_proxy | Boolean | Indicates whether the request originated from a known proxy service or VPN. True suggests the user is masking their actual location or device. |
| threat_level | String | Overall threat classification based on device and network signals. Values: **low**, **medium**, **high**. |
| IP_routing_type | String | The type of IP routing detected. Values examples: **fixed** (stable residential/business IP), **mobile** (cellular network), **dynamic** (frequently changing). |
| country_mismatch | Boolean | True if the IP geolocation country differs from the user's stated country of residence. |
| stable_IP_detected | Boolean | True if the IP address remains consistent across multiple requests over time. Indicates a legitimate, established connection. |
| tor_usage_detected | Boolean | True if the request is routed through the Tor anonymity network. Strong indicator of intentional anonymity seeking. |
| frequent_IP_changes | Boolean | True if the user's IP address changes frequently within a short timeframe. |
| IP_timezone_mismatch | Boolean | True if the IP geolocation timezone differs significantly from the device-reported timezone. May indicate timezone spoofing or device misconfiguration. |
| data_center_detected | Boolean | True if the IP belongs to a cloud provider or data center range. Indicates the request may originate from a virtual machine or hosting provider rather than a personal device. |
| emulated_device_detected | Boolean | True if the device fingerprint suggests device emulation or simulation. Indicates the request may come from an automated tool or virtual environment. |
| jailbroken_or_rooted_device | Boolean | True if the mobile device has been jailbroken (iOS) or rooted (Android). Indicates compromised device security. |
| device_and_network_risk_score | Object | Aggregated risk assessment for device and network signals. Contains: • **summary** (text description) • **risk_level** (LOW/MEDIUM/HIGH) • **risk_score** (0-100) |
### Document Integrity
The document integrity section provides a detailed analysis of the submitted document's authenticity and quality.
Parameter
Type
Description
Document Liveness
screenshot_detected
Boolean
True if the document appears to be a screenshot rather than an original photograph. Suggests potential fraud or manipulation.
printed_copy_detected
Boolean
True if the document appears to be printed, which may indicate fraud.
screen_replay_detected
Boolean
True if the document appears to have been captured from a screen or digital display. Indicates the document is not from a physical source.
scanned_document_detected
Boolean
True if the document is a scan of a physical document rather than a direct photograph.
Document Authenticity
fake_template_used
Boolean
True if the document template appears to be a known forgery or counterfeit template. Indicates intentional fraud.
synthetic_document_detected
Boolean
True if the document appears to be AI-generated or synthetically created rather than a real physical document.
mrz_tampering
Boolean
True if the Machine-Readable Zone (present on passports and travel documents) shows signs of alteration or tampering.
sample_document_detected
Boolean
True if the document is a known sample or demonstration document (e.g., "SPECIMEN" marked).
hologram_authenticity_not_confirmed
Boolean
True if security holograms present on the document could not be verified as authentic. May indicate a counterfeit document.
Document Security Features
resolution_quality_poor
Boolean
True if the submitted image has insufficient resolution or clarity for proper analysis. May indicate user error or intentional obfuscation.
digital_manipulation_detected
Boolean
True if the image shows signs of digital editing, filtering, or manipulation. Suggests document alteration.
metadata_integrity_not_verified
Boolean
True if the image's metadata (EXIF data) could not be verified or appears inconsistent. May indicate an edited or spoofed image.
Document Source Analysis
historical_data_not_matched
Boolean
True if the document's data does not match the previously verified data for the same document/user.
web_source_image_identified
Boolean
True if the document image appears to have been sourced from the internet or online sources rather than captured by the user.
background_template_detected
Boolean
True if the document background matches with a known template from the documents available online.
Document Format Validation
invalid_image
Boolean
True if the submitted image is corrupted, unreadable, or in an unsupported format.
unsupported_document_type
Boolean
True if the document type submitted is not supported for verification.
electronic_document_detected
Boolean
True if an electronic or digitally published document was used for verification.
Document Expiration
document_expired
Boolean
True if the document's expiration date has passed.
Fragment Analysis
document_fragment_edited
Boolean
True if the document appears to have been edited, spliced, or composited from multiple sources.
Overall Document Risk Level
document_risk_level
Object
Aggregated risk assessment for document integrity. Contains:• summary (text description)• risk_level (LOW/MEDIUM/HIGH)• document_fraud_score (0-100)
### Face Integrity
The face integrity section provides a detailed analysis of the submitted face's authenticity and quality.
Parameter
Type
Description
Overall Face Integrity Score
facial_integrity_score
Integer
An overall aggregated score from 0 to 100 based on the analysis of facial features, used to assess the likelihood of fraud in the facial image.Score interpretation:• 0-20 = Low Risk• 21-60 = Medium Risk• 61-100 = High Risk
Image Quality Issues
under_exposed_image
Boolean
True if the image is too dark, resulting in insufficient facial detail and affecting verification accuracy.
over_exposed_image
Boolean
True if the image is excessively bright, causing a loss of facial detail and compromising verification quality.
pixelated_image
Boolean
True if the image is blurred or pixelated, leading to a loss of facial detail and reduced verification reliability.
light_glare_image
Boolean
True if the image contains light glare or reflections, obscuring facial features and impacting verification accuracy.
blurred_image
Boolean
True if the image is out of focus, causing loss of clarity and hindering accurate facial verification.
Image Authenticity Issues
screenshot_attack
Boolean
True if the image is a screenshot or screen capture, potentially indicating a fraudulent attempt to spoof the facial image.
silicon_mask_attack
Boolean
True if the image shows signs of being captured using a silicon mask, a technique commonly used in spoofing attacks.
paper_attack
Boolean
True if the image appears to be a photograph of a printed paper or photo, indicating a potential spoofing attempt.
edited_deepfake
Boolean
True if the image has been digitally altered or generated using deepfake technology, suggesting manipulation for fraudulent purposes.
Face Detection and Recognition
face_not_detection
Boolean
True if no face is detected in the image, preventing facial verification.
multiple_face_detected
Boolean
True if multiple faces are detected in the image, which could indicate a potential issue with verification accuracy.
close_eye_detected
Boolean
True if the eyes are closed in the image, potentially compromising the accuracy of facial recognition or verification.
AI and Behavioral Anomalies
replay_attack
Boolean
True if the image is a replay of a previously captured face, indicating a potential spoofing attempt using recorded media.
ai_signature_detected
Boolean
True if the image shows signs of being generated or altered by AI, suggesting potential manipulation or deepfake involvement.
### Fraud Hub Scoring
The overall fraud assessment is provided through a comprehensive risk score that aggregates all detected signals.
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| overall_risk_score | Integer | Aggregated fraud risk score on a scale of 0-100. Combines all device, network, and document signals into a single risk metric. **Score interpretation:** • 0-33 = Low Risk • 34-66 = Medium Risk • 67-100 = High Risk |
## Response Example
```json title=fraud-hub-response-example
{
"fraud_hub_data_points": {
"device_and_network_intelligence": {
"is_proxy": false,
"threat_level": "low",
"IP_routing_type": "fixed",
"country_mismatch": true,
"stable_IP_detected": true,
"tor_usage_detected": false,
"frequent_IP_changes": false,
"IP_timezone_mismatch": false,
"data_center_detected": false,
"emulated_device_detected": false,
"jailbroken_or_rooted_device": false,
"device_and_network_risk_score": {
"summary": "Minor concerns due to country mismatch. Some positive signals detected.",
"risk_level": "LOW",
"risk_score": 16
}
},
"document_integrity": {
"document_liveness": {
"screenshot_detected": false,
"printed_copy_detected": false,
"screen_replay_detected": false,
"scanned_document_detected": true
},
"document_risk_level": {
"summary": "Critical authenticity concerns due to scanned document, hologram authenticity not confirmed, and web source image identified.",
"risk_level": "HIGH",
"document_fraud_score": 72
},
"data_validation_expiry": {
"document_expired": false
},
"template_layout_integrity": {
"fake_template_used": false,
"synthetic_document_detected": false
},
"document_format_validation": {
"invalid_image": false,
"unsupported_document_type": false,
"electronic_document_detected": false
},
"document_security_features": {
"mrz_tampering": false,
"sample_document_detected": false,
"hologram_authenticity_not_confirmed": true
},
"image_properties_validation": {
"resolution_quality_poor": true,
"digital_manipulation_detected": false,
"metadata_integrity_not_verified": true
},
"similarity_background_analysis": {
"web_source_image_identified": true,
"background_template_detected": false
},
"document_fragment_edit_detection": {
"document_fragment_edited": false
}
},
"face_integrity": {
"face_risk_level": {
"risk_level": "LOW",
"face_fraud_score": 1
},
"image_quality_issues": {
"blurred_image": false,
"pixelated_image": false,
"light_glare_image": false,
"over_exposed_image": false,
"under_exposed_image": false
},
"image_authenticity_issues": {
"paper_attack": false,
"edited_deepfake": false,
"screenshot_attack": false,
"silicon_mask_attack": false
},
"ai_and_behavioral_anomalies": {
"replay_attack": false,
"ai_signature_detected": false
},
"face_detection_and_recognition": {
"close_eye_detected": false,
"face_not_detection": false,
"multiple_face_detected": true
}
},
"fraud_hub_scoring": {
"overall_risk_score": 42,
"risk_level": "MEDIUM"
}
}
}
```
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/eidv_pro/how_it_works.md
eIDV(Electronic Identity Verification) a digital identity verification solution designed to authenticate and confirm the identities of individuals online. Equipping businesses with robust tools to authenticate and confirm end user identities. It achieves this through two primary means: integration with banking applications and the ability to cross-reference information with both government and private databases(Credit, Commercial, Consumer, Utility, Proprietary, Telco, and Postal), all without requiring end users to present or submit their physical ID documents. The eIDV service offers two distinct approaches for identity verification, each tailored to meet different requirements and scenarios.
## Verification Approach
Based on your business's specific requirements, you have the flexibility to select the most suitable verification approach:
1. **Active Verification**
This approach necessitates the active involvement of the end user. It requires them to engage directly with the verification process, performing specific actions or providing information in real time.
This type of verification is usually required when end users have to verify themselves through eIDV Apps like OneID, BankID, etc. which requires them to provide their Username and Password.
2. **Passive Verification**
This method does not require the end user's active participation. Instead, the system autonomously verifies the end user's identity by comparing and analyzing data available from various sources.
This type of verification is utilised when the end user's personal information like Name, DOB, and ID number is available so that it can be matched with government and other private data sources for verification.
3. **Biometric Verification**
This approach offers a highly secure method of authenticating individuals by leveraging biometric verification. It incorporates both active and passive verification methods. This multi-layered process enhances overall security and minimizes the risk of unauthorized access.
Biometric verification is particularly effective by matching the end user's personal information as well as their facial image, comparing it to a stored image for accurate identification.
**Info**
Passive or active verification is determined by the country specified in the API request, not by a separate parameter. See our documentation for a list of **[eIDV-supported countries](/docs/coverage/countries#eidv-pro).**
## Verification Checks
Based on your business requirements, you have the flexibility to choose from two types of verification checks:
1. **1 x 1 Check:**
Verify the authenticity of the end user's data with a minimum of one data source and halt once a match is found in a systematic review of sources.
2. **2 x 2 Check:**
Verify the authenticity of the end user's data with at least two distinct data sources actively seeking dual matches to ensure exhaustive validation.
**Info**
To enable 1X1 and 2X2 checks, please contact Shufti's support team via email at **tech@shuftipro.com**.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/eidv_pro/onsite.md
With On-site verification, Shufti directly interacts with the end-user, managing data collection to facilitate identity verification. Verification status updates are exclusively communicated to the Shufti customer via the dedicated Shufti Back Office.
**Info**
In onsite verification, Shufti customers will make an API call, and will receive a verification URL in the response. The end-users will be redirected to the URL where they will perform the verification.
Given below is the flow for e-IDV verification for onsite customers.
## Parameters and Descriptions
The parameters mentioned below are applicable for both Onsite and Offsite verifications in eIDV service.
Parameters | Description
-------------- | --------------
reference | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 characters** Each request is issued a unique reference ID which is sent back to Shufti’s client with each response. This reference ID helps to verify the request. The client can use this ID to check the status of already performed verifications.
country | Required: **No** Type: **string** Length: **2 characters** You may omit this parameter if you don't want to enforce country verification. If a valid country code is provided, then the proofs (images/videos) for document verification or address verification must be from the same country. Country code must be a valid ISO 3166-1 alpha-2 country code. Please consult (Supported Countries) for country codes.
language | Required: **No** Type: **string** Length: **2 characters** If the Shufti client wants their preferred language to appear on the verification screens they may provide the 2-character long language code of their preferred language. The list of (Supported Languages) can be consulted for the language codes. If this key is missing in the request the system will select the default language as English.
email | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **128 characters** This field represents the email of the end-user.
callback_url | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 characters** A number of server-to-server calls are made to Shufti’s client to keep them updated about the verification status. This allows the clients to keep the request updated on their end, even if the end-user is lost midway through the process. **Note:** The callback domains must be registered within the Backoffice to avoid encountering a validation error. For registering callback domain, click here. **e.g:** example.com, test.example.com
redirect_url | Required: **No** Type: **string** Minimum: **3 characters** Maximum: **250 characters** Once an on-site verification is complete, User is redirected to this link after showing the results. **Note:** The redirect domains must be registered within the Backoffice to avoid encountering a validation error. For registering redirect domain, click here. **e.g:** example.com, test.example.com
show_feedback_form | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter will work only for onsite verification. If its value is 1 at the end of verification, a feedback form is displayed to the end-user to collect his/her feedback. If it is 0 then it will not display the feedback page to the end-user.
manual_review | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** This key can be used if the client wants to review verifications after processing from Shufti has completed. Once the user submits any/all required documents, Shufti returns a status of review.pending. The client can then review the verification details and Accept OR Decline the verifications from the back-office.
ttl | Required: **No** Type: **int** Default: **60** Maximum: **43200** Give a numeric value for minutes that you want the verification url to remain active.**Note:** The minimum request timeout duration has been set to 30 minutes, regardless of the TTL value provided in the request.
ekyc | Required: **Yes** Type: **Object** eIDV/eKYC refers to the process of verifying the identity of an individual electronically. The eIDV is commonly used by businesses and institutions to comply with regulations requiring them to verify the identity of their customers.
allow_fallback | Required: **No** Type: **string** Accepted Values: **0, 1** This service key corresponds to fallback onsite kyc verification. If onsite electronic identity verification fails, users will presented the option to choose basic KYC for the verification process. allow_fallback can be sent inside the ekyc object with value 0 or 1. **Note:** Fallback is not available when **ocr_autofill** is enabled. In that flow the value is automatically enforced as **0**, because an eIDV failure against data already verified from the document is treated as a fraudulent case rather than a retry.
fuzzy_match | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This key enables or disables fuzzy matching during verification. When enabled, it allows partial or approximate matches between input data and official sources, useful in regions where verification relies solely on data source matching. Include the **fuzzy_match** key inside the ekyc object of the request payload and set its value to **1** (enable) or **0** (disable).
face_match | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** This key, when enabled, retrieves the selfie image from the data source and compares it with the newly captured facial image. To use it, include the **face_match** key in the ekyc object of the request payload and set its value to **1** (enable) or **0** (disable). **Note:** This feature can only be used when the facial biometric service is used with eIDV.
eidv_countries | Required: **Yes** Type: **Array** This key defines the eIDV verification approach for each country, including **code** for the country code and **verification_approach**. If **verification_approach** is set to Both, the country supports both active and passive verifications. If set to Active, only active verification is supported, and if set to Passive, only passive verification is supported.
previous_record | Required: **Yes** Type: **Boolean** Accepted Values: **Yes, No** This parameter allows to retrieve a user's personal information if they have verified themself in the last six months using Shufti’s stored information.
verification_method | Required: **Yes** Type: **Boolean** Accepted Values: **1x1, 2x2** This parameter specifies the type of check to perform in case of a passive eIDV check using LSEG. 1x1 would mean checking with one data sources while 2x2 would mean checking from two distinct data sources.
is_sandbox | Required: **Yes** Type: **string** Accepted Values: **1, 0** This parameter allows to retrieve a user's personal information if they have verified themself in the last six months using Shufti’s stored information.
age | Required: **No** Type: **Object** Minimum Value: **16** This key allows clients to get an estimated value of the user’s age based on their facial biometrics. The detected age must fall within the defined min and max range; otherwise, the verification will be declined. **Example 1** { "min" : "16", "max" : "20"} **Example 2** { "min" : "18", "max" : "60"}
eidv_verification_type | Required: **Yes** Type: **string** Accepted Values: **Active, Passive, Both** This key is used to save the journey created by the client. It defines the eIDV verification approach: **Both** supports both active and passive verifications, while **Active** and **Passive** support their respective verification types only.
enable_choice_document_eidv | Required: **No** Type: **Boolean** Accepted Values: **0, 1** Allows the end user to choose between Document Verification and eIDV service when both services are selected and this parameter is enabled.**Note:** For this key to work, the [Document Verification](/docs/user_identification_authentication/document_verification/onsite) service must also be enabled in the request, and both keys **enable_choice_document_eidv** and **signal_for_choice** must be present.
signal_for_choice | Required: **No** Type: **Boolean** Accepted Values: **0, 1** Allows the end user to choose between Document Verification and eIDV service when both services are selected and this parameter is enabled.**Note:** For this key to work, the [Document Verification](/docs/user_identification_authentication/document_verification/onsite) service must also be enabled in the request, and both keys **enable_choice_document_eidv** and **signal_for_choice** must be present.
ocr_autofill | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** Enables automatic filling of the eIDV form when the required information has already been extracted from the submitted document. Document Verification runs first, and the data extracted from the document (such as name, date of birth and national ID) is pre-filled into the eIDV form. The pre-filled values remain **editable** — the end user reviews them, corrects anything that was misread, and submits the form manually. Fields that could not be extracted are shown as empty editable inputs. When several countries are configured, the country detected from the submitted document is pre-selected on the country screen. Send the **ocr_autofill** key inside the ekyc object with a value of **1** (enable) or **0** (disable).**Note:** This key applies to **onsite** verification only, and requires the [Document Verification](/docs/user_identification_authentication/document_verification/onsite) service to be present in the same request with **eidv_verification_type** set to **Passive**. It is ignored for offsite or active requests, and it cannot be combined with **enable_choice_document_eidv**.**Note:** When this key is enabled, **show_ocr_form** is automatically enforced as **1** and **allow_fallback** is automatically enforced as **0** for the request, regardless of the values sent.
[](https://app.getpostman.com/run-collection/23473827-1082bbb5-ef22-4218-90c8-b103fb47c1f5?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D23473827-1082bbb5-ef22-4218-90c8-b103fb47c1f5%26entityType%3Dcollection%26workspaceId%3Db6c9524a-7e80-4b12-b5c6-4ffc27de5ecb)
**http**
```json
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "",
"language" : "EN",
"ekyc" : {
"allow_fallback": "0"
}
}
```
**javascript**
```javascript
let payload = {
reference: `SP_REQUEST_${Math.random()}`,
callback_url: "https://yourdomain.com/profile/sp-notify-callback",
email: "johndoe@example.com",
country: "",
language: "EN",
};
payload['ekyc'] = {
"allow_fallback": "0"
};
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY");
fetch('https://api.shuftipro.com/', {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Basic ' + token
},
body: JSON.stringify(payload)
}).then(function(response) {
return response.json();
}).then(function(data) {
return data;
});
```
**php**
```php
"ref-" . rand(4, 444) . rand(4, 444),
"callback_url" => "https://yourdomain.com/profile/notifyCallback",
"email" => "johndoe@example.com",
"country" => "",
"language" => "EN",
];
$verification_request['ekyc'] = [
"allow_fallback" => "0"
];
$auth = $client_id . ":" . $secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($verification_request);
$response = send_curl($url, $post_data, $headers, $auth);
function send_curl($url, $post_data, $headers, $auth) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return json_decode($body, true);
}
// Output the verification URL
echo $response['verification_url'];
```
**python**
```python
import requests
import base64
import json
from random import randint
url = 'https://api.shuftipro.com/'
client_id = 'YOUR-CLIENT-ID'
secret_key = 'YOUR-SECRET-KEY'
verification_request = {
"reference": f"ref-{randint(1000, 9999)}{randint(1000, 9999)}",
"callback_url": "https://yourdomain.com/profile/notifyCallback",
"email": "johndoe@example.com",
"country": "",
"language": "EN"
}
verification_request['ekyc'] = {
"allow_fallback": "0"
}
auth = f'{client_id}:{secret_key}'
b64Val = base64.b64encode(auth.encode()).decode()
response = requests.post(url,
headers={"Authorization": f"Basic {b64Val}", "Content-Type": "application/json"},
data=json.dumps(verification_request))
json_response = response.json()
print(f'Verification URL: {json_response["verification_url"]}')
```
**ruby**
```ruby
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
CLIENT_ID = "YOUR-CLIENT-ID"
SECRET_KEY = "YOUR-SECRET-KEY"
verification_request = {
reference: "Ref-" + (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "",
language: "EN",
redirect_url: "http://www.example.com"
}
verification_request["ekyc"] = {
allow_fallback: "0"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}"
request.body = verification_request.to_json
response = http.request(request)
puts response.read_body
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "YOUR-CLIENT-ID";
String SECRET_KEY = "YOUR-SECRET-KEY";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"reference\": \"1234567\",\n \"callback_url\": \"http://www.example.com/\",\n \"email\": \"johndoe@example.com\",\n \"country\": \"\",\n \"language\": \"EN\",\n \"ekyc\": {\n \"allow_fallback\": \"0\"\n }\n}";
con.setDoOutput(true);
try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) {
wr.writeBytes(payload);
wr.flush();
}
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL: " + url);
System.out.println("Payload: " + payload);
System.out.println("Response Code: " + responseCode);
try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) {
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
System.out.println(response.toString());
}
}
}
```
**c#**
```csharp
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{
""reference"": ""1234567"",
""callback_url"": ""http://www.example.com/"",
""email"": ""johndoe@example.com"",
""country"": """",
""language"": ""EN"",
""ekyc"": {
""allow_fallback"": ""0""
}
}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "",
"language": "EN",
"ekyc": {
"allow_fallback": "0"
}
}`)
client := &http.Client{}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**Info**
If no country is selected during the verification request generation process, the user will be prompted with the e-IDV supported countries screen to proceed accordingly.
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/eidv_pro/offsite.md
Offsite Verification means Shufti doesn't interact directly with the end-user. The task of collecting and providing verification data lies with the Shufti customer. In this process, the client shares customer data with Shufti, which then employs diverse data sources to verify the information.
**Caution**
Only passive verifications are performed in Offsite verification.
Given below is the flow for eIDV verification for offsite customers.
## Parameters and Descriptions
The parameters mentioned below are applicable for both Onsite and Offsite verifications in eIDV service.
Parameters | Description
-------------- | --------------
reference | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 characters** Each request is issued a unique reference ID which is sent back to Shufti's client with each response. This reference ID helps to verify the request. The client can use this ID to check the status of already performed verifications.
country | Required: **No** Type: **string** Length: **2 characters** You may omit this parameter if you don't want to enforce country verification. If a valid country code is provided, then the proofs (images/videos) for document verification or address verification must be from the same country. Country code must be a valid ISO 3166-1 alpha-2 country code. Please consult (Supported Countries) for country codes.
language | Required: **No** Type: **string** Length: **2 characters** If the Shufti client wants their preferred language to appear on the verification screens they may provide the 2-character long language code of their preferred language. The list of (Supported Languages) can be consulted for the language codes. If this key is missing in the request the system will select the default language as English.
email | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **128 characters** This field represents the email of the end-user.
callback_url | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 characters** A number of server-to-server calls are made to Shufti’s client to keep them updated about the verification status. This allows the clients to keep the request updated on their end, even if the end-user is lost midway through the process. **Note:** The callback domains must be registered within the Backoffice to avoid encountering a validation error. For registering callback domain, click here. **e.g:** example.com, test.example.com
redirect_url | Required: **No** Type: **string** Minimum: **3 characters** Maximum: **250 characters** Once an on-site verification is complete, User is redirected to this link after showing the results. **Note:** The redirect domains must be registered within the Backoffice to avoid encountering a validation error. For registering redirect domain, click here. **e.g:** example.com, test.example.com
show_feedback_form | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter will work only for onsite verification. If its value is 1 at the end of verification, a feedback form is displayed to the end-user to collect his/her feedback. If it is 0 then it will not display the feedback page to the end-user.
manual_review | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** This key can be used if the client wants to review verifications after processing from Shufti has completed. Once the user submits any/all required documents, Shufti returns a status of review.pending. The client can then review the verification details and Accept OR Decline the verifications from the back-office.
ttl | Required: **No** Type: **int** Default: **60** Maximum: **43200** Give a numeric value for minutes that you want the verification url to remain active.**Note:** The minimum request timeout duration has been set to 30 minutes, regardless of the TTL value provided in the request.
ekyc | Required: **Yes** Type: **Object** eIDV/eKYC refers to the process of verifying the identity of an individual electronically. The eIDV is commonly used by businesses and institutions to comply with regulations requiring them to verify the identity of their customers.
allow_fallback | Required: **No** Type: **string** Accepted Values: **0, 1** This service key corresponds to fallback onsite kyc verification. If onsite electronic identity verification fails, users will presented the option to choose basic KYC for the verification process. allow_fallback can be sent inside the ekyc object with value 0 or 1.
fuzzy_match | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This key enables or disables fuzzy matching during verification. When enabled, it allows partial or approximate matches between input data and official sources, useful in regions where verification relies solely on data source matching. Include the **fuzzy_match** key inside the ekyc object of the request payload and set its value to **1** (enable) or **0** (disable).
face_match | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** This key, when enabled, retrieves the selfie image from the data source and compares it with the newly captured facial image. To use it, include the **face_match** key in the ekyc object of the request payload and set its value to **1** (enable) or **0** (disable). **Note:** This feature can only be used when the facial biometric service is used with eIDV.
eidv_countries | Required: **Yes** Type: **Array** This key defines the eIDV verification approach for each country, including **code** for the country code and **verification_approach**. If **verification_approach** is set to Both, the country supports both active and passive verifications. If set to Active, only active verification is supported, and if set to Passive, only passive verification is supported.
previous_record | Required: **Yes** Type: **Boolean** Accepted Values: **Yes, No** This parameter allows to retrieve a user's personal information if they have verified themself in the last six months using Shufti’s stored information.
verification_method | Required: **Yes** Type: **Boolean** Accepted Values: **1x1, 2x2** This parameter specifies the type of check to perform in case of a passive eIDV check using LSEG. 1x1 would mean checking with one data sources while 2x2 would mean checking from two distinct data sources.
is_sandbox | Required: **Yes** Type: **string** Accepted Values: **1, 0** This parameter allows to retrieve a user's personal information if they have verified themself in the last six months using Shufti’s stored information.
age | Required: **No** Type: **Object** Minimum Value: **16** This key allows clients to get an estimated value of the user’s age based on their facial biometrics. The detected age must fall within the defined min and max range; otherwise, the verification will be declined. **Example 1** { "min" : "16", "max" : "20"} **Example 2** { "min" : "18", "max" : "60"}
eidv_verification_type | Required: **Yes** Type: **string** Accepted Values: **Active, Passive, Both** This key is used to save the journey created by the client. It defines the eIDV verification approach: **Both** supports both active and passive verifications, while **Active** and **Passive** support their respective verification types only.
id_number | Required: **Yes** Type: **string** Accepted Values: **10-digit numeric string** (e.g., 1012345678) The applicant's Saudi National ID or Iqama number, used to query Saudi Arabia's National Address Verification Service (Saudi Post). Must be exactly 10 digits, matching the ID on record with Saudi Post.
proof_number | Required: **Yes** Type: **string** Accepted Values: **10-digit numeric string** (e.g., 1234567890) The 10-digit proof number from the applicant's National Address proof document issued by Saudi Post, submitted together with the ID Number. Required to verify and retrieve the registered address on file.
dob | Required: **Yes** Type: **string** Format: **YYYY-MM-DD** (e.g., 1992-07-31) The applicant's date of birth, submitted together with the ID Number to query Saudi Arabia's driving licence records (Absher). Required for the Saudi Arabia Driving License service only; the National Address service uses the Proof Number instead.
[](https://app.getpostman.com/run-collection/23473827-444d1c2f-96f9-4b64-8dcd-fe4beacb9917?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D23473827-444d1c2f-96f9-4b64-8dcd-fe4beacb9917%26entityType%3Dcollection%26workspaceId%3Db6c9524a-7e80-4b12-b5c6-4ffc27de5ecb)
**http**
```json
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "BR",
"language" : "EN",
"ekyc" : {
"national_id": "40442820135"
}
}
```
**javascript**
```javascript
let payload = {
reference: `SP_REQUEST_${Math.random()}`,
callback_url: "https://yourdomain.com/profile/sp-notify-callback",
email: "johndoe@example.com",
country: "BR",
language: "EN",
};
payload['ekyc'] = {
national_id: "40442820135"
};
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY");
fetch('https://api.shuftipro.com/', {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Basic ' + token
},
body: JSON.stringify(payload)
}).then(function(response) {
return response.json();
}).then(function(data) {
return data;
});
```
**php**
```php
"ref-" . rand(4, 444) . rand(4, 444),
"callback_url" => "https://yourdomain.com/profile/notifyCallback",
"email" => "johndoe@example.com",
"country" => "BR",
"language" => "EN",
];
$verification_request['ekyc'] = [
"national_id" => "40442820135"
];
$auth = $client_id . ":" . $secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($verification_request);
$response = send_curl($url, $post_data, $headers, $auth);
function send_curl($url, $post_data, $headers, $auth) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return json_decode($body, true);
}
// Output the verification URL
echo $response['verification_url'];
?>
```
**python**
```python
import requests
import base64
import json
from random import randint
url = 'https://api.shuftipro.com/'
client_id = 'YOUR-CLIENT-ID'
secret_key = 'YOUR-SECRET-KEY'
verification_request = {
"reference": f"ref-{randint(1000, 9999)}{randint(1000, 9999)}",
"callback_url": "https://yourdomain.com/profile/notifyCallback",
"email": "johndoe@example.com",
"country": "BR",
"language": "EN",
"ekyc": {
"national_id": "40442820135"
}
}
auth = f'{client_id}:{secret_key}'
b64Val = base64.b64encode(auth.encode()).decode()
response = requests.post(url,
headers={"Authorization": f"Basic {b64Val}", "Content-Type": "application/json"},
data=json.dumps(verification_request))
json_response = response.json()
print(f'Verification URL: {json_response["verification_url"]}')
```
**ruby**
```ruby
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
CLIENT_ID = "YOUR-CLIENT-ID"
SECRET_KEY = "YOUR-SECRET-KEY"
verification_request = {
reference: "Ref-" + (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "BR",
language: "EN",
redirect_url: "http://www.example.com",
ekyc: {
national_id: "40442820135"
}
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}"
request.body = verification_request.to_json
response = http.request(request)
puts response.read_body
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "YOUR-CLIENT-ID";
String SECRET_KEY = "YOUR-SECRET-KEY";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n" +
" \"reference\": \"1234567\",\n" +
" \"callback_url\": \"http://www.example.com/\",\n" +
" \"email\": \"johndoe@example.com\",\n" +
" \"country\": \"BR\",\n" +
" \"language\": \"EN\",\n" +
" \"ekyc\": {\n" +
" \"national_id\": \"40442820135\"\n" +
" }\n" +
"}";
con.setDoOutput(true);
try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) {
wr.writeBytes(payload);
wr.flush();
}
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL: " + url);
System.out.println("Payload: " + payload);
System.out.println("Response Code: " + responseCode);
try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) {
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
System.out.println(response.toString());
}
}
}
```
**c#**
```csharp
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{
""reference"": ""1234567"",
""callback_url"": ""http://www.example.com/"",
""email"": ""johndoe@example.com"",
""country"": ""BR"",
""language"": ""EN"",
""ekyc"": {
""national_id"": ""40442820135""
}
}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "BR",
"language": "EN",
"ekyc": {
"national_id": "40442820135"
}
}`)
client := &http.Client{}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
#### Request Payloads for Offsite Verifications
Country-specific offsite e-IDV Pro request and response payloads.
## Samples by country
### Angola
#### Angola — Request
```json
{
"reference": "{{reference}}",
"country": "AO",
"email": null,
"ekyc": {
"national_id": "20012345B24928"
}
}
```
#### Angola — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AO",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"gender": "Male",
"national_id": "20012345B24928"
},
"address_details": {
"address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"contact_details": {
"phone_number": "930123456"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Argentina
#### Argentina — Request
```json
{
"reference": "{{reference}}",
"country": "AR",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"national_id": "13456789"
}
}
```
#### Argentina — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "13456789"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Australia
#### Australia — Request
```json
{
"reference": "{{reference}}",
"country": "AU",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13",
"street_address": "Main Street",
"postal_code": "QWE 123"
}
}
```
#### Australia — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AU",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"street": "Main Street",
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Bangladesh
#### Bangladesh — Request
```json
{
"reference": "{{reference}}",
"country": "BD",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"national_id": "1111111111111",
"dob": "1978-03-13"
}
}
```
#### Bangladesh — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BD",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "1111111111111",
"dob": "1978-03-13"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Belgium
#### Belgium — Request
```json
{
"reference": "{{reference}}",
"country": "BE",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13",
"postal_code": "QWE 123"
}
}
```
#### Belgium — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Bolivia
#### Bolivia — Request
```json
{
"reference": "{{reference}}",
"country": "BO",
"email": null,
"ekyc": {
"national_id": "1234567",
"dob": "1978-03-13"
}
}
```
#### Bolivia — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BO",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"id_number": "1234567",
"issuing_country": "BO"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Bulgaria
#### Bulgaria — Request
```json
{
"reference": "{{reference}}",
"country": "BG",
"email": null,
"ekyc": {
"full_name": "John Doe",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Bulgaria — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Canada
#### Canada — Request
```json
{
"reference": "{{reference}}",
"country": "CA",
"email": null,
"ekyc": {
"full_name": "John Doe",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Canada — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Chile
#### Chile — Request
```json
{
"reference": "{{reference}}",
"country": "CL",
"email": null,
"ekyc": {
"full_name": "John Doe",
"national_id": "12345678-9",
"dob": "1978-03-13"
}
}
```
#### Chile — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CL",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "12345678-9",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### China
#### China — Request
```json
{
"reference": "{{reference}}",
"country": "CN",
"email": null,
"ekyc": {
"full_name": "约翰·多伊",
"national_id": "911124198108030024",
"phone_number": "8617580349379"
}
}
```
#### China — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "约翰·多伊",
"national_id": "911124198108030024"
},
"contact_details": {
"phone_number": "8617580349379"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Costa Rica
#### Costa Rica — Request
```json
{
"reference": "{{reference}}",
"country": "CR",
"email": null,
"ekyc": {
"full_name": "John Doe",
"national_id": "123456789",
"dob": "1978-03-13"
}
}
```
#### Costa Rica — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CR",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "123456789",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Cote d'Ivoire
#### Cote d'Ivoire — Request
```json
{
"reference": "{{reference}}",
"country": "CI",
"email": null,
"ekyc": {
"national_id": "CI00123456789"
}
}
```
#### Cote d'Ivoire — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CI",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"nationality": "CI",
"citizenship": "Côte d'Ivoire",
"id_number": "CI00123456789",
"issuing_country": "CI"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Czech Republic
#### Czech Republic — Request
```json
{
"reference": "{{reference}}",
"country": "CZ",
"email": null,
"ekyc": {
"last_name": "Doe",
"city": "Cityville"
}
}
```
#### Czech Republic — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CZ",
"verification_data": {
"ekyc": {
"personal_details": {
"last_name": "Doe"
},
"address_details": {
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Ecuador
#### Ecuador — Request
```json
{
"reference": "{{reference}}",
"country": "EC",
"email": null,
"ekyc": {
"full_name": "John Doe",
"national_id": "123456789"
}
}
```
#### Ecuador — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "EC",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "123456789"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### France
#### France — Request
```json
{
"reference": "{{reference}}",
"country": "FR",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"postal_code": "QWE 123",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### France — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "FR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"postal_code": "QWE 123",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Germany
#### Germany — Request
```json
{
"reference": "{{reference}}",
"country": "DE",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"postal_code": "QWE 123",
"house_number": "123",
"city": "Cityville"
}
}
```
#### Germany — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "DE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"postal_code": "QWE 123",
"house_number": "123",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Ghana
#### Ghana — Request
```json
// The 'type' in 'ekyc' can be one of the following:
// - GH-SSNIT-VERIFICATION
// - GH-DRIVER-LICENSE-VERIFICATION
// - GH-OLD-VOTER-ID
// - GH-NEW-VOTER-ID
// provide a valid id_number according to selected type
{
"reference": "{{reference}}",
"country": "GH",
"email": null,
"ekyc": {
"type": "GH-SSNIT-VERIFICATION",
"id_number": "E018142210753",
"full_name": "John Doe",
"dob": "1978-03-13"
}
}
```
#### Ghana — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GH",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"id_number": "E018142210753",
"dob": "1978-03-13",
"gender": "MALE",
"card_serial_number": "R1970200000002"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Gibraltar
#### Gibraltar — Request
```json
{
"reference": "{{reference}}",
"country": "GI",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe"
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Gibraltar — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GI",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Greece
#### Greece — Request
```json
{
"reference": "{{reference}}",
"country": "GR",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe"
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Greece — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Honduras
#### Honduras — Request
```json
{
"reference": "{{reference}}",
"country": "HN",
"email": null,
"ekyc": {
"full_name": "John Doe",
"national_id": "1234567890123"
}
}
```
#### Honduras — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "1234567890123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Hong Kong
#### Hong Kong — Request
```json
{
"reference": "{{reference}}",
"country": "HK",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"full_address": "Flat G, 6/F, Tower 2, Noble Hill, 38 Ma Sik Road, 38 Ma Sik Road, New Territories"
}
}
```
#### Hong Kong — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HK",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "Flat G, 6/F, Tower 2, Noble Hill, 38 Ma Sik Road, 38 Ma Sik Road, New Territories"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Hungary
#### Hungary — Request
```json
{
"reference": "{{reference}}",
"country": "HU",
"email": null,
"ekyc": {
"full_name": "John Doe",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Hungary — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HU",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Ireland
#### Ireland — Request
```json
{
"reference": "{{reference}}",
"country": "IE",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
}
}
```
#### Ireland — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Italy
#### Italy — Request
```json
{
"reference": "{{reference}}",
"country": "IT",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13",
"house_number": "123",
"street_address": "Main Street",
"city": "Cityville"
}
}
```
#### Italy — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IT",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"house_number": "123",
"street": "Main Street",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Japan
#### Japan — Request
```json
{
"reference": "{{reference}}",
"country": "JP",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe"
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Japan — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "JP",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Lithuania
#### Lithuania — Request
```json
{
"reference": "{{reference}}",
"country": "LT",
"email": null,
"ekyc": {
"full_name": "John Doe",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Lithuania — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "LT",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Mexico
#### Mexico — Request
```json
{
"reference": "{{reference}}",
"country": "MX",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"national_id": "ABCD123456ERJHYS00",
"postal_code": "QWE 123"
}
}
```
#### Mexico — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "MX",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "ABCD123456ERJHYS00"
},
"address_details": {
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### New Zealand
#### New Zealand — Request
```json
{
"reference": "{{reference}}",
"country": "NZ",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13",
"house_number":"123",
"street_address":"Main Street",
"city":"Cityville"
}
}
```
#### New Zealand — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NZ",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"house_number":"123",
"street":"Main Street",
"city":"Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Norway
#### Norway — Request
```json
{
"reference": "{{reference}}",
"country": "NO",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"street_address":"Main Street",
"city":"Cityville"
}
}
```
#### Norway — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NO",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street":"Main Street",
"city":"Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Paraguay
#### Paraguay — Request
```json
{
"reference": "{{reference}}",
"country": "PY",
"email": null,
"ekyc": {
"full_name": "John",
"national_id": "1234567"
}
}
```
#### Paraguay — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"national_id": "1234567"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Philippines
#### Philippines — Request
```json
{
"reference": "{{reference}}",
"country": "PH",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13",
"phone_number":"639325550892"
}
}
```
#### Philippines — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PH",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"contact_details": {
"phone_number":"639325550892"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Poland
#### Poland — Request
```json
{
"reference": "{{reference}}",
"country": "PL",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"national_id": "12345678901",
}
}
```
#### Poland — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PL",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "12345678901",
}
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Portugal
#### Portugal — Request
```json
{
"reference": "{{reference}}",
"country": "PT"",
"email": null",
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"street_address":"Main Street",
"city":"Cityville"
"house_number":"123",
"postal_code":"QWE 123"
}
}
```
#### Portugal — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PT",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street": "Main Street",
"city": "Cityville",
"house_number": "123",
"postal_code": "QWE 123"
}
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Romania
#### Romania — Request
```json
{
"reference": "{{reference}}",
"country": "RO",
"email": null,
"ekyc": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "1234567890123",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Romania — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "RO",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "1234567890123"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": 1
}
}
```
### Singapore
#### Singapore — Request
```json
{
"reference": "{{reference}}",
"country": "SG",
"email": null,
"ekyc": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "A12345678",
"full_address": "2 JURONG LAKE LINK # 14-07 SINGAPORE 648157"
}
}
```
#### Singapore — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "A12345678"
},
"address_details": {
"full_address": "2 JURONG LAKE LINK # 14-07 SINGAPORE 648157"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": 1
}
}
```
### Slovakia
#### Slovakia — Request
```json
{
"reference": "{{reference}}",
"country": "SK",
"email": null,
"ekyc": {
"last_name": "Doe",
"city": "Cityville"
}
}
```
#### Slovakia — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SK",
"verification_data": {
"ekyc": {
"personal_details": {
"last_name": "Doe"
},
"address_details": {
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": 1
}
}
```
### South Korea
#### South Korea — Request
```json
{
"reference": "{{reference}}",
"country": "KR",
"email": null,
"ekyc": {
"phone_number": "+821012345678",
"full_name": "John Doe",
"dob": "1978-03-13",
"gender": "M",
"carrier": "SKT",
"operating_system": "iOS"
}
}
```
#### South Korea — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "KR",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
},
"contact_details": {
"phone_number": "+821012345678"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Spain
#### Spain — Request
```json
{
"reference": "{{reference}}",
"country": "ES",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13",
"street_address": "Main Street"
}
}
```
#### Spain — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ES",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "Doe",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"street": "Main Street"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Switzerland
#### Switzerland — Request
```json
{
"reference": "{{reference}}",
"country": "CH",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"street_address": "Main Street",
"city": "Cityville"
}
}
```
#### Switzerland — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CH",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street": "Main Street",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Taiwan
#### Taiwan — Request
```json
{
"reference": "{{reference}}",
"country": "TW",
"email": null,
"ekyc": {
"full_name": "John",
"dob": "1978-03-13",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
```
#### Taiwan — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "TW",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Turkey
#### Turkey — Request
```json
{
"reference": "{{reference}}",
"country": "TR",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
"national_id": "01234567890",
"dob": "1978-03-13"
}
}
```
#### Turkey — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "TR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "01234567890",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### United Arab Emirates
#### United Arab Emirates — Request
```json
{
"reference": "{{reference}}",
"country": "AE",
"email": null,
"ekyc": {
"dob": "1978-03-13",
"national_id": "123456789012345",
"nationality": "india"
}
}
```
#### United Arab Emirates — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AE",
"verification_data": {
"ekyc": {
"personal_details": {
"dob": "1978-03-13",
"national_id": "123456789012345",
"nationality": "india"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### United States
#### United States — Request
```json
{
"reference": "{{reference}}",
"country": "US",
"email": null,
"ekyc": {
"first_name": "John",
"last_name": "Doe",
// national_id accepts either the full 9-digit Social Security Number (e.g. "123-45-6789")
// or only the last 4 digits of the Social Security Number (e.g. "6789").
"national_id": "123-45-6789",
"house_number": "123",
"street_address": "Main Street"
}
}
```
#### United States — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "US",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "123-45-6789"
},
"address_details": {
"house_number": "123",
"street": "Main Street"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Uruguay
#### Uruguay — Request
```json
{
"reference": "{{reference}}",
"country": "UY",
"email": null,
"ekyc": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "12345678"
}
}
```
#### Uruguay — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "UY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "12345678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Venezuela
#### Venezuela — Request
```json
{
"reference": "{{reference}}",
"country": "VE",
"email": null,
"ekyc": {
"full_name": "John",
"national_id": "12345678"
}
}
```
#### Venezuela — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"national_id": "12345678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Zimbabwe
#### Zimbabwe — Request
```json
{
"reference": "{{reference}}",
"country": "ZW",
"email": null,
"ekyc": {
"national_id": "23456789E32"
}
}
```
#### Zimbabwe — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ZW",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"gender": "Male",
"national_id": "23456789E32",
"dob": "1994-04-03"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
**Note**
For more detailed information of offsite responses click [here](/docs/verification_endpoints/responses#response-events)
---
# Responses
Source: https://developers.shuftipro.com/docs/user_identification_authentication/eidv_pro/responses.md
Here is an extensive breakdown of responses tailored for a variety of Electronic Identity Verification (eIDV Pro) services available in supported countries.
Country-specific e-IDV Pro response payloads. On the rendered docs page, use the country and integration-type selectors to browse these samples interactively.
## Samples by country
### Angola
#### Angola — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AO",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"gender": "Male",
"national_id": "20012345B24928"
},
"address_details": {
"address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"contact_details": {
"phone_number": "930123456"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Angola — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AO",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"gender": "Male",
"national_id": "20012345B24928"
},
"address_details": {
"address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"contact_details": {
"phone_number": "930123456"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Argentina
#### Argentina — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "13456789"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Argentina — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "13456789"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Australia
#### Australia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AU",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"street": "Main Street",
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Australia — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AU",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"street": "Main Street",
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Austria
#### Austria — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AT",
"verification_data": {
"ekyc": {
"personal_details": {
"id_number": "123471021234",
"first_name": "John",
"last_name": "",
"initials": "",
"dob": "1978-03-13"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Austria — Onsite — Response — Active approach — provider: handy-signatur
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "AT",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-at-handy-signatur-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Belgium
#### Belgium — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Belgium — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Belgium — Onsite — Response — Active approach — provider: be-id-login
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "BE",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-be-id-login-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Belgium — Onsite — Response — Active approach — provider: itsme
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "BE",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-be-itsme-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"nationality": "BE",
"citizenship": "Belgium",
"id_number": "591234567890",
"expiry_date": "2030-12-31",
"document_portrait": "ns-url-string"
},
"address_details": {
"city": "Brussels",
"postalCode": "1000",
"country": "BE",
"full_address": "Rue de la Loi 16, 1000 Brussels, Belgium"
},
"contact_details": {
"phone_number": "+32470123456"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Bolivia
#### Bolivia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BO",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"id_number": "1234567",
"issuing_country": "BO"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Bolivia — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BO",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"id_number": "1234567",
"issuing_country": "BO"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Brazil
#### Brazil — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BR",
"verification_data": {
"ekyc": {
"personal_details": {
"cpf_number": "40442820135",
"name": "John Doe",
"dob": "19XX-11-14"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Brazil — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BR",
"verification_data": {
"ekyc": {
"personal_details": {
"cpf_number": "40442820135",
"name": "John Doe",
"dob": "19XX-11-14"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Brazil — Onsite — Response — Active approach — provider: digital-cnh
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "BR",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-br-digital-cnh-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"id_number": "12345678900",
"issue_date": "2020-01-10",
"expiry_date": "2030-01-10",
"issuing_country": "BR",
"issuing_authority": "DETRAN",
"attachments": "ns-url-string"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Brazil — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BR",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"id_number": "40442820135",
"issuing_country": "BR"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Brazil — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BR",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"id_number": "40442820135",
"issuing_country": "BR"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Bulgaria
#### Bulgaria — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Bulgaria — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "BG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Canada
#### Canada — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Canada — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Chile
#### Chile — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CL",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "12345678-9",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Chile — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CL",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "12345678-9",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### China
#### China — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "约翰·多伊",
"national_id": "911124198108030024"
},
"contact_details": {
"phone_number": "8617580349379"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### China — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "约翰·多伊",
"national_id": "911124198108030024"
},
"contact_details": {
"phone_number": "8617580349379"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Colombia
#### Colombia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CO",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "2131234321"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Colombia — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CO",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "2131234321"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Colombia — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CO",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "12345678",
"issue_date": "2010-06-15",
"issuing_country": "CO"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Colombia — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CO",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "12345678",
"issue_date": "2010-06-15",
"issuing_country": "CO"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Costa Rica
#### Costa Rica — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CR",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "123456789",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Costa Rica — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CR",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "123456789",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Cote d'Ivoire
#### Cote d'Ivoire — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CI",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"nationality": "CI",
"citizenship": "Côte d'Ivoire",
"id_number": "CI00123456789",
"issuing_country": "CI"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Cote d'Ivoire — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CI",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"nationality": "CI",
"citizenship": "Côte d'Ivoire",
"id_number": "CI00123456789",
"issuing_country": "CI"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Czech Republic
#### Czech Republic — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CZ",
"verification_data": {
"ekyc": {
"personal_details": {
"last_name": "Doe"
},
"address_details": {
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Czech Republic — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CZ",
"verification_data": {
"ekyc": {
"personal_details": {
"last_name": "Doe"
},
"address_details": {
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Czech Republic — Onsite — Response — Active approach — provider: czech-bank-id
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "CZ",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-cz-bank-id-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Robert Doe",
"first_name": "John",
"middle_name": "Robert",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"nationality": "CZ",
"citizenship": "Czechia",
"id_number": "123456789",
"issue_date": "2021-02-11",
"expiry_date": "2031-02-10",
"issuing_country": "CZ",
"issuing_authority": "Ministry of the Interior"
},
"address_details": {
"city": "Prague",
"postalCode": "110 00",
"country": "CZ",
"full_address": "Vaclavske namesti 1, 110 00 Prague, Czechia"
},
"contact_details": {
"phone_number": "+420601234567"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Czech Republic — Onsite — Response — Active approach — provider: mojeid
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "CZ",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-cz-mojeid-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Ecuador
#### Ecuador — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "EC",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "123456789"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Ecuador — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "EC",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "123456789"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### El Salvador
#### El Salvador — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SV",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"dob": "1978-03-13"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### El Salvador — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SV",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"dob": "1978-03-13"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### El Salvador — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SV",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"id_number": "012345678",
"issuing_country": "SV"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### El Salvador — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SV",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"id_number": "012345678",
"issuing_country": "SV"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Ethiopia
#### Ethiopia — Onsite — Response — Active approach — provider: fayda
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "ET",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-et-fayda-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"unique_reference": "Unique Reference",
]
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Denmark
#### Denmark — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "DK",
"verification_data": {
"ekyc": {
"personal_details": {
"cpr_number_identifier": "0211181234",
"name": "John",
"age": "58",
"dob": "1978-03-13"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Finland
#### Finland — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "FI",
"verification_data": {
"ekyc": {
"personal_details": {
"id_number": "112233-011F",
"name": "John Doe",
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13",
"gender": "Male"
},
"address_details": {
"address": "10 Downing st, Westminster"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### France
#### France — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "FR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"postal_code": "QWE 123",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### France — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "FR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"postal_code": "QWE 123",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### France — Onsite — Response — Active approach — provider: france-identite
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "FR",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-fr-france-identite-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"nationality": "FR",
"citizenship": "France",
"id_number": "123456789012",
"issue_date": "2021-02-11",
"expiry_date": "2031-02-10",
"issuing_country": "FR",
"issuing_authority": "Republique Francaise",
"document_portrait": "ns-url-string"
},
"address_details": {
"city": "Paris",
"subdivision": "Ile-de-France",
"postalCode": "75001",
"country": "FR",
"full_address": "1 Rue de Rivoli, 75001 Paris, France"
},
"contact_details": {
"phone_number": "+33612345678"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Germany
#### Germany — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "DE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"postal_code": "QWE 123",
"house_number": "123",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Germany — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "DE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"postal_code": "QWE 123",
"house_number": "123",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Germany — Onsite — Response — Active approach — provider: verimi
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "DE",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-de-verimi-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"nationality": "DE",
"citizenship": "Germany",
"id_number": "L01X00T47",
"issue_date": "2021-02-11",
"expiry_date": "2031-02-10",
"issuing_country": "DE",
"issuing_authority": "Stadt Berlin"
},
"address_details": {
"city": "Berlin",
"subdivision": "Berlin",
"postalCode": "10115",
"country": "DE",
"full_address": "Invalidenstrasse 1, 10115 Berlin, Germany"
},
"contact_details": {
"phone_number": "+4915123456789"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Ghana
#### Ghana — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GH",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"id_number": "E018142210753",
"dob": "1978-03-13",
"gender": "MALE",
"card_serial_number": "R1970200000002"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Ghana — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GH",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"id_number": "E018142210753",
"dob": "1978-03-13",
"gender": "MALE",
"card_serial_number": "R1970200000002"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Gibraltar
#### Gibraltar — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GI",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Gibraltar — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GI",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Greece
#### Greece — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Greece — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Guatemala
#### Guatemala — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GT",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "1234567890123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Guatemala — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GT",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "1234567890123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Guatemala — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GT",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "1234567890123",
"issuing_country": "GT"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Guatemala — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GT",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "1234567890123",
"issuing_country": "GT"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Honduras
#### Honduras — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "1234567890123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Honduras — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"national_id": "1234567890123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Hong Kong
#### Hong Kong — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HK",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "Z6833655",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Hong Kong — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HK",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "Flat G, 6/F, Tower 2, Noble Hill, 38 Ma Sik Road, 38 Ma Sik Road, New Territories"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Hungary
#### Hungary — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HU",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Hungary — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "HU",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### India
#### India — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"aadhaar_number": "112228051122",
"dob": "1978-03-13",
"gender": "M"
},
"address_details": {
"country_of_residence": "India",
"district": "Mumbai Suburban",
"state": "Maharashtra",
"post_office": "Kandivali",
"location": "kandivali",
"vtc": "Mumbai",
"sub_district": "Borivali",
"street": "thakur complex",
"house": "12/1122"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### India — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IN",
"verification_data": {
"ekyc": {
"personal_details": {
"pan_number": "ANBPJ5359K",
"full_name": "John Doe",
"dob": "1978-03-13",
"gender": "F",
"category": "person"
},
"contact_details": {
"email": "johndoe@test.com",
"phone_number": "9999981836"
},
"address_details": {
"full_address": "A12/112 Rohtak 124100 ROHTAK HARYANA INDIA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### India — Onsite — Response — Active approach — provider: aadhaar
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "IN",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"gender": "M",
"date_of_birth": "1978-03-13"
},
"address_details": {
"city": "Mumbai",
"state": "Maharashtra",
"subdivision": "Borivali",
"postalCode": "400067",
"country": "IN",
"full_address": "12/1122 Thakur Complex, Kandivali, Mumbai, Maharashtra 400067, India"
},
"match_data": null,
"attachments": {
"selfie": null,
"documentFront": null,
"documentBack": null,
"documentPortrait": "ns-url-string",
"provider": {
"document-scan": null
}
},
"attachment_access_keys": {
"selfie": null,
"documentFront": null,
"documentBack": null,
"documentPortrait": "doc-portrait-key-001",
"provider": {
"document-scan": null
}
}
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### India — Onsite — Response — Active approach — provider: aadhaar-match
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "IN",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Jacob Doe",
"date_of_birth": "1990-06-30"
},
"match_results": {
"full_name": "partial_match",
"date_of_birth": "full_match"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### India — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"id_number": "ANBPJ5359K",
"issuing_country": "IN"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### India — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"id_number": "ANBPJ5359K",
"issuing_country": "IN"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Indonesia
#### Indonesia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "12345678901",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Indonesia — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "12345678901",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Indonesia — Onsite — Response — Active approach — provider: dukcapil
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "ID",
"proofs": {
"face": {
"proof": "ns-url-string"
},
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-id-dukcapil-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"id_number": "3171234567890001",
"issuing_country": "ID"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Indonesia — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"id_number": "3171234567890001",
"issuing_country": "ID"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Indonesia — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"id_number": "3171234567890001",
"issuing_country": "ID"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Indonesia — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"gender": "Male",
"date_of_birth": "1978-03-13",
"national_id": "1234567890123456"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland",
"country_code": "ID"
},
"match_results": {
"full_name": "{{match_status}}",
"date_of_birth": "{{match_status}}",
"national_id": "{{match_status}}",
"gender": "{{match_status}}",
"full_address": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Indonesia — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"gender": "Male",
"date_of_birth": "1978-03-13",
"national_id": "1234567890123456"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland",
"country_code": "ID"
},
"match_results": {
"full_name": "{{match_status}}",
"date_of_birth": "{{match_status}}",
"national_id": "{{match_status}}",
"gender": "{{match_status}}",
"full_address": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Indonesia — Onsite — Response — Passive approach
```json
// the fields returned depend on the source that answered
// type: ID-DIY-SAMSAT
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "AB 1234 XY",
"plate_prefix": "AB",
"plate_suffix": "XY",
"province": "DI Yogyakarta",
"make": "DAIHATSU",
"model": "XENIA 1.3 X MT",
"manufacture_year": "2015",
"tax_status": "in_date",
"tax_due_date": "2026-01-15",
"vehicle_tax_principal": 1000000,
"vehicle_tax_penalty": 0,
"road_accident_fund_contribution": 150000,
"road_accident_fund_penalty": 0,
"total_tax_payable": 1150000,
"currency": "IDR"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
// type: ID-BANTEN-SAMSAT
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "B 1234 XYZ",
"plate_prefix": "B",
"plate_suffix": "XYZ",
"province": "Banten",
"registration_area": "EXAMPLE",
"make": "YAMAHA",
"model": "MIO M3 125",
"vehicle_type": "SEPEDA MOTOR",
"manufacture_year": "2019",
"colour": "HITAM",
"engine_capacity": "125",
"fuel_type": "BENSIN",
"chassis_number": "CHASSIS1234567890",
"owner_name": "JXXX (1)",
"owner_address": "KEC. EXAMPLE, KOTA EXAMPLE",
"tax_status": "overdue",
"tax_due_date": "2026-01-15",
"registration_expiry_date": "2029-01-15",
"total_tax_payable": 300000,
"currency": "IDR"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
// type: ID-SULUT-SAMSAT
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "DB 1234 XY",
"plate_prefix": "DB",
"plate_suffix": "XY",
"province": "Sulawesi Utara",
"make": "WULING",
"vehicle_type": "SEDAN",
"manufacture_year": "2021",
"colour": "MERAH",
"plate_colour": "PUTIH",
"engine_capacity": "1500",
"fuel_type": "BENSIN",
"chassis_number": "CHASSIS1234567890",
"tax_status": "in_date",
"tax_status_remarks": "OK",
"tax_due_date": "2027-01-15",
"last_payment_date": "2026-01-10",
"registration_expiry_date": "2027-01-15",
"vehicle_tax_principal": 1700000,
"vehicle_tax_penalty": 0,
"vehicle_tax_surcharge": 1150000,
"vehicle_tax_surcharge_penalty": 0,
"road_accident_fund_contribution": 150000,
"road_accident_fund_penalty": 0,
"total_tax_payable": 3000000,
"currency": "IDR",
"tax_years_overdue": "0",
"tax_years_prepaid": "1",
"ownership_sequence": "1"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Indonesia — Offsite — Response — Passive approach
```json
// the fields returned depend on the source that answered
// type: ID-DIY-SAMSAT
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "AB 1234 XY",
"plate_prefix": "AB",
"plate_suffix": "XY",
"province": "DI Yogyakarta",
"make": "DAIHATSU",
"model": "XENIA 1.3 X MT",
"manufacture_year": "2015",
"tax_status": "in_date",
"tax_due_date": "2026-01-15",
"vehicle_tax_principal": 1000000,
"vehicle_tax_penalty": 0,
"road_accident_fund_contribution": 150000,
"road_accident_fund_penalty": 0,
"total_tax_payable": 1150000,
"currency": "IDR"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
// type: ID-BANTEN-SAMSAT
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "B 1234 XYZ",
"plate_prefix": "B",
"plate_suffix": "XYZ",
"province": "Banten",
"registration_area": "EXAMPLE",
"make": "YAMAHA",
"model": "MIO M3 125",
"vehicle_type": "SEPEDA MOTOR",
"manufacture_year": "2019",
"colour": "HITAM",
"engine_capacity": "125",
"fuel_type": "BENSIN",
"chassis_number": "CHASSIS1234567890",
"owner_name": "JXXX (1)",
"owner_address": "KEC. EXAMPLE, KOTA EXAMPLE",
"tax_status": "overdue",
"tax_due_date": "2026-01-15",
"registration_expiry_date": "2029-01-15",
"total_tax_payable": 300000,
"currency": "IDR"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
// type: ID-SULUT-SAMSAT
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ID",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "DB 1234 XY",
"plate_prefix": "DB",
"plate_suffix": "XY",
"province": "Sulawesi Utara",
"make": "WULING",
"vehicle_type": "SEDAN",
"manufacture_year": "2021",
"colour": "MERAH",
"plate_colour": "PUTIH",
"engine_capacity": "1500",
"fuel_type": "BENSIN",
"chassis_number": "CHASSIS1234567890",
"tax_status": "in_date",
"tax_status_remarks": "OK",
"tax_due_date": "2027-01-15",
"last_payment_date": "2026-01-10",
"registration_expiry_date": "2027-01-15",
"vehicle_tax_principal": 1700000,
"vehicle_tax_penalty": 0,
"vehicle_tax_surcharge": 1150000,
"vehicle_tax_surcharge_penalty": 0,
"road_accident_fund_contribution": 150000,
"road_accident_fund_penalty": 0,
"total_tax_payable": 3000000,
"currency": "IDR",
"tax_years_overdue": "0",
"tax_years_prepaid": "1",
"ownership_sequence": "1"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Ireland
#### Ireland — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Ireland — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Italy
#### Italy — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IT",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"house_number": "123",
"street": "Main Street",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Italy — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "IT",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"house_number": "123",
"street": "Main Street",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Italy — Onsite — Response — Active approach — provider: spid
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "IT",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-it-unique-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"family_name": "Doe",
"gender": "M",
"date_of_birth": "1978-03-13"
},
"address_details": {
"city": "Rome",
"state": "Lazio",
"subdivision": "Roma",
"postalCode": "00118",
"country": "IT",
"full_address": "123 Main Street, Rome, Lazio 00118, Italy"
},
"contact_details": {
"phone_number": "393123456789"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Japan
#### Japan — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "JP",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Japan — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "JP",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Kenya
#### Kenya — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "KE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"middle_name": "Leo",
"last_name": "Doe",
"national_id": "60986390",
"dob": "1978-03-13",
"gender": "Male"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Kenya — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "KE",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"middle_name": "Leo",
"last_name": "Doe",
"national_id": "60986390",
"dob": "1978-03-13",
"gender": "Male"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Kenya — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "KE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Leo Doe",
"first_name": "John",
"middle_name": "Leo",
"last_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"national_id": "60986390"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Kenya — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "KE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Leo Doe",
"first_name": "John",
"middle_name": "Leo",
"last_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"national_id": "60986390"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Latvia
#### Latvia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "LV",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-lv-eparaksts-mobile-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Latvia — Onsite — Response — Active approach — provider: smart-id
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "LV",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-lv-smart-id-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"issuing_country": "LV"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Lithuania
#### Lithuania — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "LT",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Lithuania — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "LT",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Lithuania — Onsite — Response — Active approach — provider: mobile-id
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "LT",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-lt-mobile-id-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"issuing_country": "LT"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Lithuania — Onsite — Response — Active approach — provider: lt-id-login
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "LT",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-lt-id-login-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Malaysia
#### Malaysia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "MY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"national_id": "123456-12-1234",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Malaysia — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "MY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"national_id": "123456-12-1234",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Malaysia — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "MY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1991-07-20",
"national_id": "123456-12-1234"
},
"address_details": {
"street": "123 Main Street",
"city": "Simpang Renggam",
"province": "Johor",
"postal_code": "86200"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Malaysia — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "MY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1991-07-20",
"national_id": "123456-12-1234"
},
"address_details": {
"street": "123 Main Street",
"city": "Simpang Renggam",
"province": "Johor",
"postal_code": "86200"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Mexico
#### Mexico — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "MX",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "ABCD123456ERJHYS00"
},
"address_details": {
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Mexico — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "MX",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "ABCD123456ERJHYS00"
},
"address_details": {
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Mexico — Onsite — Response — Active approach — provider: curplookup
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "MX",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-mx-unique-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"family_name": "Doe",
"middle_name": "Antonio",
"gender": "M",
"nationality": "Mexican",
"date_of_birth": "1978-03-13"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Netherlands
#### Netherlands — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NL",
"verification_data": {
"ekyc": {
"personal_details": {
"initials": "",
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13",
"gender": "M"
},
"address_details": {
"street_address": "10 Downing St, Westminster",
"house_number": "94",
"postal_code": "SW1A 2AA",
"city": "EINDHOVEN"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Netherlands — Onsite — Response — Active approach — provider: idin
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "NL",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-nl-idin-001",
"verification_data": {
"ekyc": {
"personal_details": {
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
},
"address_details": {
"city": "Amsterdam",
"postalCode": "1012 AB",
"country": "NL",
"full_address": "Damrak 1, 1012 AB Amsterdam, Netherlands"
},
"contact_details": {
"phone_number": "+31612345678"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### New Zealand
#### New Zealand — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NZ",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"house_number":"123",
"street":"Main Street",
"city":"Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### New Zealand — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NZ",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"house_number":"123",
"street":"Main Street",
"city":"Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Nigeria
#### Nigeria — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"middle_name": "",
"last_name": "Doe",
"national_id": "AB012345678910YZ",
"gender": "Male"
},
"contact_details": {
"phone_number": "2341234567890"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"middle_name": "",
"last_name": "Doe",
"national_id": "AB012345678910YZ",
"gender": "Male"
},
"contact_details": {
"phone_number": "2341234567890"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Nathaniel Doe",
"first_name": "John",
"middle_name": "Nathaniel",
"family_name": "Doe",
"date_of_birth": "1997-03-30",
"gender": "M",
"id_number": "54243780340",
"issuing_country": "NG"
},
"contact_details": {
"phone_number": "+2348031234567"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Nathaniel Doe",
"first_name": "John",
"middle_name": "Nathaniel",
"family_name": "Doe",
"date_of_birth": "1997-03-30",
"gender": "M",
"id_number": "54243780340",
"issuing_country": "NG"
},
"contact_details": {
"phone_number": "+2348031234567"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Nathaniel Doe",
"first_name": "John",
"middle_name": "Nathaniel",
"family_name": "Doe",
"date_of_birth": "1997-03-30",
"gender": "M",
"id_number": "54243780340",
"issuing_country": "NG",
"attachments": "ns-url-string"
},
"address_details": {
"full_address": "12 Allen Avenue, Ikeja, Lagos, Nigeria"
},
"contact_details": {
"phone_number": "+2348031234567"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Nathaniel Doe",
"first_name": "John",
"middle_name": "Nathaniel",
"family_name": "Doe",
"date_of_birth": "1997-03-30",
"gender": "M",
"id_number": "54243780340",
"issuing_country": "NG",
"attachments": "ns-url-string"
},
"address_details": {
"full_address": "12 Allen Avenue, Ikeja, Lagos, Nigeria"
},
"contact_details": {
"phone_number": "+2348031234567"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Nathaniel Doe",
"first_name": "John",
"middle_name": "Nathaniel",
"family_name": "Doe",
"date_of_birth": "1997-03-30",
"gender": "M",
"id_number": "54243780340",
"issuing_country": "NG",
"attachments": "ns-url-string"
},
"address_details": {
"full_address": "12 Allen Avenue, Ikeja, Lagos, Nigeria",
"city": "Ikeja",
"subdivision": "Lagos"
},
"contact_details": {
"phone_number": "+2348031234567"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Nathaniel Doe",
"first_name": "John",
"middle_name": "Nathaniel",
"family_name": "Doe",
"date_of_birth": "1997-03-30",
"gender": "M",
"id_number": "54243780340",
"issuing_country": "NG",
"attachments": "ns-url-string"
},
"address_details": {
"full_address": "12 Allen Avenue, Ikeja, Lagos, Nigeria",
"city": "Ikeja",
"subdivision": "Lagos"
},
"contact_details": {
"phone_number": "+2348031234567"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Nathaniel Doe",
"date_of_birth": "1997-03-30",
"gender": "M",
"national_id": "54243780340",
"id_number": "54243780340",
"issuing_country": "NG"
},
"contact_details": {
"phone_number": "+2348031234567"
},
"match_results": {
"national_id": "full_match",
"full_name": "full_match",
"date_of_birth": "full_match",
"gender": "full_match",
"phone_number": "full_match"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Nigeria — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Nathaniel Doe",
"date_of_birth": "1997-03-30",
"gender": "M",
"national_id": "54243780340",
"id_number": "54243780340",
"issuing_country": "NG"
},
"contact_details": {
"phone_number": "+2348031234567"
},
"match_results": {
"national_id": "full_match",
"full_name": "full_match",
"date_of_birth": "full_match",
"gender": "full_match",
"phone_number": "full_match"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Norway
#### Norway — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NO",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street": "Main Street",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Norway — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "NO",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street": "Main Street",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Pakistan
#### Pakistan — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PK",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"father_name": "Richard Doe",
"dob": "1990-05-09",
"gender": "Male",
"cnic": "3520212345671",
"licence_no": "PK-DL-1234567",
"licence_type": "LTV",
"allowed_vehicles": "Motorcycle, Car",
"issue_date": "2020-01-24",
"valid_from": "2020-01-24",
"valid_till": "2030-01-23",
"licence_status": "Valid",
"district": "Lahore"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Pakistan — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PK",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"father_name": "Richard Doe",
"dob": "1990-05-09",
"gender": "Male",
"cnic": "3520212345671",
"licence_no": "PK-DL-1234567",
"licence_type": "LTV",
"allowed_vehicles": "Motorcycle, Car",
"issue_date": "2020-01-24",
"valid_from": "2020-01-24",
"valid_till": "2030-01-23",
"licence_status": "Valid",
"district": "Lahore"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Pakistan — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PK",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"father_name": "Richard Doe",
"dob": "1990-05-09",
"gender": "Male",
"cnic": "3520212345671"
},
"address_details": {
"full_address": "House 12, Street 4, Gulberg III, Lahore"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Pakistan — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PK",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"father_name": "Richard Doe",
"dob": "1990-05-09",
"gender": "Male",
"cnic": "3520212345671"
},
"address_details": {
"full_address": "House 12, Street 4, Gulberg III, Lahore"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Panama
#### Panama — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "1-234-5678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Panama — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "1-234-5678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Panama — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"id_number": "8-123-4567",
"issuing_country": "PA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Panama — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"id_number": "8-123-4567",
"issuing_country": "PA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Paraguay
#### Paraguay — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"national_id": "1234567"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Paraguay — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"national_id": "1234567"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Peru
#### Peru — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "12345678"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Peru — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "12345678"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Peru — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "12345678",
"issue_date": "2015-08-01",
"expiry_date": "2033-08-01",
"issuing_country": "PE",
"issuing_authority": "RENIEC",
"attachments": "ns-url-string"
},
"address_details": {
"subdivision": "Lima",
"country": "PE"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Peru — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "12345678",
"issue_date": "2015-08-01",
"expiry_date": "2033-08-01",
"issuing_country": "PE",
"issuing_authority": "RENIEC",
"attachments": "ns-url-string"
},
"address_details": {
"subdivision": "Lima",
"country": "PE"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Philippines
#### Philippines — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PH",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"contact_details": {
"phone_number": "639325550892"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Philippines — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PH",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"dob": "1978-03-13"
},
"contact_details": {
"phone_number": "639325550892"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Philippines — Onsite — Response — Active approach — provider: ephil
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "PH",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-ph-ephil-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"family_name": "Doe",
"middle_name": "Antonio",
"gender": "F",
"date_of_birth": "1978-03-13",
"national_id": "PH-123456789",
"place_of_birth": "Manila",
"given_name": "John",
"sex": "F",
"id_number": "PH-123456789",
"issue_date": "2018-06-01",
"issuing_country": "PH",
"issuing_authority": "PSA",
"attachments": [
"ns-url-string"
]
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Philippines — Onsite — Response — Active approach — provider: phylsys
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "PH",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-ph-unique-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"given_name": "John",
"family_name": "Doe",
"middle_name": "Antonio",
"suffix": "",
"date_of_birth": "1978-03-13",
"face_liveness_check": "passed"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Poland
#### Poland — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PL",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "12345678901",
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Poland — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PL",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "12345678901",
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Poland — Onsite — Response — Active approach — provider: edoapp
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "PL",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-pl-edoapp-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Portugal
#### Portugal — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PT",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street": "Main Street",
"city": "Cityville",
"house_number": "123",
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Portugal — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "PT",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street": "Main Street",
"city": "Cityville",
"house_number": "123",
"postal_code": "QWE 123"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Portugal — Onsite — Response — Active approach — provider: pt-id-login
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "PT",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-pt-id-login-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Romania
#### Romania — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "RO",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "1234567890123"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Romania — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "RO",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "1234567890123"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Saudi Arabia
#### Saudi Arabia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "Nasser Abdullah Salim AlQahtani"
},
"address_details": {
"full_address": "Building 2871, Khalid Ibn Al Walid, An Nakheel Dist., RIYADH 12385, Additional No. 8032",
"address_code": "RANK2871"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Saudi Arabia — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "Nasser Abdullah Salim AlQahtani"
},
"address_details": {
"full_address": "Building 2871, Khalid Ibn Al Walid, An Nakheel Dist., RIYADH 12385, Additional No. 8032",
"address_code": "RANK2871"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Saudi Arabia — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SA",
"verification_data": {
"ekyc": {
"personal_details": {
"id_number": "1234567890",
"full_name": "Nasser Abdullah Salim AlQahtani"
},
"driving_license_details": {
"license_class": "Heavy Transport",
"license_status": "Valid",
"issue_date": "2016-05-07",
"expiry_date": "2030-09-29",
"license_records": [
{
"license_class": "Heavy Transport",
"license_status": "Valid",
"issue_date": "2016-05-07",
"expiry_date": "2030-09-29"
}
]
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Saudi Arabia — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SA",
"verification_data": {
"ekyc": {
"personal_details": {
"id_number": "1234567890",
"full_name": "Nasser Abdullah Salim AlQahtani"
},
"driving_license_details": {
"license_class": "Heavy Transport",
"license_status": "Valid",
"issue_date": "2016-05-07",
"expiry_date": "2030-09-29",
"license_records": [
{
"license_class": "Heavy Transport",
"license_status": "Valid",
"issue_date": "2016-05-07",
"expiry_date": "2030-09-29"
}
]
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Serbia
#### Serbia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "RS",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-rs-id-login-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Singapore
#### Singapore — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "A12345678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Singapore — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SG",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "A12345678"
},
"address_details": {
"full_address": "Flat G, 6/F, Tower 2, Noble Hill, 38 Ma Sik Road, 38 Ma Sik Road, New Territories"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Slovakia
#### Slovakia — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SK",
"verification_data": {
"ekyc": {
"personal_details": {
"last_name": "Doe"
},
"address_details": {
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Slovakia — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SK",
"verification_data": {
"ekyc": {
"personal_details": {
"last_name": "Doe"
},
"address_details": {
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### South Africa
#### South Africa — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ZA",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"full_name": "John Doe",
"national_id": "0123456789012",
"dob": "1978-03-13",
"gender": "Male",
"marital_status": "Married",
"issue_date": "2017-11-23"
},
"address_details": {
"palce_of_birth": "Cityville, Stateville 12345"
},
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### South Africa — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ZA",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"full_name": "John Doe",
"national_id": "0123456789012",
"dob": "1978-03-13",
"gender": "Male",
"marital_status": "Married",
"issue_date": "2017-11-23"
},
"address_details": {
"palce_of_birth": "Cityville, Stateville 12345"
},
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### South Africa — Onsite — Response — Active approach — provider: nid-lookup-2
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "ZA",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-za-unique-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"gender": "M",
"nationality": "ZA",
"date_of_birth": "1978-03-13",
"national_id": null,
"given_name": "John",
"family_name": "Doe",
"sex": "M",
"id_number": "0123456789012",
"issue_date": "2017-11-23",
"issuing_country": "ZA",
"attachments": [
"ns-url-string"
]
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### South Africa — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ZA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "8001015009087",
"issuing_country": "ZA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### South Africa — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ZA",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "8001015009087",
"issuing_country": "ZA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### South Korea
#### South Korea — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "KR",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
},
"contact_details": {
"phone_number": "+821012345678"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### South Korea — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "KR",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
},
"contact_details": {
"phone_number": "+821012345678"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Spain
#### Spain — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ES",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "Doe",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"street": "Main Street"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Spain — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ES",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "Doe",
"last_name": "Doe",
"dob": "1978-03-13"
},
"address_details": {
"street": "Main Street"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Sweden
#### Sweden — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "SE",
"verification_data": {
"ekyc": {
"personal_details": {
"personalNumber": "112208091122",
"name": "John Doe",
"givenName": "John",
"surname": "Doe"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Sweden — Onsite — Response — Active approach — provider: sweden-bankid
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "SE",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-se-bankid-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Sweden — Onsite — Response — Active approach — provider: freja
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "SE",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-se-freja-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"nationality": "SE",
"citizenship": "Sweden",
"id_number": "123456789",
"expiry_date": "2030-12-31",
"issuing_country": "SE"
},
"address_details": {
"city": "Stockholm",
"postalCode": "111 22",
"country": "SE",
"full_address": "Drottninggatan 1, 111 22 Stockholm, Sweden"
},
"contact_details": {
"phone_number": "+46701234567"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Switzerland
#### Switzerland — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CH",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street": "Main Street",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Switzerland — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "CH",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"street": "Main Street",
"city": "Cityville"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Taiwan
#### Taiwan — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "TW",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Taiwan — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "TW",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13"
},
"address_details": {
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Turkey
#### Turkey — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "TR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "01234567890",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Turkey — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "TR",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "01234567890",
"dob": "1978-03-13"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Uganda
#### Uganda — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "UG",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "JOHN",
"last_name": "DOE",
"gender": "M",
"id_number": "CM80100204MKAJ"
},
"address_details": {
"village": "BIROBOKA",
"district": "KYANKWANZI",
"polling_station": "BIROBOKA WARD"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Uganda — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "UG",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "JOHN",
"last_name": "DOE",
"gender": "M",
"id_number": "CM80100204MKAJ"
},
"address_details": {
"village": "BIROBOKA",
"district": "KYANKWANZI",
"polling_station": "BIROBOKA WARD"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Uganda — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "UG",
"verification_data": {
"ekyc": {
"personal_details": {
"national_id": "CM80100204MKAJ",
"card_number": "000123456",
"date_of_birth": "2000-09-20",
"id_number": "CM80100204MKAJ",
"issuing_country": "UG"
},
"match_results": {
"national_id": "full_match",
"card_number": "full_match",
"date_of_birth": "full_match"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Uganda — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "UG",
"verification_data": {
"ekyc": {
"personal_details": {
"national_id": "CM80100204MKAJ",
"card_number": "000123456",
"date_of_birth": "2000-09-20",
"id_number": "CM80100204MKAJ",
"issuing_country": "UG"
},
"match_results": {
"national_id": "full_match",
"card_number": "full_match",
"date_of_birth": "full_match"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### United Arab Emirates
#### United Arab Emirates — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AE",
"verification_data": {
"ekyc": {
"personal_details": {
"dob": "1978-03-13",
"national_id": "123456789012345",
"nationality": "india"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Arab Emirates — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "AE",
"verification_data": {
"ekyc": {
"personal_details": {
"dob": "1978-03-13",
"national_id": "123456789012345",
"nationality": "india"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Ukraine
#### Ukraine — Onsite — Response — Active approach — provider: diia
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "UA",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-ua-unique-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"given_name": "John",
"family_name": "Doe",
"id_number": "UA-1234567890"
},
"address_details": {
"city": "Kyiv",
"state": "Kyiv",
"subdivision": "Holosiivskyi",
"postalCode": "01001",
"country": "UA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Ukraine — Offsite — Response — Active approach — provider: diia
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "UA",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-ua-unique-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"given_name": "John",
"family_name": "Doe",
"id_number": "UA-1234567890"
},
"address_details": {
"city": "Kyiv",
"state": "Kyiv",
"subdivision": "Holosiivskyi",
"postalCode": "01001",
"country": "UA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### United Kingdom
#### United Kingdom — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GB",
"verification_data": {
"ekyc": {
"personal_details": {
"name": "John Doe",
"first_name": "John",
"family_name": "",
"dob": "1978-03-13"
},
"address_details": {
"street_address": "10 Downing St, Westminster, London SW1A 2AA, UK",
"locality": "Westminster",
"region": "London",
"postal_code": "SW1A 2AA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GB",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"postal_code": "QWE 123",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Onsite — Response — Active approach — provider: yoti
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "GB",
"proofs": {
"face": {
"proof": "ns-url-string"
},
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_video": "ns-url-string",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-gb-yoti-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"gender": "M",
"date_of_birth": "1978-03-13",
"given_name": "John",
"family_name": "Doe",
"sex": "M",
"id_number": "GB-1234567",
"expiry_date": "2030-12-31",
"issuing_country": "GB",
"attachments": [
"ns-url-string"
],
"document_front_path": "ns-url-string"
},
"address_details": {
"city": "London",
"state": "England",
"subdivision": "Westminster",
"postalCode": "SW1A 2AA",
"country": "GB",
"full_address": "10 Downing St, Westminster, London SW1A 2AA, UK"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Onsite — Response — Active approach — provider: bank
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GB",
"verification_data": {
"ekyc": {
"personal_details": {
"name": "John Doe",
"first_name": "John",
"family_name": "",
"dob": "1978-03-13"
},
"address_details": {
"street_address": "10 Downing St, Westminster, London SW1A 2AA, UK",
"locality": "Westminster",
"region": "London",
"postal_code": "SW1A 2AA"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Offsite — Response — Active approach — provider: yoti
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "GB",
"proofs": {
"face": {
"proof": "ns-url-string"
},
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_video": "ns-url-string",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-gb-yoti-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"gender": "M",
"date_of_birth": "1978-03-13",
"given_name": "John",
"family_name": "Doe",
"sex": "M",
"id_number": "GB-1234567",
"expiry_date": "2030-12-31",
"issuing_country": "GB",
"attachments": [
"ns-url-string"
],
"document_front_path": "ns-url-string"
},
"address_details": {
"city": "London",
"state": "England",
"subdivision": "Westminster",
"postalCode": "SW1A 2AA",
"country": "GB",
"full_address": "10 Downing St, Westminster, London SW1A 2AA, UK"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Offsite — Response — Active approach — provider: bank
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GB",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe"
},
"address_details": {
"postal_code": "QWE 123",
"full_address": "123 Main Street, Cityville, Stateville 12345, Countryland"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Onsite — Response — Active approach — provider: post-office-easyid
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "GB",
"proofs": {
"face": {
"proof": "ns-url-string"
},
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-gb-post-office-easyid-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"nationality": "GB",
"citizenship": "United Kingdom",
"id_number": "123456789",
"expiry_date": "2030-12-31",
"issuing_country": "GB",
"issuing_authority": "HM Passport Office",
"attachments": "ns-url-string"
},
"address_details": {
"city": "London",
"subdivision": "Westminster",
"postalCode": "SW1A 2AA",
"country": "GB",
"full_address": "10 Downing St, Westminster, London SW1A 2AA, UK"
},
"contact_details": {
"phone_number": "+447700900123"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Onsite — Response — Active approach — provider: lloyds-smart-id
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "GB",
"proofs": {
"face": {
"proof": "ns-url-string"
},
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-gb-lloyds-smart-id-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1978-03-13",
"gender": "M",
"nationality": "GB",
"citizenship": "United Kingdom",
"id_number": "123456789",
"expiry_date": "2030-12-31",
"issuing_country": "GB",
"issuing_authority": "HM Passport Office",
"attachments": "ns-url-string"
},
"address_details": {
"city": "London",
"subdivision": "Westminster",
"postalCode": "SW1A 2AA",
"country": "GB",
"full_address": "10 Downing St, Westminster, London SW1A 2AA, UK"
},
"contact_details": {
"phone_number": "+447700900123"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Onsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GB",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1990-05-14",
"nationality": "IN",
"citizenship": "India",
"id_number": "ZU1234567",
"issue_date": "2021-01-15",
"expiry_date": "2031-01-14",
"issuing_country": "GB",
"issuing_authority": "Home Office",
"attachments": "ns-url-string"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United Kingdom — Offsite — Response — Passive approach
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "GB",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"first_name": "John",
"family_name": "Doe",
"date_of_birth": "1990-05-14",
"nationality": "IN",
"citizenship": "India",
"id_number": "ZU1234567",
"issue_date": "2021-01-15",
"expiry_date": "2031-01-14",
"issuing_country": "GB",
"issuing_authority": "Home Office",
"attachments": "ns-url-string"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### United States
#### United States — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "US",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "123-45-6789"
},
"address_details": {
"house_number": "123",
"street": "Main Street"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "US",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"national_id": "123-45-6789"
},
"address_details": {
"house_number": "123",
"street": "Main Street"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Onsite — Response — Active approach — provider: ca-dmv
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-us-ca-dmv-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"gender": "M",
"date_of_birth": "1978-03-13",
"document_portrait": "ns-url-string"
},
"address_details": {
"city": "Los Angeles",
"state": "CA",
"subdivision": "Los Angeles County",
"postalCode": "90001",
"country": "US",
"full_address": "123 Main St, Los Angeles, CA 90001, US"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Onsite — Response — Active approach — provider: lawallet
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-us-lawallet-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"family_name": "Doe",
"middle_name": "Robert",
"gender": "M",
"date_of_birth": "1978-03-13",
"document_portrait": "ns-url-string"
},
"address_details": {
"city": "Baton Rouge",
"state": "LA",
"subdivision": "East Baton Rouge Parish",
"postalCode": "70802",
"country": "US",
"full_address": "456 Government St, Baton Rouge, LA 70802, US"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Onsite — Response — Active approach — provider: clear
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-us-clear-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"family_name": "Doe",
"middle_name": "Robert",
"gender": "M",
"nationality": "US",
"date_of_birth": "1978-03-13",
"driving_id": "D1234567",
"expiry_date": "2030-12-31",
"document_portrait": "ns-url-string"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Onsite — Response — Active approach — provider: samsung-wallet
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"face": {
"proof": "ns-url-string"
},
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-us-samsung-wallet-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"gender": "M",
"date_of_birth": "1978-03-13",
"document_portrait": "ns-url-string",
"selfie": "ns-url-string"
},
"address_details": {
"city": "San Jose",
"state": "CA",
"subdivision": "Santa Clara County",
"postalCode": "95110",
"country": "US",
"full_address": "789 Tech Ave, San Jose, CA 95110, US"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Offsite — Response — Active approach — provider: ca-dmv
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-us-ca-dmv-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"gender": "M",
"date_of_birth": "1978-03-13",
"document_portrait": "ns-url-string"
},
"address_details": {
"city": "Los Angeles",
"state": "CA",
"subdivision": "Los Angeles County",
"postalCode": "90001",
"country": "US",
"full_address": "123 Main St, Los Angeles, CA 90001, US"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Offsite — Response — Active approach — provider: lawallet
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-us-lawallet-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"family_name": "Doe",
"middle_name": "Robert",
"gender": "M",
"date_of_birth": "1978-03-13",
"document_portrait": "ns-url-string"
},
"address_details": {
"city": "Baton Rouge",
"state": "LA",
"subdivision": "East Baton Rouge Parish",
"postalCode": "70802",
"country": "US",
"full_address": "456 Government St, Baton Rouge, LA 70802, US"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Offsite — Response — Active approach — provider: clear
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-us-clear-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"family_name": "Doe",
"middle_name": "Robert",
"gender": "M",
"nationality": "US",
"date_of_birth": "1978-03-13",
"driving_id": "D1234567",
"expiry_date": "2030-12-31",
"document_portrait": "ns-url-string"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Offsite — Response — Active approach — provider: samsung-wallet
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"face": {
"proof": "ns-url-string"
},
"verification_report": "ns-url-string",
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"email": null,
"customer_unique_id": "customer-us-samsung-wallet-001",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"gender": "M",
"date_of_birth": "1978-03-13",
"document_portrait": "ns-url-string",
"selfie": "ns-url-string"
},
"address_details": {
"city": "San Jose",
"state": "CA",
"subdivision": "Santa Clara County",
"postalCode": "95110",
"country": "US",
"full_address": "789 Tech Ave, San Jose, CA 95110, US"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### United States — Onsite — Response — Active approach — provider: new-york-mobile-id
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"country": "US",
"proofs": {
"access_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"verification_report": "ns-url-string"
},
"email": null,
"customer_unique_id": "customer-us-new-york-mobile-id-001",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Robert Doe",
"first_name": "John",
"family_name": "Doe",
"suffix": "Jr",
"date_of_birth": "1978-03-13",
"gender": "M",
"id_number": "NY1234567",
"issue_date": "2022-05-01",
"expiry_date": "2030-05-01",
"issuing_country": "US",
"issuing_authority": "NY DMV",
"document_portrait": "ns-url-string"
},
"address_details": {
"city": "New York",
"subdivision": "New York County",
"postalCode": "10001",
"country": "US",
"full_address": "350 5th Ave, New York, NY 10001, US"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Uruguay
#### Uruguay — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "UY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "12345678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Uruguay — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "UY",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"dob": "1978-03-13",
"national_id": "12345678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Venezuela
#### Venezuela — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"national_id": "12345678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Venezuela — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VE",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John",
"national_id": "12345678"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Vietnam
#### Vietnam — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"dob": "1978-03-13"
},
"contact_details": {
"phone_number": "841664223299"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Vietnam — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VN",
"verification_data": {
"ekyc": {
"personal_details": {
"full_name": "John Doe",
"dob": "1978-03-13"
},
"contact_details": {
"phone_number": "841664223299"
},
"field_match_results": {
"key_1": "{{match_status}}",
"key_2": "{{match_status}}"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Vietnam — Onsite — Response — Passive approach
```json
// the fields returned depend on the source that answered
// type: VN-CHASSIS
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VN",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "51G12345T",
"chassis_number": "CHASSIS1234567890",
"engine_number": "ENGINE123456",
"make": "HYUNDAI",
"model": "ACCENT",
"year_of_manufacture": "2020",
"stamp_number": "VA-1234567",
"inspection_unit": "1234A",
"valid_until": "14/01/2028"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
// type: VN-STAMP
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VN",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "51G12345T",
"chassis_number": "CHASSIS1234567890",
"engine_number": "ENGINE123456",
"make": "HYUNDAI",
"overall_dimensions": "4000x1700x1500 mm",
"kerb_weight": "1000 kg",
"gross_vehicle_weight": "1500 kg",
"seating_capacity": "4",
"axles_and_wheelbase": "2; 2500",
"stamp_number": "VA-1234567",
"inspection_date": "15/01/2026",
"inspection_unit": "1234A",
"valid_until": "14/01/2028",
"road_fee_paid_date": "15/01/2026",
"road_fee_receipt_number": "AB-00X/1234567",
"road_fee_paid_until": "14/01/2028"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Vietnam — Offsite — Response — Passive approach
```json
// the fields returned depend on the source that answered
// type: VN-CHASSIS
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VN",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "51G12345T",
"chassis_number": "CHASSIS1234567890",
"engine_number": "ENGINE123456",
"make": "HYUNDAI",
"model": "ACCENT",
"year_of_manufacture": "2020",
"stamp_number": "VA-1234567",
"inspection_unit": "1234A",
"valid_until": "14/01/2028"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
// type: VN-STAMP
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "VN",
"verification_data": {
"ekyc": {
"vehicle_details": {
"plate_number": "51G12345T",
"chassis_number": "CHASSIS1234567890",
"engine_number": "ENGINE123456",
"make": "HYUNDAI",
"overall_dimensions": "4000x1700x1500 mm",
"kerb_weight": "1000 kg",
"gross_vehicle_weight": "1500 kg",
"seating_capacity": "4",
"axles_and_wheelbase": "2; 2500",
"stamp_number": "VA-1234567",
"inspection_date": "15/01/2026",
"inspection_unit": "1234A",
"valid_until": "14/01/2028",
"road_fee_paid_date": "15/01/2026",
"road_fee_receipt_number": "AB-00X/1234567",
"road_fee_paid_until": "14/01/2028"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
### Zimbabwe
#### Zimbabwe — Onsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ZW",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"gender": "Male",
"national_id": "23456789E32",
"dob": "1994-04-03"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
#### Zimbabwe — Offsite — Response
```json
{
"reference": "{{reference}}",
"event": "verification.accepted",
"email": null,
"country": "ZW",
"verification_data": {
"ekyc": {
"personal_details": {
"first_name": "John",
"last_name": "Doe",
"gender": "Male",
"national_id": "23456789E32",
"dob": "1994-04-03"
}
}
},
"verification_result": {
"ekyc": {
"ekyc": 1
}
}
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/eidv_pro/declined_reasons.md
When a verification request involving eIDV Pro service is declined, the following reasons are presented to the end user or client.
Status Code | Description
------------- | --------------
SPDR241 | The verification process was canceled by the user.
SPDR242 | Request was canceled as a result of a new verification request being received for the user.
SPDR243 | The Verification was interrupted due to connectivity issues.
SPDR244 | User attempted to use an incompatible version of BankID.
SPDR245 | The BankID app could not be found on the user device or Failed to scan the QR code.
SPDR246 | The BankID request has been declined due to request timeout.
SPDR247 | The service is temporarily unavailable.
SPDR266 | User not found in the database.
SPDR299 | Records indicate that the user is a minor.
SPDR304 | The entered one-time password(OTP) is incorrect.
SPDR305 | Entered personal details do not match with the extracted ID document details.
SPDR311 | The ICP data validation was unsuccessful.
SPDR324 | Records indicate that the user is a minor.
SPDR325 | User found in the PEP List.
SPDR326 | User found in the Sanctions List.
SPDR327 | Records indicate that the user is deceased.
SPDR328 | CPF Number not found in the database.
SPDR329 | User has been receiving social benefits.
SPDR330 | User found in the Impeditors List.
SPDR331 | Captured facial image does not match the image retrieved from the source.
SPDR345 | The data fetched from the QR code does not match the data retrieved from the database.
SPDR355 | User is not active in the government database.
SPDR396 | Vehicle Registration not found or invalid in database.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/facial_biometrics/how_it_works.md
AI-powered biometric technology that identifies individuals by comparing and analyzing end user facial features. Implement Shufti's liveness verification solution to confirm the presence of an actual person in front of the camera. This solution performs a comprehensive 3D depth analysis of the end user's facial features, effectively identifying potential risks such as face mask attacks, deep fakes, AI-generated face images, static face images, and other similar threats. This ensures enhanced security and authenticity in end user verification processes. Shufti’s facial biometric verification can be used independently or with other KYC services according to client requirements.
The end user aligns their face in front of the device's camera, following prompts to perform subtle facial gestures and movements as instructed. These actions are crucial for completing the verification process, ensuring that the user's identity is accurately confirmed through real-time biometric analysis.
## Steps for Face verification
- User initiates verification by facing the camera for real-time liveness confirmation.
- System auto-captures the best frame for optimal biometric analysis.
- Verification concludes, ensuring secure and accurate identity confirmation.
**Info**
Facial biometric service can also be used with document verification to match the face of an end user with the face image on the document.
## Steps for Face verification with Document
1. The end user captures or uploads a photo of their ID document, which prominently features their facial image.
2. End user provides a live selfie through their device for real-time liveness confirmation.
3. Shufti matches the user's live selfie with the image on the ID document for biometric analysis.
4. Verification concludes, ensuring secure and accurate identity confirmation of the end user.
## Duplicate Account Detection:
Shufti offers a robust Duplicate Account Detection feature designed to identify and prevent multiple registrations from the same account. This advanced functionality is instrumental in verifying the identity of new users while acting as a deterrent against fraud.
### Parameter for Duplicate Account Detection
Parameters | Description
-------------- | --------------
check_duplicate_request | Required: **No** Type: **string** Accepted value: **0 & 1** Default value: **0** This parameter is used to enable the duplicate account detection service. Face mapping technology identify duplicate faces across all customers through which duplicate accounts are detected. The duplicate account detection will be disabled if the value is 0 and enabled if the value is 1.
```json title=face-service-sample-object
{
"face" : {
"proof" : "",
"allow_offline" : "1",
"allow_online" : "1",
"verification_mode": "any",
"check_duplicate_request" : "1"
}
}
```
## Verification Data Parameters
The following parameters are verified in the case of verification accepted or declined
Parameters | Description
------------------------|-------------
duplicate_account_detected | This key object contains information about the duplication status. It can be either true (duplication detected), false (no duplication), or null (invalid picture).
## Facial Age Estimation
Shufti provides an advanced **Facial Age Estimation** feature that uses cutting-edge facial biometrics technology to estimate a user’s age based on their facial features. This feature helps businesses enhance customer onboarding, enforce age-restricted access, and meet regulatory compliance requirements with high accuracy.
The age estimation works by analyzing the user's facial features and predicting an estimated age range. The estimated range includes a **buffer of ±3 years** to account for natural variations in facial features and to increase the accuracy of the result. For example, if the system estimates the age to be 25, the reported range will be **22 to 28**.
This feature can be configured directly from the Shufti Back Office or integrated into your workflow using Shufti's API. When enabled, the system will analyze the user's face and return an estimated age range in the response. If age estimation is not required, you can disable it or omit the relevant fields in the API request.
### How it works:
**Create Verification Link**
- The client creates a verification link by enabling **Facial Biometrics** and **Age Estimation** with an optional age range.
**Initiate Face Verification**
- The user starts face verification and captures or uploads their live face image.
**Age Estimation**
- Shufti performs a liveness check and extracts the estimated age from facial features.
**View Results**
- The estimated age range is shown in the report (if no range is specified).
- If an age range is specified, the report will display:
- **Exact Match** – If the estimated age range falls within the specified range.
- **Partial Match** – If the estimated age range partially overlaps the specified range.
- **No Match** – If the estimated age range falls outside the specified range.
**Note**
If the liveness check fails, the age estimation will not be performed.
## Parameters and Description
Parameters | Description
-------------- | --------------
**age** | Required: **No** Type: **Object** If the age object is passed, the system will estimate the user’s age based on facial features. If no min or max value is specified, the system will still return an estimated age range with a ±3 year buffer.
**age.min** | Required: **No** Type: **Integer** Set the minimum acceptable age for verification. The value must be between 16 and 170. It cannot be equal to the max value.
**age.max** | Required: **No** Type: **Integer** Set the maximum acceptable age for verification. The value must be between 16 and 170. It cannot be equal to the min value.
### Facial Age Estimation Sample Object
**Sample Request Payload**
```json title=facial-sample-object
{
"face": {
"proof": "",
"age" : {
"min" : "",
"max" : ""
}
}
}
```
**Sample Response Payload**
Previously, the face key in the verification_result was represented as an integer:
```json title=facial-sample-object
{
"verification_result": {
"face": 1
}
}
```
When age parameter is used in face service, the face key has been converted from an integer to an object. It now contains multiple attributes, such as face and age:
```json title=facial-age-estimation-sample-object
{
"verification_result": {
"face": {
"face": 1,
"age": 1
}
}
}
```
This change allows for more detailed information within the face key, enabling the inclusion of additional parameters related to facial verification.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/facial_biometrics/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification.
## Parameters and Description
Parameters | Description
-------------- | --------------
proof | Required: **No** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB** Provide valid **BASE64** encoded string. Leave empty for an on-site verification.
allow_offline | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter allows the user to upload their selfie in case of non-availability of a functional webcam. If the value is 0, users can only perform Face Verification with the camera only.
allow_online | Required: **No** Type: **string** Accepted Values: **0, 1** Default-Value: **1** This parameter allows the users to take their selfie in real-time when the internet is available. If the value: 0 users can upload already captured selfie. **Note:** if **allow_offline:** 0 priority will be given to **allow_offline**.
check_duplicate_request | Required: **No** Type: **string** Accepted Values: **0, 1** Default-Value: **0** This parameter is used to enable the duplicate account detection service. Face mapping technology identifies duplicate faces across all customers through which duplicate accounts are detected. The duplicate account detection will be disabled if the value is 0 and enabled if the value is 1.
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proofs that can be used for verification. In the "video_only" mode, Shufti's client is restricted to submitting "Base64" encoded videos, which must be in the **MP4** or **MOV** format. The "any" mode allows a combination of images and videos to be submitted as proofs for verification. If there is a conflict between the service level key and the general level key, priority is assigned to the service level key.
age | Required: **No** Type: **object** This key allows clients to get an estimated value of the user’s age based on their facial biometrics. The detected age must fall within the defined min and max range; otherwise, the verification will be declined. **Example 1** { "min" : "17", "max" : "18"} **Example 2** { "min" : "18", "max" : "60"}
[](https://god.gw.postman.com/run-collection/9386910-b18f98bd-5a4b-46c7-8773-0b90dafdd3ce?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-b18f98bd-5a4b-46c7-8773-0b90dafdd3ce%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=face-service-sample-object
{
"face": {
"proof": "",
"allow_offline": "1",
"allow_online": "1",
"verification_mode": "any",
"check_duplicate_request": "1",
"age" : ""
}
}
```
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/facial_biometrics/offsite.md
In the offsite verification process, Shufti's clients are solely responsible for gathering all necessary proof from the end user and then submitting it to Shufti for verification.
## Parameters and Descriptions
Parameters | Description
-------------- | --------------
proof | Required: **Yes** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB** Provide valid **BASE64** encoded string.
check_duplicate_request | Required: **No** Type: **string** Accepted Values: **0, 1** Default-Value: **0** This parameter is used to enable the duplicate account detection service. Face mapping technology identifies duplicate faces across all customers through which duplicate accounts are detected. The duplicate account detection will be disabled if the value is 0 and enabled if the value is 1.
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proofs that can be used for verification. In the "video_only" mode, Shufti's client is restricted to submitting "Base64" encoded videos, which must be in the **MP4** or **MOV** format. The "any" mode allows a combination of images and videos to be submitted as proofs for verification. If there is a conflict between the service level key and the general level key, priority is assigned to the service level key.
age | Required: **No** Type: **object** This key allows clients to get an estimated value of the user’s age based on their facial biometrics. The detected age must fall within the defined min and max range; otherwise, the verification will be declined. **Example 1** { "min" : "16", "max" : "17"} **Example 2** { "min" : "18", "max" : "60"}
[](https://god.gw.postman.com/run-collection/9386910-824cd03b-387a-4813-a9b1-93030e6e4272?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-824cd03b-387a-4813-a9b1-93030e6e4272%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=face-service-sample-object
{
"face": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"allow_offline": "1",
"check_duplicate_request": "1",
"verification_mode": "any",
"age" : ""
}
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/facial_biometrics/declined_reasons.md
When a verification request involving Facial Biometrics service is declined, the following reasons are presented to the end user or client.
Status Code
Description
Elevated Fraud Risk
SPDR01
Face could not be verified.
SPDR03
Image is altered or photoshopped.
SPDR04
Copy of the image found on the web.
SPDR37
Face liveness detection failed.
SPDR38
Face doesn't match the face image uploaded at the time of signup.
SPDR59
Face proof is taken from another screen.
SPDR60
Face proof is taken from the internet.
SPDR98
Face image is cropped or edited.
SPDR109
Uploaded image is found on the internet.
SPDR218
Face proof is edited using filters.
SPDR259
The provided face image is edited.
SPDR278
Face proof is altered or photoshopped.
SPDR287
Duplicate account is detected.
SPDR333
Face proof is AI generated or manipulated.
SPDR354
Stream injection or virtual camera activity detected during verification.
SPDR362
The face image does not match the image retrieved from the government database.
Invalid Facial Image
SPDR58
Face in the image is wearing glasses.
SPDR62
Face proof is a screenshot.
SPDR144
Hat or mask is found on the face.
SPDR233
Face proof has a solid color in the background.
SPDR268
The provided image is corrupted.
SPDR280
Eyes not visible and are covered with glasses.
SPDR281
Multiple faces detected in face proof.
SPDR282
Uploaded document is a test ID.
Image Quality Deficiency
SPDR96
Face is not visible due to low lighting.
SPDR97
Face image is blurry.
SPDR219
The uploaded face picture is blurry and not clearly visible.
SPDR231
The face picture on the provided document is not clearly visible.
SPDR279
Face proof is blurry and not clear for verification.
SPDR291
Entire face is not clear in the provided face proof.
Facial Data Missing
SPDR19
Face could not be detected in image, please upload an image again with your face clearly visible.
SPDR99
Face is not found on the document.
SPDR101
Face is hidden on the document.
SPDR168
Face is not detected in the uploaded image.
SPDR264
Face image is not present on the document.
SPDR277
Closed eyes are detected.
SPDR283
Face could not be detected.
Previous Verification Mismatch
SPDR338
The current face does not match the previously verified face against this customer ID.
SPDR339
The current face does not match the face on the previously verified document against this customer ID.
Insufficient Submission
SPDR43
Camera is not accessible for verification.
SPDR274
End user did not submit complete verification proofs or data.
SPDR276
The user does not want to share camera or documents.
SPDR284
The complete verification data was not provided by the user.
Incomplete Verification
SPDR241
The verification process was canceled by the user.
---
# Sample Face Documents
Source: https://developers.shuftipro.com/docs/user_identification_authentication/facial_biometrics/sample_face_documents.md
The below-provided sample face images for the Face biometric service can be used either during the testing or the integration process. This facilitates the technical teams to use dummy face images in order to test out the requests, responses, callbacks, etc without having them upload/provide their real face images.
**Caution**
These test samples can only be used for test accounts, not for the production account.
---
# How it works
Source: https://developers.shuftipro.com/docs/user_identification_authentication/age_verification/how_it_works.md
Verify end users' age to comply with regulatory requirements and protect minors from age-restricted content, products, or services. Shufti offers a comprehensive age verification solution designed to help businesses meet compliance obligations while maintaining high conversion rates and user experience.
The age verification process includes the following steps:
- **User Data Collection:** End user submits the required proof based on the selected verification method - a facial image for age estimation, identity document images for document verification, or personal details for database lookup.
- **Age Verification:** Shufti processes the submitted proof and determines the user's age using the configured method, then compares it against the merchant's minimum and maximum age requirements.
- **Verification Results:** The verification results are generated and securely stored in Shufti's back office. Results are delivered to the merchant via callback notification with relevant data based on privacy settings.
## Age verification methods
Shufti's age verification service offers three distinct verification methods that can be configured independently or in combination to meet specific business requirements and user experience goals.
### Facial Age Estimation
Facial Age Estimation leverages advanced artificial intelligence and machine learning algorithms to analyze facial features and estimate the user's age. This method provides a fast, seamless verification experience without requiring users to upload identity documents.
#### How Facial Age Estimation Works
- **Image Capture:** The end user captures a facial photograph or video using their device's camera. The system guides users to ensure proper lighting, positioning, and image quality.
- **Facial Feature Analysis:** Shufti's AI algorithms analyze over 100 facial vectors and biometric markers, including skin texture, facial structure, wrinkle patterns, eye characteristics, and other age-related indicators.
- **Age Estimation:** Based on the facial analysis, the system generates an estimated age for the user. This estimation represents the most likely age based on the analyzed features.
- **Threshold Comparison:** The calculated age range is compared against the merchant's configured minimum and maximum age requirements.
- **Fallback Option (if enabled):** If the verification is declined or partially matched, and fallback is enabled, the user is offered the option to verify their age using ID Document Age Check for a more definitive result.
### ID Document Age Check
ID Document Age Check provides the most accurate and authoritative method of age verification by authenticating government-issued identity documents and extracting the exact date of birth. This method combines document authentication technology with optical character recognition (OCR) to deliver compliance-grade age verification.
#### How ID Document Age Check Works
- **Document Selection:** The end user selects their document type (passport, national ID card, and driver's license) from the supported options configured by the merchant.
- **Document Capture:** The user captures or uploads clear images of their identity document. For certain document types, both front and back images may be required. The system provides real-time guidance to ensure image quality, proper lighting, and complete document visibility.
- **Document Authentication:** Shufti's advanced document authentication engine performs multiple security checks.
- **Data Extraction:** Using advanced OCR technology, the system extracts key information from the document.
- **Age Calculation:** The system calculates the end user's current age based on the extracted date of birth and compares it against the merchant's configured minimum and maximum age requirements.
- **FFacial Liveness Check (if enabled):** When facial liveness is enabled, the system performs additional verification:
- **Selfie Capture:** User captures a live selfie or video
- **Liveness Detection:** 3D liveness algorithms detect spoofing attempts using photos, videos, or masks
- **Face Match:** The live selfie is biometrically compared against the photograph on the submitted document
- **Match Score:** A confidence score (0-100) indicates how closely the selfie matches the document photo
- **Threshold Validation:** If the match score falls below the defined threshold, verification is declined
### Authoritative Database Lookup
Authoritative Database Lookup offers seamless age verification by querying trusted databases, including government registries, credit bureaus, and other authoritative data sources. This method eliminates the need for document uploads while maintaining high accuracy through official records.
#### How Authoritative Database Lookup Works
- **Information Collection:** The end user provides personal identifying information required for database queries. Depending on the country and data source.
- **Data Source Selection:** Based on the user's country and the information provided, Shufti automatically selects the most appropriate authoritative data sources.
- **Database Query:** Shufti submits a secure, encrypted query to the selected authoritative databases. The query searches for records matching the user's provided information.
- **Record Matching:** The database system performs sophisticated matching algorithms to identify records that correspond to the user:
- **Exact Match:** All provided information matches database records exactly
- **Fuzzy Match:** Advanced algorithms account for variations in name spelling, formatting differences, or minor data inconsistencies
- **Multi-Source Validation:** Cross-references information across multiple databases for higher confidence
- **Data Retrieval and Validation:** If a matching record is found, date of birth is retrieved and additional attributes are validated.
- **Age Calculation:** The system calculates the current age based on the date of birth retrieved from the authoritative database and compares it against the merchant's configured age requirements.
- **Fallback Option (if enabled):** If the user receives a "Not Found" result and fallback is enabled, they are offered the option to complete verification using ID Document Age Check.
### Privacy Preserving Age Check
Privacy Preserving Age Check is a data minimization feature that can be enabled across all age verification methods to protect end-user privacy while still meeting age verification requirements. This feature is designed to comply with data protection regulations such as GDPR, CCPA, and other privacy frameworks.
#### How It Works
- **Verification Process:** The age verification process proceeds normally using any of the three verification methods (Facial Age Estimation, ID Document Age Check, or Authoritative Database Lookup).
- **Data Extraction:** During verification, Shufti extracts the necessary information to determine the user's age.
- **Age Verification:** The system performs the age verification by comparing the user's age against the configured minimum and maximum requirements, generating a verification decision.
- **Data Filtering:** When privacy preserving mode is enabled, Shufti applies strict data filtering before sharing results with the merchant:
- **Data Retention:** With privacy-preserving mode enabled, merchants receive only the calculated age assurance result. Shufti does not retain raw end-user verification data or personally identifiable verification artifacts after the verification process is complete, except for limited metadata, risk signals, and operational records required for security, fraud prevention, compliance, auditing, and service integrity purposes.
The following categories of data may be retained as part of the verification process:
- **Biometric-derived risk signals:** Liveness scores, face-match scores, and manipulated media indicators
- **Identity document metadata:** Document type and applied verification checks
- **Age assurance results:** Verification status and age threshold validation results
- **End-user locale information:** Country of residence and preferred language
- **Verification outcomes and processing codes:** Decline reasons, validation failures, fraud indicators, and error codes
- **Device and platform metadata:** Device, browser, operating system, application version, and IP-derived signals
- **Verification lifecycle metadata:** Request creation, submission, completion, and expiration timestamps
- **Merchant integration metadata:** Configured callback and redirect URLs
- **Automated decisioning outputs:** AI/ML-generated outcomes, confidence scores, and model reference identifiers
- **Verification workflow interaction logs:** Interaction events and system activity logs for audit, security, compliance, fraud prevention, and troubleshooting purposes
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/age_verification/onsite.md
With Onsite verification, Shufti will directly interact with the end user, managing data collection to facilitate age verification. Verification status updates are communicated to the client via callback URL and the Shufti back office.
## Request Parameters
The parameters mentioned below are applicable for Onsite age verification.
### Age Verification Object
Parameters | Description
-------------- | --------------
is_age_verification | Required: **Yes** Type: **String** Accepted Values: **"0" (No), "1" (Yes)** Default Value: **"0"** Enables age verification.
min | Required: **Yes** Type: **string** Minimum Value: **16** Examples: **18, 21, 16** Minimum acceptable age for verification.
max | Required: **No** Type: **string** Examples: **65, 25** Maximum acceptable age for verification. Leave empty for no upper limit.
verification_method | Required: **Yes** Type: **string** Accepted Values: **facial_age_estimation, document_age_check, database_lookup** The age verification method to use.
age_buffer | Required: **Conditional** Type: **string** Accepted Values: **3, 5, 7, 10** Default Value: **5** Age buffer for facial age estimation (margin of error); required if `verification_method` is `facial_age_estimation`.
facial_liveness_check | Required: **Conditional** Type: **string** Accepted Values: **0 (No), 1 (Yes)** Default Value: **0** Enable facial liveness check for document verification. Used when `verification_method` is `document_age_check`.
allow_fallback | Required: **No** Type: **string** Accepted Values: **0 (No), 1 (Yes)** Default Value: **0** Allow fallback to alternative verification methods if the primary method fails or returns inconclusive results. For `facial_age_estimation`: Falls back to ID Document Age Check For `database_lookup`: falls back to ID Document Age Check.
privacy_preserving_age_check | Required: **No** Type: **string** Accepted Values: **0 (No), 1 (Yes)** Default Value: **1** Enable privacy-preserving mode for minimal data extraction. Only calculated age shown to the merchant.
## Onsite Integration
With Onsite verification, Shufti will directly interact with the end user, managing data collection to facilitate age verification. Verification status updates are communicated to the client via callback URL and the Shufti back office.
### Request Parameters
- For Facial Age Estimation: [Facial biometrics Parameters](/docs/user_identification_authentication/facial_biometrics/onsite)
- For Document Age Estimation:[Document Verification Parameters](/docs/user_identification_authentication/document_verification/onsite)
- For eKYC Age Estimation: [eIDV Parameters](/docs/user_identification_authentication/eidv_pro/onsite)
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/age_verification/offsite.md
In Offsite verification, the client is responsible for collecting the required proofs and information from the end user and submitting it to Shufti for verification.
## Request Parameters
The parameters mentioned below are applicable for offsite age verification.
### Age Verification Object
Parameters | Description
-------------- | --------------
is_age_verification | Required: **Yes** Type: **String** Accepted Values: **"0" (No), "1" (Yes)** Default Value: **"0"** Enables age verification.
min | Required: **Yes** Type: **string** Minimum Value: **16** Examples: **"18", "21", "16"** Minimum acceptable age for verification.
max | Required: **No** Type: **string** Examples: **"65", "25"** Maximum acceptable age for verification. Leave empty for no upper limit.
verification_method | Required: **Yes** Type: **string** Accepted Values: **facial_age_estimation, document_age_check, database_lookup** The age verification method to use.
age_buffer | Required: **Conditional** Type: **string** Accepted Values: **"3", "5", "7", "10"** Default Value: **"5"** Age buffer for facial age estimation (margin of error). Required if `verification_method` is `facial_age_estimation`.
verify_age_only | Required: **Conditional** Type: **string** Accepted Values: **"0" (No), "1" (Yes)** Default Value: **"0"** For database lookup only. Show only age confirmation to merchants, other details concealed. Used when `verification_method` is `database_lookup`.
privacy_preserving_age_check | Required: **No** Type: **string** Accepted Values: **"0" (No), "1" (Yes)** Default Value: **"1"** Enable privacy-preserving mode for minimal data extraction. Only calculated age shown to the merchant.
## Offsite Integration
In Offsite verification, the client is responsible for collecting the required proofs and information from the end user and submitting it to Shufti for verification.
### Request Parameters
- For Facial Age Estimation: [Facial biometrics Parameters](/docs/user_identification_authentication/facial_biometrics/offsite)
- For Document Age Estimation: [Document Verification Parameters](/docs/user_identification_authentication/document_verification/offsite)
- For eKYC Age Estimation: [eIDV Parameters](/docs/user_identification_authentication/eidv_pro/offsite)
---
# How it works
Source: https://developers.shuftipro.com/docs/user_identification_authentication/one_to_one_authentication/how_it_works.md
1:1 authentication is a biometric identity verification process in which a person’s face is compared against a single, pre-enrolled reference record associated with a unique identifier. The purpose of this method is to confirm that the person attempting authentication is genuinely the same individual who was previously onboarded.
### Step 1: User Enrollment
The 1:1 authentication process begins with a user securely enrolling their facial data.
During this stage:
- The user captures a selfie or facial image using a trusted device.
- The system performs quality checks to ensure the image meets required standards (lighting, clarity, face position, and liveness).
- Advanced facial recognition algorithms extract biometric features from the image and convert them into a secure facial template and associate them against a unique customer identifier.
- The facial template and the unique identifier are securely stored together as a reference record.
### Step 2: User Authentication
When the user later attempts to authenticate:
- The request is initiated by passing the customer identifier of the user.
- The end user journey begins with a live facial image capture.
- Liveness detection mechanisms are applied to ensure the presence of a real person and prevent spoofing attempts using photos, videos, or masks.
- The live facial template is matched directly against the enrolled facial template.
- If the Liveness checks is passed and the facial image matches with the stored template the user is authenticated successfully.
## Key Benefits of 1:1 Authentication
- **High Accuracy:** Direct matching against a single reference reduces false positives and false negatives.
- **Faster Performance:** No database-wide searches, enabling near-instant verification.
- **User-Friendly Experience:** Simple selfie-based authentication without passwords or physical documents.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/one_to_one_authentication/onsite.md
With Onsite verification, Shufti will directly interact with the end user, managing data collection to facilitate 1:1 authentication. Verification status updates are communicated to the client via callback URL and the Shufti back office.
## Request Parameters
The parameters mentioned below are applicable for Onsite 1:1 authentication.
### 1:1 Authentication Object
Parameters | Description
-------------- | --------------
customer_unique_id | Required: **Yes** Type: **String** The customer_unique_id is a unique identifier used to distinguish individual users in the system. The user’s facial template is stored against the unique customer_unique_id.
face_authentication | Required: **Yes** Type: **string** Accepted Values: **"enroll", "authenticate"** If set to "enroll", the user's face will be enrolled when facial liveness is passed. If set to "authenticate", the user's face will be matched against the stored template for authentication.
proof | Required: **No** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB** Provide valid BASE64 encoded string. Leave empty for an on-site verification.
```json title=one-to-one-authentication-sample-object
{
"customer_unique_id":"ABCDEF",
"face": {
"proof": "",
"face_authentication":"authenticate"
}
}
```
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/one_to_one_authentication/offsite.md
In Offsite verification, the client is responsible for collecting the required proofs and information from the end user and submitting it to Shufti for verification.
## Request Parameters
The parameters mentioned below are applicable for offsite 1:1 authentication.
### 1:1 Authentication Object
Parameters | Description
-------------- | --------------
customer_unique_id | Required: **Yes** Type: **String** The customer_unique_id is a unique identifier used to distinguish individual users in the system. The user’s facial template is stored against the unique customer_unique_id.
face_authentication | Required: **Yes** Type: **string** Accepted Values: **"enroll", "authenticate"** If set to "enroll", the user will be enrolled when facial liveness is passed. If set to "authenticate", the user's facial image is matched against the face template stored at the time of enrollment.
proof | Required: **Yes** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB** Provide valid BASE64 encoded string. Leave empty for an on-site verification.
```json title=one-to-one-authentication-sample-object
{
"customer_unique_id":"ABCDEF",
"face": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"face_authentication":"authenticate"
}
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/one_to_one_authentication/declined_reasons.md
When a verification request involving 1:1 Authentication is declined, the following reasons are presented to the end user or client.
Status Code | Description
-------------- | --------------
SPDR343 | No matching record found for the provided unique identifier.
SPDR344 | This Customer ID is already enrolled. Please use a different Customer ID.
**Info**
`SPDR343` is returned when `face_authentication` is set to **authenticate** but no enrolled record exists for the supplied `customer_unique_id`. `SPDR344` is returned when `face_authentication` is set to **enroll** but that `customer_unique_id` already has an enrolled facial template.
---
# How it works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/document_verification/how_it_works.md
Verify the authenticity of end user’s ID documents to prevent fraud. Shufti offers a robust and secure solution for ID-based end user verification, designed to establish a strong defense against potential fraudulent activities. Protect clients against fraud, forgery, data tampering, and unauthorized photo replacements while also maintaining high end user conversion rates.
The document verification process includes the following steps:
- **Document Upload:** End user captures/uploads an image of their ID document.
- **Authenticity Check:** Shufti verifies the document’s images for authenticity, image integrity, and data validity.
- **Verification Results:** The outcomes of the verification process are recorded and stored securely in the Shufti’s back office.
## ID Document Checks
Shufti's ID document verification includes but is not limited to the following checks:
- The document must be valid and not expired.
- All details on the document must be clear and legible.
- Essential information such as Name, Date of Birth, and ID Number must be present.
- The end user's photograph must be visible on the document.
- The document must be original and unaltered in any form.
## Document Verification Settings
### Types of proof
Clients can choose what type of verification proofs they want to collect from the end user for verification:
There are two types of proof to select from
- **Image only**: This option permits the collection of only image-based proof, focusing solely on photographic evidence.
- **Video only**: Selecting this enables the collection of video evidence, which is essential for verifying live presence or real-time actions.
- **Both**: By choosing this option, users can provide a comprehensive set of proofs, encompassing both image and video evidence, for a more robust verification process.
### Document Types
The client has the flexibility to tailor the range of document types permitted for the verification process, enabling a customised approach to suit specific verification needs. By default, only the ID card is allowed for verification. Checkout [supported documents for verification here](/docs/coverage/documents#document-verification).
### Data Extraction & Verification
Enabling this feature utilizes advanced OCR (Optical Character Recognition) technology, which enables the system to automatically extract and verify all the required data points from the proofs submitted by end users.
The following data points/parameters are verified in Document service:
Parameters | Description
------------------------|-------------
name | This key object contains name information extracted from the document.
name.first_name | This key contains the first name of the end-user extracted from the document proof.
name.middle_name | This key contains the end user’s middle name written on the document.
name.last_name | This key contains the end user’s last name written on the document.
dob | This key contains the end user’s date of birth written on the document.
age | This key contains the age of the end user for age verification.
issue_date | This key contains the issue date of the document proof.
expiry_date | This key contains the expiry date of the document proof.
document_number | Contains the document number extracted from the document proof provided by the end-user.
selected_type | This key contains the type of document proof selected by the end-user.
supported_types | This key contains all types of supported document proofs.
gender | This key contains the gender of the end-user listed on the document proof.
face_match_confidence | This key contains a confidence score based on how accurately the end user’s face matches with their photo on the document proof. The value of this key will be between 0 to 100.**Examples:** 30, 40, 50, 60, 70
full_address | This key contains the end-user's full address as listed on the document.
nationality | This key contains the nationality as listed on the document proof, represented by the ISO2 country code.
### Document Authenticity Checks
Upgrade your document authenticity checks to meet your unique business needs by enabling the acceptance of a wider variety of document types that are typically not allowed in standard procedures. By default, none of the documents mentioned in the following image are allowed.
#### Verification Instructions
```json title=document-instruction-parameters
{
"document":{
"proof":"",
"supported_types":["id_card","driving_license","passport"],
"verification_instructions" : {
"allow_paper_based" : "1",
"allow_photocopy" : "1",
"allow_colorcopy" : "1",
"allow_black_and_white": "1",
"allow_laminated" : "1",
"allow_screenshot" : "1",
"allow_cropped" : "1",
"allow_scanned" : "1",
"allow_e_document" : "1",
"allow_handwritten_document" : "1"
}
}
}
```
```json title=document_two-instruction-parameters
{
"document_two": {
"proof":"",
"supported_types":["id_card","driving_license","passport"],
"verification_instructions" : {
"allow_paper_based" : "1",
"allow_photocopy" : "1",
"allow_colorcopy" : "1",
"allow_black_and_white": "1",
"allow_laminated" : "1",
"allow_screenshot" : "1",
"allow_cropped" : "1",
"allow_scanned" : "1",
"allow_e_document" : "1",
"allow_handwritten_document" : "1"
}
}
}
```
**Info**
These parameters can be used with Document, Document Two.
| Parameters | Description |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| allow_paper_based | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept paper-backed documents for verification. |
| allow_photocopy | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **0** If this string is assigned value “1” then Shufti will accept photocopied documents for verification. |
| allow_colorcopy | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept color copied documents for verification. **Note:** If **allow_photocopy = "1"** then this instruction will be ignored. |
| allow_black_and_white | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **0** If this string is assigned value “1” then Shufti will accept black and white documents for verification. **Note:** If **allow_photocopy = "1"** then this instruction will be ignored. |
| allow_laminated | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept laminated documents for verification. |
| allow_screenshot | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **0** If this string is assigned value “1” then Shufti will accept screenshot documents for verification. |
| allow_cropped | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept cropped documents for verification. |
| allow_scanned | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept scanned documents for verification. |
| allow_e_document | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept E-Documents for verification. |
| allow_handwritten_document | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **0** If this string is assigned value “1” then Shufti will accept handwritten documents for verification. |
**Info**
Shufti has enabled the following parameters **[Paper-based, Laminated, Scanned, Color copy, Cropped, and E-document]** by default for all clients on boarded from September 11, 2023 onwards.
```json title=strict-originality-configuration
{
"verification_mode": "video_only",
"allow_online": "1",
"allow_offline": "0"
}
```
**Info**
To make the originality checks more strict, the recommended practice would be to enable a **live capture option** with **video mode enabled** which would allow you to take a live video in real time. This configuration will help to detect fraudulent documents in real-time.
## Document Two Service
Document Two Service offers a seamless way to authenticate end user's personal details using multiple documents. For example, when compliance procedures require collecting two documents for verification, this service enables the collection of an ID document along with a passport to facilitate verification.
For instance, if you have already verified the date of birth (DOB) and name of the end user from their ID card, you can utilize the Document Two Service to cross-verify these same details on their credit card or passport. This ensures thorough and rigorous checks for added security and confidence in the verification process.
**Info**
The supported documents, onsite and offsite parameters, requests, responses, and decline reasons remain consistent for both the Document and Document Two services.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/document_verification/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification purposes.
## Parameters and Description
Parameters | Description
-------------- | --------------
proof | Required: **No** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB** Provide valid **BASE64** encoded string. Leave empty for an on-site verification.
additional_proof | Required: **No** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB** Provide valid **BASE64** encoded string. Leave empty for an on-site verification.
supported_types | Required: **No** Type: **Array** Document verification has two parameters: proof and additional_proof. If these two are not set or empty, it means that it should be an on-site verification. You can provide any one, two or more types of documents to verify the identity of the user. For example, if you opt for both passport and driving license, then your user will be given an opportunity to verify data from either of these two documents. **Please provide only one document type if you are providing proof of that document with the request**. All supported types are listed here. **Example 1** ["driving_license"] **Example 2** ["id_card", "credit_or_debit_card", "passport"]
dob | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example 1990-12-31
age | Required: **No** Type: **integer/array** Allowed values are integers or an array. The Age parameter allows the client to set a minimum and maximum limit for acceptance of a user. The minimum age is defined as **min** and the maximum is defined as **max** within this object. The minimum accepted value for **min** is **16**. Example **18** For More Details Age
document_number | Required: **No** Type: **string** Maximum: **100 characters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores and commas. Examples 35201-0000000-0, ABC1234XYZ098
issue_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example 2015-12-31
expiry_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example 2025-12-31
gender | Required: **No** Type: **string** Accepted Values: **M,F,O,m,f,o** Provide the gender which is given in the document. **F:** Female **M:** Male **O:** Others Example: M
allow_offline | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter allows the users to upload their document in case of non-availability of a functional webcam. If the value is 0, users can only perform Document Verification with the camera only.
allow_online | Required: **No** Type: **string** Accepted Values: **0, 1** Default-Value: **1** This parameter allows the users to capture their document in real-time when the internet is available. If the value is 0, users can upload already captured documents. **Note:** if **allow_offline:** 0 priority will be given to **allow_offline**
fetch_enhanced_data | Required: **No** Type: **string** Value Accepted: **1** Provide 1 for enabling enhanced data extraction for the document. Shufti provides its customers with the facility of extracting enhanced data features using OCR technology. Now, instead of extracting just personal information input fields, Shufti can fetch all the additional information comprising more than 100 data points from the official ID documents supporting 150 languages. For example height, place_of_birth, nationality, marital_status, weight, etc.(additional charges apply) Extracted data will be returned in object under the key **additional_data** in case of verification.accepted or verification.declined. For Details on additional_data object go to Additional Data.
name | Required: **No** Type: **object** In the name object used in document service, first_name is required if you don't want to perform OCR of the name parameter. Other fields are optional. **Example 1** { "first_name" : "John", "last_name" : "Doe" } **Example 2** { "first_name" : "John", "last_name" : "Doe", "fuzzy_match" : "1"} Parameters for name are listed here.
backside_proof_required | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** If the value of this parameter is set to 1, Shufti will require the end-user to capture/upload both sides of the document to verify the identity. Enabling this parameter will also activate the front and back sides document match feature, which will verify if captured/uploaded front and back sides belong to the same document.
verification_instructions | Required: **No** Type: **Object** This key allows clients to provide additional instruction for the service (document, document_two and address service). Such as if the client wants to allow paper-based, photocopied or laminated documents for verification. **Example** {"allow_paper_based" : "1"} For more details on Instructions Parameters click here.
show_ocr_form | Required: **No** Type: **boolean** Accepted Values: **0, 1** default value: **1** The default value for this is **1**. If this is set to **0**, the user will not be shown the OCR form to validate the extracted information. This can be used within the **Document**, **Document Two**, and **Address service**. This value can also be applied to all services collectively. However, preference will be given to the value set within the service. **Note:** Setting the value at 0 may cause data inaccuracy as the user does not have option to validate the extracted information.
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proofs that can be used for verification. In the "video_only" mode, Shufti's client is restricted to submitting "Base64" encoded videos, which must be in the **MP4** or **MOV** format. The "any" mode allows a combination of images and videos to be submitted as proofs for verification. If there is a conflict between the service level key and the general level key, priority is assigned to the service level key.
process_only_ocr | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** This key enables the OCR-only mode, which is used for extracting text from documents without further verification. When this mode is activated, the service immediately concludes the operation after the required data is extracted. The process completes as soon as the text extraction is finalized, making it ideal for systems that require quick data retrieval from documents without additional verification steps.
full_address | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 chracters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores, hashes and commas.
document_expiry_monitoring | Required: **No** Type: **boolean** This check allows you to monitor the expiry of the documents and receive alerts upon expiry. Enables the merchants to receive an alert when a document expiry is near. Enables the end users to receive alerts when their document expires (if their emails are provided by the merchant). Enables the end users to receive the re-verification links when their documents expire (if their emails are provided by the merchant). **Note:** This option will only be activated if the OCR extraction of expiry date is enabled in document verification.
skip_document_type_and_country_selection | Required: **No** Type: **boolean** When this parameter is set to 1, the KYC flow bypasses the country and document type selection screen, creating a more streamlined user experience. The country and document type will be automatically extracted from the uploaded document. **Note:** When this option is enabled, all countries and supported document types must be allowed, as the end user can upload any document type.
enable_choice_document_eidv | Required: **No** Type: **Boolean** Accepted Values: **0, 1** Allows the end user to choose between Document Verification and eIDV service when both services are selected and this parameter is enabled.**Note:** For this key to work, the [eIDV Pro](/docs/user_identification_authentication/eidv_pro/onsite) service must also be enabled in the request, and both keys **enable_choice_document_eidv** and **signal_for_choice** must be present.
signal_for_choice | Required: **No** Type: **Boolean** Accepted Values: **0, 1** Allows the end user to choose between Document Verification and eIDV service when both services are selected and this parameter is enabled.**Note:** For this key to work, the [eIDV Pro](/docs/user_identification_authentication/eidv_pro/onsite) service must also be enabled in the request, and both keys **enable_choice_document_eidv** and **signal_for_choice** must be present.
**Info**
The supported documents, onsite and offsite parameters, requests, responses, and decline reasons remain consistent for both the Document and Document Two services
## Document Request Object
[](https://god.gw.postman.com/run-collection/9386910-6d0dae61-7795-4c92-b5c6-d17f7e528bf5?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-6d0dae61-7795-4c92-b5c6-d17f7e528bf5%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**withOCR**
```json title=document-service-onsite-with-ocr
{
"document": {
"proof": "",
"supported_types": ["id_card", "driving_license", "passport"],
"name": {
"first_name": "",
"last_name": ""
},
"additional_proof": "",
"dob": "",
"age": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"allow_offline": "1",
"allow_online": "1",
"fetch_enhanced_data": "1",
"backside_proof_required": "0",
"verification_mode": "any",
"gender": "",
"show_ocr_form": "1",
"nationality": "",
"document_expiry_monitoring": "0",
"skip_document_type_and_country_selection": "0"
}
}
```
**withoutOCR**
```json title=document-service-onsite-without-ocr
{
"document": {
"proof": "",
"name": {
"first_name": "John",
"middle_name": "Carter",
"last_name": "Doe"
},
"dob": "1978-03-13",
"age": 18,
"issue_date": "2015-10-10",
"expiry_date": "2025-12-31",
"document_number": "1456-0989-5567-0909",
"supported_types": ["id_card", "driving_license", "passport"],
"gender": "M",
"document_expiry_monitoring": "0",
"skip_document_type_and_country_selection": "0"
}
}
```
## Document Two Request Object
**withOCR**
```json title=document-two-service-onsite-with-ocr
{
"document_two": {
"proof": "",
"supported_types": ["id_card", "driving_license", "passport"],
"name": {
"first_name": "",
"last_name": ""
},
"additional_proof": "",
"dob": "",
"age": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"allow_offline": "1",
"allow_online": "1",
"fetch_enhanced_data": "1",
"backside_proof_required": "0",
"verification_mode": "any",
"gender": "",
"show_ocr_form": "1",
"nationality": "",
"document_expiry_monitoring": "0",
"skip_document_type_and_country_selection": "0"
}
}
```
**withoutOCR**
```json title=document-two-service-onsite-without-ocr
{
"document_two": {
"proof": "",
"name": {
"first_name": "John",
"middle_name": "Carter",
"last_name": "Doe"
},
"dob": "1978-03-13",
"age": 18,
"issue_date": "2015-10-10",
"expiry_date": "2025-12-31",
"document_number": "1456-0989-5567-0909",
"supported_types": ["id_card", "driving_license", "passport"],
"gender": "M",
"document_expiry_monitoring": "0",
"skip_document_type_and_country_selection": "0"
}
}
```
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/document_verification/offsite.md
In the offsite verification process, Shufti's clients are solely responsible for gathering all necessary proof from the end user and then submitting it to Shufti for verification.
## Parameters and Description
Parameters | Description
-------------- | --------------
proof | Required: **Yes** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB** Provide valid **BASE64** encoded string.
additional_proof | Required: **No** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB** Provide valid **BASE64** encoded string.
supported_types | Required: **No** Type: **Array** All supported types are listed here **Example 1** ["driving_license"] **Example 2** ["id_card", "credit_or_debit_card", "passport"]
dob | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example 1990-12-31
age | Required: **No** Type: **integer/array** Allowed values are integers or an array. The Age parameter allows the client to set a minimum and maximum limit for acceptance of a user. The minimum age is defined as **min** and the maximum is defined as **max** within this object. The minimum accepted value for **min** is **16**. Example **18** For More Details Age.
document_number | Required: **No** Type: **string** Maximum: **100 characters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores and commas. Examples 35201-0000000-0, ABC1234XYZ098
issue_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example 2015-12-31
expiry_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example 2025-12-31
gender | Required: **No** Type: **string** Accepted Values: **M,F,O,m,f,o** Provide the gender which is given in the document. **F:** Female **M:** Male **O:** Others Example: M
fetch_enhanced_data | Required: **No** Type: **string** Value Accepted: **1** Provide 1 for enabling enhanced data extraction for the document. Shufti provides its customers with the facility of extracting enhanced data features using OCR technology. Now, instead of extracting just personal information input fields, Shufti can fetch all the additional information comprising more than 100 data points from the official ID documents supporting 150 languages. For example height, place_of_birth, nationality, marital_status, weight, etc.(additional charges apply) Extracted data will be returned in object under the key **additional_data** in case of verification.accepted or verification.declined. For Details on additional_data object go to Additional Data.
name | Required: **No** Type: **object** In the name object used in document service, first_name is required if you don't want to perform OCR of the name parameter. Other fields are optional. **Example 1** { "first_name" : "John", "last_name" : "Doe" } **Example 2** { "first_name" : "John", "last_name" : "Doe", "fuzzy_match" : "1"} Parameters for name are listed here.
backside_proof_required | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** If the value of this parameter is set to 1, Shufti will require the end-user to capture/upload both sides of the document to verify the identity. Enabling this parameter will also activate the front and back sides document match feature, which will verify if captured/uploaded front and back sides belong to the same document.
verification_instructions | Required: **No** Type: **Object** This key allows clients to provide additional instruction for the service (document, document_two and address service). Such as if the client wants to allow paper-based, photocopied or laminated documents for verification. **Example** {"allow_paper_based" : "1"} For more details on Instructions Parameters click here.
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proofs that can be used for verification. In the "video_only" mode, Shufti's client is restricted to submitting "Base64" encoded videos, which must be in the **MP4** or **MOV** format. The "any" mode allows a combination of images and videos to be submitted as proofs for verification. If there is a conflict between the service level key and the general level key, priority is assigned to the service level key.
process_only_ocr | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** This key enables the OCR-only mode, which is used for extracting text from documents without further verification. When this mode is activated, the service immediately concludes the operation after the required data is extracted. The process completes as soon as the text extraction is finalized, making it ideal for systems that require quick data retrieval from documents without additional verification steps.
full_address | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 chracters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores, hashes and commas.
document_expiry_monitoring | Required: **No** Type: **boolean** This check allows you to monitor the expiry of the documents and receive alerts upon expiry. Enables the merchants to receive an alert when a document expiry is near. Enables the end users to receive alerts when their document expires (if their emails are provided by the merchant). Enables the end users to receive the re-verification links when their documents expire (if their emails are provided by the merchant). **Note:** This option will only be activated if the OCR extraction of expiry date is enabled in document verification.
**Info**
The supported documents, onsite and offsite parameters, requests, responses, and decline reasons remain consistent for both the Document and Document Two services
## Document Request Object
[](https://god.gw.postman.com/run-collection/9386910-bedc5b7b-df50-45d5-870f-adbfdfbcc9da?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-bedc5b7b-df50-45d5-870f-adbfdfbcc9da%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**withOCR**
```json title=document-service-offsite-with-ocr
{
"document": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": ["id_card", "driving_license", "passport"],
"name": {
"first_name": "",
"last_name": ""
},
"additional_proof": "",
"dob": "",
"age": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"allow_offline": "1",
"allow_online": "1",
"fetch_enhanced_data": "1",
"backside_proof_required": "0",
"verification_mode": "any",
"gender": "",
"show_ocr_form": "1",
"nationality": ""
}
}
```
**withoutOCR**
```json title=document-service-offsite-without-ocr
{
"document": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"name": {
"first_name": "John",
"middle_name": "Carter",
"last_name": "Doe"
},
"dob": "1978-03-13",
"age": 18,
"issue_date": "2015-10-10",
"expiry_date": "2025-12-31",
"document_number": "1456-0989-5567-0909",
"supported_types": ["id_card", "driving_license", "passport"],
"gender": "M"
}
}
```
## Document Two Request Object
**withOCR**
```json title=document-two-service-offsite-with-ocr
{
"document_two": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"additional_proof" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": ["id_card", "driving_license", "passport"],
"name": {
"first_name": "",
"last_name": ""
},
"additional_proof": "",
"dob": "",
"age": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"allow_offline": "1",
"allow_online": "1",
"fetch_enhanced_data": "1",
"backside_proof_required": "0",
"verification_mode": "any",
"gender": "",
"show_ocr_form": "1",
"nationality": ""
}
}
```
**withoutOCR**
```json title=document-two-service-offsite-without-ocr
{
"document_two": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"additional_proof" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"name": {
"first_name": "John",
"middle_name": "Carter",
"last_name": "Doe"
},
"dob": "1978-03-13",
"age": 18,
"issue_date": "2015-10-10",
"expiry_date": "2025-12-31",
"document_number": "1456-0989-5567-0909",
"supported_types": ["id_card", "driving_license", "passport"],
"gender": "M"
}
}
```
---
# Custom Add-Ons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/document_verification/custom_addons.md
## Enhanced Data Extraction
Shufti provides its customers with the facility of extracting enhanced data features using OCR technology. Now, instead of extracting just personal information input fields, Shufti can fetch all the additional information comprising more than 100 data points from the official ID documents supporting 150 languages.
**Info**
For example height, place_of_birth, nationality, marital_status, weight, etc. Shufti is the first digital identity verification service that can fetch a huge bunch of information efficiently in mere seconds.***This feature can be used with document and document_two services.***
**Caution**
Additional charges are applicable for this feature.
Parameters | Description
-------------- | --------------
fetch_enhanced_data | Required: **No** Type: **string** Value Accepted: **1** Provide 1 for enabling enhanced data extraction for the document. Extracted data will be returned in object under the key **additional_data** in case of verification.accepted or verification.declined. For Details on additional_data object go to Additional Data.
```json title=enhanced-data-extraction
{
"fetch_enhanced_data" :"1"
}
```
## Age Verification
Shufti provides its clients with an option to configure the Age verification from within the API request. This service allows the acceptance of users within the specified age limits according to their DOB. The client can specify lower and upper limits and according to that, the user's age will be verified. In case, minimum and maximum values are not set, Shufti will calculate and return Age according to the DOB. If DOB is not present on the document, the verification will decline as Age will not be verified
**Age** is an object or integer that can be used to set the lower and upper limit for the Age of the user according to DOB. It contains the following parameters. **min** is used to specify the lower limit whereas **max** is used to specify the upper limit.
Parameters | Description
-------------- | --------------
age | Required: **No** Type: **integer/array** Allowed values are integers or array. Example: **18**
min | Required: **No** Type: **integer** Minimum Value: **16** Allowed values are integers or array. Example: **17**
max | Required: **No** Type: **integer** Maximum Value: **170** Allowed values are integers or array. Example: **165**
```json title=age-sample-object
//Passing the value “18” in the age parameter means that, end-users of age 18 will stand verified.
{
"age" : 18
}
```
```json title=age-sample-object
{
"age" : {
"min" : "17",
"max" : "165"
}
}
```
---
# Name Matching Preferences
Source: https://developers.shuftipro.com/docs/user_identification_authentication/document_verification/name_matching_preferences.md
Shufti allows two types of name matches in document service according to your business requirements.
- **Fuzzy Match**: It allows for verification of the end user name even if the name provided by the end user does not exactly match the name on the document.
- **Exact Match**: It allows for the verification of the end user name if and only if the provided name exactly matches the name on the document.
```json title=name-sample-object
{
"name" : {
"first_name" : "John",
"middle_name" : "Carter",
"last_name" : "Doe",
"fuzzy_match" : "1"
}
}
```
```json title=name-sample-object
{
"name" : {
"full_name" : "John Carter Doe",
"fuzzy_match" : "1"
}
}
```
Parameter | Description
-------------- | --------------
first_name | Required: **No** Type: **string** Minimum: **1 character** Maximum: **32 characters** Allowed Characters are alphabets, - (dash), comma, apostrophe, space, dot and single quotation mark. Example: **John'O Harra**
middle_name | Required: **No** Type: **string** Minimum: **1 character** Maximum: **32 characters** Allowed Characters are alphabets, - (dash), comma, apostrophe, space, dot and single quotation mark. Example: **Carter-Joe**
last_name | Required: **No** Type: **string** Minimum: **1 character** Maximum: **32 characters** Allowed Characters are alphabets, - (dash), comma, apostrophe, space, dot and single quotation mark. Example: **John, Huricane Jr.**
fuzzy_match | Required: **No** Type: **string** Value Accepted: **1** Provide 1 for enabling a fuzzy match of the name. Enabling fuzzy matching attempts to find a match which is not a 100% accurate.
full_name | Required: **No** Type: **string** Minimum: **1 character** Maximum: **64 characters** Some countries don't have the identity document holder name as their first, middle or last name instead its written in full. In such cases, you may provide the full name.
#### Fuzzy & Exact Match Cases
Parameters
Description
Decision
Fuzzy_match : 0
The First and Last names are matched with the provided name.
Example:
Name on Document: Sample Caron Elizabeth
Provided Name in API: Sample Elizabeth
Accepted
An additional name is present within the provided name.
Example:
Name on Document:DOE JANE
Provided Name in API: DOE JANE Elizabeth
Repeated (First, Mid, or Last) name within the provided name.
Example:
Name on Document:DOE JANE
Provided Name in API: DOE JANE DOE
An additional character is present within the provided name.
Example:
Name on Document:DOE JANE
Provided Name in API: DOEE JANEY
Provided Name in API: DOE JAN
Provided Name in API: DO JANE
The First or Last name is different from the provided name.
Example:
Name on Document:DOE JANE
Provided Name in API: DOE Elizabeth
Provided Name in API: Jane Elizabeth
Declined
Name initials are present instead of the complete name within the provided name.
Example:
Name on Document:Sample Caron Elizabeth
Name passed in API: Sample C Elizabeth
Name on Document: DOE JANE
Name passed in API: D JANE
Name passed in API: D J
fuzzy_match : 1
The First and Last names are matched with the provided name.
Example:
Name on Document:Sample Caron Elizabeth
Name passed in API: Sample Elizabeth
Accepted
An additional name is present within the provided name.
Example:
Name on Document:DOE JANE
Name passed in API: DOE JANE Elizabeth
Repeated (First, Mid, or Last) name within the provided name.
Example:
Name on Document:DOE JANE
Name passed in API: DOE JANE DOE
An additional character is present within the provided name.
Example:
Name on Document:DOE JANE
Name passed in API: DOEE JANEY
Name passed in API: DOE JAN
Name passed in API: DO JANE
Name initials are present instead of the complete name within the provided name.
Example:
Name on Document: Sample Caron Elizabeth
Name passed in API: Sample C Elizabeth
Name on Document: DOE JANE
Name passed in API: D JANE
The First or Last name is different from the provided name.
Example:
Name on Document: DOE JANE
Name passed in API: DOE Elizabeth
Name passed in API: Jane Elizabeth
Declined
Only Name initials are present within the provided name.
Example:
Name on Document: DOE JANE
Name passed in API: D J
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/document_verification/declined_reasons.md
When a verification request involving Document Verification is declined, the following reasons are presented to the end user or client.
Status Code
Description
Elevated Fraud Risk
SPDR03
Image is altered or photoshopped.
SPDR04
Copy of the image found on the web.
SPDR06
Document originality could not be verified.
SPDR15
Face on the document doesn't match with the camera image.
SPDR39
Document doesn’t match the document uploaded at the time of signup.
SPDR48
Document proof is altered/edited.
SPDR51
Document proof is from another screen.
SPDR56
Information on the document is edited.
SPDR87
Face on the E-document does not match the selfie.
SPDR89
Uploaded image of the document is edited or cropped.
SPDR90
Uploaded image is found on the internet.
SPDR131
Document is captured from another device.
SPDR134
Uploaded image of the document is found on the internet.
SPDR166
Face image doesn’t match the face on the document.
SPDR194
The provided document is edited.
SPDR210
Dual cards detected.
SPDR230
The uploaded face picture does not match the face photo on the provided document.
SPDR235
Face in the provided document is edited.
SPDR236
Font in the provided document is edited.
SPDR237
Background in the provided document is edited.
SPDR238
Text in the provided document is edited.
SPDR239
MRZ in the provided document is edited.
SPDR240
Provided document is edited via applying filters.
SPDR286
Document proof inconsistent creation and modification dates found.
SPDR332
Document submitted is AI generated or manipulated.
Document Data Mismatch
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.
SPDR73
Date of Birth on the document does not match the provided one.
SPDR75
Name on the document does not match the provided one.
SPDR77
Document number does not match the provided one.
SPDR86
E-document data does not match the provided document proof.
SPDR104
Last name in the uploaded document doesn’t match the record.
SPDR105
First name in the uploaded document doesn’t match the record.
SPDR114
Gender on the document does not match with the provided gender.
SPDR118
The uploaded documents have different names.
SPDR140
Middle name in the uploaded document doesn’t match the record.
SPDR169
Issue date of the uploaded document doesn’t match the record.
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.
SPDR221
The gender mentioned on the document does not match the provided information.
SPDR226
The nationality on the document does not match the provided information.
SPDR305
Entered personal details do not match with the extracted ID document details.
Inconsistent Document Proofs
SPDR05
Document and Document Two do not belong to the same person.
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.
SPDR63
Front and backside images are not of the same document.
SPDR64
Proof and additional proof do not belong to the same person.
SPDR66
Both documents should belong to the same person.
SPDR217
The same proof are not allowed for document and document two ID Card.
SPDR252
Proof and additional proof are of same side of the document.
SPDR285
Document proofs do not belong to the same person.
Incomplete Document Data
SPDR02
Image of the face not found on the document.
SPDR57
Information on the document is hidden.
SPDR100
Picture on the document is not updated.
SPDR116
Gender is not mentioned in the uploaded document.
SPDR156
Expire 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.
SPDR179
Name is not found on the document.
SPDR223
The issue date on document is not present.
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.
SPDR234
The date of birth on document is not present.
SPDR249
Front or backside proof is not provided.
SPDR251
Document front proof is not provided.
SPDR262
Data is hidden on the provided document.
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.
SPDR302
Name or Address is not present on the provided document.
SPDR319
The mother name on document is not present.
Data Validation Issue
SPDR14
Age could not be verified.
SPDR44
Gender could not be verified.
SPDR45
Place of issue could not be verified.
SPDR79
Original document number could not be authenticated.
SPDR187
Nationality could not be verified.
SPDR220
The document number on the document is invalid.
Image Quality Deficiency
SPDR18
The uploaded image of the document is blur, please provide a clear photo of document.
SPDR28
The uploaded image of the document is blurred.
SPDR53
Document proof is not fully displayed.
SPDR54
Document is blurry.
SPDR55
Information on the document proof is not visible.
SPDR71
Issue date on the document is not clearly visible.
SPDR72
Expiry date on the document is not clearly visible.
SPDR74
Date of Birth on the document is not clearly visible.
SPDR76
Name on the document is not clearly visible.
SPDR78
Document number is not clearly visible.
SPDR117
Gender is unclear in the uploaded document.
SPDR171
Expire date of the uploaded document is not visible.
SPDR174
Name in the uploaded document is not visible.
SPDR208
Document is not visible or present in the proof.
SPDR215
The uploaded document is inverted or in mirror view.
SPDR222
The gender on the document is not clearly visible.
SPDR224
The date of birth on document is not clearly visible.
SPDR227
The nationality on the document is not clearly visible.
SPDR263
Uploaded image of the document is pixelated.
SPDR306
The thickness of card could not be verified.
Document Integrity Issue
SPDR47
Document proof is a screenshot.
SPDR52
Hologram is missing on the document.
SPDR130
Uploaded image of the document is a screenshot.
SPDR133
Document is paperbased or laminated.
SPDR190
The provided document is broken.
SPDR193
The provided document is a photocopy (color or black & white).
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.
SPDR207
MRZ not detected on the document.
SPDR261
MRZ Number on the document does not match.
SPDR273
Barcode verification failed.
SPDR323
Declined due to document contains a watermark.
Expired Document
SPDR16
The expiry date of the document does not match the record.
SPDR17
The document is expired.
SPDR69
Expiry date does not match with the provided one.
SPDR111
Uploaded document is expired.
SPDR181
Expiry date of the uploaded document does not match.
SPDR322
The provided document is close to its expiration date.
Unsupported or Invalid Document
SPDR12
The issuing country of the document is not supported.
SPDR13
Document doesn't match the provided options.
SPDR24
Document type is different from the provided options.
SPDR103
The uploaded document does not match the mentioned document type.
SPDR135
Uploaded image is a test card.
SPDR204
Document does not belong to GCC countries.
SPDR205
Document type is not supported.
SPDR206
Document type is not allowed.
SPDR209
Student card is not acceptable.
SPDR211
The uploaded document is not supported.
SPDR312
Your document cannot be verified due to nationality restrictions.
SPDR320
E-documents are not supported for this verification.
NFC/e-Passport Chip Verification
SPDR346
The chip data structure doesn't meet the required standards for verification.
SPDR347
The chip's security signature verification failed.
SPDR348
The data group on the chip doesn't match the security object.
SPDR349
Face photo could not be extracted from the NFC chip.
Previous Verification Mismatch
SPDR340
The face on the current document does not match the previously verified face against this customer ID.
SPDR341
The face on the current document does not match the face on the previously verified document against this customer ID.
SPDR342
The details on the document do not match the previously verified details for this Customer ID.
Insufficient Submission
SPDR43
Camera is not accessible for verification.
SPDR274
End user did not submit complete verification proofs or data.
SPDR276
The user does not want to share camera or documents.
SPDR284
The complete verification data was not provided by the user.
Incomplete Verification
SPDR241
The verification process was canceled by the user.
---
# Sample ID Documents
Source: https://developers.shuftipro.com/docs/user_identification_authentication/document_verification/sample_id_documents.md
The below-provided Test ID Samples for document services can be used either during the testing or the integration process. This facilitates the technical teams to use dummy documents in order to test out the requests, responses, callbacks, etc without having them upload/provide their real identity documents.
**Caution**
These test samples can only be used for test accounts not for the production account.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/standard_address_verification/how_it_works.md
In standard address verification, the end user's provided address is confirmed by obtaining a valid address document. This process involves verifying the authenticity of the document and ensuring that the address given by the end user matches the address on the document.
Here is how Standard Address Verification works:
1. The merchant provides the address of the end user.
2. A valid address document like an ID card, utility bill, etc. is collected from the end user, and the expiry and authenticity of the document are verified.
3. The end user-provided address is matched with the extracted address from the document.
4. Verification concludes, ensuring secure and accurate identity confirmation.
**Info**
Standard Address Verification is the default address verification for clients onboarded after Sep 26, 2023. Clients who were onboarded before this date can continue to use the previous address verification process without any alterations.
## Address Document Checks
In Standard Address Verification, the following checks are performed:
- Verification of the document's originality and visibility.
- Validation of the provided address against the one mentioned on the document.
- Ensuring that the document is not expired.
## Address Verification Settings
### Types of proof
Clients can choose what type of verification proofs they want to collect from the end user for verification:
There are two types of proof to select from
- **Image only**: This option permits the collection of only image-based proof, focusing solely on photographic evidence.
- **Video only**: Selecting this enables the collection of video evidence, which is essential for verifying live presence or real-time actions.
- **Both**: By choosing this option, users can provide a comprehensive set of proofs, encompassing both image and video evidence, for a more robust verification process.
### Address Document Types
The client has the flexibility to tailor the range of document types permitted for the verification process, enabling a customised approach to suit specific verification needs. Checkout [supported documents for verification here](/docs/coverage/documents#address-verification--validation).
### Data Extraction & Verification
Shufti utilizes advanced OCR (Optical Character Recognition) technology, which enables the system to automatically extract and verify all the required data points from the proofs submitted by end users.
#### Verification Parameters
In address verification, the following data are verified in case of without OCR verification.
| Parameter | Description |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------- |
| name | The key contains all the details related to end user's name. |
| name.first_name | The key contains the end user's first name. |
| name.middle_name | The key contains the end user's middle name. |
| name.last_name | The key contains the end user's last name. |
| full address | The key contains the end user's full address written on the document. |
| selected type | The key contains the document proof selected by the user such as driving licence, passport or a government- issued ID, etc. |
| supported type | The key contains all types of supported documents. |
### Address Document Authenticity Checks
Upgrade your document authenticity checks to meet your unique business needs by enabling the acceptance of a wider variety of document types that are typically not allowed in standard procedures. By default, none of the documents mentioned in the following image are allowed.
#### Verification Instructions
```json title=address-instruction-parameters
{
"address": {
"proof": "",
"supported_types": ["id_card", "driving_license", "passport"],
"verification_instructions": {
"allow_paper_based": "1",
"allow_photocopy": "1",
"allow_colorcopy": "0",
"allow_black_and_white": "1",
"allow_laminated": "1",
"allow_screenshot": "1",
"allow_cropped": "1",
"allow_scanned": "1",
"allow_e_document": "1",
"allow_handwritten_document" : "1"
}
}
}
```
**Info**
These parameters can be used with Document, Document Two.
| Parameters | Description |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| allow_paper_based | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept paper-backed documents for verification. |
| allow_photocopy | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **0** If this string is assigned value “1” then Shufti will accept photocopied documents for verification. |
| allow_colorcopy | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept color copied documents for verification. **Note:** If **allow_photocopy = "1"** then this instruction will be ignored. |
| allow_black_and_white | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **0** If this string is assigned value “1” then Shufti will accept black and white documents for verification. **Note:** If **allow_photocopy = "1"** then this instruction will be ignored. |
| allow_laminated | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept laminated documents for verification. |
| allow_screenshot | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **0** If this string is assigned value “1” then Shufti will accept screenshot documents for verification. |
| allow_cropped | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept cropped documents for verification. |
| allow_scanned | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept scanned documents for verification. |
| allow_e_document | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **1** If this string is assigned value “1” then Shufti will accept E-Documents for verification. |
| allow_handwritten_document | Required: **No** Type: **string** Value Accepted: **0, 1** Default Value: **0** If this string is assigned value “1” then Shufti will accept handwritten documents for verification.
**Info**
Shufti has enabled the following parameters **[Paper-based, Laminated, Scanned, Color copy, Cropped, and E-document]** by default for all clients onboarded from September 11, 2023 onwards.
```json title=strict-originality-configuration
{
"verification_mode": "video_only",
"allow_online": "1",
"allow_offline": "0"
}
```
**Info**
To make the originality checks more strict, the recommended practice would be to enable a **live capture option** with **video mode enabled** which would allow you to take a live video in real time. This configuration will help to detect fraudulent documents in real-time.
---
# Verification Parameters
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/standard_address_verification/verification_parameters.md
# Parameters and Description
To ensure successful verification in standard address verification, it is crucial for the client to provide complete and accurate address information in the full_address field of the request Object
Parameters | Description
-------------- | --------------
proof | Required: **No** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB**
supported_types | Required: **No** Type: **Array** Provide any one, two or more document types in proof parameter in Address verification service. For example, if you choose id_card and utility_bill, then the user will be able to verify data using either of these two documents. **Please provide only one document type if you are providing proof of that document with the request**. Following is the list of supported types for address verification is here. **Example 1** [ "utility_bill" ] **Example 2** [ "id_card", "bank_statement" ]
full_address | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 chracters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores, hashes and commas.
address_fuzzy_match | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** Provide 1 for enabling a fuzzy match for address verification. Enabling fuzzy matching attempts to find a match which is not 100% accurate. Default value will be 0, which means that only 100% accurate address will be verified.
issue_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example 2015-12-31
name | Required: **No** Type: **object** In name object used in document service, first_name is required if you don't want to perform OCR of the name parameter. Other fields are optional. **Example 1** { "first_name" : "John", "last_name" : "Doe" } **Example 2** { "first_name" : "John", "last_name" : "Doe", "fuzzy_match" : "1"} Parameters for name are listed here.
backside_proof_required | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** If the value of this parameter is set to 1, Shufti will require the end-user to capture/upload both sides of the document to verify the identity. Enabling this parameter will also activate the front and back sides document match feature, which will verify if captured/uploaded front and back sides belong to the same document.
verification_instructions | Required: **No** Type: **Object** This key allows clients to provide additional instruction for the service (document, document_two and address service). Such as if the client wants to allow paper-based, photocopied or laminated documents for verification. **Example** {"allow_paper_based" : "1"} For more details on Instructions Parameters click here.
show_ocr_form | Required: **No** Type: **boolean** Accepted Values: **0, 1** default value: **1** The default value for this is **1**. If this is set to **0**, the user will not be shown the OCR form to validate the extracted information. This can be used within the **Document**, **Document Two**, and **Address service**. This value can also be applied to all services collectively. However, preference will be given to the value set within the service. **Note:** Setting the value at 0 may cause data inaccuracy as the user does not have option to validate the extracted information.
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proofs that can be used for verification. In the "video_only" mode, Shufti's client is restricted to submitting "Base64" encoded videos, which must be in the **MP4** or **MOV** format. The "any" mode allows a combination of images and videos to be submitted as proofs for verification. If there is a conflict between the service level key and the general level key, priority is assigned to the service level key.
skip_document_type_and_country_selection | Required: **No** Type: **boolean** When this parameter is set to 1, the KYC flow bypasses the country and document type selection screen, creating a more streamlined user experience. The country and document type will be automatically extracted from the uploaded document. **Note:** When this option is enabled, all countries and supported document types must be allowed, as the end user can upload any document type.
**Info**
Standard Address Verification is the default address verification for clients onboarded after **Sep 26, 2023**. Clients who were onboarded before this date can continue to use the previous address verification process without any alterations.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/standard_address_verification/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification purposes.
## Standard Address Verification Onsite Request
For address verification, a valid identity document is required with the same address printed on it as the one claimed by the end-user. The address can also be verified with the help of Utility Bills and Bank Statements. The address document will be displayed or uploaded by end-user directly for verification.
[](https://god.gw.postman.com/run-collection/9386910-6d49ad8b-61e3-41ed-ae78-68363677886a?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-6d49ad8b-61e3-41ed-ae78-68363677886a%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=standard-address-verification-sample-onsite-object
{
"address": {
"proof": "",
"full_address": "2601 Amphitheatre Pkwy, ZA, 58023",
"address_fuzzy_match": "1",
"skip_document_type_and_country_selection": "0"
}
}
```
**Note**
The Standard Address Verification service is exclusively conducted Without OCR.
**Caution**
The given below payload is for the old version of the address service verification, applicable to clients onboarded before **September 26, 2023**.
```json title=address-service-sample-object
{
"address": {
"supported_types": ["id_card", "bank_statement"],
"proof": "",
"name": "",
"issue_date": "",
"full_address": "",
"address_fuzzy_match": "1",
"backside_proof_required": "0",
"show_ocr_form": "1",
"verification_mode": "any",
"skip_document_type_and_country_selection": "0"
}
}
```
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/standard_address_verification/offsite.md
In the offsite verification process, Shufti's clients are solely responsible for gathering all necessary proof from the end user and then submitting it to Shufti for verification.
## Standard Address Verification Offsite Request
For address verification, a valid identity document is required with the same address printed on it as the one claimed by the end-user. The address can also be verified with the help of Utility Bills and Bank Statements.
[](https://god.gw.postman.com/run-collection/9386910-51ebea37-0577-4d1f-9b14-2cc44f01cbff?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-51ebea37-0577-4d1f-9b14-2cc44f01cbff%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=standard-address-verification-sample-onsite-object
{
"address": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"full_address": "2601 Amphitheatre Pkwy, ZA, 58023",
"address_fuzzy_match": "1"
}
}
```
**Note**
The Standard Address Verification service is exclusively conducted Without OCR.
**Caution**
The given below payload is for the old version of the address service verification, applicable to clients onboarded before **September 26, 2023**.
```json title=address-service-sample-object
{
"address": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": ["id_card", "bank_statement"],
"name": "",
"issue_date": "",
"full_address": "",
"address_fuzzy_match": "1",
"backside_proof_required": "0",
"verification_mode": "any"
}
}
```
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/enhanced_address_verification/how_it_works.md
In enhanced address verification the end user is only required to upload a valid address document and all the essential information from the document is extracted and verified against official global address databases.
Enhanced Address Verification operates as follows:
1. End user capture/upload images of the address proof.
2. Data is extracted, decomposed, standardized, and matched in global databases.
3. Distance is calculated between the end user's current location and the address provided.
4. End user address is verified.
**Info**
Address decomposition is available for all **[Supported Countries](/docs/coverage/countries#address-verification)** in standard & enhanced address verification. However, address validation and distance calculation are only supported in enhanced address verification.
Explore supported countries for **[Enhanced Address Verification](/docs/coverage/countries#address-verification)** here.
Enhanced Address Verification also offers additional features like:
- **Address Parsing/Decomposition**:
Deconstruct customer addresses into separate, standardized fields, such as house number, street, city, and postal code.
- **Address Lookup Using Databases**:
The address verification solution uses OCR technology to extract and verify addresses against global databases, guaranteeing accuracy and validity.
- **Distance Locator**:
Cross-check the end user provided address with geolocation data. Calculate the distance between both addresses for anomaly detection.
**Info**
The name matching logic in the Address service works the same way as in the **[Document Service](/docs/user_identification_authentication/document_verification/name_matching_preferences.md)**.
---
# Verification Parameters
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/enhanced_address_verification/verification_parameters.md
# Parameters and Description
The enhanced address verification feature in Shufti includes a new key named `enhanced_address_verification` that is passed in the address service. This key upgrades the address verification process to enhanced address verification and can take on either an integer or object value.
- If the key value is an integer, it can only accept the values of 0 or 1.
- If the key value is an object, the client can enable different features of enhanced address verification by passing respective keys inside the object with a value of 1.
Shufti's enhanced address verification feature includes **document_type**, **document_country**, **address decomposition**, **address validation**, and **distance calculation** from the user's current location to the address mentioned on the document or provided in the request. Each key accepts a value of 0 or 1 to enable or disable the corresponding feature.
**Caution**
Additional charges are applicable for this feature.
Parameters | Description
-------------- | --------------
proof | Required: **No** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB**
supported_types | Required: **No** Type: **Array** Provide any one, two or more document types in proof parameter in Address verification service. For example, if you choose id_card and utility_bill, then the user will be able to verify data using either of these two documents. **Please provide only one document type if you are providing proof of that document with the request**. Following is the list of supported types for address verification is here. **Example 1** [ "utility_bill" ] **Example 2** [ "id_card", "bank_statement" ]
full_address | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 chracters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores, hashes and commas.
address_fuzzy_match | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** Provide 1 for enabling a fuzzy match for address verification. Enabling fuzzy matching attempts to find a match which is not 100% accurate. Default value will be 0, which means that only 100% accurate address will be verified.
issue_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example 2015-12-31
name | Required: **No** Type: **object** In name object used in document service, first_name is required if you don't want to perform OCR of the name parameter. Other fields are optional. **Example 1** { "first_name" : "John", "last_name" : "Doe" } **Example 2** { "first_name" : "John", "last_name" : "Doe", "fuzzy_match" : "1"} Parameters for name are listed here.
backside_proof_required | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** If the value of this parameter is set to 1, Shufti will require the end-user to capture/upload both sides of the document to verify the identity. Enabling this parameter will also activate the front and back sides document match feature, which will verify if captured/uploaded front and back sides belong to the same document.
verification_instructions | Required: **No** Type: **Object** This key allows clients to provide additional instruction for the service (document, document_two and address service). Such as if the client wants to allow paper-based, photocopied or laminated documents for verification. **Example** {"allow_paper_based" : "1"} For more details on Instructions Parameters click here.
show_ocr_form | Required: **No** Type: **boolean** Accepted Values: **0, 1** default value: **1** The default value for this is **1**. If this is set to **0**, the user will not be shown the OCR form to validate the extracted information. This can be used within the **Document**, **Document Two**, and **Address service**. This value can also be applied to all services collectively. However, preference will be given to the value set within the service. **Note:** Setting the value at 0 may cause data inaccuracy as the user does not have option to validate the extracted information.
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proofs that can be used for verification. In the "video_only" mode, Shufti's client is restricted to submitting "Base64" encoded videos, which must be in the **MP4** or **MOV** format. The "any" mode allows a combination of images and videos to be submitted as proofs for verification. If there is a conflict between the service level key and the general level key, priority is assigned to the service level key.
document_expiry_monitoring | Required: **No** Type: **boolean** This check allows you to monitor the expiry of the documents and receive alerts upon expiry. Enables the merchants to receive an alert when a document expiry is near. Enables the end users to receive alerts when their document expires (if their emails are provided by the merchant). Enables the end users to receive the re-verification links when their documents expire (if their emails are provided by the merchant). **Note:** This option will only be activated if the OCR extraction of expiry date is enabled in document verification.
skip_document_type_and_country_selection | Required: **No** Type: **boolean** When this parameter is set to 1, the KYC flow bypasses the country and document type selection screen, creating a more streamlined user experience. The country and document type will be automatically extracted from the uploaded document. **Note:** When this option is enabled, all countries and supported document types must be allowed, as the end user can upload any document type.
enhanced_address_verification | Required: **No** Type: **string/Object** Allowed values are **string or Object**. In case of string, allowed values are **0, 1**. Default Value: **0** By passing the value "1" in the enhanced_address_verification parameter, the client can enable all the features of enhanced address verification like `document_type`, `document_country`, `address_validation`, `address_decomposition` and `calculated_distance`. **Note:** *To enable enhanced address verification, at least one parameter (e.g., `document_type`, `document_country`, `address_validation`, `address_decomposition`, or `calculated_distance`) must be passed along with the `enhanced_address_verification` parameter.***Note:** *The client can enable the specified keys individually by using the `enhanced_address_verification` key as an object.*
document_type | Required: **No** Type: **string** Allowed values: **0, 1** Default value: **0** Enabling this parameter allows Shufti to validate the type of document being processed.
document_country | Required: **No** Type: **string** Allowed values: **0, 1** Default value: **0** By activating this parameter, Shufti verify the country mentioned on the document that is being processed.
address_validation | Required: **No** Type: **string** Allowed values: **0, 1** Default value: **0** By activating this parameter, Shufti verifies whether the client's address is legitimate or not, i.e., whether the address actually exists.
address_decomposition | Required: **No** Type: **string** Allowed values: **0, 1** Default value: **0** When this parameter is enabled, Shufti decomposes and formats the address, and includes it in the response if address is validated.
calculated_distance | Required: **No** Type: **string** Allowed values: **0, 1** Default value: **0** By enabling this parameter, Shufti calculates the distance in kilometers between the user's current location and the address mentioned on the document or provided in the request, and returns it in the response if the address is validated.
document_intelligence | Required: **No** Type: **Object** The Document Intelligence object includes configurable options such as `salary_estimation` and `responsible_gambling`. Document Intelligence allows AI-based analysis to be performed on provided documents such as Bank statements, Tax bills, Salary Slips, etc.
responsible_gambling | Required: **No** Type: **Boolean** Accepted Values: **0, 1** Default Value: **0** Responsible Gambling check allows merchants to analyze documents against responsible gambling indicators and rules, enabling them to view gambling-related risk insights. **Note:** This check can only be performed on supported document types (Utility Bill, Tax Bill, or Bank Statement).
salary_estimation | Required: **No** Type: **Boolean** Accepted Values: **0, 1** Default Value: **0** Salary Estimation check allows merchants to analyze documents to estimate income-related information, enabling them to view salary details and income stability insights. **Note:** This check can only be performed on supported document types (Utility Bill, Tax Bill, or Bank Statement).
enhanced_address_extraction | Required: **Yes** Type: **Object** Description: This parameter uses AI to extract additional data from the POA document, including fields like IBAN number, Account number, Bank name, and document number, ensuring accurate and complete verification.
**Info**
To check which countries are supported for enhanced address verification, please click here.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/enhanced_address_verification/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification purposes.
## Enhanced Address Verification Onsite Request
For enhanced address verification, a valid identity document is required with the same address printed on it as the one claimed by the end-user. The address can also be verified with the help of Utility Bills and Bank Statements. The address document will be displayed or uploaded by end-user directly for verification.
**Info**
To utilize the default functionality of enhanced address verification, simply send the parameter **"enhanced_address_verification": "1"**. However, if you prefer a verification process with customised features, please use the provided payload below.
**withOCR**
```json title=enhanced-address-verification-sample-object-onsite-with-ocr
{
"address": {
"proof": "",
"supported_types": ["id_card", "bank_statement"],
"name": "",
"issue_date": "",
"full_address": "",
"address_fuzzy_match": "1",
"skip_document_type_and_country_selection": "0",
"enhanced_address_verification": {
"document_type": "1",
"document_country": "0",
"address_validation": "1",
"address_decomposition": "0",
"calculated_distance": "1"
}
}
}
```
**addressDecomposition**
```json title=address-decomposition-sample-object-onsite
{
"address_decomposition": {
"locality" : "",
"administrative_area": "",
"region_code": "",
"country_code": "",
"address_lines": [],
"language_Code": "",
"postal_Code": ""
}
}
```
**withoutOCR**
```json title=enhanced-address-verification-sample-object-onsite-without-ocr
{
"address": {
"proof": "",
"supported_types": ["utility_bill", "tax_bill"],
"name": {
"first_name": "John",
"last_name": "Carter"
},
"issue_date": "2015-11-12",
"full_address": "2601 Amphitheatre Pkwy, ZA, 58023",
"address_fuzzy_match": "1",
"skip_document_type_and_country_selection": "0",
"enhanced_address_verification": {
"document_type": "1",
"document_country": "0",
"address_validation": "1",
"address_decomposition": "0",
"calculated_distance": "1"
}
}
}
```
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/enhanced_address_verification/offsite.md
In the offsite verification process, Shufti's clients are solely responsible for gathering all necessary proof from the end user and then submitting it to Shufti for verification.
## Enhanced Address Verification Offsite Request
For enhanced address verification, a valid identity document is required with the same address printed on it as the one claimed by the end-user. The address can also be verified with the help of Utility Bills and Bank Statements. The address document will be displayed or uploaded by end-user directly for verification.
**Info**
To utilize the default functionality of enhanced address verification, simply send the parameter **"enhanced_address_verification": "1"**. However, if you prefer a verification process with customised features, please use the provided payload below.
**withOCR**
```json title=enhanced-address-verification-sample-object-offsite-with-ocr
{
"address": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": ["id_card", "bank_statement"],
"name": {
"first_name": "",
"last_name": ""
},
"issue_date": "",
"full_address": "",
"address_fuzzy_match": "1",
"enhanced_address_verification": {
"document_type": "1",
"document_country": "0",
"address_validation": "1",
"address_decomposition": "0",
"calculated_distance": "1"
}
}
}
```
**addressDecomposition**
```json title=address-decomposition-sample-object-offsite
{
"address_decomposition": {
"locality" : "",
"administrative_area": "",
"region_code": "",
"country_code": "",
"address_lines": [],
"language_Code": "",
"postal_Code": ""
}
}
```
**withoutOCR**
```json title=enhanced-address-verification-sample-object-offsite-without-ocr
{
"address": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": ["id_card", "bank_statement"],
"name": {
"first_name": "John",
"last_name": "Doe"
},
"issue_date": "2019-09-09",
"full_address": "2601 Amphitheatre Pkwy, ZA, 58023",
"address_fuzzy_match": "1",
"enhanced_address_verification": {
"document_type": "1",
"document_country": "0",
"address_validation": "1",
"address_decomposition": "0",
"calculated_distance": "1"
}
}
}
```
---
# Sample Address Documents
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/sample_address_documents.md
The below-provided test address samples for address services can be used either during the testing or the integration process. This facilitates the technical teams to use dummy documents in order to test out the requests, responses, callbacks, etc without having them upload/provide their real identity documents.
## ID Card
## Passport
## Driving Licence
## Smart Card
## Permanent Residence Permit
## Employer Letter
## Bank Statement
## Tax Bill
## Envelope
## Rent Agreement
## Utility Bill
## Credit Card Statement
## Employee Salary Slip
## Insurance Policy
## Property Tax Receipt
## Bank Letter Receipt
**Caution**
These test samples can only be used for test accounts not for the production account.
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/address_verification_and_validation/declined_reasons.md
When a verification request involving Address Verification & Validation is declined, the following reasons are presented to the end user or client.
Status Code
Description
Elevated Fraud Risk
SPDR03
Image is altered or photoshopped.
SPDR04
Copy of the image found on the web.
SPDR06
Document originality could not be verified.
SPDR48
Document proof is altered/edited.
SPDR51
Document proof is from another screen.
SPDR56
Information on the document is edited.
SPDR89
Uploaded image of the document is edited or cropped.
SPDR90
Uploaded image is found on the internet.
SPDR131
Document is captured from another device.
SPDR134
Uploaded image of the document is found on the internet.
SPDR194
The provided document is edited.
SPDR225
The proof has been uploaded and not captured in real time.
Document Data Mismatch
SPDR13
Document doesn't match the provided options.
SPDR22
Name on the Address Document doesn't match.
SPDR23
Address did not match the record, please provide a document with a valid address.
SPDR26
Addresses on the Identity Document and Utility Bill do not match.
SPDR30
Issue date on the address document doesn't match.
SPDR68
Issue date does not match with the provided one.
SPDR75
Name on the document does not match with the provided one.
SPDR80
Address on the document does not match with the provided one.
SPDR169
Issue date of the uploaded document does not match the record.
SPDR173
Name on the address document doesn’t match the record.
SPDR269
The address did not match the record.
Inconsistent Document Proofs
SPDR21
Proof and Additional Proof are of different documents.
SPDR31
Address proof and document proof are of different persons.
SPDR42
Front and backside images of the document did not match.
SPDR65
Address proof and document proof do not match.
SPDR66
Both documents should belong to the same person.
SPDR125
Uploaded front side and backside are of different documents.
SPDR146
The address document and identity document don’t belong to the same person.
SPDR285
Document proofs do not belong to the same person.
Data Validation Issue
SPDR14
Age could not be verified.
SPDR25
Country on the address document could not be verified.
SPDR81
Address provided is invalid.
SPDR112
Country on the address document could not be verified.
SPDR113
The issuing country of the document is not supported.
SPDR188
Bank Transfer Number could not be verified.
SPDR189
Tax Identity Number could not be verified.
Document Integrity Issue
SPDR47
Document proof is a screenshot.
SPDR49
Document proof is paper-based, which is not accepted.
SPDR50
Document proof is punched/broken.
SPDR83
Address is not present on the provided document.
SPDR88
Uploaded document is Black and White.
SPDR91
Document is laminated.
SPDR92
Document is scanned or a colored copy.
SPDR93
Document is paper-based or laminated.
SPDR128
Uploaded document is laminated.
SPDR130
Uploaded image of the document is a screenshot.
SPDR136
Uploaded document is black and white.
SPDR190
The provided document is broken.
SPDR193
The provided document is a photocopy (color or black & white).
SPDR197
The provided document is scanned.
SPDR202
The provided document is cropped.
SPDR203
The provided document is handwritten.
SPDR200
The provided document is punched.
SPDR201
The provided document is cracked.
SPDR216
The uploaded document is broken with affected data.
SPDR323
Declined due to document contains a watermark.
Image Quality Deficiency
SPDR28
The uploaded image of the document is blurred.
SPDR53
Document proof is not fully displayed.
SPDR54
Document is blurry.
SPDR55
Information on the document proof is not visible.
SPDR71
Issue date on the document is not clearly visible.
SPDR76
Name on the document is not clearly visible.
SPDR82
Address on the document is not clearly visible.
SPDR120
Information on the document is not readable.
SPDR121
Entire document is not visible.
SPDR122
Uploaded document of the image is blurry.
SPDR142
Issuing date of the document is not visible.
SPDR215
The uploaded document is inverted or in mirror view.
Expired Document
SPDR27
The address document is expired.
SPDR70
Submitted document is expired.
Unsupported or Invalid Document
SPDR24
Document type is different from the provided options.
SPDR46
Same ID Document cannot be submitted as proof of address.
SPDR67
Document should be from the provided country.
SPDR94
Uploaded document is a test card.
SPDR103
The uploaded document does not match the mentioned document type.
SPDR107
Uploaded document is a test card.
SPDR124
The uploaded document does not match the mentioned document type.
SPDR135
Uploaded image is a test card.
SPDR137
Document is not found in the uploaded image.
SPDR250
Address documents from Ontario are not allowed.
SPDR308
The provided address is a PO box address.
SPDR268
The provided image is corrupted.
SPDR211
The uploaded document is not supported.
Previous Verification Mismatch
SPDR340
The face on the current document does not match the previously verified face against this customer ID.
SPDR341
The face on the current document does not match the face on the previously verified document against this customer ID.
SPDR342
The details on the document do not match the previously verified details for this Customer ID.
SPDR363
The submitted document type is the same as the one used in the previous address verification.
SPDR364
The current extracted name does not match the name from the previous address verification.
Salary Verification
SPDR334
Salary in bank statement is higher than on the pay slip.
SPDR335
Salary in bank statement is lower than on the pay slip.
SPDR336
Salary not found in bank statement.
SPDR337
Salary deposits from multiple sources do not match total amount on the pay slip.
Insufficient Submission
SPDR43
Camera is not accessible for verification.
SPDR274
End user did not submit complete verification proofs or data.
SPDR276
The user does not want to share camera or documents.
SPDR284
The complete verification data was not provided by the user.
Incomplete Verification
SPDR241
The verification process was canceled by the user.
---
# Overview
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_aml_screening/overview.md
Shufti's Individual AML Screening checks a person against **4,000+ global watchlists** spanning **240+ countries and territories**, covering sanctions, Politically Exposed Persons (PEPs), warnings and regulatory enforcement, fitness and probity, adverse media, and insolvency records. It helps you meet regulatory obligations and keep money launderers, blocklisted individuals, and other high-risk actors out of your business.
This page orients you to the product. If you want to integrate right away, jump to [Onsite Integration](/docs/user_identification_authentication/user_aml_screening/onsite) or [Offsite Integration](/docs/user_identification_authentication/user_aml_screening/offsite).
## What you can do {#what-you-can-do}
- **Screen by name and date of birth** against global sanctions, PEP, watchlist, and adverse media sources.
- **Tune the search** with country filters, unique identifiers, aliases, relatives and close associates (RCA), and a configurable match threshold.
- **Add biometric and contextual signals** by passing a face image and a context object to improve match accuracy.
- **Keep records current** with ongoing monitoring that re-screens active profiles and alerts you when a watchlist status changes.
- **Resolve results in one place** using the AI Compliance Co-Pilot, a Custom Risk Scoring Engine, and a built-in case management workflow.
## How a screening works, in brief {#how-a-screening-works-in-brief}
1. **Input**: You provide the person's name (required) and, ideally, date of birth. Data can be entered directly or extracted from a document via OCR.
2. **Search**: The engine matches the input against your selected data sources using phonetic, alias, transliteration, and cultural name-variation logic.
3. **Score**: Every returned record gets an [AML Match Score](/docs/user_identification_authentication/user_aml_screening/how_it_works#aml-match-score) from 0-100%. Records below your threshold are suppressed.
4. **Decide**: Matches are returned in the [response](/docs/user_identification_authentication/user_aml_screening/responses) with full record detail. You accept, decline, or route them for review.
5. **Monitor** *(optional)*: Enrolled profiles are re-screened continuously, and you are alerted on any change.
For the full logic, data sources, and worked examples, see [How It Works](/docs/user_identification_authentication/user_aml_screening/how_it_works).
## Two ways to integrate {#two-ways-to-integrate}
Shufti exposes AML screening through the same `background_checks` service, in two integration modes:
| Mode | Who collects the data | Use when |
| --- | --- | --- |
| [**Onsite**](/docs/user_identification_authentication/user_aml_screening/onsite) | Shufti's hosted screen collects the end user's details | You want Shufti to manage the end-user interaction |
| [**Offsite**](/docs/user_identification_authentication/user_aml_screening/offsite) | You send the details directly via API | You already hold the user's data and want a server-to-server check |
Both modes accept the same screening parameters and return the same response structure.
## Documentation in this section {#documentation-in-this-section}
| Page | What it covers |
| --- | --- |
| [Overview](/docs/user_identification_authentication/user_aml_screening/overview) | Product orientation, screening flow summary, and integration modes |
| [How It Works](/docs/user_identification_authentication/user_aml_screening/how_it_works) | Search modes, data sources, the matching engine, match score, ongoing monitoring, and compliance tooling |
| [Onsite Integration](/docs/user_identification_authentication/user_aml_screening/onsite) | Request parameters and sample for the hosted flow |
| [Offsite Integration](/docs/user_identification_authentication/user_aml_screening/offsite) | Request parameters and sample for the API-only flow |
| [Match Results](/docs/user_identification_authentication/user_aml_screening/match_results) | Reference for the match-type values returned on each hit |
| [Responses](/docs/user_identification_authentication/user_aml_screening/responses) | Structure of the verification response and the AML data object |
| [Declined Reasons](/docs/user_identification_authentication/user_aml_screening/declined_reasons) | Status codes returned when a screening is declined |
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_aml_screening/how_it_works.md
Individual AML Screening evaluates a person against Shufti's connected watchlists and returns every record that resembles them, each with a match score you can act on. This page explains the full pipeline: how you search, what you search against, how matches are scored, and how results are monitored and resolved.
## The screening pipeline {#the-screening-pipeline}
Every screening follows the same five stages:
1. **Collect the subject's details**: name (required) and, ideally, date of birth, plus any optional refining parameters.
2. **Select the data sources**: either pick categories directly or apply a saved [search profile](/docs/user_identification_authentication/user_aml_screening/how_it_works#search-by-profile).
3. **Search and score**: the [name-matching engine](/docs/user_identification_authentication/user_aml_screening/how_it_works#the-name-matching-engine) compares the input against each source and assigns every record an [AML Match Score](/docs/user_identification_authentication/user_aml_screening/how_it_works#aml-match-score).
4. **Return results**: records at or above your [match threshold](/docs/user_identification_authentication/user_aml_screening/how_it_works#match-threshold) are returned in the [response](/docs/user_identification_authentication/user_aml_screening/responses); the rest are suppressed.
5. **Resolve and monitor**: review matches through [case management](/docs/user_identification_authentication/user_aml_screening/how_it_works#case-management), apply a decision, and optionally enroll the subject in [ongoing monitoring](/docs/user_identification_authentication/user_aml_screening/how_it_works#ongoing-monitoring).
## Screening modes {#screening-modes}
AML screening can source the subject's details in two ways:
| Mode | How details are supplied |
| --- | --- |
| **Search-based** | Name and date of birth are provided by the end user or merchant via the API and searched against AML data sources. |
| **Document-based** | Name and date of birth are extracted directly from a document supplied by the end user. |
**Info**
OCR-based extraction
Document-based screening relies on OCR. It only works alongside services that include OCR, such as Document Verification, Document Two Verification, and Address Verification. See the `process_from_document` parameter in [Onsite Integration](/docs/user_identification_authentication/user_aml_screening/onsite).
## Search options {#search-options}
You control which data sources a screening runs against in one of two ways.
### Search by Databases
Shufti's AML data sources span **4,000+ global watchlists**, covering millions of high-risk entity profiles across **240+ countries and territories**, all drawn from reputable international and local databases. When searching by database, you select which sources to screen against from these categories:
- Sanctions
- Warnings and Regulatory Enforcement
- PEPs (Politically Exposed Persons)
- PEP Level 1
- PEP Level 2
- PEP Level 3
- PEP Level 4
- Fitness & Probity
- Adverse Media
- Insolvency
- Special Interest Person (SIP)
- Special Interest Entity (SIE)
### Search by Profile
A **search profile** is a custom, reusable set of data sources. Search profiles are created and managed in **AML Settings** and let you fix the exact scope of a check in advance. When building a search profile, sources are grouped under three headings, each with its underlying sources individually included or excluded:
- **PEP**: PEP Level 1, PEP Level 2, PEP Level 3, and PEP Level 4.
- **Warnings and Regulatory Enforcement**: Fitness & Probity, Regulatory Enforcements, Special Interest Persons (SIP), Special Interest Entities (SIE), and Insolvency.
- **Sanctions**: underlying sanctions sources that can be filtered by country.
At search time, the request carries a **Search By** key. You either choose **Select Databases Manually** and pick categories directly, or choose **Use Search Profile**, which reveals a dropdown of your preconfigured search profiles to screen the subject against. Using a saved search profile gives you consistent, repeatable checks.
## Search parameters {#search-parameters}
These are the parameters that drive an Individual AML screening. Full Name is the foundation of every search; the rest refine, filter, or organize results. For request formats and limits, see [Onsite](/docs/user_identification_authentication/user_aml_screening/onsite) and [Offsite](/docs/user_identification_authentication/user_aml_screening/offsite).
| Parameter | Required | Description |
| --- | --- | --- |
| **Full Name** | Yes | Primary identifier and the basis of every search. Carries the highest weight in scoring. |
| **Date of Birth** | No | Supporting identifier that distinguishes people with similar names and improves precision. |
| **Unique Identifier** | No | Passport, national ID, or registry number. Does not affect the score; promotes records with a matching identifier to the top of results. |
| **Biometric Screening** | No | Optional facial image used for a biometric comparison alongside name and DOB matching. The API key remains `face`. |
| **Country(s)** | No | Pre-search filter by country or nationality. Filters out non-matching records before scoring, with no effect on the score itself. |
| **Search By** | Yes | Sets the data scope: select databases manually, or use a saved search profile. |
| **Custom Risk Engine** | Yes | The risk scoring engine applied to results. If none is selected, the default engine is applied. |
| **Match Score** | No | Minimum match threshold, set with a 0 to 100 slider. An **Exact Match** checkbox sets the score to 100. |
| **Enable Ongoing AML?** | No | Enables continuous re-screening so the subject is monitored against database changes over time. |
| **Enable Ongoing Adverse Media?** | No | Available only when Adverse Media is among the selected databases. Enables continuous adverse media monitoring. |
| **Enable AI Compliance Co-Pilot?** | No | Enables AI-assisted review of results. Additional subject data is passed through the `context` key. |
| **Additional Configurations** | No | Search for Relatives & Close Associates (RCA), and Search for Aliases & Alternate Names. |
### Full Name
Full Name is the primary and mandatory parameter. The engine evaluates name similarity using phonetic analysis, alias resolution, transliteration, and cultural name-variation handling, so spelling differences, alternative forms, and cross-jurisdictional representations are all accounted for. As the core identifier, name carries the greatest weight in scoring.
### Date of Birth
DOB is a supporting parameter. When provided, it differentiates between people who share similar names, increasing confidence and reducing ambiguity. It is not mandatory, but supplying it significantly improves reliability, especially for common names or records spanning multiple jurisdictions.
### Unique Identifier
A specific identification number, such as a passport number or national ID, used to narrow the search toward a specific subject. It does not affect the match score. Instead, after scoring, records whose identifier matches or closely aligns with the value provided are **promoted to the top** of the results, while others remain visible but ranked lower.
### Biometric Screening
An optional facial image of the subject, submitted as a biometric input. Shufti compares the image against records in the connected AML databases and returns biometric match results alongside the standard output, adding a visual verification layer to name- and DOB-based matching. The image is submitted through the `face` field.
### Country(s)
The country filter narrows results to records associated with one or more selected countries, removing unrelated jurisdictions and reducing noise.
**Note**
The country filter is a **pre-search filter only**. Records that do not match the selected country never appear in results; records that pass through are scored on name and DOB as usual, so the filter has no effect on the match score itself.
### Search By
Search By sets the scope of data the subject is screened against. You either choose **Select Databases Manually** and pick categories directly, or choose **Use Search Profile** and select one of your preconfigured search profiles. See [Search by Databases](/docs/user_identification_authentication/user_aml_screening/how_it_works#search-by-databases) and [Search by Profile](/docs/user_identification_authentication/user_aml_screening/how_it_works#search-by-profile) for the available sources.
### Custom Risk Engine
The risk engine applies your configured scoring criteria to the returned results. It is **mandatory**: if no custom engine is selected, the default risk engine is applied automatically. For configuration details, see the [Custom Risk Scoring Engine](/docs/user_identification_authentication/user_aml_screening/how_it_works#custom-risk-scoring-engine).
### Match Score
Match Score sets the minimum score a record must reach to be returned, configured with a **0 to 100 slider**. A separate **Exact Match** checkbox is available; when enabled, the score is set to **100** by default. For how scores are calculated and the recommended threshold, see [AML Match Score](/docs/user_identification_authentication/user_aml_screening/how_it_works#aml-match-score).
### Enable Ongoing AML
When enabled, the subject is enrolled in continuous re-screening, so any future changes across the connected databases are surfaced without resubmitting the check. See [Ongoing monitoring](/docs/user_identification_authentication/user_aml_screening/how_it_works#ongoing-monitoring).
### Enable Ongoing Adverse Media
This option appears only when **Adverse Media** is among the databases selected for screening. When enabled, the subject is continuously monitored for new adverse media coverage in addition to standard ongoing AML updates.
### AI Compliance Co-Pilot
Enabling the AI Compliance Co-Pilot adds an AI-assisted review layer over the screening results. Additional subject information can be passed into the request to give the Co-Pilot richer data for its assessment, passed through the `context` field. When AML runs alongside identity verification and KYC, this data can be enriched with details extracted during KYC, such as document number, address, and occupation, combined with anything the merchant supplies. See the [AI Compliance Co-Pilot](/docs/user_identification_authentication/user_aml_screening/how_it_works#ai-compliance-co-pilot) section for what it returns.
### Additional Configurations
Two optional toggles extend the scope of a search:
- **Search for Relatives & Close Associates (RCA)**: extends the search to relatives and close associates of the subject. People who are not themselves listed may still pose indirect risk through shared finances, business relationships, or personal ties. RCA coverage brings beneficial-ownership structures, family-held assets, and associate networks into scope.
- **Search for Aliases & Alternate Names**: screens the subject against aliases, maiden names, transliterations, and name variations across all connected databases. Shufti applies fuzzy matching and transliteration logic so that non-exact variations are still captured, reducing false negatives.
## Data sources and categories {#data-sources-and-categories}
The following categories are supported across Shufti's AML databases.
| Category | Description |
| --- | --- |
| **Sanctions** | Penalties or restrictions imposed by authorities on individuals, organizations, or countries for violating laws or international norms. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrxj867eT44TuXbZ) |
| **Warnings and Regulatory Enforcement** | Alerts to rule violations, plus penalties or legal actions for non-compliance with laws and regulations. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrWwSSBHnexrTwdM) |
| **Fitness and Probity** | Evaluation of an individual's or entity's competence, skills, integrity, and ethical conduct in financial services. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrVROdjVqf4Q1Ps1) |
| **Adverse Media** | Negative or damaging information about individuals, organizations, or entities that can pose significant risk. |
| **Politically Exposed Person (PEP)** | Individuals entrusted with prominent public functions, and those closely connected to them, who present a higher risk of involvement in bribery or corruption. [View source list](https://airtable.com/appBg944vhUK0OPYO/shraCDl6gqOkLdfXJ) |
| **PEP Level 1** | High-risk PEPs: state and government executives, military/judicial/law-enforcement leaders, parliament officials, prominent political party figures. [View source list](https://airtable.com/appBg944vhUK0OPYO/shraCDl6gqOkLdfXJ) |
| **PEP Level 2** | Medium-high risk PEPs: senior state/military/law-enforcement officials, high-ranking civil servants, religious and state-agency leaders, ambassadors, diplomats, and commissioners. [View source list](https://airtable.com/appBg944vhUK0OPYO/shraCDl6gqOkLdfXJ) |
| **PEP Level 3** | Medium-risk PEPs: senior management in government-owned businesses, state organization board members. [View source list](https://airtable.com/appBg944vhUK0OPYO/shraCDl6gqOkLdfXJ) |
| **PEP Level 4** | Low-risk PEPs: senior officials and employees in international bodies, state/district assembly members. [View source list](https://airtable.com/appBg944vhUK0OPYO/shraCDl6gqOkLdfXJ) |
| **Special Interest Person (SIP)** | Individuals presenting a heightened level of risk due to suspected or confirmed involvement in criminal activity. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrjjnpZa8i0xh0bI) |
| **Special Interest Entity (SIE)** | Companies or organizations presenting a heightened level of risk due to suspected or confirmed involvement in criminal activity. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrf4xVPWPeNHxX6P) |
| **Insolvency** | Companies and organizations that are unable to pay the debts they owe or have been declared bankrupt by a judicial process. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrMqODzDKg4SCuSi) |
## Adverse media screening {#adverse-media-screening}
Shufti's adverse media screening searches a network of **50,000+ integrated global sources**, including news outlets, regulatory publications, court records, and watchlist databases. The engine applies **sentiment analysis** to each piece of coverage, scoring its tone on a scale from -3 to +3: -3 severely negative, -2 moderately negative, -1 negative, 0 neutral, and +1 to +3 increasingly positive. This lets reviewers prioritise the most damaging coverage rather than treating every mention equally.
Searches run against keywords derived from FATF's 21 designated predicate offences for money laundering, supplemented by the 6th EU Anti-Money Laundering Directive (6AMLD), organized into these categories:
- **Financial Crimes**: money laundering, fraud, bribery, corruption, tax evasion, embezzlement, sanctions evasion, counterfeiting, insider trading.
- **Organized Crime & Trafficking**: drug, arms, and human trafficking, migrant smuggling, sexual exploitation, racketeering, smuggling of stolen goods.
- **Terrorism & Proliferation**: terrorist financing, proliferation financing, extremism, weapons of mass destruction.
- **Violent & Serious Crimes**: murder, kidnapping, hostage-taking, robbery, theft.
- **Regulatory & Legal Violations**: court convictions, criminal investigations, enforcement actions, sanctions violations, regulatory breaches, license revocations.
- **Environmental & Cybercrime**: illegal trafficking of natural resources and protected species, cybercrime, hacking, ransomware, data breaches (introduced under 6AMLD).
- **Reputational & Political Risk**: PEPs, abuse of power, conflict of interest, government misconduct, links to shell companies or offshore structures.
## The name-matching engine {#the-name-matching-engine}
At the core of scoring is a proprietary name-matching engine built for global AML screening. Its goal is **reducing false positives**, matches that look plausible but refer to different people, without missing genuine hits obscured by spelling, cultural differences, or data quality. It handles four categories of name variation:
- **Phonetics and diacritics**: names that sound identical but are spelled differently. *José Hernández* and *Jose Hernandez*, or *Mohamed* and *Muhammad*, are treated as equivalent.
- **Structural and spacing differences**: hyphenation, multi-part names, suffixes (Jr., II), and spacing. *Kim-Jong Un* and *Kim Jong Un* are treated as structurally identical.
- **Error and alias handling**: OCR, legacy-system, and manual-entry errors are normalised, and known aliases, AKAs, and transliteration variants are linked into one subject profile.
- **Cultural name variations**: East Asian family-name-first names, Arabic patronymics and honorifics, and other non-Western structures are handled natively rather than treated as errors.
## AML Match Score {#aml-match-score}
The **AML Match Score** is a value between 0% and 100% generated for every returned record. It quantifies how closely the subject's details, primarily name and date of birth, match a record in Shufti's sanctions, PEP, or watchlist databases.
### Match threshold
The match threshold is a configurable minimum cut-off. Only records scoring at or above it are returned; records below it are suppressed entirely.
- Set it **too high** and you risk missing genuine matches where data varies slightly across sources.
- Set it **too low** and you return loosely related results, burdening compliance teams.
**Info**
Recommended threshold
A threshold of **85%** is recommended as the optimal balance between accuracy and coverage. The threshold is configurable per screening, so you can control sensitivity for each individual check rather than only globally.
### Worked examples
These examples illustrate how the engine treats different kinds of name variation, and the role a matching DOB plays.
| Search input | DOB provided | How the engine treats it |
| --- | --- | --- |
| Hajjaj Bin Fahad Al Ajmi | No | Exact match on every token. A strong, high-confidence match on name alone. |
| Hajjaj Bin Fahd Al Ajni | Yes | Minor phonetic spelling variants (*fahad/fahd*, *ajmi/ajni*) are still recognised as the same name. A matching DOB adds further confidence. |
| Hajjaj Bin Al Ajmi | Yes | A name token (the middle name *Fahad*) is missing, so name confidence is lower. The result may fall closer to the threshold and warrant manual review. |
Two things to note from these examples:
1. **Name similarity is the primary driver.** The closer the name match, the higher the confidence. A partial name match lowers confidence and may push a result below the threshold.
2. **DOB is a supporting signal.** A matching DOB increases confidence and helps separate people with similar names, but it does not by itself rescue a weak name match.
### Multilingual and transliteration matching
Names transliterated from Arabic, Persian, Urdu, and other scripts into Latin characters may appear under multiple valid spellings, none matching the input exactly. A keyword search would miss most of these; the phonetic algorithm resolves them by matching on **sound rather than spelling**. For supported languages, see AML Supported Languages.
## Ongoing monitoring {#ongoing-monitoring}
Watchlists and regulatory requirements change constantly. Ongoing monitoring keeps enrolled records current with real-time updates, reducing the risk of missed alerts from stale data.
### How monitoring works
The monitoring engine runs automatically in the background, re-screening active profiles against the latest AML databases at a configurable frequency. The **default interval is 15 minutes**, so status changes are detected with minimal delay and no manual intervention. When a subject is added to or removed from any watchlist, the system triggers an alert.
Alerts can be delivered through one or more channels:
- **Webhook**: automated event notifications sent to your integrated URL.
- **Back Office**: notifications surfaced in the Shufti merchant dashboard.
- **Registered Email**: alerts sent to your registered address.
### Monitoring alert triggers
| Event | Description |
| --- | --- |
| **New information found** | The entity appears in a watchlist or database they were not previously associated with. |
| **Existing information updated** | Details for the entity on an existing list have been modified or revised. |
| **Entity added or removed from a source** | The entity has been newly added to, or delisted/removed from, a watchlist they are tracked against. |
### Adverse media monitoring
Alongside watchlist monitoring, Shufti continuously scans for adverse media about the subject. If new adverse media is detected, the status is updated and an alert is sent automatically.
**Info**
Enabling ongoing monitoring
Set `ongoing = 1` to enable watchlist monitoring and `ongoing_adverse_media = 1` for adverse media monitoring. Both are available on **production accounts only**.
## Compliance tooling {#compliance-tooling}
### AI Compliance Co-Pilot
The AI Compliance Co-Pilot is an AI-powered review layer that performs an automated first-line review of flagged profiles. It evaluates matches against sanctions, PEP, and adverse media sources and returns a structured, evidence-backed risk summary, helping teams manage alert volume. It can be enabled **while you run a screening** or applied afterwards, and it is also available in [ongoing monitoring](/docs/user_identification_authentication/user_aml_screening/how_it_works#ongoing-monitoring).
When you enable the Co-Pilot during a screening, a form appears so you can supply context about the subject. None of these fields are mandatory; the more you provide, the sharper the assessment. For an individual, the context is grouped as:
| Group | Fields you can supply |
| --- | --- |
| **Identity** | Full name, date of birth, image file, nationality, occupation, industry, identification number, passport / national ID / Emirates ID, and similar. |
| **Relationships** | Parents, siblings, spouse. |
| **Address** | Residence. |
You can also configure how the Co-Pilot runs:
- **Records analysed per screening**: any value from 5 to 50, in steps of 5.
- **Use IDV data for context**: turn on *"Use Identity Verification (IDV) data for AI Compliance context?"* to let the Co-Pilot reuse data already captured during identity verification. Only successfully extracted and verified fields are shared; anything not captured is excluded automatically. Selectable fields are face image, full name, date of birth, document number, nationality, gender, and full address.
- **Co-Pilot in ongoing monitoring**: when ongoing monitoring is enabled, you can have the Co-Pilot re-run on cases that receive updates, at one of four frequencies: instantly (on a new hit or update), daily, weekly, or monthly.
- **Risk-change alerts**: notify analysts when the Co-Pilot detects a risk change, by email or webhook.
**Info**
Advisory only
The Co-Pilot does not make final determinations or define AML policy. All outputs are advisory and subject to human review and override.
### Custom Risk Scoring Engine
The Custom Risk Scoring Engine lets you define your own risk-assessment criteria instead of relying on a fixed model. Risk configuration defines threshold ranges across three levels, **Low**, **Medium**, and **High**, with a decision assigned to each level.
Scoring is distributed across three components:
| Component | What it scores |
| --- | --- |
| **Country** | One or more countries assigned a custom risk score |
| **Category** | AML watchlist categories scored by the risk they carry in your context |
| **Criminal Records** | Entities convicted by a court, and entities with a criminal penalty enforced |
Each component is assigned a weightage that determines its proportional contribution, and the three weightages **must total 100%**, keeping the model balanced and complete.
**Info**
Risk decision is separate from the verification decision
The detected risk level and its associated risk decision are returned **separately** from the main verification decision (accepted or declined). Treat the risk level as a parallel signal for your compliance workflow rather than the verification outcome itself.
### Case Management
Case Management provides a structured, fully auditable workflow for reviewing and resolving screening results.
- **Case assignment**: every screening result becomes a case, assigned to the admin by default and reassignable to secondary team members. Assignees are notified by email and in the Back Office.
- **Comments**: added at the **report level** (whole report) or **entity level** (a specific entity), with support for tagging team members and attaching files.
- **Activity logs**: a complete history per case: creation time, report-viewed events, assignee changes, and status changes with timestamps.
- **Case resolution**: every case opens with a status of **potential match** by default. Assignees review the case and update the status to mark it a **true positive** or **false positive**.
- **Alerts and notifications**: assignees are notified instantly, in the Back Office and by email, on assignment and unassignment.
**Note**
Only users with the appropriate role and permissions can update a case's resolution status. All status changes are recorded in the Activity Log for full auditability.
---
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_aml_screening/onsite.md
This verification process mandates that the end user provide their full name and date of birth. Utilizing this information, Shufti conducts comprehensive Anti-Money Laundering (AML) screening to validate user identity.
## Parameters and Description
| Parameters | Description |
|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| dob | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. **Example:** 1990-12-31 **Note:** It is recommended to send DOB(Date Of Birth) for more accurate results. |
| name | Required: **No** Type: **object** In the name object used in background checks service, first_name required and other fields are optional. Parameters for name are listed here: **Example 1:** { "first_name" : "John", "last_name" : "Doe" } **Example 2:** { "first_name" : "John", "middle_name" : "Carter", "last_name" : "Doe"} **Example 3:** { "full_name" : "John Carter Doe"} **Note:** If full name is provided with first and last name priority will be given to full name. |
| biometric_search_image | Required: **No** Type: **string** Format: **Base64 encoded JPG, JPEG, PNG** Maximum: **5MB (decoded)** A base64-encoded facial image of the individual being screened. Used for biometric matching against records across connected AML databases to improve the accuracy of match assessments. |
| ongoing | Required: **No** Accepted values: **0, 1** Default: **0** This Parameter is used for Ongoing AML Screening, and is allowed only on **Production Accounts**. If Shufti detects a change in AML statuses, then we will send you a webhook with event **verification.status.changed**. The new AML status can be checked using get status endpoint, or from the back-office. **Note:** Use fuzzy_match = 1 in the name object for better results for Ongoing AML Screening. |
| ongoing_adverse_media | Required: **No** Accepted values: **0, 1** Default: **0** This parameter enables Ongoing Adverse Media Monitoring and is allowed only on **Production Accounts**. When set to **1**, Shufti continuously monitors for changes in adverse media status and sends a webhook with event **verification.status.changed** when a change is detected. **Note:** This parameter only takes effect when **adverse-media** is included in the `filters` array. |
| filters | Required: **No** Type: **Array** Default: **["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4", "adverse-media"]** This key includes specific filter types, namely, alert or warning, that are linked to the AML search. Use these filters within the search to refine and narrow down the results. All filter types are listed here. |
| match_score | Required: **No** Type: **String** match_score indicates the extent to which a search should accommodate variances between the search term and the terms being matched. A value of 0 signifies a loose match, while 100 indicates an exact match. **Note:** It ranges from 0-100. By default value is 100.**Example:** "100". |
| risk_score_engine_id | Required: **No** Type: **string** The ID of a custom risk-scoring engine to apply to the screening results. If none is provided, the default risk-scoring engine is applied. See [Custom Risk Scoring Engine](/docs/user_identification_authentication/user_aml_screening/how_it_works#custom-risk-scoring-engine). |
| countries | Required: **No** Type: **Array** Array of countries based on which you want to filters reports. See [Countries](../../coverage/countries#aml-for-users--aml-for-businesses). **Note:** ISO 3166-1 alpha-2 country codes are supported. **Example:** ['CA','IN'] |
| alias_search | Required: **No** Type: **Boolean** Alias search is used to specify whether user want to perform search within aliases or not. **Note:** The default value of alias_search is '0'.**Example:** "0". |
| rca_search | Required: **No** Type: **Boolean** RCA search is used to specify whether user want to perform search within rca or not. **Note:** The default value of rca_search is '0'.**Example:** "0". |
| process_from_document | This parameter triggers an automatic AML check in the background using the individual's name and date of birth, directly extracted from the provided document. When activated, AML data input is not required from users, and the system exclusively relies on the document information for AML verification. **Note:** This will only work if OCR extraction of the name and date of birth is enabled on the document. |
| context | Required: **No** Type: **string** Additional information about the subject being screened, provided by the merchant to give the AI Compliance Agent richer context for a more accurate and targeted match assessment. |
[](https://god.gw.postman.com/run-collection/9386910-bf881b64-a242-4565-aa64-2092c164748c?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-bf881b64-a242-4565-aa64-2092c164748c%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**http**
```json title=background_checks-service-sample
//POST / HTTP/1.1 basic auth
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"background_checks": {
"alias_search": "0",
"rca_search": "0",
"context": "",
"ongoing": "0",
"process_from_document": "0",
"match_score": "100",
"countries": ["pk", "cy"],
"name": {
"first_name": "",
"middle_name": "",
"last_name": ""
},
"dob": "",
"filters": ["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4", "adverse-media"]
}
}
```
**javascript**
```javascript title=background_checks-service-sample
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
redirect_url : "https://yourdomain.com/site/sp-redirect",
country : "GB",
language : "EN",
verification_mode : "any",
ttl : 60,
background_checks: {
alias_search : "0",
rca_search : "0",
context : "",
ongoing : "0",
process_from_document: "0",
match_score : "100",
countries : ["pk", "cy"],
name: {
first_name : " ",
middle_name : " ",
last_name : " "
},
dob: "1955-07-26",
filters: ["sanction", "fitness-probity", "warning", "pep"]
}
}
// BASIC AUTH TOKEN
// Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); // BASIC AUTH TOKEN
// if Access Token
// var token = "YOUR_ACCESS_TOKEN";
// Dispatch request via fetch API or with whatever else best suits you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' + token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
})
```
**php**
```php title=background_checks-service-sample
'SP_REQUEST_' . rand(),
'callback_url' => 'https://yourdomain.com/profile/sp-notify-callback',
'redirect_url' => 'https://yourdomain.com/site/sp-redirect',
'country' => 'GB',
'language' => 'EN',
'verification_mode' => 'any',
'ttl' => 60,
'background_checks'=> [
'alias_search' => '0',
'rca_search' => '0',
'context' => '',
'ongoing' => '0',
'process_from_document' => '0',
'match_score' => "100",
'name' => [
'first_name' => ' ',
'middle_name' => ' ',
'last_name' => ' '
],
'countries' => ['pk', 'cy'],
'dob' => '1955-07-26',
'filters' => ['sanction', 'fitness-probity', 'warning', 'pep']
]
];
$auth = $client_id . ':' . $secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($payload);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
$response_data = $body;
$decoded_response = json_decode($response_data, true);
return $decoded_response;
?>
```
**py**
```py title=background_checks-service-sample
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
client_id = 'YOUR_CLIENT_ID'
secret_key = 'YOUR_SECRET_KEY'
payload = {
'reference': f'SP_REQUEST_{randint(1000, 9999)}',
'callback_url': 'https://yourdomain.com/profile/sp-notify-callback',
'redirect_url': 'https://yourdomain.com/site/sp-redirect',
'country': 'GB',
'language': 'EN',
'verification_mode': 'any',
'ttl': 60,
'background_checks': {
'alias_search': '0',
'rca_search': '0',
'context': '',
'ongoing': '0',
'process_from_document': '0',
'match_score': "100",
'countries': ['pk', 'cy'],
'name': {
'first_name': ' ',
'middle_name': ' ',
'last_name': ' '
},
'dob': '1955-07-26',
'filters': ['sanction', 'fitness-probity', 'warning', 'pep']
}
}
auth = f'{client_id}:{secret_key}'
b64Val = auth.encode('ascii').hex()
headers = {
'Content-Type': 'application/json',
'Authorization': f'Basic {b64Val}'
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
sp_signature = response.headers.get('Signature', '')
json_response = response.json()
if sp_signature == calculated_signature:
return json_response
```
**ruby**
```rb title=background_checks-service-sample
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
client_id = "YOUR_CLIENT_ID"
secret_key = "YOUR_SECRET_KEY"
payload = {
"reference" => "SP_REQUEST_#{rand(1000..9999)}",
"callback_url" => "https://yourdomain.com/profile/sp-notify-callback",
"redirect_url" => "https://yourdomain.com/site/sp-redirect",
"country" => "GB",
"language" => "EN",
"verification_mode" => "any",
"ttl" => 60,
"background_checks" => {
"alias_search" => "0",
"rca_search" => "0",
"context" => "",
"ongoing" => "0",
"process_from_document" => "0",
"match_score" => "100",
"name" => {
"first_name" => " ",
"middle_name" => " ",
"last_name" => " "
},
"countries" => ["pk", "cy"],
"dob" => "1955-07-26", # Updated to match previous example
"filters" => ["sanction", "fitness-probity", "warning", "pep"]
}
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
auth = Base64.strict_encode64("#{client_id}:#{secret_key}")
request["Authorization"] = "Basic #{auth}"
request.body = payload.to_json
response = http.request(request)
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = Digest::SHA256.hexdigest secret_key
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response.read_body + secret_key
sp_signature = response['Signature']
json_response = JSON.parse(response.read_body)
if sp_signature == calculated_signature
return json_response
end
```
**java**
```java title=background_checks-service-sample
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{"
+ "\"reference\": \"SP_REQUEST_" + (int)(Math.random() * 10000) + "\","
+ "\"callback_url\": \"https://yourdomain.com/profile/sp-notify-callback\","
+ "\"redirect_url\": \"https://yourdomain.com/site/sp-redirect\","
+ "\"country\": \"GB\","
+ "\"language\": \"EN\","
+ "\"verification_mode\": \"any\","
+ "\"ttl\": 60,"
+ "\"background_checks\": {"
+ " \"alias_search\": \"0\","
+ " \"rca_search\": \"0\","
+ " \"context\": \"\","
+ " \"ongoing\": \"0\","
+ " \"process_from_document\": \"0\","
+ " \"match_score\": "100","
+ " \"name\": {"
+ " \"first_name\": \" \","
+ " \"middle_name\": \" \","
+ " \"last_name\": \" \""
+ " },"
+ " \"dob\": \"1955-07-26\","
+ " \"countries\": [\"pk\", \"cy\"],"
+ " \"filters\": [\"sanction\", \"fitness-probity\", \"warning\", \"pep\"]"
+ "}"
+ "}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL title=background_checks-service-sample
curl --location --request POST 'https://api.shuftipro.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url" : "http://www.example.com",
"ttl" : 60,
"verification_mode" : "any",
"background_checks": {
"alias_search" : "0",
"rca_search" : "0",
"context": "",
"ongoing" : "0",
"process_from_document" : "0",
"match_score" : "100",
"name": {
"first_name" : " ",
"middle_name" : " ",
"last_name" : " "
},
"dob": "1955-07-26",
"filters": ["sanction", "fitness-probity", "warning", "pep"],
"countries": ["pk", "cy"]
}
}'
```
**c#**
```c title=background_checks-service-sample
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""http://www.example.com/""," + "\n" +
@" ""email"" : ""johndoe@example.com""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""redirect_url"" : ""http://www.example.com""," + "\n" +
@" ""ttl"" : 60," + "\n" +
@" ""verification_mode"" : ""any""," + "\n" +
@" ""background_checks"" : {" + "\n" +
@" ""alias_search"" : ""0""," + "\n" +
@" ""rca_search"" : ""0""," + "\n" +
@" ""context"" : """"," + "\n" +
@" ""ongoing"" : ""0""," + "\n" +
@" ""process_from_document"" : ""0""," + "\n" +
@" ""match_score"" : ""100""," + "\n" +
@" ""name"" : {""first_name"": "" ""," + "\n" +
@" ""middle_name"": "" ""," + "\n" +
@" ""last_name"": "" ""}," + "\n" +
@" ""dob"" : ""1955-07-26""," + "\n" +
@" ""filters"" : [""sanction"",""fitness-probity"",""warning"",""pep""]," + "\n" +
@" ""countries"" : [""pk"",""cy""]" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go title=background_checks-service-sample
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"redirect_url": "http://www.example.com",
"ttl": 60,
"verification_mode": "any",
"background_checks": {
"alias_search": "0",
"rca_search": "0",
"context": "",
"ongoing": "0",
"process_from_document": "0",
"match_score": "100",
"name": {
"first_name": " ",
"middle_name": " ",
"last_name": " "
},
"dob": "1955-07-26",
"filters": ["sanction", "fitness-probity", "warning", "pep"],
"countries": ["pk", "cy"]
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**Info**
OCR for name recognition in AML checks is exclusively conducted when utilized with services that incorporate OCR functionality, such as Document Verification, Document Two Verification, and Address Verification.
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_aml_screening/offsite.md
In this verification procedure, the client is required to provide Shufti with the end user's full name and date of birth. Leveraging this data, Shufti conducts thorough Anti-Money Laundering (AML) screening to validate user identity.
## Parameters and Description
| Parameters | Description |
|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| dob | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. **Example:** 1990-12-31 **Note:** It is recommended to send dob for more accurate results. |
| name | Required: **No** Type: **object** In name object used in background checks service, first_name required and other fields are optional. Parameters for name are listed here: **Example 1:** { "first_name" : "John", "last_name" : "Doe" } **Example 2:** { "first_name" : "John", "middle_name" : "Carter", "last_name" : "Doe"} **Example 3:** { "full_name" : "John Carter Doe"} **Note:** If full name is provided with first and last name priority will be given to full name. |
| biometric_search_image | Required: **No** Type: **string** Format: **Base64 encoded JPG, JPEG, PNG** Maximum: **5MB (decoded)** A base64-encoded facial image of the individual being screened. Used for biometric matching against records across connected AML databases to improve the accuracy of match assessments. |
| ongoing | Required: **No** Accepted values: **0, 1** Default: **0** This Parameter is used for Ongoing AML Screening, and is allowed only on **Production Accounts**. If Shufti detects a change in AML statuses, then we will send you a webhook with event **verification.status.changed**. The new AML status can be checked using get status endpoint, or from the back-office. **Note:** Use fuzzy_match = 1 in the name object for better results for Ongoing AML Screening. |
| ongoing_adverse_media | Required: **No** Accepted values: **0, 1** Default: **0** This parameter enables Ongoing Adverse Media Monitoring and is allowed only on **Production Accounts**. When set to **1**, Shufti continuously monitors for changes in adverse media status and sends a webhook with event **verification.status.changed** when a change is detected. **Note:** This parameter only takes effect when **adverse-media** is included in the `filters` array. |
| filters | Required: **No** Type: **Array** Default: **["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4", "adverse-media"]** This key includes specific filter types, namely, alert or warning, that are linked to the AML search. Use these filters within the search to refine and narrow down the results. All filter types are listed here. |
| match_score | Required: **No** Type: **String** match_score indicates the extent to which a search should accommodate variances between the search term and the terms being matched. A value of 0 signifies a loose match, while 100 indicates an exact match. **Note:** It ranges from 0-100. By default value is 100.**Example:** "100". |
| risk_score_engine_id | Required: **No** Type: **string** The ID of a custom risk-scoring engine to apply to the screening results. If none is provided, the default risk-scoring engine is applied. See [Custom Risk Scoring Engine](/docs/user_identification_authentication/user_aml_screening/how_it_works#custom-risk-scoring-engine). |
| countries | Required: **No** Type: **Array** Array of countries based on which you want to filters reports. See [Countries](../../coverage/countries#aml-for-users--aml-for-businesses). **Note:** ISO 3166-1 alpha-2 country codes are supported. **Example:** ['CA','IN'] |
| alias_search | Required: **No** Type: **Boolean** Alias search is used to specify whether user want to perform search within aliases or not. **Note:** The default value of alias_search is '0'.**Example:** "0". |
| rca_search | Required: **No** Type: **Boolean** RCA search is used to specify whether user want to perform search within rca or not. **Note:** The default value of rca_search is '0'.**Example:** "0". |
| context | Required: **No** Type: **string** Additional information about the subject being screened, provided by the merchant to give the AI Compliance Agent richer context for a more accurate and targeted match assessment. |
[](https://god.gw.postman.com/run-collection/9386910-89d1f126-0abe-41d2-a0c2-847161ace00b?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-89d1f126-0abe-41d2-a0c2-847161ace00b%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**http**
```json title=background_checks-service-sample
//POST / HTTP/1.1 basic auth
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"background_checks": {
"alias_search": "0",
"rca_search": "0",
"context": "",
"ongoing": "0",
"match_score": "100",
"countries": ["gb", "cy"],
"name": {
"first_name": "John",
"middle_name": "Carter",
"last_name": "Doe"
},
"dob": "1955-07-26",
"filters": ["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4", "adverse-media"]
}
}
```
**javascript**
```javascript title=background_checks-service-sample
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
redirect_url : "https://yourdomain.com/site/sp-redirect",
country : "GB",
language : "EN",
verification_mode : "any",
ttl : 60,
background_checks: {
alias_search : "0",
rca_search : "0",
context : "",
ongoing : "0",
match_score : "100",
countries : ["gb", "cy"],
name: {
first_name : "John",
middle_name : "Carter",
last_name : "Doe"
},
dob: "1955-07-26",
filters: ["sanction", "fitness-probity", "warning", "pep"]
}
}
// BASIC AUTH TOKEN
// Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); // BASIC AUTH TOKEN
// if Access Token
// var token = "YOUR_ACCESS_TOKEN";
// Dispatch request via fetch API or with whatever else best suits you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' + token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
})
```
**php**
```php title=background_checks-service-sample
'SP_REQUEST_' . rand(),
'callback_url' => 'https://yourdomain.com/profile/sp-notify-callback',
'redirect_url' => 'https://yourdomain.com/site/sp-redirect',
'country' => 'GB',
'language' => 'EN',
'verification_mode' => 'any',
'ttl' => 60,
'background_checks'=> [
'alias_search' => '0',
'rca_search' => '0',
'context' => '',
'ongoing' => '0',
'match_score' => "100",
'countries' => ['gb', 'cy'],
'name' => [
'first_name' => 'John',
'middle_name' => 'Carter',
'last_name' => 'Doe'
],
'dob' => '1955-07-26',
'filters' => ['sanction', 'fitness-probity', 'warning', 'pep']
]
];
$auth = $client_id . ':' . $secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($payload);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
$response_data = $body;
$decoded_response = json_decode($response_data, true);
return $decoded_response;
?>
```
**py**
```py title=background_checks-service-sample
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
client_id = 'YOUR_CLIENT_ID'
secret_key = 'YOUR_SECRET_KEY'
payload = {
'reference': f'SP_REQUEST_{randint(1000, 9999)}',
'callback_url': 'https://yourdomain.com/profile/sp-notify-callback',
'redirect_url': 'https://yourdomain.com/site/sp-redirect',
'country': 'GB',
'language': 'EN',
'verification_mode': 'any',
'ttl': 60,
'background_checks': {
'alias_search': '0',
'rca_search': '0',
'context': '',
'ongoing': '0',
'match_score': "100",
'countries': ['gb', 'cy'],
'name': {
'first_name': 'John',
'middle_name': 'Carter',
'last_name': 'Doe'
},
'dob': '1955-07-26',
'filters': ['sanction', 'fitness-probity', 'warning', 'pep']
}
}
auth = f'{client_id}:{secret_key}'
b64Val = auth.encode('ascii').hex()
headers = {
'Content-Type': 'application/json',
'Authorization': f'Basic {b64Val}'
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
sp_signature = response.headers.get('Signature', '')
json_response = response.json()
if sp_signature == calculated_signature:
return json_response
```
**ruby**
```rb title=background_checks-service-sample
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
client_id = "YOUR_CLIENT_ID"
secret_key = "YOUR_SECRET_KEY"
payload = {
"reference" => "SP_REQUEST_#{rand(1000..9999)}",
"callback_url" => "https://yourdomain.com/profile/sp-notify-callback",
"redirect_url" => "https://yourdomain.com/site/sp-redirect",
"country" => "GB",
"language" => "EN",
"verification_mode" => "any",
"ttl" => 60,
"background_checks" => {
"alias_search" => "0",
"rca_search" => "0",
"context" => "",
"ongoing" => "0",
"match_score" => "100",
"countries" => ["gb", "cy"],
"name" => {
"first_name" => "John",
"middle_name" => "Carter",
"last_name" => "Doe"
},
"dob" => "1955-07-26", # Updated to match previous example
"filters" => ["sanction", "fitness-probity", "warning", "pep"]
}
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
auth = Base64.strict_encode64("#{client_id}:#{secret_key}")
request["Authorization"] = "Basic #{auth}"
request.body = payload.to_json
response = http.request(request)
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = Digest::SHA256.hexdigest secret_key
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response.read_body + secret_key
sp_signature = response['Signature']
json_response = JSON.parse(response.read_body)
if sp_signature == calculated_signature
return json_response
end
```
**java**
```java title=background_checks-service-sample
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{"
+ "\"reference\": \"SP_REQUEST_" + (int)(Math.random() * 10000) + "\","
+ "\"callback_url\": \"https://yourdomain.com/profile/sp-notify-callback\","
+ "\"redirect_url\": \"https://yourdomain.com/site/sp-redirect\","
+ "\"country\": \"GB\","
+ "\"language\": \"EN\","
+ "\"verification_mode\": \"any\","
+ "\"ttl\": 60,"
+ "\"background_checks\": {"
+ " \"alias_search\": \"0\","
+ " \"rca_search\": \"0\","
+ " \"context\": \"\","
+ " \"ongoing\": \"0\","
+ " \"match_score\": \"100\","
+ " \"countries\": [\"cy\", \"gb\"],"
+ " \"name\": {"
+ " \"first_name\": \"John\","
+ " \"middle_name\": \"Carter\","
+ " \"last_name\": \"Doe\""
+ " },"
+ " \"dob\": \"1955-07-26\","
+ " \"filters\": [\"sanction\", \"fitness-probity\", \"warning\", \"pep\"]"
+ "}"
+ "}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL title=background_checks-service-sample
curl --location --request POST 'https://api.shuftipro.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url" : "http://www.example.com",
"ttl" : 60,
"verification_mode" : "any",
"background_checks": {
"alias_search" : "0",
"rca_search" : "0",
"context": "",
"ongoing" : "0",
"match_score" : "100",
"countries" : ["pk", "cy"],
"name": {
"first_name" : "John",
"middle_name" : "Carter",
"last_name" : "Doe"
},
"dob": "1955-07-26",
"filters": ["sanction", "fitness-probity", "warning", "pep"]
}
}'
```
**c#**
```c title=background_checks-service-sample
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""http://www.example.com/""," + "\n" +
@" ""email"" : ""johndoe@example.com""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""redirect_url"" : ""http://www.example.com""," + "\n" +
@" ""ttl"" : 60," + "\n" +
@" ""verification_mode"" : ""any""," + "\n" +
@" ""background_checks"" : {" + "\n" +
@" ""alias_search"" : ""0""," + "\n" +
@" ""rca_search"" : ""0""," + "\n" +
@" ""context"" : """"," + "\n" +
@" ""ongoing"" : ""0""," + "\n" +
@" ""match_score"" : "100"," + "\n" +
@" ""countries"" : [""pk"",""cy""]," + "\n" +
@" ""name"" : {""first_name"": ""John""," + "\n" +
@" ""middle_name"": ""Carter""," + "\n" +
@" ""last_name"": ""Doe""}," + "\n" +
@" ""dob"" : ""1955-07-26""," + "\n" +
@" ""filters"" : [""sanction"",""fitness-probity"",""warning"",""pep""]" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go title=background_checks-service-sample
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"redirect_url": "http://www.example.com",
"ttl": 60,
"verification_mode": "any",
"background_checks": {
"alias_search": "0",
"rca_search": "0",
"context": "",
"ongoing": "0",
"match_score": "100",
"countries": ["pk", "cy"],
"name": {
"first_name": "John",
"middle_name": "Carter",
"last_name": "Doe"
},
"dob": "1955-07-26",
"filters": ["sanction", "fitness-probity", "warning", "pep"]
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**Info**
OCR for name recognition in AML checks is exclusively conducted when utilized with services that incorporate OCR functionality, such as Document Verification, Document Two Verification, and Address Verification.
---
# Match Results
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_aml_screening/match_results.md
For every record returned, Shufti reports the **degree of correlation** between the screened individual's details and the watchlist entry, so you can see exactly why a record was surfaced. These match types appear on each hit in the [response](/docs/user_identification_authentication/user_aml_screening/responses) and explain the basis of the match, from exact to phonetic to synonym-based.
### Match types {#match-types}
| Field | Meaning |
| --- | --- |
| `name_exact` | Matched the entity name exactly. |
| `aka_exact` | Matched an entity AKA (also known as) entry exactly. |
| `name_fuzzy` | Matched the name closely, but at least one word had an edit-distance change. |
| `aka_fuzzy` | Matched an AKA name closely, but at least one word had an edit-distance change. |
| `phonetic_name` | Matched the entity name phonetically. |
| `phonetic_aka` | Matched an entity AKA phonetically. |
| `equivalent_name` | Matched the entity name via a synonym, e.g. *Robert Mugabe* → *Bob Mugabe*. |
| `equivalent_aka` | Matched an entity AKA via a synonym, e.g. *Robert Mugabe* → *Bob Mugabe*. |
| `unknown` | Matched for a more complex reason, such as an acronym. |
| `year_of_birth` | Matched the birth year given in filters; can be the exact year ±1 year depending on fuzziness and options. |
| `removed_personal_title` | A personal title (e.g. *Mrs*) was stripped from the search term. |
| `removed_personal_suffix` | A personal suffix (e.g. *PhD*) was stripped from the search term. |
| `removed_organisation_prefix` | An organization prefix (e.g. *JSC*) was stripped from the search term. |
| `removed_organisation_suffix` | An organization suffix (e.g. *Ltd*) was stripped from the search term. |
| `removed_clerical_mark` | A clerical mark (e.g. *DECEASED*) was stripped from the search term. |
**Tip**
Match types pair naturally with the [AML Match Score](/docs/user_identification_authentication/user_aml_screening/how_it_works#aml-match-score): the score tells you *how close* the match is, while the match types tell you *why* it matched (exact, fuzzy, phonetic, or synonym).
---
---
# Responses
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_aml_screening/responses.md
```json title=AML-for-user-service-sample-response
{
"reference": "***********",
"event": "verification.declined",
"country": null,
"proofs": {
"verification_report": "https://ns.shuftipro.com/api/pea/****************************",
"access_token": "generated_access_token"
},
"verification_data": {
"background_checks": {
"name": {
"first_name": "John",
"last_name": "Doe"
},
"aml_data": {
"filters": [
"sanction",
"warning",
"fitness-probity",
"pep",
"pep-class-1",
"pep-class-2",
"pep-class-3",
"pep-class-4"
],
"hits": [
{
"name": "John Dew",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Country": [
{
"value": "United Kingdom",
"source": "",
"tag": "country"
}
],
"Date Of Birth": [
{
"value": "1952-05-03",
"source": "",
"tag": "date_of_birth"
}
],
"Education": [
{
"value": "Lincoln College",
"source": "",
"tag": "education"
},
{
"value": "Ruskin School of Drawing and Fine Art",
"source": "",
"tag": "education"
}
],
"First Name": [
{
"value": "John",
"source": "",
"tag": "first_name"
}
],
"Gender": [
{
"value": "male",
"source": "",
"tag": "gender"
}
],
"Keywords": [
{
"value": "National government",
"source": "",
"tag": "keywords"
}
],
"Nationality": [
{
"value": "United Kingdom",
"source": "",
"tag": "nationality"
}
],
"Notes": [
{
"value": "British diplomat and ambassador",
"source": "",
"tag": "notes"
}
],
"Position": [
{
"value": "ambassador of the United Kingdom to Colombia (2008-2012)",
"source": "",
"tag": "position"
},
{
"value": "ambassador of the United Kingdom to Cuba (2004-2008)",
"source": "",
"tag": "position"
}
],
"Position Occupancies": [
{
"value": "ambassador of the United Kingdom to Cuba",
"source": "",
"tag": "position_occupancies"
},
{
"value": "ambassador of the United Kingdom to Colombia",
"source": "",
"tag": "position_occupancies"
}
]
},
"media": [],
"source_notes": [],
"sources": ["Shufti Internal Database", "Wikidata"],
"types": []
},
{
"name": "John Dow",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "c/o Kingsbridge Corporate Solutions, Business Hive, 13 Dudley Street, Grimsby, NorthEast Lincolnshire DN31 2AW",
"source": "",
"tag": "address"
},
{
"value": "Beehive Business Park, Rand, Market Rasen, LN8 5NJ",
"source": "",
"tag": "address"
}
],
"Company Name": [
{
"value": "J A DOW JOINERY & MANUFACTURERS LIMITED",
"source": "",
"tag": "company_name"
}
],
"Company Number": [
{
"value": "Notice timeline for company number 07469169",
"source": "",
"tag": "company_number"
}
],
"Designation": [
{
"value": "Director",
"source": "",
"tag": "designation"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Dow",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "56 Warwick Road SCUNTHORPE DN16 1EZ",
"source": "",
"tag": "address"
},
{
"value": "SCUNTHORPE DN16 1EZ",
"source": "",
"tag": "address"
},
{
"value": "30-40 Laneham Street SCUNTHORPE DN15 6PB",
"source": "",
"tag": "address"
},
{
"value": "56 Warwick Road SCUNTHORPE DN15 6PB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-11-05",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "D John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Unit F13, Broadoak Enterprise Estate, Broadoak Road, Sittingbourne, Kent ME9 8AQ",
"source": "",
"tag": "address"
},
{
"value": "Unit F13, Broadoak Enterprise Estate, Broadoak Road, Sittingbourne, Kent ME9 8AQ",
"source": "",
"tag": "address"
}
],
"Company Name": [
{
"value": "STAT-EXPRESS LIMITED",
"source": "",
"tag": "company_name"
}
],
"Company Number": [
{
"value": "Notice timeline for company number 01948970",
"source": "",
"tag": "company_number"
}
],
"Designation": [
{
"value": [""],
"source": "",
"tag": "designation"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mr John Doe",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "136 GOSPORT ROAD RICKMANSWORTH WD3 8PZ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2009-02-09",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Unit 9 Crusader Business Park, Stephenson Road West, Clacton-On-Sea, Essex CO15 4TN",
"source": "",
"tag": "address"
},
{
"value": "Titchmarsh Marina, Coles Lane, Walton on the Naze CO14 8SL",
"source": "",
"tag": "address"
}
],
"Company Name": [
{
"value": "FOUNDRY REACH CHANDLERY LIMITED",
"source": "",
"tag": "company_name"
}
],
"Company Number": [
{
"value": "Notice timeline for company number 07694686",
"source": "",
"tag": "company_number"
}
],
"Designation": [
{
"value": "Director",
"source": "",
"tag": "designation"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Toy John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Dulverton Hall, Esplanade, Scarborough, YO11 2AR formerly of 11 Westhorpe, Southwell,\n Nottinghamshire, NG25 0ND",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-10-17",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Ashtree Cottage Norwich NR7 7WD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-12-24",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Day Thomas",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "62-68 Kingston Place Portsmouth PO2 8AQ",
"source": "",
"tag": "address"
},
{
"value": "Portsmouth PO3 6FR",
"source": "",
"tag": "address"
},
{
"value": "1 Richard Court Portsmouth PO2 8AQ",
"source": "",
"tag": "address"
},
{
"value": "1 Richard Court Portsmouth PO3 6FR",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-09-26",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mr John Dew",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "5 Swan Close Norwich NR7 7WD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-05-15",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mr John Dow",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "56 Warwick Road SCUNTHORPE DN15 6PB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-11-05",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mr John Dee",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "20 HAMMETT ROAD MANCHESTER Greater Manchester M21 9DJ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-02-07",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Dow Derek John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "307A Reading Road, Winnersh, Wokingham, Berkshire, RG41 5LR",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-12-10",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Jayne Doe Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "124-126 Church Hill, Loughton, Essex IG10 1LH",
"source": "",
"tag": "address"
},
{
"value": "(former) 60 Station Lane, Hornchurch, Essex RM12 6NB",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "Notice timeline for company number 09586214",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Jayne Doe Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09586214",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": ["Ag PH10914"]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John De Grey, 9Th Baron Walsingham",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "Wendy Elizabeth Hoare",
"association": "spouse",
"details": "Peerage person ID=58615"
},
{
"name": "Robert de Grey",
"association": "child",
"details": "(born 1969)"
},
{
"name": "Sarah Jane de Grey",
"association": "child",
"details": "(born 1964)"
},
{
"name": "Elizabeth Anne de Grey",
"association": "child",
"details": "(born 1966)"
}
],
"fields": {
"Country": [
{
"value": "United Kingdom",
"source": "",
"tag": "country"
}
],
"Date Of Birth": [
{
"value": "1925-02-21",
"source": "",
"tag": "date_of_birth"
}
],
"First Name": [
{
"value": "John",
"source": "",
"tag": "first_name"
}
],
"Gender": [
{
"value": "male",
"source": "",
"tag": "gender"
}
],
"Keywords": [
{
"value": "National government",
"source": "",
"tag": "keywords"
}
],
"Nationality": [
{
"value": "United Kingdom",
"source": "",
"tag": "nationality"
}
],
"Notes": [
{
"value": "peer (born 1925)",
"source": "",
"tag": "notes"
}
],
"Position": [
{
"value": "member of the House of Lords",
"source": "",
"tag": "position"
}
],
"Position Occupancies": [
{
"value": "member of the House of Lords",
"source": "",
"tag": "position_occupancies"
}
]
},
"media": [],
"source_notes": [],
"sources": ["Shufti Internal Database", "Wikidata"],
"types": []
},
{
"name": "Jayne Doe Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09586214",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a general meeting of the members of the above named Company, duly convened and held at The Old Exchange, 234 Southchurch Road, Southend on Sea, Essex SS1 2EG on 7 April 2022 the following resolutions were duly passed as a special resolution and an ordinary resolution respectively: , \"That the Company be wound up voluntarily and that Louise Donna Baxter (IP No. 009123) and Jamie Taylor (IP No. 002748) both of Begbies Traynor (Central) LLP, The Old Exchange, 234 Southchurch Road, Southend-on-Sea, Essex, SS1 2EG be and hereby are appointed Joint Liquidators of the Company for the purpose of the voluntary winding-up, and any act required or authorised under any enactment to be done by the Joint Liquidators may be done by all or any one or more of the persons holding the office of liquidator from time to time.\" , Any person who requires further information may contact the Joint Liquidator by telephone on 01702 467255. Alternatively enquiries can be made to Christopher Gore by e-mail at christopher.gore@btguk.com or by telephone on 01702 467255. , Ag PH10914"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Jayne Doe Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "124-126 Church Hill, Loughton, Essex IG10 1LH",
"source": "",
"tag": "address"
}
],
"Business Nature": [
{
"value": "Tattoo studio",
"source": "",
"tag": "business_nature"
}
],
"Company Number": [
{
"value": "09586214",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Joseph John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "114 Halford Road, London SW6 1JX",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2017-02-09",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Doel Henry John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "70 Frome Road Trowbridge BA14 0DG",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2019-07-19",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Alan Dowie John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "7 Ainsworth Close Ovingdean BRIGHTON BN2 7BH",
"source": "",
"tag": "address"
},
{
"value": "BRIGHTON BN2 7BH",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-07-08",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Robert John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "23 Seaward Court West Street Bognor Regis West Sussex PO21 1XJ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2019-11-08",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "William Doe John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Grendon Underwood HP18 0SJ",
"source": "",
"tag": "address"
},
{
"value": "Grove Lee Main Street Grendon Underwood HP18 0SJ",
"source": "",
"tag": "address"
},
{
"value": "The London Gazette (19200) PO Box 3584 Norwich NR7 7WD",
"source": "",
"tag": "address"
},
{
"value": "Grove Lee Main Street Norwich NR7 7WD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-04-28",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Doe Richard",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "20 SPRINGWELL AVENUE MILL END RICKMANSWORTH WD3 8PZ",
"source": "",
"tag": "address"
},
{
"value": "136 GOSPORT ROAD Longfield Avenue RICKMANSWORTH WD3 8PZ",
"source": "",
"tag": "address"
},
{
"value": "60 Longfield Avenue Fareham PO14 1BT",
"source": "",
"tag": "address"
},
{
"value": "FAREHAM PO16 0QL",
"source": "",
"tag": "address"
},
{
"value": "Fareham PO14 1BT",
"source": "",
"tag": "address"
},
{
"value": "136 GOSPORT ROAD Longfield Avenue FAREHAM PO16 0QL",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2009-02-09",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John De Waele",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "FIVE WAYS 57-59 HATFIELD ROAD, HERTFORDSHIRE, POTTERS BAR EN6 1HS",
"source": "",
"tag": "address"
},
{
"value": "35 STATION ROAD, WELHAM GREEN, NORTH MYMMS, HATFIELD, HERTFORDSHIRE AL9 7PF",
"source": "",
"tag": "address"
}
],
"Company Name": [
{
"value": "AMBERLEY BUILDERS LIMITED",
"source": "",
"tag": "company_name"
}
],
"Company Number": [
{
"value": "Notice timeline for company number 02905163",
"source": "",
"tag": "company_number"
}
],
"Designation": [
{
"value": [""],
"source": "",
"tag": "designation"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day John Owen",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Brynheulog Rhayader Powys LD6 5EG",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-07-03",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Doe Edna Joan",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Benson House Care Home, Churchfield Lane, Benson, Wallingford, formerly of 83 Berkshire\n Lodge, Pegasus Court, Park Lane, Tilehurst, RG31 5DB, OX10 6SH",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-06-20",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Doe Leonard John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "2 Luxton Court, Cullompton, Devon, EX15 1FJ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2017-07-18",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Dew Alan John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "14 Warwick Walk, Hereford HR4 9TG",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-01-05",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Taylor",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "George David Taylor",
"association": "father",
"details": "Peerage person ID=589515"
},
{
"name": "Georgina Baird",
"association": "mother",
"details": "Peerage person ID=589488"
},
{
"name": "Mary Frances Todd",
"association": "spouse",
"details": "Peerage person ID=589525"
},
{
"name": "Jonathan Taylor",
"association": "child",
"details": "(born 1973)"
},
{
"name": "Jane Taylor",
"association": "child",
"details": "(born 1972)"
},
{
"name": "Rachel Taylor",
"association": "child",
"details": "(born 1974)"
},
{
"name": "Rowena Taylor",
"association": "child"
},
{
"name": "Alex Taylor",
"association": "child",
"details": "(born 1977)"
},
{
"name": "Hannah Nadia Victoria Taylor",
"association": "child",
"details": "Peerage person ID=589518"
}
],
"fields": {
"Country": [
{
"value": "United Kingdom",
"source": "",
"tag": "country"
},
{
"value": "United Kingdom",
"source": "",
"tag": "country"
}
],
"Date Of Birth": [
{
"value": "1937-12-24",
"source": "",
"tag": "date_of_birth"
}
],
"Education": [
{
"value": "The Royal School, Armagh",
"source": "",
"tag": "education"
},
{
"value": "Queen's University Belfast",
"source": "",
"tag": "education"
}
],
"First Name": [
{
"value": "John",
"source": "",
"tag": "first_name"
}
],
"Gender": [
{
"value": "male",
"source": "",
"tag": "gender"
}
],
"Keywords": [
{
"value": "National government",
"source": "",
"tag": "keywords"
},
{
"value": "International organization",
"source": "",
"tag": "keywords"
}
],
"Last Name": [
{
"value": "Taylor",
"source": "",
"tag": "last_name"
}
],
"Nationality": [
{
"value": "United Kingdom",
"source": "",
"tag": "nationality"
},
{
"value": "United Kingdom",
"source": "",
"tag": "nationality"
}
],
"Notes": [
{
"value": "British life peer",
"source": "",
"tag": "notes"
}
],
"Place Of Birth": [
{
"value": "Armagh",
"source": "",
"tag": "place_of_birth"
}
],
"Position": [
{
"value": "member of the House of Lords (2001-)",
"source": "",
"tag": "position"
},
{
"value": "Representative of the Parliamentary Assembly of the Council of Europe (1960-1961)",
"source": "",
"tag": "position"
},
{
"value": "Member of the 1st Northern Ireland Assembly (1998-2003)",
"source": "",
"tag": "position"
},
{
"value": "member of the 51st Parliament of the United Kingdom (1992-1997)",
"source": "",
"tag": "position"
},
{
"value": "substitute member of the Parliamentary Assembly of the Council of Europe (2001-2005)",
"source": "",
"tag": "position"
},
{
"value": "member of the European Parliament (1979-1989)",
"source": "",
"tag": "position"
},
{
"value": "member of the 50th Parliament of the United Kingdom (1987-1992)",
"source": "",
"tag": "position"
},
{
"value": "member of the 49th Parliament of the United Kingdom (1986-1987)",
"source": "",
"tag": "position"
},
{
"value": "member of the European Parliament (1984-1989)",
"source": "",
"tag": "position"
},
{
"value": "member of the 52nd Parliament of the United Kingdom (1997-2001)",
"source": "",
"tag": "position"
},
{
"value": "member of the European Parliament (1979-1984)",
"source": "",
"tag": "position"
},
{
"value": "Member of the 1982–1986 Northern Ireland Assembly",
"source": "",
"tag": "position"
},
{
"value": "Representative of the Parliamentary Assembly of the Council of Europe (1997-2001)",
"source": "",
"tag": "position"
},
{
"value": "Member of the Parliament of Northern Ireland (1965-1972)",
"source": "",
"tag": "position"
},
{
"value": "member of the 49th Parliament of the United Kingdom (1983-1985)",
"source": "",
"tag": "position"
},
{
"value": "Member of the 2nd Northern Ireland Assembly (2003-2007)",
"source": "",
"tag": "position"
},
{
"value": "member of the 1973–74 Northern Ireland Assembly",
"source": "",
"tag": "position"
},
{
"value": "substitute member of the Parliamentary Assembly of the Council of Europe (1959-1960)",
"source": "",
"tag": "position"
},
{
"value": "Northern Ireland Assembly (member, 2003-2007)",
"source": "",
"tag": "position"
}
],
"Position Occupancies": [
{
"value": "Member of the Northern Ireland Assembly",
"source": "",
"tag": "position_occupancies"
},
{
"value": "member of the House of Lords",
"source": "",
"tag": "position_occupancies"
},
{
"value": "substitute member of the Parliamentary Assembly of the Council of Europe",
"source": "",
"tag": "position_occupancies"
}
]
},
"media": [],
"source_notes": [],
"sources": [
"Shufti Internal Database",
"Wikidata",
"Every Politician"
],
"types": []
},
{
"name": "D''Souza Eryx John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Flat 1, 23 Carlingford Road, London NW3 1RY",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-08-07",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Tye John Derek",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Richmond House, Chapel Lane, Bledlow, Bucks HP27 9QG",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-09-06",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day John Derek",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "32 Eden Avenue Culcheth Warrington WA3 5HX",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-09-28",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Henry John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Emberbrook Care Centre, 16 Raphael Drive, Thames Ditton, Middlesex, KT7 0BL",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2010-11-10",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mr John Tye",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "26 LIVINGSTONE ROAD FORDINGBRIDGE SP6 3TA",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2017-01-07",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Peter John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "25 Morris Close, Newbold, Rugby, Warwickshire CV21 1AX",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2013-10-15",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Tye John Derek",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Richmond House, Chapel Lane, Bledlow, Buckinghamshire HP27 9QG",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-09-06",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Peter John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "8 Blaencoed Road, Llansamlet, Swansea, SA7 9TP",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-05-06",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John D Maas",
"entity_type": ["Person"],
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Brussels,Brussels-Capital,BELGIUM",
"source": "",
"tag": "address"
},
{
"value": "Paris,Ile-de-France,FRANCE",
"source": "",
"tag": "address"
},
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "address"
}
],
"Category": [
{
"value": "PEP",
"source": "",
"tag": "category"
}
],
"Designation": [
{
"value": "Senior Military Official",
"source": "",
"tag": "designation"
}
],
"Entity Type": [
{
"value": "Person",
"source": "",
"tag": "entity_type"
}
],
"Gender": [
{
"value": "Male",
"source": "",
"tag": "gender"
}
],
"Nationality": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "nationality"
}
],
"Place Of Registration": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "place_of_registration"
}
],
"Title": [
{
"value": "Air Commodore",
"source": "",
"tag": "title"
}
]
},
"media": [],
"source_notes": {
"age": ["55"],
"age_as_of": ["2017-11-01"],
"comment": ["Nov 2017 - no further information reported"],
"identification_remarks": []
},
"sources": ["Shufti Internal Database"],
"types": ["PEP"]
},
{
"name": "Mr John Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "50a Marsh Lane Norwich NR7 7WD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-04-15",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Robin John Doy",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "1 Stirling Close Downham Market PE38 9PZ",
"source": "",
"tag": "address"
}
],
"Date Of Birth": [
{
"value": "1961-02-17",
"source": "",
"tag": "date_of_birth"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Peter John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "10 Knightsbridge Crescent, Telford, Shropshire TF3 1BN",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2015-04-22",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mr John Dee Jospeh",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "MANCHESTER M21 9HY",
"source": "",
"tag": "address"
},
{
"value": "20 HAMMETT ROAD MANCHESTER M21 9HY",
"source": "",
"tag": "address"
},
{
"value": "20 HAMMETT ROAD England MANCHESTER M21 9DJ",
"source": "",
"tag": "address"
},
{
"value": "5A HIGH LANE Chorlton England MANCHESTER M21 9DJ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-02-07",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Melvyn John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "35 Heol Y Bont Tondu Bridgend CF32 9EY",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2017-12-10",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "De Filippo John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "4 Temple Street Llanelli SA15 1HT",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-11-17",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Andrew Day John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Flat 5, Castleman Court, Station Road Ferndown BH22 0JY",
"source": "",
"tag": "address"
},
{
"value": "Flat 5, Castleman Court, Station Road Calne SN11 0BS",
"source": "",
"tag": "address"
},
{
"value": "19 High Street Calne SN11 0BS",
"source": "",
"tag": "address"
},
{
"value": "Ferndown BH22 0JY",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-03-23",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Bob Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Country": [
{
"value": "Australia",
"source": "",
"tag": "country"
}
],
"Date Of Birth": [
{
"value": "1952-07-05",
"source": "",
"tag": "date_of_birth"
}
],
"Education": [
{
"value": "University of South Australia",
"source": "",
"tag": "education"
}
],
"First Name": [
{
"value": "Bob",
"source": "",
"tag": "first_name"
}
],
"Gender": [
{
"value": "male",
"source": "",
"tag": "gender"
}
],
"Keywords": [
{
"value": "National government",
"source": "",
"tag": "keywords"
}
],
"Last Name": [
{
"value": "Day",
"source": "",
"tag": "last_name"
}
],
"Nationality": [
{
"value": "United Kingdom",
"source": "",
"tag": "nationality"
},
{
"value": "Australia",
"source": "",
"tag": "nationality"
}
],
"Notes": [
{
"value": "Australian politician (born 1952)",
"source": "",
"tag": "notes"
}
],
"Place Of Birth": [
{
"value": "Manchester",
"source": "",
"tag": "place_of_birth"
}
],
"Position": [
{
"value": "Senate (member, 2013-2016)",
"source": "",
"tag": "position"
},
{
"value": "member of the Australian Senate (2014-2016)",
"source": "",
"tag": "position"
},
{
"value": "Senate (member, 2016-2016)",
"source": "",
"tag": "position"
}
],
"Position Occupancies": [
{
"value": "Member of the Senate",
"source": "",
"tag": "position_occupancies"
},
{
"value": "Member of the Senate",
"source": "",
"tag": "position_occupancies"
},
{
"value": "member of the Australian Senate",
"source": "",
"tag": "position_occupancies"
}
],
"Religion": [
{
"value": "Christianity",
"source": "",
"tag": "religion"
}
],
"Website": [
{
"value": "http://www.senatorbobday.com.au/",
"source": "",
"tag": "website"
},
{
"value": "https://twitter.com/senatorbobday",
"source": "",
"tag": "website"
},
{
"value": "https://facebook.com/Senator-Bob-Day-545522605573696",
"source": "",
"tag": "website"
}
]
},
"media": [],
"source_notes": [],
"sources": [
"Shufti Internal Database",
"Wikidata",
"Every Politician"
],
"types": []
},
{
"name": "Ty-John Roberts",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Greyfriars Court, Paradise Square, Oxford OX1 1BE",
"source": "",
"tag": "address"
},
{
"value": "1 The Chase, Old Harlow, Essex CM17 9JA",
"source": "",
"tag": "address"
}
],
"Company Name": [
{
"value": "ADDICTED 2 TV LIMITED",
"source": "",
"tag": "company_name"
}
],
"Company Number": [
{
"value": "Notice timeline for company number 04698070",
"source": "",
"tag": "company_number"
}
],
"Designation": [
{
"value": "Director",
"source": "",
"tag": "designation"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Dennis John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Sussexdown Washington Road Storrington West Sussex RH20 4DA",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-04-01",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Dowie Michael John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "2 Verona Court Mansfield Nottinghamshire NG18 4HN",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2020-04-08",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "De Blaby John Theodore",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "23 THE MOORINGS, DEVON, TQ7 1LP",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2020-07-29",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Anthony John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "25 Batham Road, Kidderminster, Worcestershire, DY10 2TN",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2020-12-29",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Dew Windrow",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "MORETON-IN-MARSH GL56 0BE",
"source": "",
"tag": "address"
},
{
"value": "5 Swan Close Norwich NR7 7WD",
"source": "",
"tag": "address"
},
{
"value": "The London Gazette (35767) PO Box 3584 Norwich NR7 7WD",
"source": "",
"tag": "address"
},
{
"value": "5 Swan Close MORETON-IN-MARSH GL56 0BE",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-05-15",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Michael John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Little Woodlands, North Road, Bathwick, Bath, BA2 6HB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-11-25",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Dew Kenneth John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "3 Hilmarton Ave, Swindon, Wiltshire SN2 5HH",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2014-07-14",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Dee Michael John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Lakeside Nursing Home, 25 Auckland Road London, SE19 2DR",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-08-30",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Day Everard",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "BIRMINGHAM B46 1NW",
"source": "",
"tag": "address"
},
{
"value": "50a Marsh Lane Water Orton BIRMINGHAM B46 1NW",
"source": "",
"tag": "address"
},
{
"value": "50a Marsh Lane Water Orton Norwich NR7 7WD",
"source": "",
"tag": "address"
},
{
"value": "The London Gazette (32713) PO Box 3584 Norwich NR7 7WD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-04-15",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mr John Tighe",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Croydon CR90 9QU",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2015-08-21",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John De Trafford",
"entity_type": ["Person"],
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "Anne Marie"
},
{
"name": "Alexander Humphrey"
},
{
"name": "Isabel June"
}
],
"fields": {
"Address": [
{
"value": "London,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
}
],
"Category": [
{
"value": "PEP",
"source": "",
"tag": "category"
}
],
"Company Name": [
{
"value": "The Landmark Trustee Company Limited",
"source": "",
"tag": "company_name"
}
],
"Date Of Birth": [
{
"value": "1950-09-12",
"source": "",
"tag": "date_of_birth"
}
],
"Designation": [
{
"value": "Former Senior Official - SOE",
"source": "",
"tag": "designation"
}
],
"Entity Type": [
{
"value": "Person",
"source": "",
"tag": "entity_type"
}
],
"Gender": [
{
"value": "Male",
"source": "",
"tag": "gender"
}
],
"Nationality": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "nationality"
}
],
"Place Of Registration": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "place_of_registration"
}
],
"Title": [
{
"value": "Sir",
"source": "",
"tag": "title"
}
]
},
"media": [],
"source_notes": {
"age": [],
"age_as_of": [],
"comment": ["Aug 2018 - no further information reported"],
"identification_remarks": [
"Anne Marie Faure de Trafford (spouse). Alexander Humphrey de Trafford (son). Isabel June de Trafford (daughter)"
]
},
"sources": ["Shufti Internal Database"],
"types": ["PEP"]
},
{
"name": "Day John Eddy",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Gorseway Lodge, 354 Seafront, Hayling Island, Hampshire PO11 0BA",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-08-25",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Alan John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "9 Annie Street, Fitzwilliam Pontefract, WF9 5BQ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-12-14",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John T. Morton",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Country": [
{
"value": "United States",
"source": "",
"tag": "country"
}
],
"Date Of Birth": [
{
"value": "1966-07-26",
"source": "",
"tag": "date_of_birth"
}
],
"Education": [
{
"value": "University of Virginia School of Law (1991-1994)",
"source": "",
"tag": "education"
},
{
"value": "Metairie Park Country Day School",
"source": "",
"tag": "education"
},
{
"value": "University of Virginia (1984-1988)",
"source": "",
"tag": "education"
},
{
"value": "College of William & Mary",
"source": "",
"tag": "education"
},
{
"value": "University of California, Los Angeles (1987-1993)",
"source": "",
"tag": "education"
}
],
"First Name": [
{
"value": "T.",
"source": "",
"tag": "first_name"
},
{
"value": "John",
"source": "",
"tag": "first_name"
}
],
"Gender": [
{
"value": "male",
"source": "",
"tag": "gender"
}
],
"Keywords": [
{
"value": "National government",
"source": "",
"tag": "keywords"
}
],
"Last Name": [
{
"value": "Morton",
"source": "",
"tag": "last_name"
}
],
"Nationality": [
{
"value": "United Kingdom",
"source": "",
"tag": "nationality"
}
],
"Notes": [
{
"value": "American government official",
"source": "",
"tag": "notes"
}
],
"Place Of Birth": [
{
"value": "Inverness",
"source": "",
"tag": "place_of_birth"
}
],
"Position": [
{
"value": "Director of U.S. Immigration and Customs Enforcement",
"source": "",
"tag": "position"
}
],
"Position Occupancies": [
{
"value": "Director of U.S. Immigration and Customs Enforcement",
"source": "",
"tag": "position_occupancies"
}
]
},
"media": [],
"source_notes": [],
"sources": ["Shufti Internal Database", "Wikidata"],
"types": []
},
{
"name": "John Day Alan",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "The London Gazette (30393) PO Box 3584 Norwich NR7 7WD",
"source": "",
"tag": "address"
},
{
"value": "Ashtree Cottage Main Street, Barkston Ash Norwich NR7 7WD",
"source": "",
"tag": "address"
},
{
"value": "TADCASTER LS24 9PR",
"source": "",
"tag": "address"
},
{
"value": "Ashtree Cottage Main Street, Barkston Ash TADCASTER LS24 9PR",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-12-24",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John D Eaton Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00249256",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"The Insolvency Act 1986, At a General Meeting of the above named company convened and held at 10-11 St James Court, Friar Gate, Derby DE1 1BJ, on 25 April 2016 at 3.30 pm the following resolutions were duly passed as a special resolution and an ordinary resolution respectively. , “That the company be wound up voluntarily”., “That Philip Anthony Brooks and Julie Elizabeth Willetts of Blades Insolvency Services, Charlotte House, 19B Market Place, Bingham, Nottingham NG13 8AP, be appointed as Joint Liquidators for the purposes of the voluntary winding up”. , Dated: 25 April 2016, Philip Anthony Brooks (IP No 9105) and Julie Elizabeth Willetts (IP No 9133) of Blades Insolvency Services, Charlotte House, 19B Market Place, Bingham, Nottingham NG13 8AP, were appointed joint liquidators of the company on 25 April 2016. Further information about this case is available from Blades Insolvency Services, Telephone 01949 831260 or email p.brooks@bladesinsol.co.uk."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John D Eaton Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Unit 133, Devonshire Walk, Intu Centre, Derby DE1 2BJ",
"source": "",
"tag": "address"
},
{
"value": "Unit 133, Devonshire Walk, Intu Centre, Derby DE1 2BJ",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "Notice timeline for company number 00249256",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John D Eaton Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00249256",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": [],
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John D Eaton Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00249256",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Rule 4.182A of the Insolvency Act 1986, that on 25 April 2016, we, Philip Anthony Brooks (IP No 9105) and Julie Elizabeth Willetts (IP No 9133) were appointed Liquidators by the members of the above named company. , The creditors of the above named company are required on or before 6 June 2016 to send their names and addresses and the particulars of their claims and the names and addresses of their solicitors, if any, to Philip Anthony Brooks, Blades Insolvency Services, Charlotte House, 19B Market Place, Bingham, Nottingham NG13 8AP, the Joint Liquidator of the said company, and if so required by notice in writing from the Liquidators, either by their solicitors or personally, to come in and prove their debts or claims at such time and place as shall be specified in such notice, or in default thereof, they will be excluded from the benefit of any distribution made before such debts are proved. , It should be noted that this notice is purely formal and all known creditors have been or will be paid in full. , For further information please contact the liquidator, P A Brooks of Blades Insolvency Services, Charlotte House, 19B Market Place, Bingham, Nottingham NG13 8AP. Telephone 01949 831260 or email p.brooks@bladesinsol.co.uk. , 25 April 2016"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John D Eaton Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Unit 133, Devonshire Walk, Intu Centre, Derby DE1 2BJ",
"source": "",
"tag": "address"
}
],
"Business Nature": [
{
"value": "Jewellers",
"source": "",
"tag": "business_nature"
}
],
"Company Number": [
{
"value": "00249256",
"source": "",
"tag": "company_number"
}
],
"Office Holder Number": [
{
"value": "9105 and 9133.",
"source": "",
"tag": "office_holder_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "De Polo Michael John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "6 Fifers Lane, Old Catton, Norwich, NR6 7AF",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-12-05",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "De Vulder John Edwin",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Westacre Nursing Home Sleepers Hill Winchester (formerly of 7 Edgar Road Winchester\n Hampshire SO23 9SJ)",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2019-11-13",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Peter John Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "240 Whipperley RingLutonLU1 5QX",
"source": "",
"tag": "address"
}
]
},
"media": [],
"source_notes": [],
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Peter Day John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "31 Ockendon Road London EC1Y 4TW",
"source": "",
"tag": "address"
},
{
"value": "London N1 3NN",
"source": "",
"tag": "address"
},
{
"value": "Longbow House, 20 Chiswell Street London EC1Y 4TW",
"source": "",
"tag": "address"
},
{
"value": "31 Ockendon Road London N1 3NN",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-03-15",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day John Henry",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Nazareth House, 169-175 Hammersmith Road, London W6 8DB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2017-05-12",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Brian Tew John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "LEATHERHEAD KT22 9XG",
"source": "",
"tag": "address"
},
{
"value": "5 Huntsmans Close Fetcham Norwich NR7 7WD",
"source": "",
"tag": "address"
},
{
"value": "5 Huntsmans Close Fetcham LEATHERHEAD KT22 9XG",
"source": "",
"tag": "address"
},
{
"value": "The London Gazette (21525) PO Box 3584 Norwich NR7 7WD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2019-11-27",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Frank Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": [],
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Frank Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Date Of Birth": [
{
"value": "22 Signet Court, Swann Road, Cambridge, Cambridgeshire, CB5 8LA",
"source": "",
"tag": "date_of_birth"
}
],
"Occupation": [
{
"value": "12 February 1958",
"source": "",
"tag": "occupation"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Frank John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "48 Thorney Hedge Road, Chiswick, London W4 5SD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-10-19",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Leddy",
"entity_type": ["Person"],
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "Pauline"
},
{
"name": "Suzanne"
},
{
"name": "Teresa"
},
{
"name": "Paul"
},
{
"name": "Mike"
}
],
"fields": {
"Address": [
{
"value": "Birmingham,West Midlands,UNITED KINGDOM",
"source": "",
"tag": "address"
}
],
"Category": [
{
"value": "PEP",
"source": "",
"tag": "category"
}
],
"Entity Type": [
{
"value": "Person",
"source": "",
"tag": "entity_type"
}
],
"Gender": [
{
"value": "Male",
"source": "",
"tag": "gender"
}
],
"Nationality": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "nationality"
}
],
"Place Of Registration": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "place_of_registration"
}
]
},
"media": [],
"source_notes": {
"age": [],
"age_as_of": [],
"comment": ["Dec 2013 - no further information reported"],
"identification_remarks": [
"Mike Leddy (PEP) (father). Pauline Leddy (mother). Suzanne Leddy (sister). Teresa Leddy (sister). Paul Leddy (brother)"
]
},
"sources": ["Shufti Internal Database"],
"types": ["PEP"]
},
{
"name": "De Rosa Paul John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "22 Millacres, Station Road, Ware, SG12 9PU",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-06-15",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Peter John Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "240 Whipperley Ring Luton LU1 5QX",
"source": "",
"tag": "address"
}
],
"Date Of Birth": [
{
"value": "1952-08-04",
"source": "",
"tag": "date_of_birth"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Garry John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "1 Cuthbert Street, Highbridge, Somerset, TA9 3AS",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-02-20",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day Clement Roger John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "18 Paddock Road, Basingstoke, Hampshire RG22 6QE",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-01-11",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "D''Cruz Norman John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "20 Sauncey Avenue, Harpenden, Hertfordshire AL5 4QF",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-07-13",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Towey Desmond John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Moorgate Hollow, Nightingale Close, Moorgate, Rotherham, S60 2AB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-05-16",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day John Henry",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Heathbrook House 223-229 Worcester Road Stoke Heath Bromsgrove",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-04-03",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Clifftown Holdings International Inc.",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "APPLETON COMPANY SVS LT"
},
{
"name": "KEYSTONE INVESTMENTS LIMITED"
},
{
"name": "JULIE LOUISE ELMONT"
},
{
"name": "NICHOLAS JOHN DEWE"
}
],
"fields": {
"Address": [
{
"value": "APPLETON COMPANY SVS LT [Ms Rachel Burgess] 186 Hammersmith Road London W6 7Dj E15 2BY",
"source": "",
"tag": "address"
}
],
"Country": [
{
"value": "United Kingdom",
"source": "",
"tag": "country"
}
],
"Dissolution Date": [
{
"value": "2005-10-31",
"source": "",
"tag": "dissolution_date"
}
],
"Inactive Date": [
{
"value": "2005-11-01",
"source": "",
"tag": "inactive_date"
}
],
"Incorporation Date": [
{
"value": "1998-01-02",
"source": "",
"tag": "incorporation_date"
}
],
"Jurisdiction": [
{
"value": "British Virgin Islands",
"source": "",
"tag": "jurisdiction"
}
],
"Status": [
{
"value": "Defaulted",
"source": "",
"tag": "status"
}
]
},
"media": [],
"source_notes": {
"country_codes": ["GBR"],
"dorm_date": [],
"ibcRUC": ["261492"],
"original_name": ["CLIFFTOWN HOLDINGS INTERNATIONAL INC."],
"service_provider": ["Mossack Fonseca"],
"source_url": [
"https://offshoreleaks-data.icij.org/offshoreleaks/csv/full-oldb.LATEST.zip"
],
"valid_until": ["The Panama Papers data is current through 2015"]
},
"sources": ["ICIJ Offshore Leaks Database"],
"types": []
},
{
"name": "G&T John Street Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09082933",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE OF MEETING BY CORRESPONDENCE APPROVAL OF OFFICE HOLDER'S FEES , NOTICE IS HEREBY GIVEN by the Liquidator to the creditors of G&T John Street Ltd that a meeting of creditors will be held by correspondence in accordance with Rules 18.16, 15.3 and 15.13 of The Insolvency (England and Wales) Rules 2016 and the Insolvency Act 1986 (as amended). The purpose of the decision procedure is to consider the following resolutions: 1. For the appointment of a Committee if the creditors so wish and sufficient nominations for membership of the Committee are received. Nominations must be delivered to the Convenor by the date specified for the lodgement of votes/proxies in the notice and can only be accepted if the Convenor is satisfied as to the creditor's eligibility under Rule 17.4. 2. In the event that a committee is not appointed the Office Holder's fees be fixed on a time cost basis as set out in the Fees Pack and paid periodically as funds permit. 3. The Office Holder be authorised to draw 'Category 2' disbursements, periodically on account at his firm's standard rate as amended from time to time & for the amounts so drawn to be notified to creditors periodically as required together with disbursements. , The meeting of creditors has been summoned for: Date: 19 March 2019 — The Decision Date Time: 12:00 pm Venue: The decision will be hosted at the offices of Rendle & Co , PLEASE NOTE THAT NO PHYSICAL ATTENDANCE IS NECESSARY AS THE MEETING WILL BE HELD AND VOTING WILL TAKE PLACE BY CORRESPONDENCE. , In order to be entitled to vote, either in person or by proxy, a creditor, including those whose debts are less than £1,000, must lodge a statement of claim in writing no later than 4 pm on the business day before the Decision Date, failing which the vote will be disregarded unless the Chair is content to accept the proof later. Secured creditors (unless they surrender their security) must also give particulars of their security, the date on which it was granted and its estimated value if they wish to vote. Any creditor unable to attend in person, but wishing to vote at the meeting may nominate a person to attend on their behalf, or the Chair of the meeting to vote on their behalf. Creditors must have delivered their proxy in advance of the meeting. Creditors who have opted out of receiving information may vote by submitting a claim form in writing no later than 4 pm on the business day before the Decision Date and a proxy in advance of the meeting. All claim forms and proxies must be delivered to Rendle & Co, No 9 Hockley Court, Hockley Heath, Solihull, B94 6NW. Contact details: Richard Paul Rendle (IP No. 5766) who was appointed as Liquidator on 13 August 2018. You may also contact Joe Bentley (joe.bentley@rprendle.com) at Rendle & Co, No 9 Hockley Court, Hockley Heath, Solihull, B94 6NW or email info@rprendle.com. Telephone number: 01564 783777."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John Ashley Day",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "19 Dean StreetHuddersfieldHD3 3EU",
"source": "",
"tag": "address"
}
]
},
"media": [],
"source_notes": [],
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Day John Edward",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "45 Manor Road North, Esher, Surrey, KT10 0AA",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-09-24",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mohammed Emwazi",
"entity_type": ["Person"],
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "Fazul Abdullah"
},
{
"name": "Abu Mohammed"
},
{
"name": "Samantha"
},
{
"name": "Abdiqadir"
},
{
"name": "Ibrahim"
},
{
"name": "Amru"
},
{
"name": "Junaid"
},
{
"name": "Reyaad"
},
{
"name": "Abdel Majed Abdel"
},
{
"name": "Mohammed"
},
{
"name": "Ahmed"
},
{
"name": "Amin"
},
{
"name": "Aydarus"
},
{
"name": "Sammy"
},
{
"name": "Alexanda Amon"
},
{
"name": "Ray"
},
{
"name": "El Shafee"
},
{
"name": "Choukri"
},
{
"name": "Mohammed"
},
{
"name": "Hussein"
},
{
"name": "Arben"
},
{
"name": "Cassimo"
}
],
"fields": {
"Address": [
{
"value": "Amsterdam,North Holland,NETHERLANDS",
"source": "",
"tag": "address"
},
{
"value": "Ar Raqqah,Ar Raqqah,SYRIA",
"source": "",
"tag": "address"
},
{
"value": "Dar es Salaam,Dar es Salaam,TANZANIA",
"source": "",
"tag": "address"
},
{
"value": "Greenwich,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
},
{
"value": "Idlib,Idlib,SYRIA",
"source": "",
"tag": "address"
},
{
"value": "London,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
},
{
"value": "Maida Vale,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
},
{
"value": "Notting Hill,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
},
{
"value": "Queens Park,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
},
{
"value": "Saint Johns Wood,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
},
{
"value": "Al Jahra,KUWAIT",
"source": "",
"tag": "address"
},
{
"value": "BELGIUM",
"source": "",
"tag": "address"
},
{
"value": "GREECE",
"source": "",
"tag": "address"
},
{
"value": "LIBYA",
"source": "",
"tag": "address"
},
{
"value": "TURKEY",
"source": "",
"tag": "address"
}
],
"Category": [
{
"value": "NONCONVICTION TERROR",
"source": "",
"tag": "category"
}
],
"Date Of Birth": [
{
"value": "1988-08-17",
"source": "",
"tag": "date_of_birth"
}
],
"Entity Type": [
{
"value": "Person",
"source": "",
"tag": "entity_type"
}
],
"Gender": [
{
"value": "Male",
"source": "",
"tag": "gender"
}
],
"Nationality": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "nationality"
}
],
"Place Of Birth": [
{
"value": "Al-Jahra, Kuwait",
"source": "",
"tag": "place_of_birth"
}
],
"Place Of Registration": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "place_of_registration"
}
]
},
"media": [],
"source_notes": {
"age": [],
"age_as_of": [],
"comment": [
"May 2009 - detained in Dar es Salaam and deported to Amsterdam. Subsequently interrogated by UK authorities for suspected links to al-Shabaab. Reportedly relocated to Kuwait. Jun 2010 - detained in London. 2013 - travelled to Syria to join ISIS. Guarded Western captives at a prison in Idlib, Syria. 2014 - appeared in an ISIS propaganda video showing the beheading of hostages. Jun 2015 - reportedly in Libya. Nov 2015 - killed in an airstrike in Ar Raqqah. Jan 2016 - death confirmed by ISIS. Nov 2021 - no further information reported"
],
"identification_remarks": ["Former resident of Queens Park"]
},
"sources": ["Shufti Internal Database"],
"types": ["NONCONVICTION TERROR"]
},
{
"name": "G&T John Street Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Unit 9Hockley CourtB94 6NW",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "09082933",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": [],
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "G&T John Street Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Unit 9",
"source": "",
"tag": "address"
},
{
"value": "Hockley Court",
"source": "",
"tag": "address"
},
{
"value": "2401 Stratford Road",
"source": "",
"tag": "address"
},
{
"value": "Hockley Heath",
"source": "",
"tag": "address"
},
{
"value": "SOLIHULL",
"source": "",
"tag": "address"
},
{
"value": "B94 6NW",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "09082933",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "G&T John Street Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Former Trading Address: 6 John Street, London WC1N 2ES",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "09082933",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": []
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "G&T John Street Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09082933",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given in accordance with Rule 7.59 of The Insolvency (England and Wales) Rules 2016 (as amended) and Section 109 of the Insolvency Act 1986 (as amended) that I, Richard Paul Rendle of Rendle & Co, No 9 Hockley Court, Hockley Heath, Solihull B94 6NW, as appointed Liquidator of the above named entity on 13 August 2018. , Licensed Insolvency Practitioners are required to comply with the Insolvency Code of Ethics (\"the Code\"), Statements of Insolvency Practice (\"SIPs\") and professional regulations which set out fundamental principles dealing with requirements for integrity, objectivity, professional competence and due care, confidentiality and professional behaviour. A copy of the SIPs can be found on the Insolvency Service website (www.gov.uk). A copy of the SIPs can be found on the R3 website (www.r3.org.uk). , Contact details: Richard Paul Rendle (IP No. 5766) who was appointed as Liquidator on 13 August 2018. You may also contact Joe Bentley (joe.bentley@rprendle.com) at Rendle & Co, No 9 Hockley Court, Hockley Heath, Solihull B94 6NW or email info@rprendle.com. Telephone number: 01564 783777."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "De Courcy Tom John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Pleasant View Road, Crowborough",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2019-07-13",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mr Dewi Morgan John",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Booths Hall, Booths Park 3, Chelford Road Knutsford WA16 8GS",
"source": "",
"tag": "address"
},
{
"value": "20 Gwendoline Street Knutsford WA16 8GS",
"source": "",
"tag": "address"
},
{
"value": "Bridgend CF32 7PN",
"source": "",
"tag": "address"
},
{
"value": "20 Gwendoline Street Bridgend CF32 7PN",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2021-01-24",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "John De-Kaynelusher",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "
13 The Crescent,Bromham, Nr Chippenham, Wiltshire SN15 2HQ
", "source": "", "tag": "address" } ], "Date Of Birth": [ { "value": "person-1\" content=\"1954-09-01\" data-gazettes=\"BirthDetails\" datatype=\"xsd", "source": "", "tag": "date_of_birth" } ] }, "media": [], "source_notes": { "legal_information": [] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The Order Of St John", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": [], "media": [], "source_notes": { "legal_information": [ "The QUEEN has been graciously pleased to sanction the following Promotions in, and Appointments to, the Most Venerable Order of the Hospital of St John of Jerusalem: As Knight Arnold Hayward NEIS The Honourable Gordon James WHITING As Dame Ann Luedinghaus, Mrs CASE As Officer (Brother) John Thomas SPIKE Jon Malcom SWENSON As Serving Brother The Honourable Robert Brown ALDERHOLT Kok Seng William LEE Dennis Anthony LOCK As Serving Sister The Honourable Bonnie MCELVEEN-HUNTER" ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Michael Day John", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "188 Commonwealth Way London SE2 0LE", "source": "", "tag": "address" }, { "value": "60-66 North Hill Plymouth PL4 8EP", "source": "", "tag": "address" }, { "value": "London SE2 0LE", "source": "", "tag": "address" }, { "value": "188 Commonwealth Way Plymouth PL4 8EP", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2021-12-13", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "John William Day", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Unit 33, Poplar Industrial Estate, Moor Lane, Witton, Birmingham, B6 7AD", "source": "", "tag": "address" }, { "value": "Unit 33, Poplar Industrial Estate, Moor Lane, Witton, Birmingham, B6 7AD", "source": "", "tag": "address" } ], "Company Name": [ { "value": "R. A. D. DOUBLE GLAZING LIMITED", "source": "", "tag": "company_name" } ], "Company Number": [ { "value": "Notice timeline for company number 09341328", "source": "", "tag": "company_number" } ], "Designation": [ { "value": [""], "source": "", "tag": "designation" } ] }, "media": [], "source_notes": { "legal_information": [] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The Order Of St John", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": [], "media": [], "source_notes": { "legal_information": [ "The QUEEN has graciously pleased to sanction the following Promotions in, and Appointments to, the Most Venerable Order of the Hospital of St John of Jerusalem. , Stephen James Brindley HUGHES The Most Reverend Dr Thabo Cecil MAKGOBA , Derek Anthony HOWELL Christopher WILLIAMS Cornelius Johannes GROENEWALD Dr Michael FRENDO , Rosemary Iris, Mrs HERBAGE Professor Donna May MEAD OBE , Keith William BURMAN Colonel Robert John COATE Barry John DODD CBE Brigadier Mark Nicholas POUNTAIN Dr Dale CARTWRIGHT Michael Stephen FLANAGAN Geraint JENKINS John Alex JONES Daniel Owen LEWIS Dr Edward ROBERTS DL Nigel Ewart TAMPLIN Terence WYATT Lieutenant Colonel Zolo Wiseman Songo DABULA Christopher Samuel GREER James Peter JOHNSTON Dr Andrew Derek Ronald KERR Colonel Mark MALLIA , Lynn, Mrs BEECROFT Miss Eira Joyce BROWN June, Mrs CHILCOTT Marlene, Mrs REID , Paul David AUSTIN Jason BERRYMAN Keith Stephen BONFIELD Lieutenant Colonel Duane Joseph FLETCHER MBE Paul Maurice FULLER CBE Squadron Leader Philip Andrew LUCAS RAF Squadron Leader David William MULVANEY Surgeon Commander Peter John TAYLOR RN James Hywel BARRETT Moawia BIN-SUFYAN Jack William GIBBINS Philip Llewellyn HUNKIN DL Rowland William Parry JONES DL Gareth LLOYD-FORD Darren Lee MURRAY Martyn PHILLIPS David Wyn THOMAS Geoffrey John THOMAS Evan John BUTCHER Matthew CROSS Ian James GRAYSTON Casper Johannes GROBLER Lieutenant Colonel Ganangwe Zachariah PHITI Sherwyn Rayno VAUGHAN Johannes VENTER Steven HAGGAN Gordon KERR Barry Anthony ROWAN Dr Victor Graham SCOTT Laurence GRECH , Joan Mavis, Mrs TOSTEVIN Miss Sophie Louise WARD Nicola Jane, Mrs WEBSTER Helen Veronica BUTLER Angela Jayne CRISP Shirley Ann GITTOES Yvonne Elizabeth HOWELLS Kim Elizabeth NEWBURY Eleri Ann SARGENT Claire Elizabeth STONE Sylwen THOMAS Catherine Jane TYSOM Valerie VAN-TIEL Rachel WAKEFIELD Professor Jean Christine WHITE OBE Beryl Edwina WILLIAMS Miss June Eleanor SIMPSON Elizabeth STEYNBERG Lulama, Mrs ORLAM Miss Padmina PILLAY Miss Caroline Viona POOLE Miss June Eleanor SIMPSON Elizabeth STEYNBERG Doreen Elizabeth MUNROE Margaret SLATER Heather SHIELDS" ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Day William John", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "471 Merton Road, London SW18 5LD", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2015-10-21", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Day John Anthony", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "4 Winchester Drive Tuffley Gloucester GL4 0JE", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2017-08-12", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Hart John De Betham", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Flat 4, 116 South Hill Park, London NW3 2SN", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2015-04-12", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "John Tye William", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "26 LIVINGSTONE ROAD SOUTHBOURNE BOURNEMOUTH BH5 2AS", "source": "", "tag": "address" }, { "value": "THE SIDINGS DAGGONS ROAD FORDINGBRIDGE SP6 3TA", "source": "", "tag": "address" }, { "value": "26 LIVINGSTONE ROAD SOUTHBOURNE FORDINGBRIDGE SP6 3TA", "source": "", "tag": "address" }, { "value": "BOURNEMOUTH BH5 2AS", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2017-01-07", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Peter Dew John Edwin", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "8 Allandale LEAMINGTON SPA CV32 6JX", "source": "", "tag": "address" }, { "value": "GABLES HOUSE 62 KENILWORTH ROAD LEAMINGTON SPA CV32 6JX", "source": "", "tag": "address" }, { "value": "8 Allandale ST. ALBANS AL3 4NG", "source": "", "tag": "address" }, { "value": "ST. ALBANS AL3 4NG", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2021-01-14", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Thompson John Day", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "15 Margaret Avenue, St Austell, PL25 4SH", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2022-04-23", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "D''Souza John Boniface", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "55 Minterne Waye, Hayes UB4 0PE", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2016-11-19", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Doe Jean Margaret", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Flat 1 Lakeside Court 73 Festing Road Southsea Portsmouth PO4 0DD", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2018-06-12", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "John T Blair Tidewell", "entity_type": ["Person"], "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Aldershot,Hampshire,UNITED KINGDOM", "source": "", "tag": "address" }, { "value": "Helmand,AFGHANISTAN", "source": "", "tag": "address" } ], "Category": [ { "value": "PEP", "source": "", "tag": "category" } ], "Designation": [ { "value": "Senior Military Official", "source": "", "tag": "designation" } ], "Entity Type": [ { "value": "Person", "source": "", "tag": "entity_type" } ], "Gender": [ { "value": "Male", "source": "", "tag": "gender" } ], "Nationality": [ { "value": "UNITED KINGDOM", "source": "", "tag": "nationality" } ], "Place Of Registration": [ { "value": "UNITED KINGDOM", "source": "", "tag": "place_of_registration" } ], "Title": [ { "value": "Brigadier", "source": "", "tag": "title" } ] }, "media": [], "source_notes": { "age": [], "age_as_of": [], "comment": [], "identification_remarks": [] }, "sources": ["Shufti Internal Database"], "types": ["PEP"] }, { "name": "De Cordova John Gonzalvo", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Acers, North Road, Bath, BA2 6HZ", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2022-03-27", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Houssemayne Du Boulay Anthony John", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "9 Royal Pavilion, Pavilion Green, Dorchester, Dorset, DT1 3DU", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2022-02-01", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Tighe John Bernard", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "63 Eversley, Widnes, Cheshire WA8 4XZ", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2015-03-18", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Sally Anne Doe", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "26 Stanley RoadHornchurchRM12 4JN", "source": "", "tag": "address" } ] }, "media": [], "source_notes": [], "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The Reverend John Cooper", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "The Charterhouse Norwich NR7 7WD", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2021-12-23", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Galloway John Millie Dow", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Cherry Trees, Kemp Road, Swanland, HU14 3LZ", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2022-08-12", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The Reverend John Cooper", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "The Charterhouse Charterhouse Square LONDON EC1M 6AN", "source": "", "tag": "address" }, { "value": "LONDON EC1M 6AN", "source": "", "tag": "address" }, { "value": "The London Gazette (24870) PO Box 3584 Norwich NR7 7WD", "source": "", "tag": "address" }, { "value": "The Charterhouse Charterhouse Square Norwich NR7 7WD", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2021-12-23", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Daniel John Day-Robinson", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Date Of Birth": [ { "value": "person-1\" content=\"1959-09-12\" data-gazettes=\"BirthDetails\" datatype=\"xsd", "source": "", "tag": "date_of_birth" } ] }, "media": [], "source_notes": { "legal_information": [] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "John Eden, Baron Eden Of Winton", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [ { "name": "Belinda Jane Pascoe", "association": "spouse", "details": "(born 1938)" }, { "name": "Margaret Anne Gordon", "association": "spouse", "details": "Peerage person ID=211082" }, { "name": "Emily Rose Eden", "association": "child", "details": "(born 1959)" }, { "name": "Arabella Charlotte Eden", "association": "child", "details": "(born 1960)" }, { "name": "Robert Frederick Calvert Eden", "association": "child", "details": "British baronet" }, { "name": "John Edward Morton Eden", "association": "child", "details": "(born 1966)" } ], "fields": { "Country": [ { "value": "United Kingdom", "source": "", "tag": "country" } ], "Date Of Birth": [ { "value": "1925-09-15", "source": "", "tag": "date_of_birth" } ], "Death Date": [ { "value": "2020-05-23", "source": "", "tag": "death_date" } ], "Education": [ { "value": "Eton College", "source": "", "tag": "education" } ], "First Name": [ { "value": "Benedict", "source": "", "tag": "first_name" }, { "value": "John", "source": "", "tag": "first_name" } ], "Gender": [ { "value": "male", "source": "", "tag": "gender" } ], "Keywords": [ { "value": "National government", "source": "", "tag": "keywords" } ], "Last Name": [ { "value": "Eden", "source": "", "tag": "last_name" } ], "Nationality": [ { "value": "United Kingdom", "source": "", "tag": "nationality" } ], "Notes": [ { "value": "British politician (1925-2020)", "source": "", "tag": "notes" } ], "Place Of Birth": [ { "value": "England", "source": "", "tag": "place_of_birth" } ], "Position": [ { "value": "member of the 42nd Parliament of the United Kingdom (1959-1964)", "source": "", "tag": "position" }, { "value": "member of the 41st Parliament of the United Kingdom (1955-1959)", "source": "", "tag": "position" }, { "value": "member of the 44th Parliament of the United Kingdom (1966-1970)", "source": "", "tag": "position" }, { "value": "Representative of the Parliamentary Assembly of the Council of Europe (1961-1962)", "source": "", "tag": "position" }, { "value": "member of the 40th Parliament of the United Kingdom (1954-1955)", "source": "", "tag": "position" }, { "value": "Minister of Posts and Telecommunications (1972-1974)", "source": "", "tag": "position" }, { "value": "member of the 43rd Parliament of the United Kingdom (1964-1966)", "source": "", "tag": "position" }, { "value": "member of the 47th Parliament of the United Kingdom (1974-1979)", "source": "", "tag": "position" }, { "value": "member of the House of Lords (1983-2015)", "source": "", "tag": "position" }, { "value": "member of the 46th Parliament of the United Kingdom (1974-1974)", "source": "", "tag": "position" }, { "value": "Member of the Privy Council of the United Kingdom", "source": "", "tag": "position" }, { "value": "member of the 45th Parliament of the United Kingdom (1970-1974)", "source": "", "tag": "position" }, { "value": "substitute member of the Parliamentary Assembly of the Council of Europe (1960-1961)", "source": "", "tag": "position" }, { "value": "member of the 48th Parliament of the United Kingdom (1979-1983)", "source": "", "tag": "position" } ], "Position Occupancies": [ { "value": "Member of the Privy Council of the United Kingdom", "source": "", "tag": "position_occupancies" }, { "value": "member of the House of Lords", "source": "", "tag": "position_occupancies" } ] }, "media": [], "source_notes": [], "sources": ["Shufti Internal Database", "Wikidata"], "types": [] }, { "name": "Christopher Day John", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "The Boynes Nursing Home Upper Hook Road Upton Upon Severn, Worcestershire GL19 4LZ", "source": "", "tag": "address" }, { "value": "23-25 Rodney Road CHELTENHAM GL50 1HX", "source": "", "tag": "address" }, { "value": "GLOUCESTER GL19 4NB", "source": "", "tag": "address" }, { "value": "Witsend Corse Lawn CHELTENHAM GL50 1HX", "source": "", "tag": "address" }, { "value": "Witsend Corse Lawn GLOUCESTER GL19 4NB", "source": "", "tag": "address" }, { "value": "Upton Upon Severn, Worcestershire GL19 4LZ", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2021-08-04", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Da Silva John Edward", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "18 Curzon Court, Vicarage Road, Mickleover, Derby", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2022-05-10", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Pescott-Day John Frederick", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "The Old Woodyard Broadhempston Totnes Devon TQ9 6BL", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2018-01-12", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The John Townsend Trust", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Company Number": [ { "value": "Notice timeline for company number 06769267", "source": "", "tag": "company_number" } ] }, "media": [], "source_notes": { "legal_information": [] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The John Townsend Trust", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Company Number": [ { "value": "06769267", "source": "", "tag": "company_number" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given that I, Geoffrey Rowley, Joint Liquidator of the above named Company, appointed on 18 November 2016, intend to declare and distribute a first and interim dividend to creditors of the above named Company within the period of two months from the last date for proving mentioned below. , All creditors of the Company are required, on or before 20 March 2017, which is the last date for proving, to prove their debt by sending to me a written statement of the amount they claim to be due from the Company and, if so requested, to provide such further details or produce such documentary or other evidence as may appear to the Liquidator to be necessary to FRP Advisory LLP, 2nd Floor, 110 Cannon Street, London EC4N 6EU or e-mailing at cp. london@frpadvisory.com. A creditor who has not proved his debt before the last date for proving mentioned above is not entitled to disturb, by reason that he has not participated in the dividend, the distribution of that dividend or any other dividend declared before his debt is proved. , Office Holder details: Geoffrey Rowley (IP No 008919) and Jason Baker (IP No 9644) both of FRP Advisory LLP, 2nd Floor, 110 Cannon Street, London EC4N 6EU. , Ag FF111302" ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The John Townsend Trust", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Company Number": [ { "value": "06769267", "source": "", "tag": "company_number" } ] }, "media": [], "source_notes": [], "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The John Townsend Trust", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Company Number": [ { "value": "06769267", "source": "", "tag": "company_number" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given, pursuant to Rule 4.73 of the Insolvency Rules 1986 (as amended), that the creditors of the above named company which is being voluntarily wound up, are required on or before 18 March 2017 to send their names and addresses along with descriptions and full particulars of their debts or claims and the names and addresses of their solicitors (if any) to Geoffrey Paul Rowley at 2nd Floor, 110 Cannon Street, London EC4N 6EU and, if so required by notice in writing from the Joint Liquidators of the Company or by the Solicitors of the Joint Liquidators, to come in and prove their debts or claims at such time and place as shall be specified in such notice, or in default thereof they will be excluded from the benefit of any dividend paid before such debts/claims are proved. , Date of appointment: 18 November 2016, Office holder details: Geoffrey Paul Rowley and Jason Daniel Baker (IP Nos. 8919 and 9644) both of FRP Advisory LLP, 2nd Floor, 110 Cannon Street, London EC4N 6EU , For further details contact: The Joint Liquidators, Email: cp.london@frpadvisory.com, Tel: 020 3005 4000. Alternative contact: Email: Jaz.stafford@frpadvisory.com" ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The John Townsend Trust", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Victoria Road, Margate, Kent, CT9 1NB", "source": "", "tag": "address" } ], "Business Nature": [ { "value": "Charity for deaf children and adult services", "source": "", "tag": "business_nature" } ], "Company Number": [ { "value": "06769267", "source": "", "tag": "company_number" } ], "Office Holder Number": [ { "value": "8919 and 9644.", "source": "", "tag": "office_holder_number" } ] }, "media": [], "source_notes": { "legal_information": [] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The John Townsend Trust", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Company Number": [ { "value": "06769267", "source": "", "tag": "company_number" } ] }, "media": [], "source_notes": { "legal_information": [ "For further details contact: The Joint Liquidators, Email: cp.london@frpadvisory.com" ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "William Day John Leslie", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "14 Highgate North Street Rotherfield TN6 3NE", "source": "", "tag": "address" }, { "value": "The London Gazette (13033) PO Box 3584 Norwich NR7 7WD", "source": "", "tag": "address" }, { "value": "16 St Peters Mead Rotherfield TN6 3TP", "source": "", "tag": "address" }, { "value": "Rotherfield TN6 3NE", "source": "", "tag": "address" }, { "value": "14 Highgate North Street Norwich NR7 7WD", "source": "", "tag": "address" }, { "value": "Rotherfield TN6 3TP", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2020-05-24", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act1925, that any person having a claim against or an interest in the estate of any ofthe deceased persons whose names and addresses are set out above is hereby requiredto send particulars in writing of his claim or interest to the person or persons whosenames and addresses are set out above, and to send such particulars before the datespecified in relation to that deceased person displayed above, after which date thepersonal representatives will distribute the estate among the persons entitled theretohaving regard only to the claims and interests of which they have had notice and willnot, as respects the property so distributed, be liable to any person of whose claimthey shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "The John Townsend Trust", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Company Number": [ { "value": "06769267", "source": "", "tag": "company_number" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given that an initial meeting of creditors of The John Townsend Trust is to be held at The John Townsend Trust, Victoria Road, Margate, Kent, CT9 1NB on 12 February 2016 at 10.30 am for the purpose of considering the Joint Administrators’ statement of proposals and to consider a resolution for the approval of pre-appointment costs and to consider establishing a creditors’ committee. If no creditors’ committee is formed at this meeting, a resolution may be taken to fix the basis of the Joint Administrators’ remuneration. A person is only entitled to vote if details in writing of the debt claimed to be due is given to the Joint Administrator not later than 12.00 noon on the business day before the day fixed for the meeting, and that such debt has been duly admitted in terms of Rule 2.39, and that any proxy which is intended to be used is lodged with the Joint Administrator prior to this advertised meeting. , Date of appointment: 7 December 2015., Office Holder details: Geoffrey Paul Rowley and Jason Daniel Baker (IP Nos 008919 and 9644) of FRP Advisory LLP, 2nd Floor, 110 Cannon Street, London, EC4N 6EU. , For further details contact the Joint Administrators on 020 3005 4000. Alternative contact: Jaz Stafford, Email: Jaz.Stafford@frpadvisory.com" ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Mcclure Timothy John Theo", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "55 Columbia Crescent, Mount Edgecombe Country Club Estate 5, Durban, South Africa", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2014-07-04", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Stephen John Michael Day", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Ye Allt,Bodedern, Anglese LL65 3OD; 6 Hammond Square,Andover, Hampshire SP10 5BT; 10 Burham Close,Andover, SP10 4NJ SP10 5JA.
", "source": "", "tag": "address" } ], "Date Of Birth": [ { "value": "person-1\" content=\"1969-03-03\" data-gazettes=\"BirthDetails\" datatype=\"xsd", "source": "", "tag": "date_of_birth" } ], "Occupation": [ { "value": "person", "source": "", "tag": "occupation" } ] }, "media": [], "source_notes": { "legal_information": [] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "Stephen John Michael Day", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Ye Allt,Bodedern, Anglesey LL65 3OD; 6 Hammond Square,Andover, Hampshire SP10 5BT; 10 Burhan Close,Andover SP10 4NJ; 93 Florence Court, Roman Way,Andover SP10 5JA
", "source": "", "tag": "address" } ], "Date Of Birth": [ { "value": "person-1\" content=\"1969-03-03\" data-gazettes=\"BirthDetails\" datatype=\"xsd", "source": "", "tag": "date_of_birth" } ] }, "media": [], "source_notes": { "legal_information": [] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] }, { "name": "John The Honourablemary Joan Fenella", "entity_type": null, "score": "", "match_types": [ "category", "country", "entity_type", "profile_name" ], "alternative_names": [], "assets": [], "associates": [], "fields": { "Address": [ { "value": "Laburnham House, 4 Whittingham Road, Glanton, Northumberland NE66 4AS", "source": "", "tag": "address" } ], "Date Of Death": [ { "value": "2015-03-18", "source": "", "tag": "date_of_death" } ] }, "media": [], "source_notes": { "legal_information": [ "Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice." ] }, "sources": ["The Gazette", "Shufti Internal Database"], "types": [] } ] } } }, "verification_result": { "background_checks": 0 }, "info": { "agent": { "is_desktop": false, "is_phone": false, "useragent": "PostmanRuntime/7.37.3", "device_name": "0", "browser_name": "", "platform_name": "" }, "geolocation": { "host": "WGPON-39151-190.wateen.net", "ip": "123.39.151.112", "rdns": "123.39.151.112", "asn": "64543", "isp": "National Wimax/Ims Environment", "country_name": "Germany", "country_code": "DE", "region_name": "", "region_code": "", "city": "", "postal_code": "", "continent_name": "Europe", "continent_code": "EU", "latitude": "", "longitude": "", "metro_code": "", "timezone": "", "ip_type": "ipv4", "capital": "Berlin", "currency": "EUR" } }, "declined_reason": "AML screening failed", "declined_codes": ["SPDR34"], "services_declined_codes": { "background_checks": ["SPDR34"] } } ``` --- # Declined Reasons Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_aml_screening/declined_reasons.md When a verification request involving User AML Screening is declined, the following reasons are presented to the end user or client. Status Code Description Elevated AML Risk SPDR34 AML screening failed. SPDR160 Matched against a sanctions list: penalties or restrictions imposed by authorities for violating laws or international norms. SPDR161 Matched against a warnings and regulatory enforcement list: alerts to rule violations, or penalties for non-compliance. SPDR162 Matched against a fitness and probity list: concerns over the subject's competence, integrity, or ethical conduct in financial services. SPDR163 Matched as a Politically Exposed Person (PEP): holds or held a prominent public position that carries elevated risk. SPDR164 Matched in adverse media: negative or damaging coverage indicating potential risk. SPDR313 Matched as a Special Interest Person (SIP): an individual flagged for suspected or confirmed criminal involvement. SPDR314 Matched as a Special Interest Entity (SIE): an organization flagged for suspected or confirmed criminal involvement. SPDR315 Matched against an insolvency list: unable to pay debts owed, or declared bankrupt by a judicial process. Incomplete Verification SPDR241 The screening process was canceled by the user. **Tip** Each declined code maps to a data-source category described in [How It Works](/docs/user_identification_authentication/user_aml_screening/how_it_works#data-sources-and-categories). Use the code to route the case to the right review queue, then inspect the matched records in the [response](/docs/user_identification_authentication/user_aml_screening/responses). --- # How It Works Source: https://developers.shuftipro.com/docs/user_identification_authentication/crypto_wallet_screening/how_it_works.md Crypto Wallet Screening allows merchants to screen a wallet address or an entity name against selected databases and watchlists. To start a screening request, the merchant provides a wallet address or entity name, selects the database(s) to screen against, chooses a risk engine, and configures the match score. The merchant can also enable ongoing AML monitoring and ongoing adverse media monitoring. Once the request is submitted, Shufti screens the provided wallet address or entity name against the selected sources, such as sanctions lists, warning lists, and adverse media, based on the merchant’s configuration.
## Screening Flow
1. Enter a wallet address or entity name.
2. Select one or more database(s).
3. Select the risk engine.
4. Configure the match score.
5. Enable or disable Exact Match.
6. Enable or disable:
- Ongoing AML monitoring
- Ongoing adverse media monitoring
7. Click **Process Screening** to submit the request.
8. Shufti processes the screening and returns the result.
## Screening Sources
The screening is performed against the database(s) selected by the merchant. Based on the enabled configuration, Shufti screens the submitted wallet address or entity name against relevant sanctions lists, watchlists, warning lists, and adverse media sources. The screening setup is configurable, allowing merchants to choose the relevant databases, define the matching threshold, and enable ongoing checks as needed.
For crypto wallet screening, supported sources include, but are not limited to:
* GOV.UK Sanctions
* Office of Foreign Assets Control (OFAC)
* National Bureau for Counter Terror Financing (NBCTF)
* USDT Banned Addresses
* Etherscan
These sources help identify wallet addresses and related entities that may be associated with sanctions exposure, blocked or frozen wallets, regulatory actions, or other risk indicators.
## Match Score
The match score defines how strict the screening should be.
* A lower score allows broader matching
* A higher score applies stricter matching
* The supported range is **0 to 100**
If **Exact Match** is enabled, the screening applies a stricter match condition to the provided input.
## Ongoing Monitoring
**Ongoing AML Monitoring:** When enabled, Shufti periodically monitors submitted wallet addresses and entities against updated sanctions and warnings lists. Any newly discovered match triggers an automated alert.
**Ongoing Adverse Media Monitoring:** When enabled, Shufti periodically tracks new adverse media linked to the submitted wallet address or entity name on an ongoing basis.
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/crypto_wallet_screening/offsite.md
In offsite integration, the merchant collects input through their own interface and sends the screening request to Shufti via the API or backoffice.
## Parameters
| Parameters | Description |
| :--- | :--- |
| **is_crypto_request** | Required: **Yes** Type: **String** This parameter must be set to **"1"** to identify the request as a Crypto Wallet Screening request. |
| **background_checks** | Required: **Yes** Type: **Object** This object contains the screening parameters for the crypto wallet or entity. |
| **name** | Required: **Yes** Type: **Object** Contains the identifier to be screened. **full_name**: Provide the wallet address or entity name here. |
| **filters** | Required: **No** Type: **Array** Define the databases to screen against. **Accepted values:** "sanction", "warning", "adverse-media" **Example:** ["sanction", "warning"] |
| **match_score** | Required: **No** Type: **Integer** Accepted Range: **0-100** Controls the strictness of the matching process. **Default:** 100 |
| **ongoing** | Required: **No** Type: **String** Accepted Values: **"0", "1"** Enable ("1") or disable ("0") ongoing monitoring for the submitted identifier. |
## Sample Request Payload
**json**
```json
{
"reference": "****sp-bc-****-****",
"is_crypto_request": "1",
"verification_mode": "any",
"background_checks": {
"name": {
"full_name": "0x1a2b3c4d5e6f7890abcdef1234567890abcdef12"
},
"match_score": 100,
"filters": ["sanction", "warning"],
"legacy_version": "0",
"ongoing": "0"
}
}
```
---
# Responses
Source: https://developers.shuftipro.com/docs/user_identification_authentication/crypto_wallet_screening/responses.md
The following is a sample response for a Crypto Wallet Screening request.
```json title=crypto-wallet-screening-sample-response
{
"status": "success",
"code": 200,
"content": {
"data": {
"client_ref": "yIpr9jNF3muiIjKdThkh2yX3QDV2P4AJsv6dtvfOO6fitQcsk1kRD1WhbNmVbRUR",
"filters": {
"country_codes": [],
"entity_type": "crypto_wallet",
"fuzziness": "100",
"types": [
"sanction",
"warning"
],
"search_profile": null,
"score": 1
},
"risk_level": "unknown",
"match_status": "potential_match",
"total_hits": 1,
"total_matches": 1,
"hits": [
{
"doc": {
"name": "Tornado Cash",
"gender": null,
"entity_type": "crypto_wallet",
"result_id": "6QCURdbHRfERVE6axuQgwj",
"associates": [],
"types": [
"sanction"
],
"fields": [
{
"name": "Delisted",
"value": "True",
"source": "office-of-foreign-assets-control-(ofac-)---sdn-and-blocked-persons-list",
"tag": "delisted"
}
],
"matched_alias": "",
"aka": [],
"matched_rca": "",
"countries": [
"International"
],
"source_notes": {
"office-of-foreign-assets-control-(ofac-)---sdn-and-blocked-persons-list": {
"country_codes": [],
"aml_types": [
"sanction"
],
"name": "Office of Foreign Assets Control (OFAC ) - SDN and Blocked Persons List",
"url": "https://sanctionssearch.ofac.treas.gov/Details.aspx?id=39796",
"description": "As part of its enforcement efforts, OFAC publishes a list of individuals and companies owned or controlled by, or acting for or on behalf of, targeted countries. It also lists individuals, groups, and entities, such as terrorists and narcotics traffickers designated under programs that are not country-specific. Collectively, such individuals and companies are called Specially Designated Nationals or SDNs."
}
},
"sources": [
"Office of Foreign Assets Control (OFAC ) - SDN and Blocked Persons List"
],
"source_details": [
{
"additional_sources": [],
"categories": [
"Sanctions"
],
"countries": [
"International"
],
"created_at": "2024-08-13T08:01:10.050Z",
"data": {
"additional_information": {
"flag_summary": [
"TORNADO CASH has been flagged under sanctions by the U.S. Department of the Treasury - Office of Foreign Assets Control (OFAC) as a Special Interest Entity. It is associated with the North Korea Sanctions Regulations and is listed under the SDN program due to its involvement in secondary sanctions risk. Although it has been delisted, it remains relevant for compliance monitoring due to its previous sanctions status."
],
"notes_remarks": [],
"website": [
"tornado.cash"
]
},
"case_details": [
{
"order_number": [
"North Korea Sanctions Regulations, sections 510.201 and 510.210"
]
}
],
"crypto_wallets": [
{
"crypto_wallet_address": [
"0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xA160cdAB225685dA1d56aa342Ad8841c3b53f291"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x07687e702b410Fa43f4cB4Af7FA097918ffD2730"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x23773E65ed146A459791799d01336DB287f25334"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x22aaA7720ddd5388A3c0A3333430953C68f1849b"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x03893a7c7463AE47D46bc7f091665f1893656003"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2717c5e28cf931547B621a5dddb772Ab6A35B701"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xDD4c48C0B24039969fC16D1cdF626eaB821d3384"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd96f2B1c14Db8458374d9Aca76E26c3D18364307"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x169AD27A470D064DEDE56a2D3ff727986b15D52B"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x178169B423a011fff22B9e3F3abeA13414dDD0F1"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x610B717796ad172B316836AC95a2ffad065CeaB4"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xbB93e510BbCD0B7beb5A853875f9eC60275CF498"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x84443CFd09A48AF6eF360C6976C5392aC5023a1F"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd47438C816c9E7f2E2888E060936a499Af9582b3"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x330bdFADE01eE9bF63C209Ee33102DD334618e0a"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xdf231d99Ff8b6c6CBF4E9B9a945CBAcEF9339178"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xaf4c0B70B2Ea9FB7487C7CbB37aDa259579fe040"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xa5C2254e4253490C54cef0a4347fddb8f75A4998"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xaf8d1839c3c67cf571aa74B5c12398d4901147B3"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x6Bf694a291DF3FeC1f7e69701E3ab6c592435Ae7"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x3aac1cC67c2ec5Db4eA850957b967Ba153aD6279"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x723B78e67497E85279CB204544566F4dC5d2acA0"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x0E3A09dDA6B20aFbB34aC7cD4A6881493f3E7bf7"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x76D85B4C0Fc497EeCc38902397aC608000A06607"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xCC84179FFD19A1627E79F8648d09e095252Bc418"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD5d6f8D9e784d0e26222ad3834500801a68D027D"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x407CcEeaA7c95d2FE2250Bf9F2c105aA7AAFB512"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x833481186f16Cece3f1Eeea1a694c42034c3a0dB"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd8D7DE3349ccaA0Fde6298fe6D7b7d0d34586193"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x8281Aa6795aDE17C8973e1aedcA380258Bc124F9"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x57b2B8c82F065de8Ef5573f9730fC1449B403C9f"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x05E0b5B40B7b66098C2161A5EE11C5740A3A7C45"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x23173fE8b96A4Ad8d2E17fB83EA5dcccdCa1Ae52"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x538Ab61E8A9fc1b2f93b3dd9011d662d89bE6FE6"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x94Be88213a387E992Dd87DE56950a9aef34b9448"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x242654336ca2205714071898f67E254EB49ACdCe"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x776198CCF446DFa168347089d7338879273172cF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xeDC5d01286f99A066559F60a585406f3878a033e"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD692Fd2D0b2Fbd2e52CFa5B5b9424bC981C30696"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xca0840578f57fe71599d29375e16783424023357"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xDF3A408c53E5078af6e8fb2A85088D46Ee09A61b"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x743494b60097A2230018079c02fe21a7B687EAA5"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x94C92F096437ab9958fC0A37F09348f30389Ae79"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2f50508a8a3d323b91336fa3ea6ae50e55f32185"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xCEe71753C9820f063b38FDbE4cFDAf1d3D928A80"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xffbac21a641dcfe4552920138d90f3638b3c9fba"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x179f48c78f57a3a78f0608cc9197b8972921d1d2"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x77777feddddffc19ff86db637967013e6c6a116c"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x3efa30704d2b8bbac821307230376556cf8cc39e"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x746aebc06d2ae31b71ac51429a19d54e797878e9"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x5f6c97C6AD7bdd0AE7E0Dd4ca33A4ED3fDabD4D7"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xf4B067dD14e95Bab89Be928c07Cb22E3c94E0DAA"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x58E8dCC13BE9780fC42E8723D8EaD4CF46943dF2"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x01e2919679362dFBC9ee1644Ba9C6da6D6245BB1"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2FC93484614a34f26F7970CBB94615bA109BB4bf"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x26903a5a198D571422b2b4EA08b56a37cbD68c89"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xB20c66C4DE72433F3cE747b58B86830c459CA911"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2573BAc39EBe2901B4389CD468F2872cF7767FAF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x527653eA119F3E6a1F5BD18fbF4714081D7B31ce"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x653477c392c16b0765603074f157314Cc4f40c32"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x88fd245fEdeC4A936e700f9173454D1931B4C307"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x09193888b3f38C82dEdfda55259A82C0E7De875E"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x5cab7692D4E94096462119ab7bF57319726Eed2A"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x756C4628E57F7e7f8a459EC2752968360Cf4D1AA"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x722122dF12D4e14e13Ac3b6895a86e84145b6967"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x94A1B5CdB22c43faab4AbEb5c74999895464Ddaf"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb541fc07bC7619fD4062A54d96268525cBC6FfEF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD82ed8786D7c69DC7e052F7A542AB047971E73d2"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xF67721A2D8F736E75a49FdD7FAd2e31D8676542a"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x9AD122c22B14202B4490eDAf288FDb3C7cb3ff5E"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD691F27f38B395864Ea86CfC7253969B409c362d"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xaEaaC358560e11f52454D997AAFF2c5731B6f8a6\""
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x1356c899D8C9467C7f71C195612F8A395aBf2f0a"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xA60C772958a3eD56c1F15dD055bA37AC8e523a0D"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xBA214C1c1928a32Bffe790263E38B4Af9bFCD659"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb1C8094B234DcE6e03f10a5b673c1d8C69739A00"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xF60dD140cFf0706bAE9Cd734Ac3ae76AD9eBC32A"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x8589427373D6D84E98730D7795D8f6f8731FDA16"
],
"currency": [
"ETH"
]
}
],
"identification_documents": [
{
"incorporation_date": [
"2019"
]
}
],
"legal_notice": "The information contained in this report is derived from public sources such as Official Government Websites, Global Watchlists, Compliance Reports, Published Research Articles and News Sources. ShuftiPro® is not the source of the data and is not responsible for the content of third party sources. ShuftiPro® does not determine any positive or negative risks associated with the profiled entity. These decisions are solely determined by our clients as mandated by their applicable regulatory obligations.",
"linked_entities": [],
"sanction_details": [
{
"delisted_on": [],
"legal_act": [],
"listed_on": [],
"listing_id": [],
"order_number": [
"North Korea Sanctions Regulations, sections 510.201 and 510.210"
],
"reason": [],
"sanction_authority": [
"U.S. Department of the Treasury - Office of Foreign Assets Control - SDN"
],
"sanction_details": [],
"sanction_list": [],
"sanction_program": [
"CYBER2",
"DPRK3"
],
"sanction_types": [
"Secondary Sanctions Risk"
]
}
],
"summary": {
"address": [],
"alias": [],
"date_of_birth": [],
"delisted": [
"True"
],
"description": [],
"designation": [],
"email": [],
"gender": [],
"name": [
"TORNADO CASH"
],
"nationality": [],
"net_worth": [],
"occupation": [],
"phone": [],
"place_of_birth": [],
"political_party": [],
"suffix": [],
"title": []
}
},
"description": "As part of its enforcement efforts, OFAC publishes a list of individuals and companies owned or controlled by, or acting for or on behalf of, targeted countries. It also lists individuals, groups, and entities, such as terrorists and narcotics traffickers designated under programs that are not country-specific. Collectively, such individuals and companies are called Specially Designated Nationals or SDNs.",
"entity_id": "6QCURdbHRfERVE6axuQgwj",
"publisher": "Office of Foreign Assets Control (OFAC ) - SDN and Blocked Persons List",
"refrence_url": null,
"source_categories": [
{
"Sanctions": "https://sanctionssearch.ofac.treas.gov/Details.aspx?id=39796"
}
],
"updated_at": "2025-03-21T13:43:53.337Z",
"url": "https://sanctionssearch.ofac.treas.gov/Details.aspx?id=39796"
}
],
"updated_at": "2025-03-21T13:43:53.337Z",
"version": "v1"
},
"search_reference": "bf79765eb016309a0b3f39a4",
"searched_name": "0xDD4c48C0B24039969fC16D1cdF626eaB821d3384",
"total_records": 1
}
]
},
"error": false,
"additional_data": {
"adverse_media": [],
"case_status": "Failed",
"client_reference": "yIpr9jNF3muiIjKdThkh2yX3QDV2P4AJsv6dtvfOO6fitQcsk1kRD1WhbNmVbRUR",
"language_code": "",
"match_status": "Potential Match",
"pagination": {
"current_page": 1,
"records_per_page": 160,
"total_pages": 1,
"total_records": 1
},
"results": [
{
"adverse_media": [],
"birth_incorporation_date": [],
"categories": [
"Sanctions"
],
"countries": [
"International"
],
"created_at": "2024-08-13T08:01:10.050Z",
"data": {
"additional_information": {
"flag_summary": [
"TORNADO CASH has been flagged under sanctions by the U.S. Department of the Treasury - Office of Foreign Assets Control (OFAC) as a Special Interest Entity. It is associated with the North Korea Sanctions Regulations and is listed under the SDN program due to its involvement in secondary sanctions risk. Although it has been delisted, it remains relevant for compliance monitoring due to its previous sanctions status."
],
"notes_remarks": [],
"website": [
"tornado.cash"
]
},
"case_details": [
{
"order_number": [
"North Korea Sanctions Regulations, sections 510.201 and 510.210"
]
}
],
"crypto_wallets": [
{
"crypto_wallet_address": [
"0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xA160cdAB225685dA1d56aa342Ad8841c3b53f291"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x07687e702b410Fa43f4cB4Af7FA097918ffD2730"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x23773E65ed146A459791799d01336DB287f25334"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x22aaA7720ddd5388A3c0A3333430953C68f1849b"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x03893a7c7463AE47D46bc7f091665f1893656003"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2717c5e28cf931547B621a5dddb772Ab6A35B701"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xDD4c48C0B24039969fC16D1cdF626eaB821d3384"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd96f2B1c14Db8458374d9Aca76E26c3D18364307"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x169AD27A470D064DEDE56a2D3ff727986b15D52B"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x178169B423a011fff22B9e3F3abeA13414dDD0F1"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x610B717796ad172B316836AC95a2ffad065CeaB4"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xbB93e510BbCD0B7beb5A853875f9eC60275CF498"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x84443CFd09A48AF6eF360C6976C5392aC5023a1F"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd47438C816c9E7f2E2888E060936a499Af9582b3"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x330bdFADE01eE9bF63C209Ee33102DD334618e0a"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xdf231d99Ff8b6c6CBF4E9B9a945CBAcEF9339178"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xaf4c0B70B2Ea9FB7487C7CbB37aDa259579fe040"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xa5C2254e4253490C54cef0a4347fddb8f75A4998"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xaf8d1839c3c67cf571aa74B5c12398d4901147B3"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x6Bf694a291DF3FeC1f7e69701E3ab6c592435Ae7"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x3aac1cC67c2ec5Db4eA850957b967Ba153aD6279"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x723B78e67497E85279CB204544566F4dC5d2acA0"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x0E3A09dDA6B20aFbB34aC7cD4A6881493f3E7bf7"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x76D85B4C0Fc497EeCc38902397aC608000A06607"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xCC84179FFD19A1627E79F8648d09e095252Bc418"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD5d6f8D9e784d0e26222ad3834500801a68D027D"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x407CcEeaA7c95d2FE2250Bf9F2c105aA7AAFB512"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x833481186f16Cece3f1Eeea1a694c42034c3a0dB"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd8D7DE3349ccaA0Fde6298fe6D7b7d0d34586193"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x8281Aa6795aDE17C8973e1aedcA380258Bc124F9"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x57b2B8c82F065de8Ef5573f9730fC1449B403C9f"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x05E0b5B40B7b66098C2161A5EE11C5740A3A7C45"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x23173fE8b96A4Ad8d2E17fB83EA5dcccdCa1Ae52"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x538Ab61E8A9fc1b2f93b3dd9011d662d89bE6FE6"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x94Be88213a387E992Dd87DE56950a9aef34b9448"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x242654336ca2205714071898f67E254EB49ACdCe"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x776198CCF446DFa168347089d7338879273172cF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xeDC5d01286f99A066559F60a585406f3878a033e"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD692Fd2D0b2Fbd2e52CFa5B5b9424bC981C30696"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xca0840578f57fe71599d29375e16783424023357"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xDF3A408c53E5078af6e8fb2A85088D46Ee09A61b"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x743494b60097A2230018079c02fe21a7B687EAA5"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x94C92F096437ab9958fC0A37F09348f30389Ae79"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2f50508a8a3d323b91336fa3ea6ae50e55f32185"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xCEe71753C9820f063b38FDbE4cFDAf1d3D928A80"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xffbac21a641dcfe4552920138d90f3638b3c9fba"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x179f48c78f57a3a78f0608cc9197b8972921d1d2"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x77777feddddffc19ff86db637967013e6c6a116c"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x3efa30704d2b8bbac821307230376556cf8cc39e"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x746aebc06d2ae31b71ac51429a19d54e797878e9"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x5f6c97C6AD7bdd0AE7E0Dd4ca33A4ED3fDabD4D7"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xf4B067dD14e95Bab89Be928c07Cb22E3c94E0DAA"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x58E8dCC13BE9780fC42E8723D8EaD4CF46943dF2"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x01e2919679362dFBC9ee1644Ba9C6da6D6245BB1"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2FC93484614a34f26F7970CBB94615bA109BB4bf"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x26903a5a198D571422b2b4EA08b56a37cbD68c89"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xB20c66C4DE72433F3cE747b58B86830c459CA911"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2573BAc39EBe2901B4389CD468F2872cF7767FAF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x527653eA119F3E6a1F5BD18fbF4714081D7B31ce"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x653477c392c16b0765603074f157314Cc4f40c32"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x88fd245fEdeC4A936e700f9173454D1931B4C307"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x09193888b3f38C82dEdfda55259A82C0E7De875E"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x5cab7692D4E94096462119ab7bF57319726Eed2A"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x756C4628E57F7e7f8a459EC2752968360Cf4D1AA"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x722122dF12D4e14e13Ac3b6895a86e84145b6967"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x94A1B5CdB22c43faab4AbEb5c74999895464Ddaf"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb541fc07bC7619fD4062A54d96268525cBC6FfEF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD82ed8786D7c69DC7e052F7A542AB047971E73d2"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xF67721A2D8F736E75a49FdD7FAd2e31D8676542a"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x9AD122c22B14202B4490eDAf288FDb3C7cb3ff5E"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD691F27f38B395864Ea86CfC7253969B409c362d"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xaEaaC358560e11f52454D997AAFF2c5731B6f8a6"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x1356c899D8C9467C7f71C195612F8A395aBf2f0a"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xA60C772958a3eD56c1F15dD055bA37AC8e523a0D"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xBA214C1c1928a32Bffe790263E38B4Af9bFCD659"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb1C8094B234DcE6e03f10a5b673c1d8C69739A00"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xF60dD140cFf0706bAE9Cd734Ac3ae76AD9eBC32A"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x8589427373D6D84E98730D7795D8f6f8731FDA16"
],
"currency": [
"ETH"
]
}
],
"identification_documents": [
{
"incorporation_date": [
"2019"
]
}
],
"legal_notice": "The information contained in this report is derived from public sources such as Official Government Websites, Global Watchlists, Compliance Reports, Published Research Articles and News Sources. ShuftiPro® is not the source of the data and is not responsible for the content of third party sources. ShuftiPro® does not determine any positive or negative risks associated with the profiled entity. These decisions are solely determined by our clients as mandated by their applicable regulatory obligations.",
"linked_entities": [],
"sanction_details": [
{
"delisted_on": [],
"legal_act": [],
"listed_on": [],
"listing_id": [],
"order_number": [
"North Korea Sanctions Regulations, sections 510.201 and 510.210"
],
"reason": [],
"sanction_authority": [
"U.S. Department of the Treasury - Office of Foreign Assets Control - SDN"
],
"sanction_details": [],
"sanction_list": [],
"sanction_program": [
"CYBER2",
"DPRK3"
],
"sanction_types": [
"Secondary Sanctions Risk"
]
}
],
"summary": {
"address": [],
"alias": [],
"date_of_birth": [],
"delisted": [
"True"
],
"description": [],
"designation": [],
"email": [],
"gender": [],
"name": [
"TORNADO CASH"
],
"nationality": [],
"net_worth": [],
"occupation": [],
"phone": [],
"place_of_birth": [],
"political_party": [],
"suffix": [],
"title": []
}
},
"entity_types": [
"Company"
],
"hio": false,
"id": "6QCURdbHRfERVE6axuQgwj",
"match_status": "Potential Match",
"matched_alias": "",
"matched_names": [
{
"matched_name": "TORNADO CASH",
"matching_fields": [],
"record_id": "6QCURdbHRfERVE6axuQgwj",
"score": "100",
"source_ids": [
"19444688"
]
}
],
"matched_rca": "",
"name": "Tornado Cash",
"relevance_status": {
"alias": false,
"birth_incorporation_date": false,
"category": true,
"country": false,
"crypto_wallet_address": true,
"entity_type": false,
"exact_match": true,
"image_match": false,
"potential_match": false,
"profile_name": true,
"rca_name": false,
"unique_identifier": false
},
"risk_decision": "Failed",
"risk_level": "High",
"risk_score": 100,
"risk_score_engine_id": "65ce1f26a74c6232ed9ce829",
"risk_title": "AML Default Risk",
"source_details": [
{
"additional_sources": [],
"categories": [
"Sanctions"
],
"countries": [
"International"
],
"created_at": "2024-08-13T08:01:10.050Z",
"data": {
"additional_information": {
"flag_summary": [
"TORNADO CASH has been flagged under sanctions by the U.S. Department of the Treasury - Office of Foreign Assets Control (OFAC) as a Special Interest Entity. It is associated with the North Korea Sanctions Regulations and is listed under the SDN program due to its involvement in secondary sanctions risk. Although it has been delisted, it remains relevant for compliance monitoring due to its previous sanctions status."
],
"notes_remarks": [],
"website": [
"tornado.cash"
]
},
"case_details": [
{
"order_number": [
"North Korea Sanctions Regulations, sections 510.201 and 510.210"
]
}
],
"crypto_wallets": [
{
"crypto_wallet_address": [
"0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xA160cdAB225685dA1d56aa342Ad8841c3b53f291"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x07687e702b410Fa43f4cB4Af7FA097918ffD2730"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x23773E65ed146A459791799d01336DB287f25334"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x22aaA7720ddd5388A3c0A3333430953C68f1849b"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x03893a7c7463AE47D46bc7f091665f1893656003"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2717c5e28cf931547B621a5dddb772Ab6A35B701"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xDD4c48C0B24039969fC16D1cdF626eaB821d3384"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd96f2B1c14Db8458374d9Aca76E26c3D18364307"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x169AD27A470D064DEDE56a2D3ff727986b15D52B"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x178169B423a011fff22B9e3F3abeA13414dDD0F1"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x610B717796ad172B316836AC95a2ffad065CeaB4"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x77777feddddffc19ff86db637967013e6c6a116c"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x3efa30704d2b8bbac821307230376556cf8cc39e"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x746aebc06d2ae31b71ac51429a19d54e797878e9"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x5f6c97C6AD7bdd0AE7E0Dd4ca33A4ED3fDabD4D7"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xf4B067dD14e95Bab89Be928c07Cb22E3c94E0DAA"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x58E8dCC13BE9780fC42E8723D8EaD4CF46943dF2"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x01e2919679362dFBC9ee1644Ba9C6da6D6245BB1"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2FC93484614a34f26F7970CBB94615bA109BB4bf"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x26903a5a198D571422b2b4EA08b56a37cbD68c89"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xB20c66C4DE72433F3cE747b58B86830c459CA911"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x2573BAc39EBe2901B4389CD468F2872cF7767FAF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x527653eA119F3E6a1F5BD18fbF4714081D7B31ce"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x653477c392c16b0765603074f157314Cc4f40c32"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x88fd245fEdeC4A936e700f9173454D1931B4C307"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x09193888b3f38C82dEdfda55259A82C0E7De875E"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x5cab7692D4E94096462119ab7bF57319726Eed2A"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x756C4628E57F7e7f8a459EC2752968360Cf4D1AA"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x722122dF12D4e14e13Ac3b6895a86e84145b6967"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x94A1B5CdB22c43faab4AbEb5c74999895464Ddaf"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb541fc07bC7619fD4062A54d96268525cBC6FfEF"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD82ed8786D7c69DC7e052F7A542AB047971E73d2"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xF67721A2D8F736E75a49FdD7FAd2e31D8676542a"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x9AD122c22B14202B4490eDAf288FDb3C7cb3ff5E"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xD691F27f38B395864Ea86CfC7253969B409c362d"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xaEaaC358560e11f52454D997AAFF2c5731B6f8a6"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x1356c899D8C9467C7f71C195612F8A395aBf2f0a"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xA60C772958a3eD56c1F15dD055bA37AC8e523a0D"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xBA214C1c1928a32Bffe790263E38B4Af9bFCD659"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xb1C8094B234DcE6e03f10a5b673c1d8C69739A00"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0xF60dD140cFf0706bAE9Cd734Ac3ae76AD9eBC32A"
],
"currency": [
"ETH"
]
},
{
"crypto_wallet_address": [
"0x8589427373D6D84E98730D7795D8f6f8731FDA16"
],
"currency": [
"ETH"
]
}
],
"identification_documents": [
{
"incorporation_date": [
"2019"
]
}
],
"legal_notice": "The information contained in this report is derived from public sources such as Official Government Websites, Global Watchlists, Compliance Reports, Published Research Articles and News Sources. ShuftiPro® is not the source of the data and is not responsible for the content of third party sources. ShuftiPro® does not determine any positive or negative risks associated with the profiled entity. These decisions are solely determined by our clients as mandated by their applicable regulatory obligations.",
"linked_entities": [],
"sanction_details": [
{
"delisted_on": [],
"legal_act": [],
"listed_on": [],
"listing_id": [],
"order_number": [
"North Korea Sanctions Regulations, sections 510.201 and 510.210"
],
"reason": [],
"sanction_authority": [
"U.S. Department of the Treasury - Office of Foreign Assets Control - SDN"
],
"sanction_details": [],
"sanction_list": [],
"sanction_program": [
"CYBER2",
"DPRK3"
],
"sanction_types": [
"Secondary Sanctions Risk"
]
}
],
"summary": {
"address": [],
"alias": [],
"date_of_birth": [],
"delisted": [
"True"
],
"description": [],
"designation": [],
"email": [],
"gender": [],
"name": [
"TORNADO CASH"
],
"nationality": [],
"net_worth": [],
"occupation": [],
"phone": [],
"place_of_birth": [],
"political_party": [],
"suffix": [],
"title": []
}
},
"description": "As part of its enforcement efforts, OFAC publishes a list of individuals and companies owned or controlled by, or acting for or on behalf of, targeted countries. It also lists individuals, groups, and entities, such as terrorists and narcotics traffickers designated under programs that are not country-specific. Collectively, such individuals and companies are called Specially Designated Nationals or SDNs.",
"entity_id": "6QCURdbHRfERVE6axuQgwj",
"publisher": "Office of Foreign Assets Control (OFAC ) - SDN and Blocked Persons List",
"refrence_url": null,
"source_categories": [
{
"Sanctions": "https://sanctionssearch.ofac.treas.gov/Details.aspx?id=39796"
}
],
"updated_at": "2025-03-21T13:43:53.337Z",
"url": "https://sanctionssearch.ofac.treas.gov/Details.aspx?id=39796"
}
],
"updated_at": "2025-03-21T13:43:53.337Z",
"version": "v1"
}
],
"search_reference": "bf79765eb016309a0b3f39a4",
"searched_name": "0xDD4c48C0B24039969fC16D1cdF626eaB821d3384",
"total_records": 1
}
}
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/crypto_wallet_screening/declined_reasons.md
When a verification request involving Crypto Wallet Screening is declined, the following reasons are presented to the end user or client.
Status Code
Description
Elevated Crypto Risk
SPDR358
Crypto Wallet Screening failed.
SPDR359
The wallet address, or an entity linked to it, matched a sanctions list: penalties or restrictions imposed by authorities for violating laws or international norms.
SPDR360
The wallet address, or an entity linked to it, matched a warnings and regulatory enforcement list: alerts to rule violations, or penalties for non-compliance.
SPDR361
The wallet address, or an entity linked to it, matched in adverse media: negative or damaging coverage indicating potential risk.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/due_diligence_form/how_it_works.md
Shufti assists clients in gathering crucial user information necessary for onboarding and enhanced due diligence verification. We offer customised forms tailored to their specific business requirements. Additionally, clients have the flexibility to integrate various KYC services to obtain diverse proofs as needed.
**Info**
Client can either utilise an existing template from Shufti's library of templates or create a new one via [Shufti’s back office](https://backoffice.shuftipro.com/questionnaire).
## Due Diligence using Existing Templates
Clients can efficiently gather user information using Shufti's customizable due diligence form, selecting up to five forms simultaneously to tailor the data collection according to their needs. Additionally, they have the option to choose between pre and post-KYC workflows for seamless integration with other KYC services like Document and Face Verification.
1. Navigate to Product Demo section > [Enhanced Due Diligence](https://backoffice.shuftipro.com/questionnaire)
2. Click on the Start Demo button to start using an existing Due Diligence Form
## Creation of new Due Diligence Form
1. Navigate to the back office product demo section > Enhanced Due Diligence > [Create New](https://backoffice.shuftipro.com/questionnaire)
2. A new page will open, where you can set the title & description of the form.
3. Going forward, you have the flexibility to create multiple questions within a single form tailored to your specific needs.
4. Client can implement page and question rules to direct users to specific questions and KYC flows according to their preferences.
5. Finally the form can be saved and used for collecting user data.
**Caution**
Due Diligence Form can only be created through Shufti's BackOffice.
## Add Question
You can add as many questions as you need, depending on your business requirement.
**Info**
By default question limit in each due diligence form is set to 20. This can be updated by contacting the Shufti's support team at **tech@shuftipro.com**.
To add questions follow these steps:
1. **Default Question**: Upon form creation, a default question appears. Client can modify it, but keeping it is advised for saving progress if the end user leaves the form without submitting it.
2. **Add new Questions**: Click the plus sign next to the page title to add new questions.
3. **Question Title**: Write a title for each new question you add.
4. **Required Setting**: Choose if the question is 'required' or optional and add a description as needed.
5. **Answer Type**: Select the preferred answer format (e.g., Text, Float, Paragraph).
6. **Save Form**: Click 'Proceed' to save your custom due diligence form.
## Answer Types
Answer types allow you to collect the specific data to be collected from the end user according to your business requirements:
| Field | Description |
|-----------------|----------------------------------------------------------------|
| Text | Single-line input for brief text, like names. |
| Dropdown | Compact menu for choosing one from many options. |
| Radio Buttons | Select one option from multiple choices. |
| Email | Field for email addresses, with format validation. |
| Upload File | Allows file uploads, such as documents or images. |
| Integer | For whole number inputs only. |
| Float | Accepts numbers with decimals. |
| Linear Scale | Numeric scale for ratings or evaluations. |
| Date | Date selection, often with a calendar interface. |
| Paragraph | Multi-line text box for longer responses. |
| Countries List | Dropdown list of countries for geographic selection. |
## Add Rules
You can control the flow of due diligence form by adding rules on each question or page. In the Due Diligence Form, two types of rules are employed to achieve the desired workflow:
- **Question Rules**: Implement logic-driven visibility for questions or options based on end user responses. This feature enables you to tailor the form dynamically, showing or hiding additional elements according to the answers provided by the end user.
- **Page Rules**: Set up custom navigation within the form based on end user inputs. Page Rules allow you to direct end users to specific questions or sections of the form, ensuring a personalized and relevant experience tailored to their responses.
## Information Collected
Common information collected from the end user using the form is as follows:
- Personal and Contact Information
- Employment History
- Educational Background
- Source of Funds
- Transaction Statements
- Asset Ownership Details
- Beneficial Ownership Information
- Business Registration Certificates
- Articles of Incorporation
- Business Licenses
**Note**
Once a form is used for verification, it cannot be edited or updated. To make changes, create a duplicate and then edit/update the due diligence form.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/due_diligence_form/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification purposes.
## Parameters and Descriptions
To use the **Due Diligence Form** service and ask the end-users to fill in the questionnaire, clients need to send an API Request to the server with the following parameters.
**Info**
The Due Diligence Form service is available for Onsite only and before passing the questionnaire object in the API, please make sure that you have copied the correct UUID from the **[Questionnaire Section](https://backoffice.shuftipro.com/questionnaire)** listed in Products Section and the questionnaire must be active as well.
Parameters | Description
-------------- | --------------
uuid | Required: **Yes** Type: **array** Example 1: ["example_uuid_1"] Example 2: ["example_uuid_1","example_uuid_2"] The **UUID** parameter is an array that takes one or multiple UUIDs (max five) in the array to execute the enhance due diligence service for your end users.
questionnaire_type | Required: **No** Type: **string** Accepted Values: **pre_kyc, post_kyc** Default-Value: **pre_kyc** The questionnaire type parameters tell whether you want to execute the questionnaire for your end-users before KYC ("pre_kyc") or after KYC ("post_kyc").
[](https://god.gw.postman.com/run-collection/9386910-fde11fca-75dd-4dd0-b0df-e1b27db4266e?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-fde11fca-75dd-4dd0-b0df-e1b27db4266e%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=enhance-due-diligence-service-sample-object
{
"questionnaire": {
"questionnaire_type": "pre_kyc",
"uuid": [
"TZJAEG",
"XYZABC"
]
}
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/due_diligence_form/declined_reasons.md
When a verification request involving Due Diligence Form is declined, the following reasons are presented to the end user or client.
Status Code | Description
-------------- | --------------
SPDR40 | The answer to the question is incorrect.
SPDR303 | The user is from high-risk category.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/consent_verification/how_it_works.md
Shufti enables organizations to gather live image consent from users, confirming their real presence and safeguarding against bot activity.This service can authenticate a variety of documents, including company documents, employee cards, or any other personalized notes. Moreover, Shufti offers facial recognition functionality, analyzing live proof of the face for enhanced security.
1. The merchant submits the text for verification.
2. The end user writes or prints the provided text on paper.
3. The user then presents this consent paper, with or without their face, as per the merchants requirements.
4. Shufti verifies the text provided by the user along with live facial proof for authentication.
## Supported Types
Users have the option to select either a handwritten or printed document format for verification within this module. However, it's important to note that only one form of document can be verified at a time. Checkout all supported documents type for consent [here](/docs/coverage/documents#consent-verification).
**Info**
The merchant must provide the text that requires verification. Shufti then verifies if this matches the text provided by the end user.
## Verification Data Parameters
The following parameters are verified in the case of verification accepted or declined
Parameters | Description
------------------------|-------------
text | This key contains consent text written on the proof presented by the user.
selected_type | This key contains the document proof selected by the user such as driving licence, passport or a government-issued ID, etc.
supported_types | This key contains all types of supported documents.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/consent_verification/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification purposes.
## Parameters and Description
Parameters | Description
-------------- | --------------
proof | Required: **No** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB**
supported_types | Required: **No** Type: **Array** Text provided in the consent verification can be verified by handwritten documents or printed documents. Supported types are listed here **Example 1** ["printed"] **Example 2** ["printed", "handwritten"]
text | Required: **Yes** Type: **string** Minimum: **2 characters** Maximum: **100 characters** Provide text in the string format which will be verified from a given proof. **Note:** Text whose presence on the note/customized document is to be verified.
allow_offline | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter allows user to upload their Consent Document (Handwritten Note/printed document) in case of non-availability of a functional webcam. If value is 0, users can only perform Consent Verification with the camera only.
allow_online | Required: **No** Type: **string** Accepted Values: **0, 1** Default-Value: **1** This parameter allows users to capture their Consent in real-time when internet is available. If value: 0 users can upload already captured Consent. **Note:** if **allow_offline:** 0 priority will be given to **allow_offline**
with_face | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter is applicable if supported_type is handwritten and default value is 1. If value of with_face is 1 then hand written note will be accepted only with face which means your customer must need to show his/her face along with the consent on a paper. If value of with_face is 0 then hand written note is accepted with or without face.
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proofs that can be used for verification. In the "video_only" mode, Shufti's client is restricted to submitting "Base64" encoded videos, which must be in the **MP4** or **MOV** format. The "any" mode allows a combination of images and videos to be submitted as proofs for verification. If there is a conflict between the service level key and the general level key, priority is assigned to the service level key.
## Consent Request Object
[](https://god.gw.postman.com/run-collection/9386910-8f779b29-663f-4349-b03e-ef954d06cc99?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-8f779b29-663f-4349-b03e-ef954d06cc99%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=consent-service-sample-object-onsite
{
"consent": {
"proof": "",
"supported_types": ["printed"],
"text": "Hello",
"allow_offline": "1",
"allow_online": "1",
"verification_mode": "any"
}
}
```
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/consent_verification/offsite.md
In offsite verification process, Shufti's clients are solely responsible for gathering all necessary proof from the end user and then submitting it to Shufti for verification.
## Parameters and Description
Parameters | Description
-------------- | --------------
proof | Required: **Yes** Type: **string** Image Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** Video Format: **MP4/MOV** Maximum: **20MB**
supported_types | Required: **No** Type: **Array** Text provided in the consent verification can be verified by handwritten documents or printed documents. Supported types are listed here. **Example 1** ["printed"] **Example 2** ["printed", "handwritten"]
text | Required: **Yes** Type: **string** Minimum: **2 characters** Maximum: **100 characters** Provide text in the string format which will be verified from a given proof. **Note:** Text whose presence on the note/customized document is to be verified.
with_face | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter is applicable if supported_type is handwritten and default value is 1. If value of with_face is 1 then hand written note will be accepted only with face which means your customer must need to show his/her face along with the consent on a paper. If value of with_face is 0 then hand written note is accepted with or without face.
verification_mode | Required: **No** Type: **string** Accepted Values: **any, image_only, video_only** This key specifies the types of proofs that can be used for verification. In the "video_only" mode, Shufti's client is restricted to submitting "Base64" encoded videos, which must be in the **MP4** or **MOV** format. The "any" mode allows a combination of images and videos to be submitted as proofs for verification. If there is a conflict between the service level key and the general level key, priority is assigned to the service level key.
## Consent Request Object
[](https://god.gw.postman.com/run-collection/9386910-bb40b1f1-0e2d-43fb-9847-bdb77f7c0e3a?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-bb40b1f1-0e2d-43fb-9847-bdb77f7c0e3a%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=consent-service-sample-object-offsite
{
"consent": {
"proof": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QoPAxIb88htFgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACxSURBVBjTdY6xasJgGEXP/RvoonvAd8hDyD84+BZBEMSxL9GtQ8Fis7i6BkGI4DP4CA4dnQON3g6WNjb2wLd8nAsHWsR3D7JXt18kALFwz2dGmPVhJt0IcenUDVsgu91eCRZ9IOMfAnBvSCz8I3QYL0yV6zfyL+VUxKWfMJuOEFd+dE3pC1Finwj0HfGBeKGmblcFTIN4U2C4m+hZAaTrASSGox6YV7k+ARAp4gIIOH0BmuY1E5TjCIUAAAAASUVORK5CYII=",
"supported_types": ["printed"],
"text": "Hello",
"allow_offline": "",
"verification_mode": "any"
}
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/consent_verification/declined_reasons.md
When a verification request involving Consent Verification is declined, the following reasons are presented to the end user or client.
Status Code | Description
-------------- | --------------
SPDR02 | Image of the face not found on the document.
SPDR03 | Image is altered or photoshopped.
SPDR04 | Copy of the image found on web.
SPDR32 | Consent note information is not correct, please upload a note with valid information.
SPDR33 | Consent type is different from provided options.
SPDR43 | Camera is not accessible for verification.
SPDR106 | Consent note should be handwritten.
SPDR108 | Face is not found with the consent note.
SPDR110 | Consent note should be a printed document.
SPDR241 | The verification process was canceled by the user.
SPDR253 | The uploaded consent is inverted or in mirror view.
SPDR254 | Consent note is not visible.
SPDR255 | Data on the consent note does not match.
SPDR256 | Face image not present with the Consent.
SPDR257 | Consent proof is a screenshot.
SPDR258 | Consent proof is altered/edited.
SPDR259 | The provided face image is edited.
SPDR260 | Consent proof is from another screen.
SPDR274 | End user did not submit complete verification proofs or data.
SPDR276 | The user does not want to share camera or documents.
SPDR288 | Consent face does not match with the selfie.
SPDR289 | Consent face does not match with the face on the document.
SPDR290 | Entire Face is not visible with consent note.
SPDR292 | Consent Note is not detected in the provided image.
---
# Sample Consent Documents
Source: https://developers.shuftipro.com/docs/user_identification_authentication/consent_verification/sample_consent_documents.md
The below-provided test consent Samples for consent service can be used either during the testing or the integration process. This facilitates the technical teams to use dummy documents in order to test out the requests, responses, callbacks, etc without having them upload/provide their real identity documents.
**Caution**
These test samples can only be used for test accounts not for the production account.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/phone_verification_and_validation/how_it_works.md
Verify the legitimacy of the end user's phone number by employing a OTP (One-Time Password) verification process combined with rigorous fraud detection checks for validation to deliver a seamless and trustworthy phone verification for all your business needs.
Shufti ensures the accuracy and legitimacy of the end user's phone number through a comprehensive two-stage process.
## Verification via OTP
Initially, the end user's phone number is verified through the dispatch and subsequent submission of a One-Time Password (OTP). This step ensures that the phone number provided is active and accessible by the user.
Merchants can select their preferred method for generating the one-time password used in the verification process:
- **Auto-Code Generator:**
Shufti's 2FA engine auto-generates a random verification code for the end-user.
- **Personalised Code:**
Clients can provide a predetermined code of their choice in the app.
Phone Verification process works as follow:
1. End user provides the phone number.
2. An OTP is sent to the end user-provided phone number.
3. It is required to type the received OTP in the given input fields.
4. If the end user did not receive a code they can request it again by clicking on the “Receive Code” button.
5. Different checks are performed on the end user’s phone number and a decision is made to accept or decline the verification request.
**Caution**
Verification is declined if a user enters the wrong code consecutively for five times.
## Fraud Prevention Validation
Following successful OTP verification, the phone number undergoes a rigorous validation process using pre-established fraud prevention rules. This phase is designed to detect any fraudulent activity or irregularities associated with the phone number, enhancing the overall security and integrity of the verification process.
Fraud Prevention validation includes the following rules:
- **Disposable Phone**: Identifies if the phone number is from a temporary or disposable service.
- **Invalid/Impossible Number**: Verifies if the phone number is structurally valid and possible.
- **No Online Profiles**: Checks for the absence of associated online profiles with the phone number.
- **Suspicious/Bogus Phone**: Flags phone numbers that exhibit signs of being fraudulent or inauthentic.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/phone_verification_and_validation/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification purposes.
## Parameters and Description
Parameters | Description
-------------- | --------------
phone_number | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **64 characters** Allowed Characters: numbers and plus sign at the beginning. Provide a valid customer's phone number with country code. Shufti will directly ask the end-user for phone number if this field is missing or empty.
random_code | Required: **No** Type: **string** Minimum: **2 characters** Maximum: **10 characters** Provide a random code. If this field is missing or empty, Shufti will generate a random code.
text | Required: **No** Type: **string** Minimum: **2 characters** Maximum: **100 characters** Provide a short description and random code in this field. This message will be sent to customers. **This field should contain random_code**. If random_code field is empty then Shufti will generate a random code and append the code with this message at the end.
supported_channel | Required: **No** Type: **Array** An object that specifies the OTP delivery channels. The user can specify SMS, WhatsApp, or both. At least one channel must be selected.
validate_phone | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** Enabling the key subjects the phone number to a strict validation process with predefined fraud prevention rules, aiming to identify any fraudulent activities or irregularities.
sms_pumping | Required: **No** Type: **boolean** SMS Pumping Risk Detection helps identify fraudulent activities that involve artificially inflating SMS traffic, providing a risk score that reflects the likelihood of such behavior.
line_type_intelligence | Required: **No** Type: **boolean** Line Type Intelligence categorizes phone numbers based on their type—such as mobile, VOIP, or landline—and identifies the associated carrier. This helps in evaluating the legitimacy and potential risk of the phone number, ensuring a more accurate fraud prevention process.
[](https://god.gw.postman.com/run-collection/9386910-69afe821-98f5-4d05-99ff-324728cec2bb?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-69afe821-98f5-4d05-99ff-324728cec2bb%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=phone-service-sample-object
{
"phone" : {
"phone_number" : "",
"random_code" : "",
"text" : "",
"supported_channel": [
"sms",
"whatsapp"
]
}
}
```
**Caution**
Phone Service is not available in Offsite Verification.
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/phone_verification_and_validation/declined_reasons.md
When a verification request involving Phone Verification & Validation is declined, the following reasons are presented to the end user or client.
Status Code | Description
-------------- | --------------
SPDR35 | Your phone number did not match the record, please provide a valid phone number.
SPDR84 | Phone number not verified because end-user entered the wrong code multiple times.
SPDR85 | Phone number not verified because the provided number was unreachable.
SPDR241 | The verification process was canceled by the user.
SPDR267 | Your request is being declined because the provided phone number is already registered.
SPDR298 | The phone number could not be validated.
SPDR356 | Phone number is inactive or unreachable.
SPDR357 | Identity details do not match carrier records.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/email_verification_and_validation/how_it_works.md
Confirm the authenticity of the end user email address. Shufti provides a sophisticated solution designed to fortify user authentication with enhanced security and precision. The seamless process begins with users providing their email addresses, followed by the generation of a secure OTP. Users then input the received OTP into the designated fields, ensuring a secure and reliable verification process.
Shufti ensures the accuracy and legitimacy of the end user's email address through a comprehensive two-stage process.
## Verification via OTP:
The process begins with the user receiving a verification link or code in their email. The user must click the link or enter the code to confirm that they have access to the email account, thereby verifying the email address's validity.
The email verification process works as follows:
1. End user provides the email address.
2. An OTP is sent to the end user-provided email address.
3. The end user is required to type in the received OTP in the given input fields.
4. Different checks are performed on the end user’s email address and a decision is made to accept or decline the verification request.
**Caution**
Verification is declined if a user enters the wrong code consecutively for five times.
## Fraud Prevention Validation:
After the email address is verified, it undergoes a thorough validation phase. This involves checking the email against pre-set fraud prevention criteria to identify any signs of fraudulent or suspicious activity. This step ensures the email address is not only valid but also secure and not associated with any malicious activities.
Fraud Prevention validation includes the following checks:
- **Disposable Domain**: Checks if the email is from a temporary or one-time-use domain.
- **Unregistered Domain**: Verifies the legitimacy of the domain's registration.
- **New Custom Domain**: Assesses custom domains registered less than a month ago for credibility.
- **Free Provider, Limited Profile**: Examines emails from free providers with minimal online presence.
- **Free Provider, Single Profile**: Check if email is from free providers with only provider-specific online activity.
- **High-Risk Domain**: Identifies domains known for high-risk or suspicious activities.
- **Recent Custom Domain (2-3 months)**: Evaluates newly created custom domains (2-3 months old) for trustworthiness.
- **High-Risk Registrar**: Checks the reputation of the email domain's registrar for potential risks.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/email_verification_and_validation/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification purposes.
## Parameters and Description
Parameters | Description
-------------- | --------------
email | Required: **No** Type: **email** Maximum: **128 characters** Allowed Characters: Kindly ensure that email addresses adhere to the standard conventions, including valid characters such as letters, numbers, and symbols like '@' and '.'.
validate_email | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** After verifying the email address and enabling the key, it undergoes a thorough validation against pre-set fraud prevention criteria to detect any fraudulent or suspicious activity, ensuring the email is not only valid but also secure and free from malicious associations.
email_intelligence | Required: **No** Type: **Boolean** Minimum: **6 characters** Maximum: **128 characters** Accepted Value: **Email Address** This field represents the email score of the end-user. It is used as a part of Shufti’s email verification process. The system checks the email for potential fraud indicators, such as disposable domains or high-risk registrars. This helps to ensure the validity and authenticity of the email address provided by the end-user. **Note:** Any score above **7.0** will be considered as a valid email address. A score below **7.0** can be marked as risky or invalid depending upon the type of risk signals detected.
[](https://god.gw.postman.com/run-collection/9386910-fd3298eb-9249-49d4-9e06-2cd7397424a5?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-fd3298eb-9249-49d4-9e06-2cd7397424a5%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=email-verification-service-sample-object-empty-email
{
"email_verify" : {
"email" : ""
}
}
```
**Caution**
Shufti requires the end-user to furnish the email address if absent in both the **general request** and **email_verify** objects. The email in the **general request** takes precedence if the **email_verify** object is empty. It's imperative that email addresses in both objects align precisely for request processing.
```json title=email-verification-service-sample-object-filled-email
{
"email_verify" : {
"email" : "john.doe@example.com"
}
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/email_verification_and_validation/declined_reasons.md
When a verification request involving Email Verification & Validation is declined, the following reasons are presented to the end user or client.
Status Code | Description
-------------- | --------------
SPDR241 | The verification process was canceled by the user.
SPDR293 | Email not verified because end-user entered the wrong code multiple times.
SPDR294 | Provided email is not authentic.
SPDR295 | Email address not verified because the provided email was unreachable.
SPDR309 | Email delivery failed due to mail server issues or invalid recipient address.
SPDR310 | The email address format is invalid.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_risk_assessment/how_it_works.md
Our risk assessment process commences with extensive data collection, succeeded by meticulous analysis employing advanced fraud prevention rules to assign a risk score. Subsequently, the end user is prompted to undergo specific verification steps to mitigate identified risks, thereby ensuring proactive protection against potential threats.
### Risk Assessment using existing model:
1. Navigate to the Product Demo > [Risk Assessment](https://backoffice.shuftipro.com/risk-assessment)
2. Select the option to Duplicate an existing Risk Assessment Model.
3. Once duplicated, proceed to click on the Start Demo button to begin utilizing the newly duplicated Risk Assessment Model.
### Risk Assessment by creating a new model:
1. Navigate to the Product Demo > [Risk Assessment](https://backoffice.shuftipro.com/risk-assessment)
2. Click on the "Create New" button to initiate the creation of a new model.
3. After creating the model, be sure to save it.
4. Once saved, you can begin utilising the newly created Risk Assessment Model for your needs.
**Caution**
Risk Assessment Models can only be created through Shufti's [BackOffice](https://backoffice.shuftipro.com).
Following steps are required to create a new Risk Assessment Model:
1. **Setting up Risk Ranges:** Establish a weighted scale to define risk levels, ranging from low to medium, high, and prohibited.
2. **Fraud Prevention Checks:** Set fraud prevention rules that align with your unique business requirements by checking the customer’s PhoneNo, IP, Email, and Velocity risk.
3. **Customising Form:** Create multiple customised risk forms with several answer types by adding scores against each answer option.
4. **Customised Verification Journey:** Configure a KYC journey pathway for each customer, based on their risk assessment.
**Info**
The Risk Assessment Service is available for onsite only and before passing the Risk Assessment object in the API, please make sure that you have copied the correct risk_reference from the Risk Assessment Section listed in Products Section and the Risk Assessment must be active as well.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_risk_assessment/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required proofs for verification purposes.
**Info**
Shufti uses following base URL for User Risk Assessment ```https://ra.shuftipro.com/risk-api/```
## Calling a Risk Assessment via API
To use the risk assessment service and ask the end-users to fill in the risk assessment, clients need to send an API Request to the server with the following parameters:
Parameters | Description
-------------- | --------------
email | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **128 characters**
risk_reference | Required: **Yes** Type: **string** Maximum: **6 characters** The “risk_reference” parameter is a string that takes one risk_reference in the string to execute the risk assessment service for your end users.
phone_number | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **64 characters** The “phone_number” parameter is a string that takes one phone_number in the string along with risk_reference to execute the risk assessment service for your end users.
[](https://god.gw.postman.com/run-collection/9386910-c7a205d7-6844-4911-a335-e6835ec54484?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-c7a205d7-6844-4911-a335-e6835ec54484%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
``` json title=risk_assessment-service-sample-payload
{
"reference": "1234567",
"email": "johndoe@example.com",
"risk_assessment": {
"risk_reference": "37rNhl",
"phone_number": "+4400000000"
}
}
```
---
# Fraud Prevention Rules
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_risk_assessment/fraud_prevention_rules.md
Our fraud prevention rules empower merchants to customise parameters aligned with their risk tolerance levels. Triggered by events like user registration, these rules swiftly analyze incoming data. Automated actions, such as flagging transactions for review, ensure proactive protection against evolving threats.
**Info**
Merchants can conveniently customise and toggle the types of fraud prevention rules they wish to use during creation of Risk Assessment.
### Email
Verify the authenticity of a user’s email through predefined checks like:
- Domain is disposable.
- Domain is not registered.
- Domain is custom and was registered less than 1 month ago. No online profiles were found. It was not involved in a data breach.
- Domain is a free provider. No online profiles were found. It was not involved in a data breach.
- Domain is a free provider. The only online platform found is identical to the provider. It was not involved in a data breach.
- Domain is high risk.
- Domain is custom and was registered between 2 and 3 months. No online profiles were found. It was not involved in a data breach.
- Domain’s registrar name is high risk.
- Domain is high risk (Found in fraudulent email list).
### Phone
Verify that the user’s provided phone number is authentic through checks like:
- Phone number is disposable.
- Phone number is not valid nor possible.
- No online profiles were found.
- Phone is suspicious.
### IP Address
Checks if the user IP Address is changing according to location and other parameters like:
- Customer is using TOR browser.
- Customer is using a Web proxy.
- Customer is using public proxy.
- Customer is using a datacenter ISP.
- There are 2 or more suspicious open ports on the IP address.
- IP address was found on 5 or more spam blocklists.
### Velocity Rule
Checks how many times the user has tried the verification process and failed.
- No of failed verifications in a month.
- No of successful verifications in a month.
- No of failed verifications in the last month.
- No of successful verifications in the last month.
- No of failed verifications in a week.
- No of successful verifications in a week.
- No of successful verifications in a day.
- No of failed verifications in a day.
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/user_risk_assessment/declined_reasons.md
The risk assessment service enables clients to categorize KYC services based on risk levels, such as low, medium, and high. The specific decline reasons are displayed in accordance with the chosen KYC service and its associated risk level.
## Face Status Codes
Status Code
Description
Elevated Fraud Risk
SPDR01
Face could not be verified.
SPDR03
Image is altered or photoshopped.
SPDR04
Copy of the image found on the web.
SPDR37
Face liveness detection failed.
SPDR38
Face doesn't match the face image uploaded at the time of signup.
SPDR59
Face proof is taken from another screen.
SPDR60
Face proof is taken from the internet.
SPDR98
Face image is cropped or edited.
SPDR109
Uploaded image is found on the internet.
SPDR218
Face proof is edited using filters.
SPDR259
The provided face image is edited.
SPDR278
Face proof is altered or photoshopped.
SPDR287
Duplicate account is detected.
Invalid Facial Image
SPDR58
Face in the image is wearing glasses.
SPDR62
Face proof is a screenshot.
SPDR144
Hat or mask is found on the face.
SPDR233
Face proof has a solid color in the background.
SPDR268
The provided image is corrupted.
SPDR280
Eyes not visible and are covered with glasses.
SPDR281
Multiple faces detected in face proof.
SPDR282
Uploaded document is a test ID.
Image Quality Deficiency
SPDR96
Face is not visible due to low lighting.
SPDR97
Face image is blurry.
SPDR219
The uploaded face picture is blurry and not clearly visible.
SPDR231
The face picture on the provided document is not clearly visible.
SPDR279
Face proof is blurry and not clear for verification.
SPDR291
Entire face is not clear in the provided face proof.
Facial Data Missing
SPDR19
Face could not be detected in image, please upload an image again with your face clearly visible.
SPDR99
Face is not found on the document.
SPDR101
Face is hidden on the document.
SPDR168
Face is not detected in the uploaded image.
SPDR264
Face image is not present on the document.
SPDR277
Closed eyes are detected.
SPDR283
Face could not be detected.
Insufficient Submission
SPDR43
Camera is not accessible for verification.
SPDR274
End user did not submit complete verification proofs or data.
SPDR276
The user does not want to share camera or documents.
SPDR284
The complete verification data was not provided by the user.
Incomplete Verification
SPDR241
The verification process was canceled by the user.
## Document & Document Two Status Code
Status Code
Description
Elevated Fraud Risk
SPDR03
Image is altered or photoshopped.
SPDR04
Copy of the image found on the web.
SPDR06
Document originality could not be verified.
SPDR15
Face on the document doesn't match with the camera image.
SPDR39
Document doesn’t match the document uploaded at the time of signup.
SPDR48
Document proof is altered/edited.
SPDR51
Document proof is from another screen.
SPDR56
Information on the document is edited.
SPDR87
Face on the E-document does not match the selfie.
SPDR89
Uploaded image of the document is edited or cropped.
SPDR90
Uploaded image is found on the internet.
SPDR131
Document is captured from another device.
SPDR134
Uploaded image of the document is found on the internet.
SPDR166
Face image doesn’t match the face on the document.
SPDR194
The provided document is edited.
SPDR210
Dual cards detected.
SPDR230
The uploaded face picture does not match the face photo on the provided document.
SPDR235
Face in the provided document is edited.
SPDR236
Font in the provided document is edited.
SPDR237
Background in the provided document is edited.
SPDR238
Text in the provided document is edited.
SPDR239
MRZ in the provided document is edited.
SPDR240
Provided document is edited via applying filters.
SPDR286
Document proof inconsistent creation and modification dates found.
Document Data Mismatch
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.
SPDR73
Date of Birth on the document does not match the provided one.
SPDR75
Name on the document does not match the provided one.
SPDR77
Document number does not match the provided one.
SPDR86
E-document data does not match the provided document proof.
SPDR104
Last name in the uploaded document doesn’t match the record.
SPDR105
First name in the uploaded document doesn’t match the record.
SPDR114
Gender on the document does not match with the provided gender.
SPDR118
The uploaded documents have different names.
SPDR140
Middle name in the uploaded document doesn’t match the record.
SPDR169
Issue date of the uploaded document doesn’t match the record.
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.
SPDR221
The gender mentioned on the document does not match the provided information.
SPDR226
The nationality on the document does not match the provided information.
SPDR305
Entered personal details do not match with the extracted ID document details.
Inconsistent Document Proofs
SPDR05
Document and Document Two do not belong to the same person.
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.
SPDR63
Front and backside images are not of the same document.
SPDR64
Proof and additional proof do not belong to the same person.
SPDR66
Both documents should belong to the same person.
SPDR217
The same proof are not allowed for document and document two ID Card.
SPDR252
Proof and additional proof are of same side of the document.
SPDR285
Document proofs do not belong to the same person.
Incomplete Document Data
SPDR02
Image of the face not found on the document.
SPDR57
Information on the document is hidden.
SPDR100
Picture on the document is not updated.
SPDR116
Gender is not mentioned in the uploaded document.
SPDR156
Expire 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.
SPDR179
Name is not found on the document.
SPDR223
The issue date on document is not present.
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.
SPDR234
The date of birth on document is not present.
SPDR249
Front or backside proof is not provided.
SPDR251
Document front proof is not provided.
SPDR262
Data is hidden on the provided document.
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.
SPDR302
Name or Address is not present on the provided document.
SPDR319
The mother name on document is not present.
Data Validation Issue
SPDR14
Age could not be verified.
SPDR44
Gender could not be verified.
SPDR45
Place of issue could not be verified.
SPDR79
Original document number could not be authenticated.
SPDR187
Nationality could not be verified.
SPDR220
The document number on the document is invalid.
Image Quality Deficiency
SPDR18
The uploaded image of the document is blur, please provide a clear photo of document.
SPDR28
The uploaded image of the document is blurred.
SPDR53
Document proof is not fully displayed.
SPDR54
Document is blurry.
SPDR55
Information on the document proof is not visible.
SPDR71
Issue date on the document is not clearly visible.
SPDR72
Expiry date on the document is not clearly visible.
SPDR74
Date of Birth on the document is not clearly visible.
SPDR76
Name on the document is not clearly visible.
SPDR78
Document number is not clearly visible.
SPDR117
Gender is unclear in the uploaded document.
SPDR171
Expire date of the uploaded document is not visible.
SPDR174
Name in the uploaded document is not visible.
SPDR208
Document is not visible or present in the proof.
SPDR215
The uploaded document is inverted or in mirror view.
SPDR222
The gender on the document is not clearly visible.
SPDR224
The date of birth on document is not clearly visible.
SPDR227
The nationality on the document is not clearly visible.
SPDR263
Uploaded image of the document is pixelated.
SPDR306
The thickness of card could not be verified.
Document Integrity Issue
SPDR47
Document proof is a screenshot.
SPDR52
Hologram is missing on the document.
SPDR130
Uploaded image of the document is a screenshot.
SPDR133
Document is paperbased or laminated.
SPDR190
The provided document is broken.
SPDR193
The provided document is a photocopy (color or black & white).
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.
SPDR207
MRZ not detected on the document.
SPDR261
MRZ Number on the document does not match.
SPDR273
Barcode verification failed.
Expired Document
SPDR16
The expiry date of the document does not match the record.
SPDR17
The document is expired.
SPDR69
Expiry date does not match with the provided one.
SPDR111
Uploaded document is expired.
SPDR181
Expiry date of the uploaded document does not match.
Unsupported or Invalid Document
SPDR12
The issuing country of the document is not supported.
SPDR13
Document doesn't match the provided options.
SPDR24
Document type is different from the provided options.
SPDR103
The uploaded document does not match the mentioned document type.
SPDR135
Uploaded image is a test card.
SPDR204
Document does not belong to GCC countries.
SPDR205
Document type is not supported.
SPDR206
Document type is not allowed.
SPDR209
Student card is not acceptable.
SPDR211
The uploaded document is not supported.
SPDR312
Your document cannot be verified due to nationality restrictions.
Insufficient Submission
SPDR43
Camera is not accessible for verification.
SPDR274
End user did not submit complete verification proofs or data.
SPDR276
The user does not want to share camera or documents.
SPDR284
The complete verification data was not provided by the user.
Incomplete Verification
SPDR241
The verification process was canceled by the user.
## Address Status Code
Status Code
Description
Elevated Fraud Risk
SPDR03
Image is altered or photoshopped.
SPDR04
Copy of the image found on the web.
SPDR06
Document originality could not be verified.
SPDR48
Document proof is altered/edited.
SPDR51
Document proof is from another screen.
SPDR56
Information on the document is edited.
SPDR89
Uploaded image of the document is edited or cropped.
SPDR90
Uploaded image is found on the internet.
SPDR131
Document is captured from another device.
SPDR134
Uploaded image of the document is found on the internet.
SPDR194
The provided document is edited.
SPDR225
The proof has been uploaded and not captured in real time.
Document Data Mismatch
SPDR13
Document doesn't match the provided options.
SPDR22
Name on the Address Document doesn't match.
SPDR23
Address did not match the record, please provide a document with a valid address.
SPDR26
Addresses on the Identity Document and Utility Bill do not match.
SPDR30
Issue date on the address document doesn't match.
SPDR68
Issue date does not match with the provided one.
SPDR75
Name on the document does not match with the provided one.
SPDR80
Address on the document does not match with the provided one.
SPDR169
Issue date of the uploaded document does not match the record.
SPDR173
Name on the address document doesn’t match the record.
SPDR269
The address did not match the record.
Inconsistent Document Proofs
SPDR21
Proof and Additional Proof are of different documents.
SPDR31
Address proof and document proof are of different persons.
SPDR42
Front and backside images of the document did not match.
SPDR65
Address proof and document proof do not match.
SPDR66
Both documents should belong to the same person.
SPDR125
Uploaded front side and backside are of different documents.
SPDR146
The address document and identity document don’t belong to the same person.
SPDR285
Document proofs do not belong to the same person.
Data Validation Issue
SPDR14
Age could not be verified.
SPDR25
Country on the address document could not be verified.
SPDR81
Address provided is invalid.
SPDR112
Country on the address document could not be verified.
SPDR113
The issuing country of the document is not supported.
SPDR188
Bank Transfer Number could not be verified.
SPDR189
Tax Identity Number could not be verified.
Document Integrity Issue
SPDR47
Document proof is a screenshot.
SPDR49
Document proof is paper-based, which is not accepted.
SPDR50
Document proof is punched/broken.
SPDR83
Address is not present on the provided document.
SPDR88
Uploaded document is Black and White.
SPDR91
Document is laminated.
SPDR92
Document is scanned or a colored copy.
SPDR93
Document is paper-based or laminated.
SPDR128
Uploaded document is laminated.
SPDR130
Uploaded image of the document is a screenshot.
SPDR136
Uploaded document is black and white.
SPDR190
The provided document is broken.
SPDR193
The provided document is a photocopy (color or black & white).
SPDR197
The provided document is scanned.
SPDR202
The provided document is cropped.
SPDR203
The provided document is handwritten.
SPDR200
The provided document is punched.
SPDR201
The provided document is cracked.
SPDR216
The uploaded document is broken with affected data.
Image Quality Deficiency
SPDR28
The uploaded image of the document is blurred.
SPDR53
Document proof is not fully displayed.
SPDR54
Document is blurry.
SPDR55
Information on the document proof is not visible.
SPDR71
Issue date on the document is not clearly visible.
SPDR76
Name on the document is not clearly visible.
SPDR82
Address on the document is not clearly visible.
SPDR120
Information on the document is not readable.
SPDR121
Entire document is not visible.
SPDR122
Uploaded document of the image is blurry.
SPDR142
Issuing date of the document is not visible.
SPDR215
The uploaded document is inverted or in mirror view.
Expired Document
SPDR27
The address document is expired.
SPDR70
Submitted document is expired.
Unsupported or Invalid Document
SPDR24
Document type is different from the provided options.
SPDR46
Same ID Document cannot be submitted as proof of address.
SPDR67
Document should be from the provided country.
SPDR94
Uploaded document is a test card.
SPDR103
The uploaded document does not match the mentioned document type.
SPDR107
Uploaded document is a test card.
SPDR124
The uploaded document does not match the mentioned document type.
SPDR135
Uploaded image is a test card.
SPDR137
Document is not found in the uploaded image.
SPDR250
Address documents from Ontario are not allowed.
SPDR268
The provided image is corrupted.
Insufficient Submission
SPDR43
Camera is not accessible for verification.
SPDR274
End user did not submit complete verification proofs or data.
SPDR276
The user does not want to share camera or documents.
SPDR284
The complete verification data was not provided by the user.
Incomplete Verification
SPDR241
The verification process was canceled by the user.
## Consent Status Code
Status Code
Description
SPDR02
Image of the face not found on the document.
SPDR03
Image is altered or photoshopped.
SPDR04
Copy of the image found on web.
SPDR32
Consent note information is not correct, please upload a note with valid information.
SPDR33
Consent type is different from provided options.
SPDR43
Camera is not accessible for verification.
SPDR106
Consent note should be handwritten.
SPDR108
Face is not found with the consent note.
SPDR110
Consent note should be a printed document.
SPDR241
The verification process was canceled by the user.
SPDR253
The uploaded consent is inverted or in mirror view.
SPDR254
Consent note is not visible.
SPDR255
Data on the consent note does not match.
SPDR256
Face image not present with the Consent.
SPDR257
Consent proof is a screenshot.
SPDR258
Consent proof is altered/edited.
SPDR259
The provided face image is edited.
SPDR260
Consent proof is from another screen.
SPDR274
End user did not submit complete verification proofs or data.
SPDR276
The user does not want to share camera or documents.
SPDR288
Consent face does not match with the selfie.
SPDR289
Consent face does not match with the face on the document.
SPDR290
Entire Face is not visible with consent note.
SPDR292
Consent Note is not detected in the provided image.
## Background Checks Status Code
Status Code
Description
Elevated AML Risk
SPDR34
AML screening failed.
SPDR160
Matched against a sanctions list: penalties or restrictions imposed by authorities for violating laws or international norms.
SPDR161
Matched against a warnings and regulatory enforcement list: alerts to rule violations, or penalties for non-compliance.
SPDR162
Matched against a fitness and probity list: concerns over the subject's competence, integrity, or ethical conduct in financial services.
SPDR163
Matched as a Politically Exposed Person (PEP): holds or held a prominent public position that carries elevated risk.
SPDR164
Matched in adverse media: negative or damaging coverage indicating potential risk.
SPDR313
Matched as a Special Interest Person (SIP): an individual flagged for suspected or confirmed criminal involvement.
SPDR314
Matched as a Special Interest Entity (SIE): an organization flagged for suspected or confirmed criminal involvement.
SPDR315
Matched against an insolvency list: unable to pay debts owed, or declared bankrupt by a judicial process.
Incomplete Verification
SPDR241
The verification process was canceled by the user.
## AML for Businesses Status Codes
Status Code
Description
Elevated AML Risk
SPDR129
Matched against a warnings and regulatory enforcement list: alerts to rule violations, or penalties for non-compliance.
SPDR182
Matched against a sanctions list: penalties or restrictions imposed by authorities for violating laws or international norms.
SPDR183
Matched against a warnings and regulatory enforcement list: alerts to rule violations, or penalties for non-compliance.
SPDR184
Matched against a fitness and probity list: concerns over the business's competence, integrity, or ethical conduct in financial services.
SPDR185
AML screening failed. Business found in PEP lists.
SPDR186
Matched in adverse media: negative or damaging coverage indicating potential risk.
SPDR316
Matched as a Special Interest Business: a business flagged for suspected or confirmed criminal involvement.
SPDR317
Matched as a Special Interest Entity (SIE): an entity flagged for suspected or confirmed criminal involvement.
SPDR318
Matched against an insolvency list: unable to pay debts owed, or declared bankrupt by a judicial process.
Incomplete Verification
SPDR241
The verification process was canceled by the user.
## User Risk Status Codes
Status Code
Description
SPDR307
User appeared on the blacklist.
SPDR352
Verification declined because the customer is blocklisted.
SPDR353
Verification declined because the customer is inactive.
## Phone Number Status Code
If the user is unable to receive code then, user is provide with Code not received option if user clicks the “Code not received” option the verification will be declined automatically (because either the phone number was wrong or unreachable).
**Caution**
Verification is declined if a user enters the wrong code consecutively for five times.
Status Code
Description
SPDR35
Your phone number did not match the record, please provide a valid phone number.
SPDR84
Phone number not verified because end-user entered the wrong code multiple times.
SPDR85
Phone number not verified because the provided number was unreachable.
SPDR241
The verification process was canceled by the user.
SPDR298
The phone number could not be validated.
## Email verification Status Code
**Caution**
Please note that verification will be declined if a user enters the wrong code five times in a row.
Status Code
Description
SPDR241
The verification process was canceled by the user.
SPDR293
Email not verified because end-user entered the wrong code multiple times.
SPDR294
Provided email is not authentic.
SPDR295
Email address not verified because the provided email was unreachable.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/user_identification_authentication/video_kyc/how_it_works.md
**VideoIdent** verifies the identity of the end user through real-time video call interviews with a KYC expert, removing any language and communication barrier and giving real-time instruction to the user to ensure a successful verification. You have complete flexibility to choose between utilizing our seasoned KYC experts, who boast a decade of global experience, or employing your own experts for the VideoIdent process.
The VideoIdent process works in the following way:
1. Merchants can leverage either their own KYC experts or Shufti's KYC agents for end-user verification.
2. Users start the VideoIdent verification process through a straightforward interface, triggering the verification workflow.
3. KYC agents join video calls to clearly outline and guide users through each verification step.
4. KYC experts confirm the user's live presence and secure consent, ensuring both authenticity and compliance.
5. Depending on the verification service requested, KYC agents help users provide the necessary data smoothly and efficiently.
6. Collected data is meticulously verified using Shufti's advanced services, guaranteeing integrity and security.
### Services
VideoIdent enables users to complete verifications with live agent guidance, covering a wide range of services including
1. **[Face Service](/docs/user_identification_authentication/video_kyc/request_parameters#face-service)**
2. **[Document Service](/docs/user_identification_authentication/video_kyc/request_parameters#document-service)**
3. **[Address Service](/docs/user_identification_authentication/video_kyc/request_parameters#address-service)**
4. **[Background Checks Service](/docs/user_identification_authentication/video_kyc/request_parameters#background-checks-service)**
5. **[Consent Service](/docs/user_identification_authentication/video_kyc/request_parameters#consent-service)**
6. **[Phone Multi-Factor Authentication](/docs/user_identification_authentication/video_kyc/request_parameters#phone-service)**
**Info**
We can also check the authenticity of customised documents like official IDs and perform background checks for AML compliance. A mix of various service modules can also be acquired to perform multifaceted verifications like facial and document verification can help you perform a thorough KYC procedure.
---
# Request Parameters
Source: https://developers.shuftipro.com/docs/user_identification_authentication/video_kyc/request_parameters.md
**Info**
Shufti uses the following BASE URL for **VideoIdent**: `https://api.shuftipro.com/service/real_time/verification`
The parameters mentioned below are applicable for Onsite which is either with OCR or without OCR.
Parameters | Description
-------------- | --------------
reference | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 characters** Each request is issued a unique reference ID which is sent back to Shufti’s client with each response. This reference ID helps to verify the request. The client can use this ID to check the status of already performed verifications.
country | Required: **No** Type: **string** Length: **2 characters** You may omit this parameter if you don't want to enforce country verification. If a valid country code is provided, then the proofs for document verification or address verification must be from the same country. Country code must be a valid ISO 3166-1 alpha-2 country code. Please consult [Supported Countries](/docs/coverage/countries) for country codes.
language | Required: **No** Type: **string** Length: **2 characters** If the Shufti client wants their preferred language to appear on the verification screens they may provide the 2-character long language code of their preferred language. The list of [Supported Languages](/docs/coverage/languages) can be consulted for the language codes. If this key is missing in the request the system will select the default language as English.
email | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **128 characters** This field represents email of the end-user.
callback_url | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 characters** A number of server-to-server calls are made to Shufti’s client to keep them updated about the verification status. This allows the clients to keep the request updated on their end, even if the end-user is lost midway through the process. **Note:** The callback domains must be registered within the Backoffice to avoid encountering a validation error. For registering callback domain, click here. **e.g:** example.com, test.example.com
redirect_url | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 characters** Once an on-site verification is complete, User is redirected to this link after showing the results. **Note:** The redirect domains must be registered within the Backoffice to avoid encountering a validation error. For registering redirect domain, click here. **e.g:** example.com, test.example.com
show_feedback_form | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter will work only for onsite verification. If its value is 1 at the end of verification, a feedback form is displayed to the end-user to collect his/her feedback. If it is 0 then it will not display the feedback page to the end-user.
manual_review | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** This key can be used if the client wants to review verifications after processing from Shufti has completed. Once the user submits any/all required documents, Shufti returns a status of review.pending. The client can then review the verification details and Accept OR Decline the verifications from the back-office.
face | Required: **No** Type: **object** This service key corresponds to Face Verification Service in which unique facial features of end-user are identified and verified in real-time. **Example 1:** {} For more details [Face Service.](/docs/user_identification_authentication/video_kyc/request_parameters#face-service)
document | Required: **No** Type: **object** This service key corresponds to Document verification service in which the authenticity of identity documents submitted by end-users is checked. Once verified, these identity documents serve as proof of end-user’s identity. **Example 1:** { "document_number": "", "issue_date": "", "expiry_date": "", "dob": "", "name": "", "supported_types": ["id_card", "credit_or_debit_card", "passport"]} For more details [Document Service.](/docs/user_identification_authentication/video_kyc/request_parameters#document-service)
address | Required: **No** Type: **object** This service key corresponds to Address Verification service in which the authenticity of an end-user's provided address is checked with the help of an authentic Identity document, Utility bill or bank statement **Example 1:** {"supported_types" : ["id_card","bank_statement"],"name": "","full_address": "" } For more details [Address Service.](/docs/user_identification_authentication/video_kyc/request_parameters#address-service)
consent | Required: **No** Type: **object** This service key corresponds to Consent Verification services in which the consent provided by end-user for a certain action is cross-checked with the help of a handwritten document or customised printed document **Example 1:** {"supported_types" : ["printed"],"text" : ""} For more details [Consent Service.](/docs/user_identification_authentication/video_kyc/request_parameters#consent-service)
phone | Required: **No** Type: **object** This service key corresponds to Phone Verification service of Shufti. A customised code is sent to end-user on their phone number, that is sent back by end-user to verify their identity. **Example 1:** {"phone_number" : "","random_code" : "","text" : ""} For more details [Phone Service.](/docs/user_identification_authentication/video_kyc/request_parameters#phone-service)
background_checks | Required: **No** Type: **object** This service key corresponds to AML Screening service offered by Shufti. An AML background check is performed for every end-user in this service against a financial risk database compiled by Shufti **Example 1:** {"name" : "", "dob" : "" } For more details [Background Check Service.](/docs/user_identification_authentication/video_kyc/request_parameters#background-checks-service)
## Face Service
The face verification of end-users is the simplest to perform. Shufti authenticates the liveness of the face image of the user.
```json title=face-service-sample-object
{
"face" : {}
}
```
## Document Service
Shufti provides document verification through various types of documents. The supported formats are passports, ID Cards, driving licenses and debit/credit cards. You can opt for more than one document type as well. In that case, Shufti will give an option to end-users to verify their data from any of the given document types.
Parameters | Description
-------------- | --------------
supported_types | Required: **No** Type: **Array** You can provide any one, two or more types of documents to verify the identity of user. For example, if you opt for both passport and driving license, then your user will be given an opportunity to verify data from either of these two documents. **Example 1:** ["driving_license"] **Example 2:** ["id_card", "credit_or_debit_card", "passport"]
dob | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example: 1990-12-31
age | Required: **No** Type: **integer/array** Allowed values are integers or array. The Age parameter allows the client to set a minimum and maximum limit for acceptance of a user. The minimum age is defined as **min** and the maximum is defined as **max** within this object. Example: **18**
document_number | Required: **No** Type: **string** Maximum: **100 characters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores and commas. Example: 35201-0000000-0, ABC1234XYZ098
issue_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example: 2015-12-31
expiry_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example: 2025-12-31
gender | Required: **No** Type: **string** Accepted Values: **M,F,O,m,f,o** Provide the gender which is given in the document. **F:** Female **M:** Male **O:** Others Example: M
fetch_enhanced_data | Required: **No** Type: **string** Value Accepted: **1** Provide 1 for enabling enhanced data extraction for the document. Shufti provides its customers with the facility of extracting enhanced data features using OCR technology. Now, instead of extracting just personal information input fields, Shufti can fetch all the additional information comprising more than 100 data points from the official ID documents supporting 150 languages. For example height, place_of_birth, nationality, marital_status, weight, etc.(additional charges apply) Extracted data will be returned in object under the key **additional_data** in case of verification.accepted or verification.declined.
name | Required: **No** Type: **object** In name object used in document service, first_name is required if you don't want to perform OCR of the name parameter. Other fields are optional. **Example 1:** { "first_name" : "John", "last_name" : "Doe" } **Example 2:** { "first_name" : "John", "last_name" : "Doe", "fuzzy_match" : "1"}
verification_instructions | Required: **No** Type: **Object** This key allows clients to provide additional instruction for the service (document, document_two and address service). Such as if the client wants to allow paper-based, photocopied, laminated, screenshot, cropped or scanned documents for verification. **Example:** {"allow_paper_based" : "1"}
show_ocr_form | Required: **No** Type: **boolean** Accepted Values: **0, 1** default value: **1** The default value for this is **1**. If this is set to **0**, the user will not be shown the OCR form to validate the extracted information. This can be used within the **Document**, **Document Two**, and **Address service**. This value can also be applied to all services collectively. However, preference will be given to the value set within the service. **Note:** Setting the value at 0 may cause data inaccuracy as the user does not have option to validate the extracted information.
```json title=document-service-sample-object
{
"document" : {
"supported_types" : ["id_card","driving_license","passport"],
"name" : {
"first_name" : "Johon",
"last_name" : "Livone"
},
"dob" : "1990-10-10",
"age" : 18,
"issue_date" : "2015-10-10",
"expiry_date" : "2025-10-10",
"document_number" : "1234-1234-ABC",
"fetch_enhanced_data" : "1",
"gender" : "M",
"show_ocr_form" : "1"
}
}
```
## Document Two Service
Document Two Service is provided to verify the personal details of a user from more than one document e.g. If you have verified the DOB & Name of a user from their ID Card, you can use Document Two Service to verify the Credit Card Number of your customer.
Just like the "Document Service", the supported formats for this service are also passports, ID Cards, driving licenses and debit/credit cards and more than one document type can be selected as well. In that case, Shufti will give an option to end-users to verify their data from any of the given document types.
Parameters | Description
-------------- | --------------
supported_types | Required: **No** Type: **Array** You can provide any one, two or more types of documents to verify the identity of user. For example, if you opt for both passport and driving license, then your user will be given an opportunity to verify data from either of these two documents. **Example 1:** ["driving_license"] **Example 2:** ["id_card", "credit_or_debit_card", "passport"]
dob | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example: 1990-12-31
age | Required: **No** Type: **integer/array** Allowed values are integers or array. The Age parameter allows the client to set a minimum and maximum limit for acceptance of a user. The minimum age is defined as **min** and the maximum is defined as **max** within this object. Example: **18**
document_number | Required: **No** Type: **string** Maximum: **100 characters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores and commas. Example: 35201-0000000-0, ABC1234XYZ098
issue_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example: 2015-12-31
expiry_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example: 2025-12-31
gender | Required: **No** Type: **string** Accepted Values: **M,F,O,m,f,o** Provide the gender which is given in the document. **F:** Female **M:** Male **O:** Others Example: M
fetch_enhanced_data | Required: **No** Type: **string** Value Accepted: **1** Provide 1 for enabling enhanced data extraction for the document. Shufti provides its customers with the facility of extracting enhanced data features using OCR technology. Now, instead of extracting just personal information input fields, Shufti can fetch all the additional information comprising more than 100 data points from the official ID documents supporting 150 languages. For example height, place_of_birth, nationality, marital_status, weight, etc.(additional charges apply) Extracted data will be returned in object under the key **additional_data** in case of verification.accepted or verification.declined.
name | Required: **No** Type: **object** In name object used in document service, first_name is required if you don't want to perform OCR of the name parameter. Other fields are optional. **Example 1:** { "first_name" : "John", "last_name" : "Doe" } **Example 2:** { "first_name" : "John", "last_name" : "Doe", "fuzzy_match" : "1"}
verification_instructions | Required: **No** Type: **Object** This key allows clients to provide additional instruction for the service (document, document_two and address service). Such as if the client wants to allow paper-based, photocopied, laminated, screenshot, cropped or scanned documents for verification. **Example:** {"allow_paper_based" : "1"}
show_ocr_form | Required: **No** Type: **boolean** Accepted Values: **0, 1** default value: **1** The default value for this is **1**. If this is set to **0**, the user will not be shown the OCR form to validate the extracted information. This can be used within the **Document**, **Document Two**, and **Address service**. This value can also be applied to all services collectively. However, preference will be given to the value set within the service. **Note:** Setting the value at 0 may cause data inaccuracy as the user does not have option to validate the extracted information.
```json title=document_two-service-sample-object
{
"document_two" : {
"supported_types" : ["id_card","driving_license","passport"],
"name" : {
"first_name" : "Johon",
"last_name" : "Livone"
},
"dob" : "1990-10-10",
"age" : 18,
"issue_date" : "2015-10-10",
"expiry_date" : "2025-10-10",
"document_number" : "1234-1234-ABC",
"fetch_enhanced_data" : "1",
"gender" : "M",
"show_ocr_form" : "1"
}
}
```
## Address Service
For address verification, a valid identity document is required with the same address printed on it as the one claimed by the end-user. The address can also be verified with the help of Utility Bills and Bank Statements.
Parameters | Description
-------------- | --------------
supported_types | Required: **No** Type: **Array** Provide any one, two or more document types in proof parameter in Address verification service. For example, if you choose id_card and utility_bill, then the user will be able to verify data using either of these two documents. **Please provide only one document type if you are providing proof of that document with the request**. **Example 1:** [ "utility_bill" ] **Example 2:** [ "id_card", "bank_statement" ]
full_address | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **250 characters** Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores, hashes and commas.
address_fuzzy_match | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **0** Provide 1 for enabling a fuzzy match for address verification. Enabling fuzzy matching attempts to find a match which is not 100% accurate. Default value will be 0, which means that only 100% accurate address will be verified.
issue_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. Example: 2015-12-31
name | Required: **No** Type: **object** In name object used in document service, first_name is required if you don't want to perform OCR of the name parameter. Other fields are optional. **Example 1:** { "first_name" : "John", "last_name" : "Doe" } **Example 2:** { "first_name" : "John", "last_name" : "Doe", "fuzzy_match" : "1"}
verification_instructions | Required: **No** Type: **Object** This key allows clients to provide additional instruction for the service (document, document_two and address service). Such as if the client wants to allow paper-based, photocopied, laminated, screenshot, cropped or scanned documents for verification. **Example:** {"allow_paper_based" : "1"}
show_ocr_form | Required: **No** Type: **boolean** Accepted Values: **0, 1** default value: **1** The default value for this is **1**. If this is set to **0**, the user will not be shown the OCR form to validate the extracted information. This can be used within the **Document**, **Document Two**, and **Address service**. This value can also be applied to all services collectively. However, preference will be given to the value set within the service. **Note:** Setting the value at 0 may cause data inaccuracy as the user does not have option to validate the extracted information.
```json title=address-service-sample-object
{
"address" : {
"supported_types" : ["id_card","bank_statement"],
"name" : {
"first_name" : "Johon",
"last_name" : "Livone"
},
"issue_date" : "2015-10-10",
"full_address" : "Candyland Avenue",
"address_fuzzy_match" : "1",
"show_ocr_form" : "1"
}
}
```
## Consent Service
Customised documents/notes can also be verified by Shufti. Company documents, employee cards or any other personalised note can be authenticated by this module. You can choose handwritten or printed document format but only one form of document can be verified in this verification module. Text whose presence on the note/customized document is to be verified, is also needed to be provided.
Parameters | Description
-------------- | --------------
supported_types | Required: **No** Type: **Array** Text provided in the consent verification can be verified by handwritten documents or printed documents. **Example 1:** ["printed"] **Example 2:** ["printed", "handwritten"]
text | Required: **Yes** Type: **string** Minimum: **2 characters** Maximum: **100 characters** Provide text in the string format which will be verified from a given proof.
with_face | Required: **No** Type: **string** Accepted Values: **0, 1** Default Value: **1** This parameter is applicable if supported_type is handwritten and default value is 1. If value of with_face is 1 then hand written note will be accepted only with face which means your customer must need to show his/her face along with the consent on a paper. If value of with_face is 0 then hand written note is accepted with or without face.
```json title=consent-service-sample-object
{
"consent" : {
"supported_types" : ["printed"],
"text" : "My name is John Doe and I authorise this transaction of $100/- Date: July 15, 2020"
}
}
```
## Phone Service
Verify the phone number of end-users by sending a random code to their number from Shufti. Once the sent code is entered into the provided field by end-user, phone number will stand verified. It is primarily an on-site verification and you have to provide phone number of the end-user to us, in addition to the verification code and the message that is to be forwarded to the end-user. Shufti will be responsible only to send the message along with verification code to the end-user and verify the code entered by the end-user.
Verification is declined if a user enters the wrong code consecutively for five times.
If the user is unable to receive code then, user is provide with Code not received option if user clicks the “Code not received” option the verification will be declined automatically (because either the phone number was wrong or unreachable).
Parameters | Description
-------------- | --------------
phone_number | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **64 characters** Allowed Characters: numbers and plus sign at the beginning. Provide a valid customer’s phone number with country code. Shufti will directly ask the end-user for phone number if this field is missing or empty.
random_code | Required: **No** Type: **string** Minimum: **2 characters** Maximum: **10 characters** Provide a random code. If this field is missing or empty. Shufti will generate a random code.
text | Required: **No** Type: **string** Minimum: **2 characters** Maximum: **100 characters** Provide a short description and random code in this field. This message will be sent to customers. ***This field should contain random_code***. If random_code field is empty then Shufti will generate a random code and append the code with this message at the end.
```json title=phone-service-sample-object
{
"phone" : {
"phone_number" : "+44127873938323",
"random_code" : "55667",
"text" : "Your verification code is 55667"
}
}
```
## Background Checks Service
It is a verification process that will require you to send us the full Name of end-user in addition to date of birth. Shufti will perform AML based background checks based on this information. Please note that the name and dob keys will be extracted from document service if these keys are empty.
Parameters | Description
-------------- | --------------
dob | Required: **No** Type: **string** Format: **yyyy-mm-dd** Provide a valid date. **Example:** 1990-12-31 **Note:** It is recommended to send dob for more accurate results.
name | Required: **No** Type: **object** In name object used in background checks service, first_name required and other fields are optional. **Example 1:** { "first_name" : "John", "last_name" : "Doe" } **Example 2:** { "first_name" : "John", "middle_name" : "Carter", "last_name" : "Doe"} **Example 3:** { "full_name" : "John Carter Doe"} **Note:** If full name is provided with first and last name priority will be given to full name.
ongoing | Required: **No** Accepted values: **0, 1** Default: **0** This Parameter is used for Ongoing AML Screening, and is allowed only on Production Accounts. If Shufti detects a change in AML statuses, then we will send you a webhook with event verification.status.changed. The new AML status can be checked using get status endpoint, or from the back-office. Use fuzzy_match = 1 in the name object for better results for Ongoing AML Screening.
filters | Required: **No** Type: **Array** Default: **["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4"]** This key includes specific filter types, namely, alert or warning, that are linked to the AML search. Use these filters within the search to refine and narrow down the results.
```json title=background_checks-service-sample-object
{
"background_checks" : {
"name" : {
"first_name" : "John",
"middle_name" : "Carter",
"last_name" : "Doe"
},
"dob" : "1995-10-10",
"filters" : ["sanction", "fitness-probity", "warning", "pep"]
}
}
```
```json title=background_checks-service-sample-object
{
"background_checks" : {
"name" : {
"full_name" : "John Carter Doe"
},
"dob" : "1995-10-10",
"filters" : ["sanction", "fitness-probity", "warning", "pep"]
}
}
```
```json title=background_checks-service-sample-object
{
"background_checks" : {
"name" : {
"first_name" : "John",
"middle_name" : "Carter",
"last_name" : "Doe"
},
"filters" : ["sanction", "fitness-probity", "warning", "pep"]
}
}
```
---
# VideoIdent with OCR
Source: https://developers.shuftipro.com/docs/user_identification_authentication/video_kyc/video_kyc_with_ocr.md
In a verification request with OCR, Shufti's client defines the parameters to be verified. Shufti then extracts the necessary information from the document, automatically populating the verification form with the extracted data. This streamlines the process, minimizing manual effort for the end user. Subsequently, Shufti's advanced AI algorithms rigorously verify the provided documents for authenticity.
[](https://god.gw.postman.com/run-collection/40815549-2032f728-87d2-4cca-ac24-fbcf944d36cb?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D40815549-2032f728-87d2-4cca-ac24-fbcf944d36cb%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**http**
```json
//POST /service/real_time/verification HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url": "http://www.example.com",
"allow_warnings": "1",
"document" : {
"supported_types" : ["id_card","driving_license","passport"],
"name" : "",
"dob" : "",
"age" : "",
"issue_date" : "",
"expiry_date" : "",
"document_number" : "",
"gender" : ""
},
"address" : {
"supported_types" : ["id_card","bank_statement"],
"name" : "",
"issue_date" : "",
"full_address" : "",
"address_fuzzy_match":"1"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
redirect_url : "https://yourdomain.com/site/sp-redirect",
country : "GB",
language : "EN",
allow_warnings : "1",
}
//Use this key if you want to perform document verification with OCR
payload['document'] = {
name : '',
dob : '',
age : '',
document_number : '',
expiry_date : '',
issue_date : '',
supported_types : ['id_card','passport'],
gender : ''
}
//Use this key if you want to perform address verification with OCR
payload['address'] = {
name : '',
full_address : '',
address_fuzzy_match : '1',
issue_date : '',
supported_types : ['utility_bill','passport','bank_statement']
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/service/real_time/verification',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'request.pending') {
createIframe(data.verification_url)
}
});
//Method used to create an Iframe
function createIframe(src) {
let iframe = document.createElement('iframe');
iframe.style.position = 'fixed';
iframe.id = 'shuftipro-iframe';
iframe.name = 'shuftipro-iframe';
iframe.allow = "camera";
iframe.src = src;
iframe.style.top = 0;
iframe.style.left = 0;
iframe.style.bottom = 0;
iframe.style.right = 0;
iframe.style.margin = 0;
iframe.style.padding = 0;
iframe.style.overflow = 'hidden';
iframe.style.border = "none";
iframe.style.zIndex = "2147483647";
iframe.width = "100%";
iframe.height = "100%";
iframe.dataset.removable = true;
document.body.appendChild(iframe);
}
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
'allow_warnings' => '1',
];
//Use this key if you want to perform document verification with OCR
$verification_request['document'] =[
'name' => '',
'dob' => '',
'age' => '',
'document_number' => '',
'expiry_date' => '',
'issue_date' => '',
'supported_types' => ['id_card','passport'],
'gender' => ''
];
//Use this key if you want to perform address verification with OCR
$verification_request['address'] = [
'name' => '',
'full_address' => '',
'address_fuzzy_match' => '1',
'issue_date' => '',
'supported_types' => ['utility_bill','passport','bank_statement']
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if($event_name == 'request.pending'){
if($sp_signature == $calculate_signature){
$verification_url = $decoded_response['verification_url'];
echo "Verification url :" . $verification_url;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/service/real_time/verification'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'allow_warnings' : '1',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key if you want to perform document verification with OCR
verification_request['document'] = {
'name' : '',
'dob' : '',
'age' : '',
'document_number' : '',
'expiry_date' : '',
'issue_date' : '',
'supported_types' : ['id_card','passport'],
'gender' : ''
}
# Use this key want to perform address verification with OCR
verification_request['address'] = {
'name' : '',
'full_address' : '',
'address_fuzzy_match' : '1',
'issue_date' : '',
'supported_types' : ['utility_bill','passport','bank_statement']
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'request.pending':
if sp_signature == calculated_signature:
verification_url = json_response['verification_url']
print ('Verification URL: {}'.format(verification_url))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/service/real_time/verification")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN",
allow_warnings: "1",
redirect_url: "http://www.example.com"
}
# Use this key if you want to perform document verification with OCR
verification_request["document"] = {
supported_types: ["id_card","driving_license","passport"],
name: "",
dob: "",
age: "",
issue_date: "",
expiry_date: "",
document_number: "",
gender: ''
}
# Use this key if you want to perform address verification with OCR
verification_request["address"] = {
supported_types: ["id_card","bank_statement"],
name: "",
issue_date: "",
full_address: "",
address_fuzzy_match: "1"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/service/real_time/verification";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"reference\" : \"1234567\",\n \"callback_url\" : \"http://www.example.com/\",\n \"email\" : \"johndoe@example.com\",\n \"country\" : \"GB\",\n \"language\" : \"EN\",\n \"allow_warnings\" : \"1\",\n \"redirect_url\": \"http://www.example.com\",\n \"document\" : {\n \"supported_types\" : [\"id_card\",\"driving_license\",\"passport\"],\n \"name\" : \"\",\n \"dob\" : \"\",\n \"age\" : \"\",\n \"issue_date\" : \"\", \n \"expiry_date\" : \"\",\n \"document_number\" : \"\",\n \"gender\" : \"\"\n },\n \"address\" : {\n \"supported_types\" : [\"id_card\",\"bank_statement\"],\n \"name\" : \"\",\n \"issue_date\" : \"\",\n \"full_address\" : \"\",\n \"address_fuzzy_match\":\"1\"\n }\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/service/real_time/verification' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"allow_warnings": "1",
"redirect_url": "http://www.example.com",
"document": {
"supported_types": [
"id_card",
"driving_license",
"passport"
],
"name": "",
"dob": "",
"age": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"gender": ""
},
"address": {
"supported_types": [
"id_card",
"bank_statement"
],
"name": "",
"issue_date": "",
"full_address": "",
"address_fuzzy_match": "1"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/service/real_time/verification");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"": ""1234567""," + "\n" +
@" ""callback_url"": ""http://www.example.com/""," + "\n" +
@" ""email"": ""johndoe@example.com""," + "\n" +
@" ""country"": ""GB""," + "\n" +
@" ""allow_warnings"": ""1""," + "\n" +
@" ""language"": ""EN""," + "\n" +
@" ""redirect_url"": ""http://www.example.com""," + "\n" +
@" ""document"": {" + "\n" +
@" ""supported_types"": [" + "\n" +
@" ""id_card""," + "\n" +
@" ""driving_license""," + "\n" +
@" ""passport""" + "\n" +
@" ]," + "\n" +
@" ""name"": """"," + "\n" +
@" ""dob"": """"," + "\n" +
@" ""age"": """"," + "\n" +
@" ""issue_date"": """"," + "\n" +
@" ""expiry_date"": """"," + "\n" +
@" ""document_number"": """"," + "\n" +
@" ""gender"": """"" + "\n" +
@" }," + "\n" +
@" ""address"": {" + "\n" +
@" ""supported_types"": [" + "\n" +
@" ""id_card""," + "\n" +
@" ""bank_statement""" + "\n" +
@" ]," + "\n" +
@" ""name"": """"," + "\n" +
@" ""issue_date"": """"," + "\n" +
@" ""full_address"": """"," + "\n" +
@" ""address_fuzzy_match"": ""1""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/service/real_time/verification"
method := "POST"
payload := strings.NewReader(`{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"allow_warnings": "1",
"redirect_url": "http://www.example.com",
"document": {
"supported_types": [
"id_card",
"driving_license",
"passport"
],
"name": "",
"dob": "",
"age": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"gender": ""
},
"address": {
"supported_types": [
"id_card",
"bank_statement"
],
"name": "",
"issue_date": "",
"full_address": "",
"address_fuzzy_match": "1"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
---
# VideoIdent without OCR
Source: https://developers.shuftipro.com/docs/user_identification_authentication/video_kyc/video_kyc_without_ocr.md
In verification requests without OCR, Shufti's clients define the parameters to be verified. Shufti utilizes a unique template matching technique to match these values with the data on identity documents. Subsequently, Shufti's advanced algorithms rigorously verify the provided documents for authenticity.
[](https://god.gw.postman.com/run-collection/40815549-9f5188a3-9330-4db2-bd26-9d7cd9006d70?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D40815549-9f5188a3-9330-4db2-bd26-9d7cd9006d70%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**http**
```json
//POST /service/real_time/verification HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference" : "5667456341",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"face": "",
"allow_warnings" : "1",
"document" : {
"supported_types" : ["id_card","driving_license","passport"],
"name" : {
"first_name" : "John",
"middle_name" : "Middleman",
"last_name" : "Doe"
},
"dob" : "1980-11-12",
"age" : 18,
"issue_date" : "1990-09-07",
"expiry_date" : "2050-10-10",
"document_number" : "0989-7752-6291-2387",
"gender" : "M"
},
"address" : {
"supported_types" : ["id_card","bank_statement"],
"name" : {
"first_name" : "John",
"middle_name" : "Middleman",
"last_name" : "Doe"
},
"full_address" : "3339 Maryland Avenue, Largo, Florida",
"address_fuzzy_match":"1",
"issue_date" : "1990-09-07"
},
"consent":{
"supported_types" : ["handwritten","printed"],
"text" : "My name is John Doe and I authorise this transaction of $100/- Date: July 15, 2020"
},
"phone": {
"phone_number" : "+4400000000",
"random_code" : "23234",
"text" : "Your verification code is 23234"
},
"background_checks": {
"name" : {
"first_name" : "John",
"middle_name" : "Middleman",
"last_name" : "Doe"
},
"dob" : "1980-11-12"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
redirect_url : "https://yourdomain.com/site/sp-redirect",
country : "GB",
language : "EN"
allow_warnings : "1"
}
//Use this key if you want to perform face verification
payload['face'] = {};
//Use this key if you want to perform document verification
payload['document'] = {
name : {
first_name : 'Your first name',
middle_name : 'Your middle name',
last_name : 'You last name',
fuzzy_match : '1'
},
dob : '1992-10-10',
age : 18,
document_number : '2323-5629-5465-9990',
expiry_date : '2025-10-10',
issue_date : '2015-10-10',
supported_types : ['id_card','passport'],
gender : 'M'
}
//Use this key if you want to perform address verification
payload['address'] = {
name : {
first_name : 'Your first name',
middle_name : 'Your middle name',
last_name : 'You last name',
fuzzy_match : '1'
},
full_address : 'your address',
address_fuzzy_match : '1',
issue_date : '2015-10-10',
supported_types : ['utility_bill','passport','bank_statement']
}
//Use this key if you want to perform background checks verification
payload['background_checks'] = {
name : {
first_name : 'Your first name',
middle_name : 'Your middle name',
last_name : 'You last name',
},
dob : '1994-01-01',
}
//Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/service/real_time/verification',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'request.pending') {
createIframe(data.verification_url)
}
});
//Method used to create an Iframe
function createIframe(src) {
let iframe = document.createElement('iframe');
iframe.style.position = 'fixed';
iframe.id = 'shuftipro-iframe';
iframe.name = 'shuftipro-iframe';
iframe.allow = "camera";
iframe.src = src;
iframe.style.top = 0;
iframe.style.left = 0;
iframe.style.bottom = 0;
iframe.style.right = 0;
iframe.style.margin = 0;
iframe.style.padding = 0;
iframe.style.overflow = 'hidden';
iframe.style.border = "none";
iframe.style.zIndex = "2147483647";
iframe.width = "100%";
iframe.height = "100%";
iframe.dataset.removable = true;
document.body.appendChild(iframe);
}
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'allow_warnings' => '1',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key if you want to perform face verification
$verification_request['face'] = "";
//Use this key if you want to perform document verification
$verification_request['document'] =[
'name' => [
'first_name' => 'Your first name',
'middle_name' => 'Your middle name',
'last_name' => 'You last name',
'fuzzy_match' => '1'
],
'dob' => '1992-10-10',
'age' => 18,
'document_number' => '2323-5629-5465-9990',
'expiry_date' => '2025-10-10',
'issue_date' => '2015-10-10',
'supported_types' => ['id_card','passport'],
'gender' => 'M'
];
//Use this key if you want to perform address verification
$verification_request['address'] = [
'name' => [
'first_name' => 'Your first name',
'middle_name' => 'Your middle name',
'last_name' => 'You last name',
'fuzzy_match' => '1'
],
'full_address' => 'your address',
'address_fuzzy_match' => '1',
'issue_date' => '2015-10-10',
'supported_types' => ['utility_bill','passport','bank_statement']
];
//Use this key if you want to perform consent verification
$verification_request['consent'] =[
'text' => 'some text for consent verification',
'supported_types' => ['handwritten']
];
//Use this key if you want to perform phone verification
$verification_request['phone'] =[
'phone_number' => '+1378746734',
'random_code' => '9977',
'text' => 'Your verification code is 9977'
];
//Use this key if you want to perform aml/background checks verification
$verification_request['background_checks'] = [
'name' => [
'first_name' => 'Your first name',
'middle_name' => 'Your middle name',
'last_name' => 'You last name'
],
'dob' => '1992-10-10',
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization : Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if($event_name == 'request.pending'){
if($sp_signature == $calculate_signature){
$verification_url = $decoded_response['verification_url'];
echo "Verification url :" . $verification_url;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/service/real_time/verification'
callback_url = 'https://yourdomain.com/profile/notifyCallback'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'allow_warnings' : '1',
'email' : 'test@test.com',
'callback_url' : callback_url
}
# Use this key if want to perform face verification
verification_request['face'] = {}
# Use this key if want to perform document verification
verification_request['document'] = {
'name' : {
'first_name' : 'Your first name',
'middle_name' : 'Your middle name',
'last_name' : 'Your last name',
'fuzzy_match' : '1'
},
'dob' : '1992-10-10',
'age' : 18,
'document_number' : '2323-5629-5465-9990',
'expiry_date' : '2025-10-10',
'issue_date' : '2015-10-10',
'supported_types' : ['id_card','passport'],
'gender' : 'M'
}
# Use this key if want to perform address verification
verification_request['address'] = {
'name' : {
'first_name' : 'Your first name',
'middle_name' : 'Your middle name',
'last_name' : 'Your last name',
'fuzzy_match' : '1'
},
'full_address' : 'your address',
'address_fuzzy_match' : '1',
'issue_date' : '2015-10-10',
'supported_types' : ['utility_bill','passport','bank_statement']
}
# Use this key if want to perform consent verification
verification_request['consent'] = {
'text' : 'some text for consent verification',
'supported_type': ['handwritten']
}
# Use this key if want to perform phone verification
verification_request['phone'] = {
'phone_number' : '+1378746734',
'random_code' : '9977',
'text' : 'Your verification code is 9977'
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'request.pending':
if sp_signature == calculated_signature:
verification_url = json_response['verification_url']
print ('Verification URL: {}'.format(verification_url))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/service/real_time/verification")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN",
allow_warnings: "1",
redirect_url: "http://www.example.com"
}
# Use this key if you want to perform document verification with OCR
verification_request["document"] = {
supported_types: ["id_card","driving_license","passport"],
name: {
first_name: "Johon",
last_name: "Livone"
},
dob: "1990-10-10",
age: 18,
issue_date: "2015-10-10",
expiry_date: "2025-10-10",
document_number: "1234-1234-ABC",
gender: "M"
}
# Use this key if you want to perform address verification with OCR
verification_request["address"] = {
supported_types: ["id_card","bank_statement"],
name: {
first_name: "Johon",
last_name: "Livone"
},
issue_date: "2015-10-10",
full_address: "Candyland Avenue",
address_fuzzy_match: "1"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/service/real_time/verification";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"reference\": \"5667456341\",\n \"callback_url\": \"http://www.example.com/\",\n \"email\": \"johndoe@example.com\",\n \"country\": \"GB\",\n \"allow_warnings\": \"1\",\n \"language\": \"EN\",\n \"face\": \"\",\n \"document\": {\n \"supported_types\": [\n \"id_card\",\n \"driving_license\",\n \"passport\"\n ],\n \"name\": {\n \"first_name\": \"John\",\n \"middle_name\": \"Middleman\",\n \"last_name\": \"Doe\"\n },\n \"dob\": \"1980-11-12\",\n \"age\": 18,\n \"issue_date\": \"1990-09-07\",\n \"expiry_date\": \"2050-10-10\",\n \"document_number\": \"0989-7752-6291-2387\",\n \"gender\": \"M\"\n },\n \"address\": {\n \"supported_types\": [\n \"id_card\",\n \"bank_statement\"\n ],\n \"name\": {\n \"first_name\": \"John\",\n \"middle_name\": \"Middleman\",\n \"last_name\": \"Doe\"\n },\n \"full_address\": \"3339 Maryland Avenue, Largo, Florida\",\n \"address_fuzzy_match\": \"1\",\n \"issue_date\": \"1990-09-07\"\n },\n \"consent\": {\n \"supported_types\": [\n \"handwritten\",\n \"printed\"\n ],\n \"text\": \"My name is John Doe and I authorise this transaction of $100/- Date: July 15, 2020\"\n },\n \"phone\": {\n \"phone_number\": \"+4400000000\",\n \"random_code\": \"23234\",\n \"text\": \"Your verification code is 23234\"\n },\n \"background_checks\": {\n \"name\": {\n \"first_name\": \"John\",\n \"middle_name\": \"Middleman\",\n \"last_name\": \"Doe\"\n },\n \"dob\": \"1980-11-12\"\n }\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/service/real_time/verification' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference": "5667456341",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"allow_warnings": "1",
"face": "",
"document": {
"supported_types": [
"id_card",
"driving_license",
"passport"
],
"name": {
"first_name": "John",
"middle_name": "Middleman",
"last_name": "Doe"
},
"dob": "1980-11-12",
"age": 18,
"issue_date": "1990-09-07",
"expiry_date": "2050-10-10",
"document_number": "0989-7752-6291-2387",
"gender": "M"
},
"address": {
"supported_types": [
"id_card",
"bank_statement"
],
"name": {
"first_name": "John",
"middle_name": "Middleman",
"last_name": "Doe"
},
"full_address": "3339 Maryland Avenue, Largo, Florida",
"address_fuzzy_match": "1",
"issue_date": "1990-09-07"
},
"consent": {
"supported_types": [
"handwritten",
"printed"
],
"text": "My name is John Doe and I authorise this transaction of $100/- Date: July 15, 2020"
},
"phone": {
"phone_number": "+4400000000",
"random_code": "23234",
"text": "Your verification code is 23234"
},
"background_checks": {
"name": {
"first_name": "John",
"middle_name": "Middleman",
"last_name": "Doe"
},
"dob": "1980-11-12"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/service/real_time/verification");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"": ""5667456341""," + "\n" +
@" ""callback_url"": ""http://www.example.com/""," + "\n" +
@" ""email"": ""johndoe@example.com""," + "\n" +
@" ""country"": ""GB""," + "\n" +
@" ""language"": ""EN""," + "\n" +
@" ""allow_warnings"": ""1""," + "\n" +
@" ""face"": """"," + "\n" +
@" ""document"": {" + "\n" +
@" ""supported_types"": [" + "\n" +
@" ""id_card""," + "\n" +
@" ""driving_license""," + "\n" +
@" ""passport""" + "\n" +
@" ]," + "\n" +
@" ""name"": {" + "\n" +
@" ""first_name"": ""John""," + "\n" +
@" ""middle_name"": ""Middleman""," + "\n" +
@" ""last_name"": ""Doe""" + "\n" +
@" }," + "\n" +
@" ""dob"": ""1980-11-12""," + "\n" +
@" ""age"": 18," + "\n" +
@" ""issue_date"": ""1990-09-07""," + "\n" +
@" ""expiry_date"": ""2050-10-10""," + "\n" +
@" ""document_number"": ""0989-7752-6291-2387""," + "\n" +
@" ""gender"": ""M""" + "\n" +
@" }," + "\n" +
@" ""address"": {" + "\n" +
@" ""supported_types"": [" + "\n" +
@" ""id_card""," + "\n" +
@" ""bank_statement""" + "\n" +
@" ]," + "\n" +
@" ""name"": {" + "\n" +
@" ""first_name"": ""John""," + "\n" +
@" ""middle_name"": ""Middleman""," + "\n" +
@" ""last_name"": ""Doe""" + "\n" +
@" }," + "\n" +
@" ""full_address"": ""3339 Maryland Avenue, Largo, Florida""," + "\n" +
@" ""address_fuzzy_match"": ""1""," + "\n" +
@" ""issue_date"": ""1990-09-07""" + "\n" +
@" }," + "\n" +
@" ""consent"": {" + "\n" +
@" ""supported_types"": [" + "\n" +
@" ""handwritten""," + "\n" +
@" ""printed""" + "\n" +
@" ]," + "\n" +
@" ""text"": ""My name is John Doe and I authorise this transaction of $100/- Date: July 15, 2020""" + "\n" +
@" }," + "\n" +
@" ""phone"": {" + "\n" +
@" ""phone_number"": ""+4400000000""," + "\n" +
@" ""random_code"": ""23234""," + "\n" +
@" ""text"": ""Your verification code is 23234""" + "\n" +
@" }," + "\n" +
@" ""background_checks"": {" + "\n" +
@" ""name"": {" + "\n" +
@" ""first_name"": ""John""," + "\n" +
@" ""middle_name"": ""Middleman""," + "\n" +
@" ""last_name"": ""Doe""" + "\n" +
@" }," + "\n" +
@" ""dob"": ""1980-11-12""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/service/real_time/verification"
method := "POST"
payload := strings.NewReader(`{
"reference": "5667456341",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"allow_warnings": "1",
"face": "",
"document": {
"supported_types": [
"id_card",
"driving_license",
"passport"
],
"name": {
"first_name": "John",
"middle_name": "Middleman",
"last_name": "Doe"
},
"dob": "1980-11-12",
"age": 18,
"issue_date": "1990-09-07",
"expiry_date": "2050-10-10",
"document_number": "0989-7752-6291-2387",
"gender": "M"
},
"address": {
"supported_types": [
"id_card",
"bank_statement"
],
"name": {
"first_name": "John",
"middle_name": "Middleman",
"last_name": "Doe"
},
"full_address": "3339 Maryland Avenue, Largo, Florida",
"address_fuzzy_match": "1",
"issue_date": "1990-09-07"
},
"consent": {
"supported_types": [
"handwritten",
"printed"
],
"text": "My name is John Doe and I authorise this transaction of $100/- Date: July 15, 2020"
},
"phone": {
"phone_number": "+4400000000",
"random_code": "23234",
"text": "Your verification code is 23234"
},
"background_checks": {
"name": {
"first_name": "John",
"middle_name": "Middleman",
"last_name": "Doe"
},
"dob": "1980-11-12"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/user_identification_authentication/video_kyc/declined_reasons.md
When a VideoIdent verification request is declined, the end user or client is informed of the specific reasons for the decline related to the services used during VideoIdent.
## Face Status Codes
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.
SPDR38 | Face doesn't match the face image uploaded at the time of signup.
SPDR39 | Document doesn’t match the document uploaded at the time of signup.
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.
SPDR218 | Face proof is edited using filters.
SPDR233 | Face proof has a solid color in the background.
SPDR268 | The provided image is corrupted.
SPDR274 | End user did not submit complete verification proofs or data.
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.
SPDR284 | The complete verification data was not provided by the user.
## Document & Document Two Status Code
Status Code | Description
-------------- | --------------
SPDR02 | Image of the face not found on the document.
SPDR03 | Image is altered or photoshopped.
SPDR04 | Copy of the image found on web.
SPDR05 | Document and Document Two do 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 the document is not supported.
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.
SPDR17 | The document is expired.
SPDR18 | The uploaded image of the document is blur, please provide a clear photo of document.
SPDR19 | Face could not be detected in image, please upload image again with your face clearly visible.
SPDR21 | Proof and Additional Proof are of different documents.
SPDR36 | Both Documents do not belong to the same person.
SPDR39 | Document doesn’t match the document uploaded at the time of signup.
SPDR42 | Front and backside images of the document did not match.
SPDR43 | Camera is not accessible for verification.
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.
SPDR65 | Address proof and document proof does not match.
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.
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.
SPDR219 |The uploaded face picture is blur and not clearly visible.
SPDR231 | The face picture on the provided document is not clearly visible.
SPDR268 | The provided image is corrupted.
SPDR274 | End user did not submit complete verification proofs or data.
SPDR284 | The complete verification data was not provided by the user.
## Address Status Code
Status Code | Description
-------------- | --------------
SPDR02 | Image of the face not found on the document.
SPDR03 | Image is altered or photoshopped.
SPDR04 | Copy of the image found on web.
SPDR06 | Document originality could not be verified.
SPDR13 | Document doesn't match the provided options.
SPDR14 | Age could not be verified.
SPDR21 | Proof and Additional Proof are of different documents.
SPDR22 | Name on the Address Document doesn't match.
SPDR23 | Address did not match the record, please provide a document with valid address.
SPDR24 | Document type is different from the provided options.
SPDR25 | Country on the address document could not be verified.
SPDR26 | Addresses on the Identity Document and Utility Bill do not match.
SPDR27 | The address document is expired.
SPDR28 | The uploaded image of the document is blurred.
SPDR30 | Issue date on the address document doesn't match.
SPDR31 | Address proof and document proof are of different persons.
SPDR42 | Front and backside images of the document did not match.
SPDR43 | Camera is not accessible for verification.
SPDR46 | Same ID Document can not be submitted as proof of address.
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.
SPDR65 | Address proof and document proof does not match.
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.
SPDR80 | Address on the document does not match with the provided one.
SPDR81 | Address provided is invalid.
SPDR82 | Address on the document is not clearly visible.
SPDR83 | Address is not present on the provided document.
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.
SPDR112 | Country on the address document could not verified.
SPDR188 | Bank Transfer Number could not be verified.
SPDR189 | Tax Identity Number 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.
SPDR268 | The provided image is corrupted.
SPDR274 | End user did not submit complete verification proofs or data.
SPDR284 | The complete verification data was not provided by the user.
## Consent Status Code
Status Code | Description
-------------- | --------------
SPDR02 | Image of the face not found on the document.
SPDR03 | Image is altered or photoshopped.
SPDR04 | Copy of the image found on web.
SPDR32 | Consent note information is not correct, please upload a note with valid information.
SPDR33 | Consent type is different from provided options.
SPDR43 | Camera is not accessible for verification.
SPDR274 | End user did not submit complete verification proofs or data.
## Background Checks Status Code
Status Code | Description
-------------- | --------------
SPDR34 | AML screening failed.
SPDR160 | Matched against a sanctions list: penalties or restrictions imposed by authorities for violating laws or international norms.
SPDR161 | Matched against a warnings and regulatory enforcement list: alerts to rule violations, or penalties for non-compliance.
SPDR162 | Matched against a fitness and probity list: concerns over the subject's competence, integrity, or ethical conduct in financial services.
SPDR163 | Matched as a Politically Exposed Person (PEP): holds or held a prominent public position that carries elevated risk.
SPDR164 | Matched in adverse media: negative or damaging coverage indicating potential risk.
## Phone Number Status Code
If the user is unable to receive code then, user is provide with Code not received option if user clicks the “Code not received” option the verification will be declined automatically (because either the phone number was wrong or unreachable).
**Caution**
Verification is declined if a user enters the wrong code consecutively for five times.
Status Code | Description
-------------- | --------------
SPDR35 | Your phone number did not match the record, please provide a valid phone number.
SPDR84 | Phone number not verified because end-user entered the wrong code multiple times.
SPDR85 | Phone number not verified because the provided number was unreachable.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/transaction_trust_screening/how_it_works.md
Shufti's Transaction Trust Monitoring solution is designed to automatically monitor and assess financial transactions for potential risks, including money laundering, fraud, and non-compliance with regulations. The solution prioritises the detection of suspicious activities related to money laundering, ensuring that every transaction is rigorously screened in real time.
By using advanced algorithms, real-time data processing, and integration with global sanctions and risk databases, Shufti identifies and flags potential risks while helping payment service providers maintain compliance and reduce manual oversight.
### Overview of Shufti's Transaction Trust Monitoring Solution
In simple terms, Shufti scrutinises every transaction to make sure clients do not unknowingly engage in fraudulent, illegal, or high-risk activities.
### Key Components
- **Data Enrichment:** Shufti enriches transaction data points such as sender location, recipient bank details, and transaction context using merchant-provided details.
- **Real-Time Monitoring:** Each transaction is screened in real time using predefined rules to flag sanctions violations, unusual patterns, or high-risk jurisdictions.
- **Ongoing Monitoring:** Shufti continuously monitors transactions, including post-processing checks, to detect newly emerging suspicious activities. Batch verification is also supported for periodic review of historical transactions.
- **Rule Engine:** The rule engine detects patterns and anomalies that may indicate money laundering, fraud, or sanctions breaches.
- **Customisable Risk Thresholds:** Rules and thresholds can be adapted to specific business models and compliance requirements.
- **Automated Reporting & Audits:** Detailed logs and reports support compliance audits and improve transparency.

## Data Sources & Enrichment
### Key Data Points Used
- Transaction amount and frequency
- Customer risk level
- Country indicators (IP, account, beneficiary, recipient)
- Sanctions lists
- Bank account details (IBAN, bank, country)
- Behavioural metrics (velocity, dormancy, cumulative value)
## Rule Categories & Business Rationale
Shufti's Transaction Trust Monitoring (TTM) solution processes data obtained through API responses and maps it to predefined transaction parameters via transaction monitoring rules.
This enables Shufti to produce accurate, real-time transaction decisions: **Approve**, **Decline**, or **Custom Review**, based on risk assessment.
**Note**
Transaction monitoring parameters and rules can be customised according to each client's requirements and industry.
### Current Rule Categories
1. High volume deposits
2. Age verification / minor detection
3. Geopolitical risk analysis
4. High-risk merchants and industries
5. Device health
6. Behavioural metrics
7. Sanctions
8. AML and fraud detection
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/transaction_trust_screening/offsite.md
In the offsite transaction monitoring process, Shufti's clients are responsible for collecting all relevant transaction data from the end user and submitting it to Shufti for analysis and verification. This includes essential information such as transaction details, sender and recipient data, and any supporting documentation required for compliance checks. Shufti then processes this information to identify potential risks, ensuring the transaction adheres to regulatory standards and business requirements.
Additionally, Shufti supports batch verification, enabling clients to submit multiple transactions at once for review. This allows efficient, large-scale monitoring and ensures that even past transactions are screened for compliance and risk management.
## Create Transaction Endpoint
Use this endpoint to submit a transaction for Transaction Trust Monitoring (TTM).
### Endpoint Information
- **Endpoint URL:** `POST https://api.shuftipro.com/create/transaction`
- **Content-Type:** `application/json`
- **Authentication:** Basic Authentication
## Authentication (Required Before Calling This Endpoint)
This endpoint uses the same authentication flow as the main API.
1. Set up your Shufti account
2. Get your `client_id` and `secret_key`
3. Authorize requests using Basic Auth
For complete authorization steps and examples, refer to:
- [Get Started - Authentication](/docs/get_started#authentication)
Once authentication is set up, come back to this page and call the transaction endpoint below.
## Prerequisites
Before sending requests to this endpoint, ensure:
- TTM (Transaction Trust Monitoring) feature is enabled for your client account
- TTM seller ID is configured for your client account
## Request Example
For the full list of supported request fields and their definitions, see the [Complete List of Datapoints](./complete_list_of_datapoints).
```json title=create-transaction-request
{
"trans_id": "txn-87392HDK239JD",
"trans_ts": "2025-12-01T14:30:00Z",
"trans_amt": 250.75,
"trans_currency": "EUR",
"transaction_type": "Transfer",
"cust_id": "CUST9X4LM2P8",
"cust_name": "Sarah Martinez",
"cust_email": "sarah.m@example.com",
"phone": "+33612345678",
"cust_dob": "1988-03-22Z",
"cust_nationality": "French",
"cust_signup_ts": "2024-06-10T09:15:00Z",
"cust_account_balance": 8500,
"source_of_wealth": "Business Income",
"slr_ind_cat": "7995",
"slr_ind_mcc": "713290",
"slr_asp": 125.5,
"slr_crncy": "EUR",
"pmt_method": "Credit Card",
"ip": "185.45.192.78",
"device_id": "dev8k2m9n4p1q5r",
"device_score": 85,
"device_fingerprint": "FP78K9L2M3N4",
"device_reputation": "Excellent",
"platform_id": "PAYMENT-HUB-EU",
"browser_user_agent": "Mozilla 5.0 Safari 17.2",
"ba_bic": "DEUTDEFF500",
"ba_iban": "DE89370400440532013000",
"ba_name": "Sarah Martinez",
"ba_rtn_num": "026009593",
"bin_ctry": "DE",
"bin_brand": "Mastercard",
"aml_screening": {
"name": {
"full_name": "Sarah Martinez"
},
"filters": [
"Sanctions",
"PEP"
]
},
"beneficiary_id": "BEN7H9K2L4M6",
"beneficiary_name": "Michael Chen",
"beneficiary_email": "m.chen@example.com",
"beneficiary_dob": "1992-07-18Z",
"beneficiary_phone": "+8613912345678",
"beneficiary_nationality": "Chinese",
"beneficiary_ba_bic": "ICBKCNBJ110",
"beneficiary_ba_iban": "GB82WEST12345698765432",
"beneficiary_ba_name": "Michael Chen",
"beneficiary_ba_rtn_num": "121000248",
"beneficiary_bin_ctry": "CN",
"beneficiary_bin_brand": "UnionPay",
"beneficiary_aml_screening": {
"name": {
"full_name": "Michael Chen"
},
"filters": [
"Sanctions",
"Adverse Media"
]
}
}
```
## Success Response
```json title=success-response-200
{
"status": true,
"message": "Transaction submitted successfully",
"data": {
"transaction_id": "a2f8c9d1-3e4b-4a5c-8d7f-1b2e3a4c5d6e",
"device_id": "dev8k2m9n4p1q5r",
"score": 0.3245678901234567,
"approved": 1,
"evidence": {
"signals": [
{
"id": "7a2d9c4e",
"category": "geo",
"type": "good",
"related_to": [
"phone",
"bin_ctry",
"ip_country"
]
},
{
"id": "b3e8f1a9",
"category": "seller",
"type": "neutral",
"related_to": [
"slr_ind",
"slr_ind_cat",
"seller_id"
]
},
{
"id": "c9d4e2b7",
"category": "transaction",
"type": "good",
"related_to": [
"device_reputation",
"device_score"
]
},
{
"id": "d1f5a8c3",
"category": "transaction",
"type": "neutral",
"related_to": [
"ip"
]
},
{
"id": "e4b2c9d6",
"category": "transaction",
"type": "good",
"related_to": [
"trans_amt"
]
},
{
"id": "f8a3d1e7",
"category": "user",
"type": "good",
"related_to": [
"cust_email",
"cust_account_balance"
]
}
]
},
"rule_hits": {
"decisive_hit": null,
"all": []
},
"validation": {
"ok": true
},
"sanctions_lists": {
"hit": "NO_HIT"
},
"aml_screening": {
"hit": "NO_MATCH"
}
}
}
```
## Risk Assessment Interpretation
- **Score Range:** `0.0` (lowest risk) to `1.0` (highest risk)
- **Approval Status:**
- `0` = Transaction declined
- `1` = Transaction approved
- `2` = Transaction manual review
- `3` = Transaction custom action (when rule hits with custom action)
## Response Fields Description
### Root Level
| Field | Type | Description |
|---|---|---|
| status | boolean | Indicates whether the request was successful. |
| message | string | Human-readable status message. |
| data | object | Contains detailed transaction analysis results. |
### Data Object
| Field | Type | Description |
|---|---|---|
| transaction_id | string | Unique transaction identifier in UUID format. |
| device_id | string | Processed device identifier. |
| score | number | Fraud risk score from 0 to 1 (lower is better). |
| approved | integer | Approval status (`1` approved, `0` declined). |
| evidence | object | Evidence signals that influenced the score. |
| rule_hits | object | Information about triggered rules. |
| validation | object | Validation status and errors (if any). |
| sanctions_lists | object | Sanctions screening result (when applicable). |
| aml_screening | object | AML screening result (when requested). |
### Evidence Object
| Field | Type | Description |
|---|---|---|
| signals | array | Array of signal objects indicating risk factors. |
### Signal Object
| Field | Type | Description |
|---|---|---|
| id | string | Unique signal identifier. |
| category | string | Signal category (for example: `geo`, `transaction`, `user`, `seller`). |
| type | string | Signal type: `good`, `bad`, or `neutral`. |
| related_to | array/null | Field names associated with this signal. |
### Rule Hits Object
| Field | Type | Description |
|---|---|---|
| decisive_hit | object/null | Rule that determined outcome; `null` when none applies. |
| all | array | Array of all rules that were triggered. |
### Rule Object (inside `decisive_hit` or `all`)
| Field | Type | Description |
|---|---|---|
| id | string | Unique rule identifier (UUID). |
| short_id | integer | Short numeric identifier of the rule. |
| version | integer | Rule version number. |
| action | string | Rule action (for example: `reject`, `accept`, `review`). |
| rule_name | string | Human-readable rule name. |
### Validation Object
| Field | Type | Description |
|---|---|---|
| ok | boolean | Indicates whether validation passed completely. |
| errors | array | Validation errors (present only when `ok` is `false`). |
### Validation Error Object
| Field | Type | Description |
|---|---|---|
| datapoint | string | Name of the field with validation issue. |
| message | string | Validation error detail. |
### Sanctions Lists Object
| Field | Type | Description |
|---|---|---|
| hit | string | Possible values: `HIT`, `NO_HIT`, `ERROR`. |
### AML Screening Object
| Field | Type | Description |
|---|---|---|
| hit | string | Possible values: `MATCH`, `POTENTIAL_MATCH`, `NO_MATCH`, `ERROR`. |
## Error Responses
### Validation Error (HTTP 400)
```json
{
"status": false,
"message": "Validation failed",
"errors": {
"trans_id": [
"Transaction ID is required"
]
}
}
```
### Unauthorized (HTTP 401)
```json
{
"status": false,
"message": "Unable to identify authenticated client"
}
```
### Forbidden (HTTP 403)
```json
{
"status": false,
"message": "TTS feature is not enabled for your account"
}
```
### Configuration Error (HTTP 400)
```json
{
"status": false,
"message": "Seller ID not configured for this client"
}
```
### Server Error (HTTP 500)
```json
{
"status": false,
"message": "An error occurred while processing transaction submission",
"error": "Error description"
}
```
### Validation Failed (HTTP 422)
```json
{
"status": false,
"message": "An error occurred while processing transaction submission",
"error": "Validation failed: Invalid transaction data provided"
}
```
## HTTP Status Codes
| Status Code | Description |
|---|---|
| 200 | Transaction submitted successfully. |
| 400 | Bad request due to invalid or missing required data. |
| 401 | Unauthorized; authentication failed. |
| 403 | Forbidden; TTS feature is not enabled. |
| 404 | Not found; seller configuration missing. |
| 422 | Unprocessable entity; validation failed. |
| 500 | Internal server error. |
---
# Complete List of Datapoints
Source: https://developers.shuftipro.com/docs/transaction_trust_screening/complete_list_of_datapoints.md
{`
.theme-doc-markdown table {
width: 100%;
table-layout: fixed;
}
.theme-doc-markdown table th:nth-child(1),
.theme-doc-markdown table td:nth-child(1) {
width: 22%;
}
.theme-doc-markdown table th:nth-child(2),
.theme-doc-markdown table td:nth-child(2) {
width: 28%;
}
.theme-doc-markdown table th:nth-child(3),
.theme-doc-markdown table td:nth-child(3) {
width: 50%;
}
`}
Shufti's Transaction Trust Monitoring (TTM) evaluates every transaction by running it against a set of rules you configure. Shufti collects data points from its user as input in API requests and performs screening.
Datapoints are the raw values your application sends in the API request. They represent the core facts of a transaction, such as the customer's email address, IP address, device ID, transaction amount, or payment method. Datapoints are the foundation of every rule in TTM.
The tables below list all available Datapoints:
## Datapoints
⬇️ Download the complete list of datapoints:
- [datapoints.json](/files/datapoints.json)
- [datapoints.xlsx](/files/datapoints.xlsx)
## General | Account
| Name | Display Name | Description |
|---|---|---|
| acct_ad_city | Account address \| City | Type: **string**The city on the address of the buyer saved in the buyer's account on the merchant's platform.Example: `Paris`, `Berlin` |
| acct_ad_ctry | Account address \| Country | Type: **enum**The country on the account address. An ISO 3166-1 alpha-2 code. |
| acct_ad_line1 | Account address \| Street and building number | Type: **string**The street and building number on the account address.Example: `44 Ashgrove Road` |
| acct_ad_line2 | Account address \| Apartment number | Type: **string**The apartment or flat number on the account address.Example: `Apt. 15` |
| acct_ad_state | Account address \| State | Type: **string**The state or another unit of administrative division on the account address.Example: `VA`, `Bavaria`, `New York` |
| acct_ad_zip | Account address \| Postal code | Type: **string**The postal code on the account address.Example: `10179` |
| cust_existing | Customer \| Existing with payment company | Type: **bool**Indicates whether the customer has an account with the payment company. |
| cust_existing_merchant | Customer \| Existing with merchant | Type: **bool**Indicates whether the customer has an account with the merchant. |
| cust_forgot_password | Customer \| Forgot password | Type: **bool**Indicates whether the customer forgot the password for their account on the e-commerce platform. |
| cust_has_password | Customer \| Has password | Type: **bool**Indicates whether the customer has a password for their account on the e-commerce platform. |
| cust_last_login_ts | Account \| Last login | Type: **timestamp**The date of the last login of the customer. Relevant if the customer has a user account on the merchant's e-commerce platform.Example: `2019-02-04T15:04:05Z` |
| cust_signup_dt | Account \| Signup date | Type: **string**The date when the customer signed up for the merchant's e-commerce platform. An RFC3339-encoded UTC timestamp.Example: `2017-12-09Z` |
| cust_signup_ts | Account \| Signup timestamp | Type: **timestamp**An RFC3339-encoded UTC timestamp when the customer signed up for the merchant's e-commerce platform, i.e. created their account with the merchant. |
| customer_account_number | Customer \| Account number | Type: **string**The account number of the customer in the merchant's database.Example: `2364` |
| password_update_ts | Account \| Password update timestamp | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating when the customer last updated their password on the e-commerce platform. |
## General | Billing Address
| Name | Display Name | Description |
|---|---|---|
| bill_ad_city | Billing address \| City | Type: **string**The city on the billing address.Example: `Berlin` |
| bill_ad_city_norm_dp | Billing address \| City normalized by the payment company | Type: **string**The normalized value of the city on the billing address provided by the payment company.Example: `buenosaires`, `newyork` |
| bill_ad_ctry | Billing address \| Country | Type: **enum**The country on the billing address. An ISO 3166-1 alpha-2 code. |
| bill_ad_ctry_norm_dp | Billing address \| Country normalized by payment company | Type: **enum**The normalized value of the country on the billing address provided by the payment company. |
| bill_ad_first_name | Billing address \| First name | Type: **string**The first name of the customer on the billing address.Example: `Grace` |
| bill_ad_house_num | Billing address \| House number | Type: **string**The house number on the billing address.Example: `4`, `40/1` |
| bill_ad_house_num_norm_dp | Billing address \| House number normalized | Type: **string**The normalized value of the house number on the billing address.Example: `4`, `40` |
| bill_ad_last_name | Billing address \| Last name | Type: **string**The last name of the customer on the billing address.Example: `Hopper` |
| bill_ad_line1 | Billing address \| Street and building number | Type: **string**The street and building number on the billing address.Example: `Hartwigstraße 27` |
| bill_ad_line1_norm_dp | Billing address \| Street and building number normalized by payment company | Type: **string**The normalized value of the street and building number on the billing address.Example: `Hartwigstr.` |
| bill_ad_line2 | Billing address \| Apartment number | Type: **string**The apartment or flat number on the billing address.Example: `Apt. 15` |
| bill_ad_line3 | Billing address \| Additional info | Type: **string**Additional address information on the billing address.Example: `2nd floor` |
| bill_ad_line3_norm_dp | Billing address \| Additional info normalized by payment company | Type: **string**The normalized value of additional details on the billing address provided by the payment company.Example: `2nd floor – left side`, `2nd floor` |
| bill_ad_middle_name | Billing address \| Middle name | Type: **string**The middle name of the customer on the billing address.Example: `Brewster Murray` |
| bill_ad_name | Billing address \| Full name | Type: **string**The full name of the customer on the billing address. Use this datapoint when a customer sends their full name in one field, as opposed to sending their first, middle, and last name in separate fields.Example: `Grace Hopper` |
| bill_ad_state | Billing address \| State | Type: **string**The state or another unit of administrative division on the billing address.Example: `New York`, `Bavaria` |
| bill_ad_zip | Billing address \| Postal code | Type: **string**The postal code on the billing address.Example: `10179` |
| bill_ad_zip_norm_dp | Billing address \| Postal code normalized | Type: **string**The normalized value of the postal code on the billing address.Example: `78467` |
| bill_name_title | Billing address \| Courtesy title | Type: **string**The courtesy title of the customer on the billing address.Example: `Dr.` |
## General | Customer Identity
| Name | Display Name | Description |
|---|---|---|
| cust_company | Customer \| Company name | Type: **string**The company name of the customer.Example: `Schön Klinik München Harlaching` |
| cust_dob | Customer \| Date of birth | Type: **date**The date of birth of the customer.Example: `1906-12-09Z` |
| cust_email | Customer \| Email address | Type: **string**The primary email address of the customer.Example: `grace.hopper@example.com` |
| cust_first_name | Customer \| First name | Type: **string**The first name of the customer.Example: `Grace` |
| cust_gender | Customer \| Gender | Type: **string**The gender of the customer.Example: `F` |
| cust_id | Customer \| ID as per merchant | Type: **string**The ID of the customer in the merchant's database.Example: `7730468`, `4738` |
| cust_last_name | Customer \| Last name | Type: **string**The last name of the customer.Example: `Hopper` |
| cust_middle_name | Customer \| Middle name | Type: **string**The middle name of the customer.Example: `Brewster Murray` |
| cust_name | Customer \| Full name | Type: **string**The full name of the customer. Use this datapoint when a customer sends their full name in one field, as opposed to sending their first, middle, and last name in separate fields.Example: `Grace Brewster Murray Hopper` |
| cust_nationality | Customer \| Nationality | Type: **string**The nationality of the customer.Example: `Italian` |
| cust_scndry_email | Customer \| Secondary email address | Type: **string**The secondary email address of the customer.Example: `grace.hopper@private.com` |
| cust_title | Customer \| Courtesy title | Type: **string**The courtesy title of the customer.Example: `Dr.` |
| customer_is_of_age | Customer \| Is of age | Type: **bool**Specifies if the customer is of age, i.e. old enough, according to the law, to be eligible for certain purchases. |
| customer_username | Customer \| Username | Type: **string**Specifies the username of the customer they created for the e-commerce account/product they are using.Example: `gamer_42` |
| customer_verified_account | Customer \| Verified account | Type: **bool**Indicates if user's account has been verified. Different products offer different verification processes, i.e. via an email address or a code. This normally depends on the type of the registration system. |
| fax | Customer \| Fax number | Type: **string**The fax number of the customer.Example: `030-1781224` |
| phone | Customer \| Phone | Type: **string**The phone number of the customer.Example: `+49(0)8144111100` |
| phone_mobile | Customer \| Mobile phone number | Type: **string**The customer's mobile phone number.Example: `017624225600` |
| phone_type | Phone \| Type | Type: **string**The type of the phone used by the customer.Example: `Work` |
| phone_work | Phone \| Work | Type: **string**The phone number of the customer marked as the work phone.Example: `+49(0)8144111100` |
| scndry_phone | Customer \| Secondary phone | Type: **string**The secondary phone number of the customer.Example: `017624225600` |
## General | Device
| Name | Display Name | Description |
|---|---|---|
| browser_user_agent | Browser \| User agent | Type: **string**The web browser user agent.Example: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36` |
| brwsr_addons | Browser \| Add-ons | Type: **string**A list of add-ons installed on user's browser.Example: `Adblock Plus, FeedsPlus, Affine` |
| brwsr_lang | Browser \| Language | Type: **string**The language of the customer's web browser.Example: `en-US` |
| brwsr_ts | Browser \| Timestamp | Type: **timestamp**Web browser timestamp at the time of the purchase.Example: `2017-12-03T11:52:06Z` |
| brwsr_type | Browser \| Type | Type: **string**The type of the customer's web browser.Example: `Firefox` |
| brwsr_version | Browser \| Version | Type: **string**The version of the customer's web browser.Example: `65.0.2 (64-bit)` |
| device_crt_ts | Device \| Timestamp | Type: **timestamp**The timestamp on the device when the transaction happened. |
| device_manufacturer | Device \| Manufacturer | Type: **string**The manufacturer of the customer's device.Example: `Samsung` |
| device_name | Device \| Name | Type: **string**The name of the customer's device.Example: `Grace’s MacBook Pro` |
| device_type | Device \| Type | Type: **string**The device type of the customer.Example: `iPhone` |
| device_version | Device \| Version | Type: **string**The version of the customer's device.Example: `4.1` |
| os_lang | OS \| Language | Type: **string**Language of the operating system on the customer's device.Example: `en-GB` |
| os_ts | OS \| Timestamp | Type: **timestamp**The operating system timestamp at the time of the purchase.Example: `2017-12-03T11:52:06Z` |
| os_type | OS \| Type | Type: **string**Type of the customer's operating system.Example: `iOS 10.1.1` |
| os_version | OS \| Version | Type: **string**The version of the operating system on the customer's device.Example: `macOS Mojave 10.14.3` |
| screen_dpi | Screen \| DPI | Type: **string**The DPI (dots per inch) value of customer's screen.Example: `120 x 120` |
| screen_x | Screen \| Horizontal resolution | Type: **string**The horisontal (x-axis) value of the customer's screen resolution.Example: `800` |
| screen_y | Screen \| Vertical resolution | Type: **string**The vertical (y-axis) value of the customer's screen resolution.Example: `600` |
| support_cookie | Browser \| Cookie support | Type: **bool**Indicates if the user's browser supports and is not blocking cookies. |
| support_flash | Browser \| Flash support | Type: **bool**Indicates if the user's browser supports Flash. |
| support_geo | Browser \| Geolocation support | Type: **bool**Indicates if the user's browser supports geolocation. |
| support_java | Browser \| Java support | Type: **bool**Indicates if the user's browser supports Java. |
| support_js | Browser \| JavaScript support | Type: **bool**Indicates if the user's browser supports JavaScript. |
| device_fingerprint | Device \| Fingerprint | Type: **DeviceInfo**Device fingerprint collected from the user's device. |
## General | Device Id
| Name | Display Name | Description |
|---|---|---|
| device_id | Device \| ID | Type: **string**Device identification code.Example: `2fc4b5912826ad1` |
| device_id_exact | Device \| Exact ID | Type: **string**Exact ID is a hashed device fingerprint generated by the payment company. It's based on a variety of markers to give a 100-percent accuracy in identifying a device, including browser language, cookies settings, and more.Example: `ATHjII4ALRQySeFH1hmaC5svTtgg` |
| device_id_smart | Device \| Smart ID | Type: **string**Smart ID is a hashed device fingerprint generated by the payment company. It's optimized for persistence across standard computer lifecycle events. It works without the use of cookies and is calculated from hundreds of device attributes that are measured in real time.Example: `AGlYUjsSx4fCMnEfrNSFQVqoXjko` |
| device_reputation | Device \| Reputation | Type: **string**Specific reputation and/or behavior associated with a device. This information is provided by a third-party provider of your choice or generated by you internally. You normally send this datapoint with 'device_id' and 'device_score'.Example: `risky_device_behavior, risky_ip_reputation, risky_ip_behavior` |
| device_score | Device \| Score | Type: **float**The score of the device generated by a third-party provider of your choice or by you internally. You normally send this datapoint with 'device_id' and 'device_reputation'.Example: `42.01` |
## General | Ip Address
| Name | Display Name | Description |
|---|---|---|
| ip | IP | Type: **string**The IP address of the customer.Example: `192.168.0.1` |
| ip_hashed | IP \| Hashed value | Type: **string**The hashed value of the IP address.Example: `6023d6a87eec89bf628b2520434a1065ac4da0e0` |
## General | Merchant
| Name | Display Name | Description |
|---|---|---|
| platform_id | Platform ID | Type: **string**The name of the payment platform.Example: `GlobalCollect` |
| seller_id | Merchant \| ID | Type: **string**The identification code of the merchant.Example: `ABG826` |
| slr_asp | Merchant \| Average sales price | Type: **float**The ASP (average sales price) of the merchant.Example: `5.99` |
| slr_crncy | Merchant \| Currency | Type: **enum**The operating currency of the merchant. |
| slr_ctry | Merchant \| Country | Type: **enum**The country where the merchant operates. An ISO 3166-1 alpha-2 code. You can either have this configured in the configuration service or send this information in the API request. |
| slr_ind | Merchant \| Industry | Type: **string**The industry where the merchant operates. You can either have this configured in the configuration service or send this information in the API request.Example: `Perfumery/duty free` |
| slr_ind_cat | Merchant \| Industry category | Type: **string**The industry category of the merchant. You can either have this configured in the configuration service or send this information in the API request.Example: `3 Retail` |
| slr_ind_mcc | Merchant \| MCC | Type: **string**The MCC (merchant category code) of the merchant. You can either have this configured in the configuration service or send this information in the API request.Example: `5641` |
| slr_name | Merchant \| Name | Type: **string**The name of the merchant. You can either have this configured in the configuration service or send this information in the API request.Example: `Square Enix` |
| sub_seller | Sub-merchant \| ID | Type: **string**The identification code of the sub-merchant.Example: `8897` |
## General | Purchase
| Name | Display Name | Description |
|---|---|---|
| affiliate_partner | Purchase \| Affiliate partner | Type: **string**Indicates the affiliate partner that generated the customer.Example: `BigCommerce` |
| agency_country | Purchase \| Agency country name | Type: **enum**The country where the agency that facilitated the purchase operates. An ISO 3166-1 alpha-2 code. Send this datapoint optionally if you're sending 'agency_name'. |
| agency_name | Purchase \| Agency name | Type: **string**The name of the agency that facilitated the purchase.Example: `Clubhotel Reisen GmbH` |
| booking_invoice_number | Booking \| Invoice number | Type: **string**The invoice number for the booking transaction. Refers to the booking of any types of goods or services like a ticket, trip, etc.Example: `45738/2021` |
| booking_is_flexi | Booking \| Flexible cancellation | Type: **bool**Indicates if the booking has flexible cancellation. This allows the customer to make changes to the departure date and time for example, or cancel the event/service all together. |
| booking_is_restricted | Booking \| Restricted | Type: **bool**Indicates whether the booking is restricted (non-refundable). |
| booking_persons_number | Booking \| Persons in the booking | Type: **int**The number of persons included in the booking.Example: `1` |
| delivery_method | Purchase \| Delivery method | Type: **enum**Indicates the delivery method of the purchased goods. |
| exchange_ticket_price | Ticket \| Exchange price | Type: **float**The price of the exchange ticket before any discounts or vouchers are applied.Example: `155,70` |
| first_purchase | Purchase \| First with the merchant | Type: **bool**Indicates if the user is making their first purchase with the merchant. For some products, the first purchase is considered less secure because the merchant doesn't have sufficient data to evaluate the user. |
| giftcard_message | Gift card \| Message | Type: **string**The message added for the gift card being shipped.Example: `Happy birthday!` |
| includes_giftcard | Purchase \| Includes gift card | Type: **enum**Indicates whether the purchase order includes gift cards as items. |
| includes_preorder | Purchase \| Includes pre-ordered item | Type: **bool**Purchase includes one or more pre-ordered item. |
| item_is_subscription | Purchase \| Subscription | Type: **bool**Indicates if the item purchased is a subscription. Generally, subscription products are less risky. |
| item_on_sale | Purchase \| Item on sale | Type: **bool**Indicates if the item was purchased during a sale. |
| item_preorder | Purchase \| Preorder | Type: **bool**Indicates if the purchased item is a preorder. Generally, preordered purchases are way less risky. |
| items | Purchase \| Items | Type: **ShoppingCartItem[]**The attribute represents items in the shopping cart of the customer.Example: `[ {"item_id":"DF42","item_desc":"Belt"} ]` |
| loyalty_account_number | Purchase \| Loyalty account number | Type: **string**The loyalty account number of the customer. Send this datapoint if you're sending 'loyalty_program_used = true'.Example: `2934-YS` |
| loyalty_program_name | Purchase \| Loyalty program name | Type: **string**Indicates what loyalty program the customer is part of. Send this datapoint if you're sending 'loyalty_program_used = true'.Example: `SkyMiles` |
| loyalty_program_used | Purchase \| Loyalty program | Type: **bool**Indicates whether the customer belongs to a loyalty program. |
| order_id | Merchant \| Order ID | Type: **string**The identification code of the order as captured by the merchant. Do not confuse with the order ID assigned by the PSP ('trans_id') or the transaction ID created by shufti ('frg_trans_id').Example: `1128-4000050556-1` |
| order_method | Merchant \| Order method | Type: **enum**The method used to make the order. |
| purchase_extra_services | Purchase \| Extra services ordered | Type: **enum**Indicates any extra services that were ordered with the purchase. |
| region_locked | Purchase \| Region locked | Type: **enum**Region locking prevents a product from being purchased and/or used outside of a region. The datapoint specifies if an item is locked to a specific region, i.e. can only be bought/used in that region. Often applies to video games or digital products. |
| sales_channel | Transaction \| Sales channel | Type: **enum**The transaction's sales channel. |
| ship_comments | Purchase \| Shipping comments | Type: **string**Additional comments regarding the shipping of the goods.Example: `Deliver to the neighbor.` |
| ship_giftcard_message | Gift card \| Shipping message | Type: **string**The message of the shipping gift card.Example: `Happy birthday!` |
| ship_giftcard_type | Gift card \| Type | Type: **string**The type of gift card being shipped.Example: `Grandparents Day` |
| ship_more | Purchase \| Additional shipping comments | Type: **string**Additional shipping information.Example: `4th floor – left side` |
| subscription_active | Purchase \| Subscription active | Type: **bool**Indicates if the customer has an active subscription with the merchant. |
| subscription_end_date | Purchase \| Subscription end date | Type: **date**Indicates the end date of an active subscription. If there is no active subscription available, use this datapoint to indicate the end date of the most recent subscription. The date part of an RFC3339-encoded UTC timestamp.Example: `2021-10-04T` |
| third_party_booking | Purchase \| Third-party booking | Type: **bool**Indicates whether the booking was made by a third-party entity. |
| ticket_currency | Purchase \| Ticket currency | Type: **enum**The SO-3 currency code in which 'ticket_price' is given. |
| ticket_device_used | Purchase \| Device and app type | Type: **enum**Indicates the device and app type used to make the booking for a ticket. |
| ticket_exchange_fee | Ticket \| Exchange fee | Type: **float**The fee applied for exchanging an issued ticket.Example: `50,00` |
| ticket_issue_date | Ticket \| Issue date | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating the date when the ticket was issued.Example: `2021-10-04T15:20:44` |
| ticket_itinerary_legs_count | Ticket \| Itinerary legs | Type: **int**Trip path information, i.e. the number of legs in the itinerary.Example: `2` |
| ticket_price | Purchase \| Ticket price | Type: **float**The full price of the ticket before any discounts or vouchers are applied.Example: `349` |
| ticket_transaction_type | Ticket \| Transaction type | Type: **enum**The type of transaction carried out for the ticket. |
| time_from_first_visit | Purchase \| Time from first visit | Type: **int**Indicates the number of days that have passed from the moment a customer first visited the e-commerce site and the moment when they initiated the transaction. This period of time covers multiple browser sessions. |
| time_to_purchase | Purchase \| Time to purchase | Type: **int**Indicates the number of seconds that have passed from the moment a customer accessed the e-commerce website to the moment when they initiated the transaction. Use this datapoint to indicate the time within one browser session. |
| voucher_used | Purchase \| Promo voucher used | Type: **bool**Indicates if the item was purchased with a promo voucher. |
## General | Shipping Address
| Name | Display Name | Description |
|---|---|---|
| packstation_id_dp | Shipping address \| DHL Packstation ID | Type: **string**A 3-digit ID of a DHL Packstation. Use this datapoint in rules if you're sending this information in the API request. If you'd like this information to be calculated by shufti, use 'packstation_id' instead. Make sure you send the datapoint 'ship_ad_line1' in this case.Example: `123`, `445` |
| postnummer_dp | Shipping address \| Personal customer number | Type: **string**The personal customer number (Postnummer) used at the DHL Packstation. Use this datapoint in rules if you're sending this information in the API request. If you'd like this information to be calculated by shufti, use 'postnummer' instead. Make sure you send the datapoint 'ship_ad_line1' in this case.Example: `12345678`, `44566741` |
| ship_ad_city | Shipping address \| City | Type: **string**The city on the shipping address.Example: `London` |
| ship_ad_city_norm_dp | Shipping address \| City normalized by the payment company | Type: **string**The normalized value of the city on the shipping address provided by the payment company.Example: `buenosaires`, `newyork` |
| ship_ad_ctry | Shipping address \| Country | Type: **enum**The country on the shipping address. An ISO 3166-1 alpha-2 code. |
| ship_ad_ctry_norm_dp | Shipping address \| Country normalized by payment company | Type: **enum**The normalized value of the country on the shipping address provided by the payment company. |
| ship_ad_email | Shipping address \| Email | Type: **string**The email address of the customer on the shipping address.Example: `grace.hopper@example.com` |
| ship_ad_first_name | Shipping address \| First name | Type: **string**The first name of the customer on the shipping address.Example: `Grace` |
| ship_ad_house_num | Shipping address \| House number | Type: **string**The house number on the shipping address.Example: `7`, `27/4` |
| ship_ad_house_num_norm_dp | Shipping address \| House number normalized by payment company | Type: **string**The normalized value of the house number on the shipping address provided by the payment company.Example: `4`, `40` |
| ship_ad_last_name | Shipping address \| Last name | Type: **string**The last name of the customer on the shipping address.Example: `Hopper` |
| ship_ad_line1 | Shipping address \| Street and building number | Type: **string**The street and building number on the shipping address.Example: `44 Ashgrove Road` |
| ship_ad_line1_norm_dp | Shipping address \| Street and building number normalized by payment company | Type: **string**The normalized value of the street and building number on the shipping address provided by the payment company.Example: `44 Ashgrove Road` |
| ship_ad_line2 | Shipping address \| Apartment number | Type: **string**The apartment or flat number on the shipping address.Example: `Apt. 4` |
| ship_ad_line3 | Shipping address \| Additional info | Type: **string**Further additional address information on the shipping address.Example: `2nd floor – left side`, `2nd floor` |
| ship_ad_line3_norm_dp | Shipping address \| Additional info normalized | Type: **string**The normalized value of additional details on the shipping address.Example: `2nd floor` |
| ship_ad_middle_name | Shipping address \| Middle name | Type: **string**The middle name of the customer on the shipping address.Example: `Brewster Murray` |
| ship_ad_name | Shipping address \| Full name | Type: **string**The full name of the customer on the shipping address. Use this datapoint when a customer sends their full name in one field, as opposed to sending their first, middle, and last name in separate fields.Example: `Grace Brewster Murray Hopper` |
| ship_ad_phone | Shipping address \| Phone number | Type: **string**The phone number that the customer specified for the shipping address.Example: `030-4247582047` |
| ship_ad_state | Shipping address \| State | Type: **string**The state or another unit of administrative division on the shipping address.Example: `New York`, `Bavaria` |
| ship_ad_zip | Shipping address \| Postal code | Type: **string**The postal code on the shipping address.Example: `10179` |
| ship_ad_zip_norm_dp | Shipping address \| Postal code normalized by payment company | Type: **string**The normalized value of the postal code on the shipping address provided by the payment company.Example: `10179` |
| ship_name_title | Shipping address \| Courtesy title | Type: **string**The courtesy title of the customer on the shipping address.Example: `Dr.` |
## General | Transaction
| Name | Display Name | Description |
|---|---|---|
| acquirer_ctry | Transaction \| Acquirer country | Type: **enum**The country of the acquiring bank. An ISO 3166-1 alpha-2 code. |
| custom | Custom attributes | Type: **custom**An object that contains arbitrary fields not directly managed by shufti. Can be sent with each transaction and used for rule creation. |
| is_3ds_approved | Transaction \| Is 3D approved | Type: **enum**Indicates whether the transaction was authenticated with 3D Secure. Relevant in cases where shufti is integrated after authentication and/or authorization. |
| is_recurring | Transaction \| Is recurring | Type: **bool**Indicates whether a transaction is a subsequent transaction following a previous authorization. Please note that shufti cannot validate whether the transaction is indeed linked to a previous transaction flagged with the acquirer as starting a recurring operation. |
| recurrence_type | Transaction \| Recurrence type | Type: **string**Specifies what recurrence type the transaction has. Only relevant to recurrent transactions.Example: `FirstRecurring` |
| trans_amt | Transaction \| Amount | Type: **float**The transaction amount in the original currency.Example: `23.15` |
| trans_currency | Transaction \| Currency | Type: **enum**SO-3 currency code in which 'trans_amt' is given. |
| trans_id | Transaction \| ID | Type: **string**The ID of the transaction as identified by the PSP. Do not to confuse with the ID assigned by the merchant ('order_id') or the transaction ID created by shufti ('frg_trans_id').Example: `X1234567` |
| trans_is_b2b | Transaction \| Is B2B | Type: **bool**Indicates if the transaction is a B2B transaction. |
| trans_status | Transaction \| Status | Type: **string**Specifies the transaction approval status communicated by the client.Example: `Approved`, `Declined` |
| trans_ts | Transaction \| Timestamp | Type: **timestamp**Transaction timestamp reported by the client.Example: `2009-11-10T23:00:00Z` |
## Industry | Airlines
| Name | Display Name | Description |
|---|---|---|
| airticket_agency_code | Airlines \| IATA agency code | Type: **string**IATA code for the travel agency that issued the ticket.Example: `13-3 4637 004` |
| airticket_airline_name | Airlines \| Airline name | Type: **string**The name of the airline.Example: `Lufthansa`, `Delta` |
| airticket_arrival_ts | Airlines \| Arrival timestamp | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating the local date and time of the arrival. The timezone accepts either the character 'Z' to indicate UTC or a time offset in the format '+02:00' or '-07:30'.Example: `2021-11-10T23:00:00Z` |
| airticket_booking_pos_city | Airlines \| Booking (POS) city | Type: **string**The city where the customer made the payment for the ticket and where sales taxes may become applicable.Example: `Santiago` |
| airticket_class | Airlines \| Ticket class | Type: **enum**IATA code for the class of service for the leg of the trip. The code is used by airlines to identify a fare type and corresponding services applicable to that fare. |
| airticket_days_to_departure | Airlines \| Days to departure | Type: **int**Indicates the number of days before the airplane departure.Example: `3` |
| airticket_delivery_method | Airlines \| Ticket delivery method | Type: **string**The delivery method for the airline ticket.Example: `electronic` |
| airticket_departure_ts | Airlines \| Departure timestamp | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating the local date and time of the departure. The timezone accepts either the character 'Z' to indicate UTC or a time offset in the format '+02:00' or '-07:30'.Example: `2009-11-10T23:00:00Z` |
| airticket_electronic_ticket | Airlines \| Electronic ticket | Type: **bool**Indicates whether the ticket booking was made electronically. |
| airticket_first_departure_airport | Airlines \| First departure airport | Type: **string**IATA code for the first departure airport in the itinerary.Example: `BER` |
| airticket_issuer_address | Airlines \| Issuer address | Type: **string**The address of the company issuing the ticket.Example: `Place Georges-Pompidou, 75004 Paris` |
| airticket_issuer_name | Airlines \| Issuer name | Type: **string**The name of the ticket issuer. May differ from the airline name.Example: `ExpediaTravel` |
| airticket_last_arrival_airport | Airlines \| Last arrival airport | Type: **string**IATA code for the last arrival airport in the itinerary.Example: `NAP` |
| airticket_leg1_arrival_airport | Airlines \| Arrival airport \| Leg 1 | Type: **string**IATA code for the arrival airport in the first leg of the trip.Example: `FCO` |
| airticket_leg1_arrival_time_segment | Airlines \| Arrival time segment \| Leg 1 | Type: **enum**The arrival time segment for the first leg of the trip. |
| airticket_leg1_arrival_ts | Airlines \| Arrival time \| Leg 1 | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating the local date and time of the arrival for the first leg of the trip. The timezone accepts either the character 'Z' to indicate UTC or a time offset in the format '+02:00' or '-07:30'.Example: `2021-10-04T15:20:44` |
| airticket_leg1_carrier_code | Airlines \| IATA carrier code \| Leg 1 | Type: **string**IATA code for the airline for the first leg of the trip.Example: `7H` |
| airticket_leg1_class | Airlines \| Ticket class \| Leg 1 | Type: **enum**IATA code for the class of service for the first leg of the trip. The code is used by airlines to identify a fare type and corresponding services applicable to that fare. |
| airticket_leg1_departure_airport | Airlines \| Departure airport \| Leg 1 | Type: **string**IATA code for the departure airport in the first leg of the trip.Example: `FCO` |
| airticket_leg1_departure_time_segment | Airlines \| Departure time segment \| Leg 1 | Type: **enum**The departure time segment for the first leg of the trip. |
| airticket_leg1_departure_ts | Airlines \| Departure time \| Leg 1 | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating the local date and time of the departure for the first leg of the trip. The timezone accepts either the character 'Z' to indicate UTC or a time offset in the format '+02:00' or '-07:30'.Example: `2021-10-04T15:20:44` |
| airticket_leg1_flight_number | Airlines \| Flight number \| Leg 1 | Type: **string**The flight number for the first leg of the trip.Example: `DF3409` |
| airticket_leg1_price | Airlines \| Ticket price \| Leg 1 | Type: **float**The full price of the ticket for the first leg of the trip, before any discounts or vouchers are applied.Example: `49,99` |
| airticket_leg1_stopover | Airlines \| Stopover allowed \| Leg 1 | Type: **bool**Indicates whether a stopover is allowed on the first leg of the trip. |
| airticket_leg2_arrival_airport | Airlines \| Arrival airport \| Leg 2 | Type: **string**IATA code for the arrival airport in the second leg of the trip.Example: `CDG` |
| airticket_leg2_arrival_time_segment | Airlines \| Arrival time segment \| Leg 2 | Type: **enum**The arrival time segment for the second leg of the trip. |
| airticket_leg2_arrival_ts | Airlines \| Arrival time \| Leg 2 | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating the local date and time of the arrival for the second leg of the trip. The timezone accepts either the character 'Z' to indicate UTC or a time offset in the format '+02:00' or '-07:30'.Example: `2021-10-04T15:20:44` |
| airticket_leg2_carrier_code | Airlines \| IATA carrier code \| Leg 2 | Type: **string**IATA code for the airline for the second leg of the trip.Example: `7H` |
| airticket_leg2_class | Airlines \| Ticket class \| Leg 2 | Type: **enum**IATA code for the class of service for the second leg of the trip. The code is used by airlines to identify a fare type and corresponding services applicable to that fare. |
| airticket_leg2_departure_airport | Airlines \| Departure airport \| Leg 2 | Type: **string**IATA code for the departure airport in the second leg of the trip.Example: `FCO` |
| airticket_leg2_departure_time_segment | Airlines \| Departure time segment \| Leg 2 | Type: **enum**The departure time segment for the second leg of the trip. |
| airticket_leg2_departure_ts | Airlines \| Departure time \| Leg 2 | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating the local date and time of the departure for the second leg of the trip. The timezone accepts either the character 'Z' to indicate UTC or a time offset in the format '+02:00' or '-07:30'.Example: `2021-10-04T15:20:44` |
| airticket_leg2_flight_number | Airlines \| Flight number \| Leg 2 | Type: **string**The flight number for the second leg of the trip.Example: `DF3409` |
| airticket_leg2_price | Airlines \| Ticket price \| Leg 2 | Type: **float**The full price of the ticket for the second leg of the trip, before any discounts or vouchers are applied.Example: `49,99` |
| airticket_leg2_stopover | Airlines \| Stopover allowed \| Leg 2 | Type: **bool**Indicates whether a stopover is allowed on the second leg of the trip. |
| airticket_loyalty_program_num | Airlines \| Loyalty account number | Type: **string**The number of the customer that belongs to a loyalty program. Send this datapoint if you're sending 'airticket_loyalty_program_used = true'.Example: `2934-YS` |
| airticket_nr | Airlines \| Ticket number | Type: **string**A 13-digit number that uniquely identifies the issued airline ticket.Example: `8382124676356` |
| airticket_pnr | Airlines \| Passenger name record | Type: **string**The passenger name record for the ticket.Example: `230-U8F16G` |
| airticket_purchase_type | Airlines \| Purchase type | Type: **enum**Indicates the type of purchase in the booking. |
| airticket_third_party_booking | Airlines \| Third-party booking | Type: **bool**Indicates whether the booking was made by a third-party entity. |
## Industry | Digital
| Name | Display Name | Description |
|---|---|---|
| digital_delivery_email | Digital \| Delivery email | Type: **string**The email address where the digital product is supposed to be delivered.Example: `grace.hopper@example.com` |
| digital_event_date | Digital \| Event date | Type: **date**Indicates the date of the event the customer is buying tickets for. The date part of an RFC3339 -encoded UTC timestamp.Example: `2021-10-04T` |
| digital_lifetime_license | Digital \| Lifetime license | Type: **bool**Indicates if the customer has a lifetime subscription with a merchant. |
| digital_product_category | Digital \| Product category | Type: **enum**Indicates the category of digital products purchased by the customer. This datapoint has a less granular categorization than 'digital_product_type'. Use both to be able to write more granular rules. |
| digital_product_type | Digital \| Product type | Type: **enum**Indicates the type of digital products purchased by the customer. This datapoint has a more granular categorization than 'digital_product_category'. Use both to be able to write more granular rules. |
## Industry | Gaming
| Name | Display Name | Description |
|---|---|---|
| gaming_donatable_item | Gaming \| Donatable item | Type: **bool**Specifies if the item purchased is donatable. |
| gaming_locked_country | Gaming \| Locked country availability | Type: **enum**Indicates the country where an item is available. An ISO 3166-1 alpha-2 code. |
| gaming_platform | Gaming \| Platform | Type: **enum**Specifies the platform where the game is available. |
| gaming_product_type | Gaming \| Product type | Type: **enum**Specifies the type of the gaming product being purchased. |
| gaming_tutorial_finished | Gaming \| Tutorial finished | Type: **bool**Indicates if the user finished the tutorial before initiating their first purchase. For some products, a purchase before completing the tutorial may indicate fraudulent activity. In some products, purchases are not available at all before the user completes a tutorial. |
| gaming_user_ranking | Gaming \| User ranking | Type: **string**Indicates the status/ranking the user has reached in a product. In some cases, a lower/non-existent ranking may indicate fraudulent activity.Example: `advanced` |
## Industry | Hotels
| Name | Display Name | Description |
|---|---|---|
| hotels_days_until_stay | Hotels \| Days until stay begins | Type: **int**The number of days until the arrival at the hotel.Example: `25` |
| hotels_final_price | Hotels \| Final price | Type: **float**The final amount that was paid for the stay at the hotel. The final amount is calculated after discounts, or gift cards are applied to the order total.Example: `435,50` |
| hotels_hotel_name | Hotels \| Hotel name | Type: **int**The name of the hotel.Example: `Grand Hotel Saint Lucia` |
| hotels_lodging_days | Hotels \| Lodging days | Type: **int**The number of lodging days at the hotel.Example: `14` |
| hotels_number_of_rooms | Hotels \| Rooms in the booking | Type: **int**The number of rooms in the hotel booking.Example: `1` |
| hotels_payment_type | Hotels \| Payment type | Type: **enum**The payment type used to pay for the stay at the hotel. |
| hotels_room_type | Hotels \| Room type | Type: **string**The type of the hotel room.Example: `Sea view suite` |
| hotels_stay_end_date | Hotels \| Stay end date | Type: **date**The date of the departure from the hotel. The date part of an RFC3339 -encoded UTC timestamp.Example: `2022-01-02Z` |
| hotels_stay_incl_weekend | Hotels \| Stay includes weekend | Type: **bool**Indicates if the stay at the hotel includes at least one weekend. |
| hotels_stay_start_date | Hotels \| Stay start date | Type: **date**The date of the arrival at the hotel. The date part of an RFC3339 -encoded UTC timestamp.Example: `2022-01-02Z` |
## Payment Method | Bank Transfer
| Name | Display Name | Description |
|---|---|---|
| ba_bic | Bank account \| BIC | Type: **string**The BIC (bank identifier code) of the bank account. Up to 11 characters.Example: `DEUTDEDBBER`, `BOFIIE2D` |
| ba_first_name | Bank account \| Account holder first name | Type: **string**The first name of the bank account holder.Example: `Grace` |
| ba_iban | Bank account \| IBAN | Type: **string**IBAN (International bank account number). Up to 34 alphanumeric characters.Example: `IE64BOFI90583812345678` |
| ba_last_name | Bank account \| Account holder last name | Type: **string**The last name of the bank account holder.Example: `Hopper` |
| ba_middle_name | Bank account \| Account holder middle name | Type: **string**The middle name of the bank account holder.Example: `Brewster Murray` |
| ba_name | Bank account \| Account holder full name | Type: **string**The full name of the bank account holder. Send this datapoint if you collect the full name. Otherwise send parts of the name separately in 'ba_first_name', 'ba_middle_name', and 'ba_last_name'.Example: `Grace Brewster Murray Hopper` |
| ba_rtn_num | Bank account \| Routing number | Type: **string**The routing number of the bank account.Example: `122105155` |
| first_payment_day | Open invoice \| First payment day | Type: **int**The day of the month for the first installment.Example: `1` |
| pmt_due_date | Open invoice \| Payment due date | Type: **date**The date on which the invoice payment is due.Example: `2018-01-25Z` |
## Payment Method | Bnpl
| Name | Display Name | Description |
|---|---|---|
| bnpl_active_order | BNPL \| Active order | Type: **bool**Indicates if the customer has an active order with the merchant and is still paying installments on it. |
| bnpl_active_order_count | BNPL \| Active order count | Type: **int**The number of active orders the customer has and is still paying installments on.Example: `2` |
| bnpl_collection_frequency | BNPL \| Collection frequency | Type: **int**Indicates the frequency of installment collections in weeks. Example: if the collection happens once a month, the frequency is defined as every 4 weeks.Example: `4` |
| bnpl_credit_check_performed | BNPL \| Credit check performed | Type: **bool**Indicates if a credit check was performed for the customer. Use 'bnpl_credit_score' if you want to send the credit score also. |
| bnpl_credit_score | BNPL \| Credit score | Type: **int**Indicates the credit score of the customer as assessed by you or a third-party provider. If you receive the result of a check as a range, please send either the lower or the higher value of the range in this datapoint, depending on your analytical needs.Example: `850` |
| bnpl_first_installment_due_date | BNPL \| First installment \| Due date | Type: **timestamp**An RFC3339-encoded UTC timestamp indicating the date on which the first installment is due.Example: `2019-02-04T15:04:05Z` |
| bnpl_installments_count | BNPL \| Installments count | Type: **int**The number of installments the customer chose to split their payment into. If the company provides only one specific number of installments for each purchase, specify it accordingly.Example: `3` |
| bnpl_missed_payment | BNPL \| Missed payment | Type: **bool**Indicates if the customer has ever missed an installment payment on previous orders. |
| bnpl_missed_payment_count | BNPL \| Missed payment count | Type: **int**Indicates the number of times the customer missed installment payments on previous orders.Example: `5` |
| bnpl_order_count | BNPL \| Order count | Type: **int**This count indicates the number of times the customer placed an order with this merchant.Example: `4` |
| bnpl_order_paid_off | BNPL \| Previous order paid off | Type: **bool**Indicates if the customer paid off all the installments of the previous order. If the customer has had more than one order with the merchant, consider the latest order. |
| bnpl_previous_order_value | BNPL \| Previous order value | Type: **float**Indicates the total value of the items in the previous order.Example: `159,99` |
## Payment Method | Cards
| Name | Display Name | Description |
|---|---|---|
| bin_ctry | BIN \| Country | Type: **enum**The country of the credit card issuer. An ISO 3166-1 alpha-2 code. |
| cc_bin | BIN \| Number | Type: **string**The BIN number of the credit card (the first 6 digits).Example: `572543` |
| cc_cardholder | Credit card \| Cardholder full name | Type: **string**The full name of the credit card holder. Send this datapoint if you collect the full name. Otherwise send parts of the name separately in 'cc_first_name', 'cc_middle_name', and 'cc_last_name'.Example: `Grace Brewster Murray Hopper` |
| cc_exp_dt | Credit card \| Expiry date | Type: **string**The expiry date of the credit card in format MMYYYY.Example: `042023` |
| cc_exp_month | Credit card \| Expiry month | Type: **string**The expiry month of the credit card.Example: `10` |
| cc_exp_year | Credit card \| Expiry year | Type: **string**The expiry year of the credit card.Example: `2020` |
| cc_first_name | Credit card \| Cardholder first name | Type: **string**The first name of the credit card holder.Example: `Grace` |
| cc_last_4_dig | Credit card \| Last 4 digits | Type: **string**The last 4 digits of the credit card.Example: `1234` |
| cc_last_name | Credit card \| Cardholder last name | Type: **string**The last name of the credit card holder.Example: `Hopper` |
| cc_middle_name | Credit card \| Cardholder middle name | Type: **string**The middle name of the credit card holder.Example: `Brewster Murray` |
| cc_num_hash | Credit card \| Hashed number | Type: **string**The hashed value of the credit card number. Use this datapoint to send credit card numbers if you cannot send the full card number in 'cc_num'.Example: `6T5tdyWRiuhPuFhupAZYZzFESBYrOiOoYyqO8Zb4WEw=` |
| cc_num_type | Credit card \| Number type | Type: **string**The type of the credit card number.Example: `PAN` |
| cc_num | Credit card number | Type: **string**The credit card number (PAN) of the customer. It gets replaced with a token when it reaches the shufti PCI-compliant environment.Example: `1111222233334444555566` |
| cc_sub_brand | Credit card \| Sub-brand | Type: **string**The sub-brand of the credit card.Example: `Visa Online` |
| cvc | Credit card \| CVC | Type: **string**The CVC (card verification code). The 3 digits on the back of the card.Example: `123` |
| cvc_error_code | Credit card \| CVC error code | Type: **string**The error code captured for the CVC information.Example: `103` |
| cvc_error_message | Credit card \| CVC error message | Type: **string**The error message captured for the CVC information.Example: `CVC is not the right length.` |
| cvc_source | Credit card \| CVC source | Type: **string**The source of the CVC value.Example: `GeneralValidation` |
## Payment Method | General
| Name | Display Name | Description |
|---|---|---|
| pmt_method | Transaction \| Payment method | Type: **enum**The payment method used for the transaction. |
| pmt_method_brand | Transaction \| Payment method brand | Type: **enum**Indicates the specific payment method brand used by the customer. |
## Todo
| Name | Display Name | Description |
|---|---|---|
| cust_tmz_offset | Customer Timezone Offset | Type: **string**TODO.Example: `-0500` |
## AML Screening
| Name | Display Name | Description |
|---|---|---|
| aml_screening | AML Screening | Type: **object**AML screening object for the customer. |
| aml_screening.name | AML Screening Name | Type: **object**Name object used for AML screening checks. |
| aml_screening.name.full_name | AML Screening Full Name | Type: **string**Customer full name used for AML screening.Example: `Sarah Martinez` |
| aml_screening.filters | AML Screening Filters | Type: **string[]**AML filters to apply during screening.Example: `Sanctions`, `PEP` |
## Beneficiary AML Screening
| Name | Display Name | Description |
|---|---|---|
| beneficiary_aml_screening | Beneficiary AML Screening | Type: **object**AML screening object for beneficiary screening. |
| beneficiary_aml_screening.name | Beneficiary AML Screening Name | Type: **object**Name object used for beneficiary AML checks. |
| beneficiary_aml_screening.name.full_name | Beneficiary AML Screening Full Name | Type: **string**Beneficiary full name used for AML screening.Example: `Michael Chen` |
| beneficiary_aml_screening.filters | Beneficiary AML Screening Filters | Type: **string[]**AML filters to apply for beneficiary screening.Example: `Sanctions`, `Adverse Media` |
---
# Complete List of Attributes
Source: https://developers.shuftipro.com/docs/transaction_trust_screening/complete_list_of_attributes.md
{`
.theme-doc-markdown table {
width: 100%;
table-layout: fixed;
}
.theme-doc-markdown table th:nth-child(1),
.theme-doc-markdown table td:nth-child(1) {
width: 18%;
}
.theme-doc-markdown table th:nth-child(2),
.theme-doc-markdown table td:nth-child(2) {
width: 22%;
}
.theme-doc-markdown table th:nth-child(3),
.theme-doc-markdown table td:nth-child(3) {
width: 35%;
}
.theme-doc-markdown table th:nth-child(4),
.theme-doc-markdown table td:nth-child(4) {
width: 25%;
}
`}
Shufti's Transaction Trust Monitoring (TTM) evaluates every transaction by running it against a set of rules you configure. Shufti collects attributes from its user as input in API requests and performs screening.
Attributes are enriched values that Shufti's Transaction Monitoring solution derives from your Datapoints at evaluation time. They are not passed in the API. Instead, TTM computes them automatically. For example, TTM may determine the phone number type (mobile, VoIP, or landline) from a raw phone Datapoint, or calculate a customer's transaction velocity from their transaction history. Attributes allow you to build rules based on richer, contextual signals that go beyond raw input data.
The tables below list all available Attributes. The Depends On column indicates which base Datapoint an Attribute is derived from.
## Attributes
⬇️ Download the complete list of attributes:
- [attributes.json](/files/attributes.json)
- [attributes.csv](/files/attributes.csv)
## Account
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| cust_tof | Account \| Signup and first transaction \| Difference in days | The difference between the signup date and the time of the first transaction on the e-commerce platform. | cust_signup_ts, trans_ts |
| cust_signup_hour | Account \| Signup hour | The hour when the customer signed up for the merchant's e-commerce platform. | cust_signup_ts |
## Account address
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| acct_ad_city_norm | Account address \| City normalized | The normalized form of the city on the account address. | acct_ad_city |
## Airlines
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| airticket_leg1_arrival_airport_calc | Airlines \| Arrival airport calculated \| Leg 1 | IATA code for the arrival airport in the first leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg2_arrival_airport_calc | Airlines \| Arrival airport calculated \| Leg 2 | IATA code for the arrival airport in the second leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg1_arrival_country | Airlines \| Arrival country calculated \| Leg 1 | ISO code for the arrival country in the first leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg2_arrival_country | Airlines \| Arrival country calculated \| Leg 2 | ISO code for the arrival country in the second leg of the trip. | airticket_itinerary_raw_info |
| airticket_buyer_name | Airlines \| Buyer name | The name of the person who booked the ticket. They may or may not be on the list of passengers for this ticket. | |
| airticket_days_to_departure_calculated | Airlines \| Days to departure calculated | Indicates the number of days from purchase to the airplane departure. | airticket_itinerary_raw_info, trans_ts |
| airticket_leg1_departure_airport_calc | Airlines \| Departure airport calculated \| Leg 1 | IATA code for the departure airport in the first leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg2_departure_airport_calc | Airlines \| Departure airport calculated \| Leg 2 | IATA code for the departure airport in the second leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg1_departure_country | Airlines \| Departure country calculated \| Leg 1 | The ISO code for the departure country in the first leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg2_departure_country | Airlines \| Departure country calculated \| Leg 2 | The ISO code for the departure country in the second leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg1_departure_ts_calc | Airlines \| Departure time calculated \| Leg 1 | Indicates the local date and time of the departure for the first leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg2_departure_ts_calc | Airlines \| Departure time calculated \| Leg 2 | Indicates the local date and time of the departure for the second leg of the trip. | airticket_itinerary_raw_info |
| airticket_device_used | Airlines \| Device and app type | Indicates the device and app type used to make the booking. | |
| airticket_domestic_flight | Airlines \| Domestic flight | Indicates whether a one-way flight or a round-trip flight in the airticket are in one country. | airticket_itinerary_raw_info |
| airticket_exchange_ticket_fee | Airlines \| Exchange ticket fee | The fee applied for exchanging an issued ticket. | |
| airticket_exchange_ticket_price | Airlines \| Exchange ticket price | The price of the exchange ticket before any discounts or vouchers are applied. | |
| airticket_extra_services | Airlines \| Extra services ordered | Indicates any extra services that were ordered with the ticket. | |
| airticket_is_flexi | Airlines \| Flexi ticket | Indicates if the ticket purchased is a flexi (open) ticket. Flexi tickets allow the ticket holder to make changes to the departure date and time of the flight after the ticket has been purchased. | |
| airticket_leg1_flight_number_calc | Airlines \| Flight number calculated \| Leg 1 | The flight number for the first leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg2_flight_number_calc | Airlines \| Flight number calculated \| Leg 2 | The flight number for the second leg of the trip. | airticket_itinerary_raw_info |
| airticket_full_route_airport | Airlines \| Full route airport | The full route represented in the itinerary legs with airport IATA codes. | airticket_itinerary_raw_info |
| airticket_full_route_country | Airlines \| Full route country | The full route represented by the ISO country codes based on airport IATA codes included in the itinerary legs. | airticket_itinerary_raw_info |
| airticket_hours_to_departure_calculated | Airlines \| Hours to departure calculated | Indicates the number of hours from purchase to the airplane departure. | airticket_itinerary_raw_info, trans_ts |
| airticket_leg1_carrier_code_calc | Airlines \| IATA carrier code calculated \| Leg 1 | IATA code for the airline for the first leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg2_carrier_code_calc | Airlines \| IATA carrier code calculated \| Leg 2 | IATA code for the airline for the second leg of the trip. | airticket_itinerary_raw_info |
| airticket_invoice_number | Airlines \| Invoice number | The invoice number for the booking transaction. | |
| airticket_ip_airp_dist | Airlines \| IP and Departure Airport \| Distance | The distance in kilometers between the IP address and the departure airport. | airticket_itinerary_raw_info, ip |
| airticket_itinerary_legs_count | Airlines \| Itinerary legs | Flight path information, i.e. the number of legs in the itinerary. | |
| airticket_itinerary_raw_info | Airlines \| Itinerary legs | A string with raw itinerary legs information. | |
| airticket_loyalty_program_used | Airlines \| Loyalty program | Indicates whether the customer belongs to a loyalty program. | |
| airticket_loyalty_program_name | Airlines \| Loyalty program name | Indicates what loyalty program the customer is part of. Send this datapoint if you're sending 'airticket_loyalty_program_used = true'. | |
| airticket_voucher_used | Airlines \| Promo voucher used | Indicates if the ticket was purchased with a promo voucher. | |
| airticket_purchase_details | Airlines \| Purchase details | Indicates the type of services/goods purchased if the purchase doesn't involve an airline ticket. Required if airticket_purchase_type = other_only. | |
| airticket_leg1_stopover_calc | Airlines \| Stopover allowed calculated \| Leg 1 | Indicates whether a stopover is allowed on the first leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg2_stopover_calc | Airlines \| Stopover allowed calculated \| Leg 2 | Indicates whether a stopover is allowed on the second leg of the trip. | airticket_itinerary_raw_info |
| airticket_leg1_class_calc | Airlines \| Ticket class calculated \| Leg 1 | IATA code for the class of service for the first leg of the trip. The code is used by airlines to identify a fare type and corresponding services applicable to that fare. | airticket_itinerary_raw_info |
| airticket_leg2_class_calc | Airlines \| Ticket class calculated \| Leg 2 | IATA code for the class of service for the second leg of the trip. The code is used by airlines to identify a fare type and corresponding services applicable to that fare. | airticket_itinerary_raw_info |
| airticket_is_restricted | Airlines \| Ticket is restricted | Indicates whether the ticket is restricted (non-refundable). | |
| airticket_on_sale | Airlines \| Ticket on sale | Indicates if the ticket was purchased during a sale. | |
| airticket_transaction_type | Airlines \| Transaction type | The type of transaction. | |
## Alternative credit decisions
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| risk_of_default | Alternative credit decisions \| Risk of default | The risk of default produced by the ACD model. | |
## AML Screening
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| aml_screening_reference | AML Screening \| Search Reference | The search_reference from the AML screening API response, used to reference the search case. | aml_screening, trans_id |
| aml_screening_status | AML Screening \| Status | Indicates the result of the AML screening check based on match_status. MATCH if a match was found, NO_MATCH if no match, POTENTIAL_MATCH if a potential match, or UNKNOWN if the status is unknown. | aml_screening, trans_id |
## Amount velocity
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| beneficiary_id_eur_sum_approved_one_day | Amount velocity \| Approved beneficiary ID \| 1 day | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_one_hour | Amount velocity \| Approved beneficiary ID \| 1 hour | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_one_min | Amount velocity \| Approved beneficiary ID \| 1 minute | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_one_month | Amount velocity \| Approved beneficiary ID \| 1 month | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_ten_day | Amount velocity \| Approved beneficiary ID \| 10 days | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_three_month | Amount velocity \| Approved beneficiary ID \| 3 months | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_five_day | Amount velocity \| Approved beneficiary ID \| 5 days | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_five_min | Amount velocity \| Approved beneficiary ID \| 5 minutes | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_six_month | Amount velocity \| Approved beneficiary ID \| 6 months | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_seven_day | Amount velocity \| Approved beneficiary ID \| 7 days | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_approved_seven_hour | Amount velocity \| Approved beneficiary ID \| 7 hours | The sum of approved transaction amounts in EUR with the same beneficiary ID in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_one_day | Amount velocity \| Approved billing address \| 1 day | The sum of approved transaction amounts in EUR with the same billing address in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_one_hour | Amount velocity \| Approved billing address \| 1 hour | The sum of approved transaction amounts in EUR with the same billing address in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_one_min | Amount velocity \| Approved billing address \| 1 minute | The sum of approved transaction amounts in EUR with the same billing address in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_one_month | Amount velocity \| Approved billing address \| 1 month | The sum of approved transaction amounts in EUR with the same billing address in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_ten_day | Amount velocity \| Approved billing address \| 10 days | The sum of approved transaction amounts in EUR with the same billing address in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_three_month | Amount velocity \| Approved billing address \| 3 months | The sum of approved transaction amounts in EUR with the same billing address in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_five_day | Amount velocity \| Approved billing address \| 5 days | The sum of approved transaction amounts in EUR with the same billing address in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_five_min | Amount velocity \| Approved billing address \| 5 minutes | The sum of approved transaction amounts in EUR with the same billing address in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_six_month | Amount velocity \| Approved billing address \| 6 months | The sum of approved transaction amounts in EUR with the same billing address in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_seven_day | Amount velocity \| Approved billing address \| 7 days | The sum of approved transaction amounts in EUR with the same billing address in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_approved_seven_hour | Amount velocity \| Approved billing address \| 7 hours | The sum of approved transaction amounts in EUR with the same billing address in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_one_day | Amount velocity \| Approved customer ID \| 1 day | The sum of approved transaction amounts in EUR with the same customer ID in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_one_hour | Amount velocity \| Approved customer ID \| 1 hour | The sum of approved transaction amounts in EUR with the same customer ID in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_one_min | Amount velocity \| Approved customer ID \| 1 minute | The sum of approved transaction amounts in EUR with the same customer ID in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_one_month | Amount velocity \| Approved customer ID \| 1 month | The sum of approved transaction amounts in EUR with the same customer ID in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_ten_day | Amount velocity \| Approved customer ID \| 10 days | The sum of approved transaction amounts in EUR with the same customer ID in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_three_month | Amount velocity \| Approved customer ID \| 3 months | The sum of approved transaction amounts in EUR with the same customer ID in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_five_day | Amount velocity \| Approved customer ID \| 5 days | The sum of approved transaction amounts in EUR with the same customer ID in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_five_min | Amount velocity \| Approved customer ID \| 5 minutes | The sum of approved transaction amounts in EUR with the same customer ID in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_six_month | Amount velocity \| Approved customer ID \| 6 months | The sum of approved transaction amounts in EUR with the same customer ID in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_seven_day | Amount velocity \| Approved customer ID \| 7 days | The sum of approved transaction amounts in EUR with the same customer ID in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_approved_seven_hour | Amount velocity \| Approved customer ID \| 7 hours | The sum of approved transaction amounts in EUR with the same customer ID in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_one_day | Amount velocity \| Approved email \| 1 day | The sum of approved transaction amounts in EUR with the same email address in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_one_hour | Amount velocity \| Approved email \| 1 hour | The sum of approved transaction amounts in EUR with the same email address in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_one_min | Amount velocity \| Approved email \| 1 minute | The sum of approved transaction amounts in EUR with the same email address in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_one_month | Amount velocity \| Approved email \| 1 month | The sum of approved transaction amounts in EUR with the same email address in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_ten_day | Amount velocity \| Approved email \| 10 days | The sum of approved transaction amounts in EUR with the same email address in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_three_month | Amount velocity \| Approved email \| 3 months | The sum of approved transaction amounts in EUR with the same email address in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_five_day | Amount velocity \| Approved email \| 5 days | The sum of approved transaction amounts in EUR with the same email address in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_five_min | Amount velocity \| Approved email \| 5 minutes | The sum of approved transaction amounts in EUR with the same email address in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_six_month | Amount velocity \| Approved email \| 6 months | The sum of approved transaction amounts in EUR with the same email address in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_seven_day | Amount velocity \| Approved email \| 7 days | The sum of approved transaction amounts in EUR with the same email address in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_approved_seven_hour | Amount velocity \| Approved email \| 7 hours | The sum of approved transaction amounts in EUR with the same email address in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_one_day | Amount velocity \| Approved IP amount \| 1 day | The sum of approved transaction amounts in EUR with the same IP address in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_one_hour | Amount velocity \| Approved IP amount \| 1 hour | The sum of approved transaction amounts in EUR with the same IP address in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_one_min | Amount velocity \| Approved IP amount \| 1 minute | The sum of approved transaction amounts in EUR with the same IP address in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_one_month | Amount velocity \| Approved IP amount \| 1 month | The sum of approved transaction amounts in EUR with the same IP address in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_ten_day | Amount velocity \| Approved IP amount \| 10 days | The sum of approved transaction amounts in EUR with the same IP address in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_three_month | Amount velocity \| Approved IP amount \| 3 months | The sum of approved transaction amounts in EUR with the same IP address in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_five_day | Amount velocity \| Approved IP amount \| 5 days | The sum of approved transaction amounts in EUR with the same IP address in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_five_min | Amount velocity \| Approved IP amount \| 5 minutes | The sum of approved transaction amounts in EUR with the same IP address in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_six_month | Amount velocity \| Approved IP amount \| 6 months | The sum of approved transaction amounts in EUR with the same IP address in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_seven_day | Amount velocity \| Approved IP amount \| 7 days | The sum of approved transaction amounts in EUR with the same IP address in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_approved_seven_hour | Amount velocity \| Approved IP amount \| 7 hours | The sum of approved transaction amounts in EUR with the same IP address in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_one_day | Amount velocity \| Approved payment method \| 1 day | The sum of approved transaction amounts in EUR with the same payment method in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_one_hour | Amount velocity \| Approved payment method \| 1 hour | The sum of approved transaction amounts in EUR with the same payment method in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_one_min | Amount velocity \| Approved payment method \| 1 minute | The sum of approved transaction amounts in EUR with the same payment method in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_one_month | Amount velocity \| Approved payment method \| 1 month | The sum of approved transaction amounts in EUR with the same payment method in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_ten_day | Amount velocity \| Approved payment method \| 10 days | The sum of approved transaction amounts in EUR with the same payment method in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_three_month | Amount velocity \| Approved payment method \| 3 months | The sum of approved transaction amounts in EUR with the same payment method in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_five_day | Amount velocity \| Approved payment method \| 5 days | The sum of approved transaction amounts in EUR with the same payment method in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_five_min | Amount velocity \| Approved payment method \| 5 minutes | The sum of approved transaction amounts in EUR with the same payment method in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_six_month | Amount velocity \| Approved payment method \| 6 months | The sum of approved transaction amounts in EUR with the same payment method in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_seven_day | Amount velocity \| Approved payment method \| 7 days | The sum of approved transaction amounts in EUR with the same payment method in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_approved_seven_hour | Amount velocity \| Approved payment method \| 7 hours | The sum of approved transaction amounts in EUR with the same payment method in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_one_day | Amount velocity \| Approved shipping address \| 1 day | The sum of approved transaction amounts in EUR with the same shipping address in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_one_hour | Amount velocity \| Approved shipping address \| 1 hour | The sum of approved transaction amounts in EUR with the same shipping address in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_one_min | Amount velocity \| Approved shipping address \| 1 minute | The sum of approved transaction amounts in EUR with the same shipping address in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_one_month | Amount velocity \| Approved shipping address \| 1 month | The sum of approved transaction amounts in EUR with the same shipping address in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_ten_day | Amount velocity \| Approved shipping address \| 10 days | The sum of approved transaction amounts in EUR with the same shipping address in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_three_month | Amount velocity \| Approved shipping address \| 3 months | The sum of approved transaction amounts in EUR with the same shipping address in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_five_day | Amount velocity \| Approved shipping address \| 5 days | The sum of approved transaction amounts in EUR with the same shipping address in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_five_min | Amount velocity \| Approved shipping address \| 5 minutes | The sum of approved transaction amounts in EUR with the same shipping address in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_six_month | Amount velocity \| Approved shipping address \| 6 months | The sum of approved transaction amounts in EUR with the same shipping address in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_seven_day | Amount velocity \| Approved shipping address \| 7 days | The sum of approved transaction amounts in EUR with the same shipping address in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_approved_seven_hour | Amount velocity \| Approved shipping address \| 7 hours | The sum of approved transaction amounts in EUR with the same shipping address in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_one_day | Amount velocity \| Approved smart device ID \| 1 day | The sum of approved transaction amounts in EUR with the same smart device ID in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_one_hour | Amount velocity \| Approved smart device ID \| 1 hour | The sum of approved transaction amounts in EUR with the same smart device ID in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_one_min | Amount velocity \| Approved smart device ID \| 1 minute | The sum of approved transaction amounts in EUR with the same smart device ID in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_one_month | Amount velocity \| Approved smart device ID \| 1 month | The sum of approved transaction amounts in EUR with the same smart device ID in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_ten_day | Amount velocity \| Approved smart device ID \| 10 days | The sum of approved transaction amounts in EUR with the same smart device ID in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_three_month | Amount velocity \| Approved smart device ID \| 3 months | The sum of approved transaction amounts in EUR with the same smart device ID in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_five_day | Amount velocity \| Approved smart device ID \| 5 days | The sum of approved transaction amounts in EUR with the same smart device ID in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_five_min | Amount velocity \| Approved smart device ID \| 5 minutes | The sum of approved transaction amounts in EUR with the same smart device ID in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_six_month | Amount velocity \| Approved smart device ID \| 6 months | The sum of approved transaction amounts in EUR with the same smart device ID in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_seven_day | Amount velocity \| Approved smart device ID \| 7 days | The sum of approved transaction amounts in EUR with the same smart device ID in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_approved_seven_hour | Amount velocity \| Approved smart device ID \| 7 hours | The sum of approved transaction amounts in EUR with the same smart device ID in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_one_day | Amount velocity \| Beneficiary ID \| 1 day | The sum of all transaction amounts in EUR with the same beneficiary ID in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_one_hour | Amount velocity \| Beneficiary ID \| 1 hour | The sum of all transaction amounts in EUR with the same beneficiary ID in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_one_min | Amount velocity \| Beneficiary ID \| 1 minute | The sum of all transaction amounts in EUR with the same beneficiary ID in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_one_month | Amount velocity \| Beneficiary ID \| 1 month | The sum of all transaction amounts in EUR with the same beneficiary ID in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_ten_day | Amount velocity \| Beneficiary ID \| 10 days | The sum of all transaction amounts in EUR with the same beneficiary ID in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_three_month | Amount velocity \| Beneficiary ID \| 3 months | The sum of all transaction amounts in EUR with the same beneficiary ID in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_five_day | Amount velocity \| Beneficiary ID \| 5 days | The sum of all transaction amounts in EUR with the same beneficiary ID in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_five_min | Amount velocity \| Beneficiary ID \| 5 minutes | The sum of all transaction amounts in EUR with the same beneficiary ID in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_six_month | Amount velocity \| Beneficiary ID \| 6 months | The sum of all transaction amounts in EUR with the same beneficiary ID in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_seven_day | Amount velocity \| Beneficiary ID \| 7 days | The sum of all transaction amounts in EUR with the same beneficiary ID in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| beneficiary_id_eur_sum_seven_hour | Amount velocity \| Beneficiary ID \| 7 hours | The sum of all transaction amounts in EUR with the same beneficiary ID in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | beneficiary_id, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_one_day | Amount velocity \| Billing address \| 1 day | The sum of all transaction amounts in EUR with the same billing address in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_one_hour | Amount velocity \| Billing address \| 1 hour | The sum of all transaction amounts in EUR with the same billing address in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_one_min | Amount velocity \| Billing address \| 1 minute | The sum of all transaction amounts in EUR with the same billing address in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_one_month | Amount velocity \| Billing address \| 1 month | The sum of all transaction amounts in EUR with the same billing address in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_ten_day | Amount velocity \| Billing address \| 10 days | The sum of all transaction amounts in EUR with the same billing address in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_three_month | Amount velocity \| Billing address \| 3 months | The sum of all transaction amounts in EUR with the same billing address in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_five_day | Amount velocity \| Billing address \| 5 days | The sum of all transaction amounts in EUR with the same billing address in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_five_min | Amount velocity \| Billing address \| 5 minutes | The sum of all transaction amounts in EUR with the same billing address in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_six_month | Amount velocity \| Billing address \| 6 months | The sum of all transaction amounts in EUR with the same billing address in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_seven_day | Amount velocity \| Billing address \| 7 days | The sum of all transaction amounts in EUR with the same billing address in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| bill_ad_norm_cnct_eur_sum_seven_hour | Amount velocity \| Billing address \| 7 hours | The sum of all transaction amounts in EUR with the same billing address in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | bill_ad_line1, bill_ad_zip, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_one_day | Amount velocity \| Customer ID \| 1 day | The sum of all transaction amounts in EUR with the same customer ID in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_one_hour | Amount velocity \| Customer ID \| 1 hour | The sum of all transaction amounts in EUR with the same customer ID in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_one_min | Amount velocity \| Customer ID \| 1 minute | The sum of all transaction amounts in EUR with the same customer ID in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_one_month | Amount velocity \| Customer ID \| 1 month | The sum of all transaction amounts in EUR with the same customer ID in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_ten_day | Amount velocity \| Customer ID \| 10 days | The sum of all transaction amounts in EUR with the same customer ID in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_three_month | Amount velocity \| Customer ID \| 3 months | The sum of all transaction amounts in EUR with the same customer ID in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_five_day | Amount velocity \| Customer ID \| 5 days | The sum of all transaction amounts in EUR with the same customer ID in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_five_min | Amount velocity \| Customer ID \| 5 minutes | The sum of all transaction amounts in EUR with the same customer ID in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_six_month | Amount velocity \| Customer ID \| 6 months | The sum of all transaction amounts in EUR with the same customer ID in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_seven_day | Amount velocity \| Customer ID \| 7 days | The sum of all transaction amounts in EUR with the same customer ID in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_id_eur_sum_seven_hour | Amount velocity \| Customer ID \| 7 hours | The sum of all transaction amounts in EUR with the same customer ID in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_one_day | Amount velocity \| Email \| 1 day | The sum of all transaction amounts in EUR with the same email address in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_one_hour | Amount velocity \| Email \| 1 hour | The sum of all transaction amounts in EUR with the same email address in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_one_min | Amount velocity \| Email \| 1 minute | The sum of all transaction amounts in EUR with the same email address in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_one_month | Amount velocity \| Email \| 1 month | The sum of all transaction amounts in EUR with the same email address in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_ten_day | Amount velocity \| Email \| 10 days | The sum of all transaction amounts in EUR with the same email address in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_three_month | Amount velocity \| Email \| 3 months | The sum of all transaction amounts in EUR with the same email address in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_five_day | Amount velocity \| Email \| 5 days | The sum of all transaction amounts in EUR with the same email address in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_five_min | Amount velocity \| Email \| 5 minutes | The sum of all transaction amounts in EUR with the same email address in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_six_month | Amount velocity \| Email \| 6 months | The sum of all transaction amounts in EUR with the same email address in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_seven_day | Amount velocity \| Email \| 7 days | The sum of all transaction amounts in EUR with the same email address in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_eur_sum_seven_hour | Amount velocity \| Email \| 7 hours | The sum of all transaction amounts in EUR with the same email address in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_email, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_one_day | Amount velocity \| IP amount \| 1 day | The sum of all transaction amounts in EUR with the same IP address in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_one_hour | Amount velocity \| IP amount \| 1 hour | The sum of all transaction amounts in EUR with the same IP address in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_one_min | Amount velocity \| IP amount \| 1 minute | The sum of all transaction amounts in EUR with the same IP address in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_one_month | Amount velocity \| IP amount \| 1 month | The sum of all transaction amounts in EUR with the same IP address in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_ten_day | Amount velocity \| IP amount \| 10 days | The sum of all transaction amounts in EUR with the same IP address in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_three_month | Amount velocity \| IP amount \| 3 months | The sum of all transaction amounts in EUR with the same IP address in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_five_day | Amount velocity \| IP amount \| 5 days | The sum of all transaction amounts in EUR with the same IP address in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_five_min | Amount velocity \| IP amount \| 5 minutes | The sum of all transaction amounts in EUR with the same IP address in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_six_month | Amount velocity \| IP amount \| 6 months | The sum of all transaction amounts in EUR with the same IP address in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_seven_day | Amount velocity \| IP amount \| 7 days | The sum of all transaction amounts in EUR with the same IP address in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ip_eur_sum_seven_hour | Amount velocity \| IP amount \| 7 hours | The sum of all transaction amounts in EUR with the same IP address in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ip, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_one_day | Amount velocity \| Payment method \| 1 day | The sum of all transaction amounts in EUR with the same payment method in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_one_hour | Amount velocity \| Payment method \| 1 hour | The sum of all transaction amounts in EUR with the same payment method in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_one_min | Amount velocity \| Payment method \| 1 minute | The sum of all transaction amounts in EUR with the same payment method in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_one_month | Amount velocity \| Payment method \| 1 month | The sum of all transaction amounts in EUR with the same payment method in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_ten_day | Amount velocity \| Payment method \| 10 days | The sum of all transaction amounts in EUR with the same payment method in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_three_month | Amount velocity \| Payment method \| 3 months | The sum of all transaction amounts in EUR with the same payment method in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_five_day | Amount velocity \| Payment method \| 5 days | The sum of all transaction amounts in EUR with the same payment method in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_five_min | Amount velocity \| Payment method \| 5 minutes | The sum of all transaction amounts in EUR with the same payment method in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_six_month | Amount velocity \| Payment method \| 6 months | The sum of all transaction amounts in EUR with the same payment method in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_seven_day | Amount velocity \| Payment method \| 7 days | The sum of all transaction amounts in EUR with the same payment method in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| funding_source_eur_sum_seven_hour | Amount velocity \| Payment method \| 7 hours | The sum of all transaction amounts in EUR with the same payment method in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, client_id, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_one_day | Amount velocity \| Shipping address \| 1 day | The sum of all transaction amounts in EUR with the same shipping address in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_one_hour | Amount velocity \| Shipping address \| 1 hour | The sum of all transaction amounts in EUR with the same shipping address in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_one_min | Amount velocity \| Shipping address \| 1 minute | The sum of all transaction amounts in EUR with the same shipping address in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_one_month | Amount velocity \| Shipping address \| 1 month | The sum of all transaction amounts in EUR with the same shipping address in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_ten_day | Amount velocity \| Shipping address \| 10 days | The sum of all transaction amounts in EUR with the same shipping address in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_three_month | Amount velocity \| Shipping address \| 3 months | The sum of all transaction amounts in EUR with the same shipping address in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_five_day | Amount velocity \| Shipping address \| 5 days | The sum of all transaction amounts in EUR with the same shipping address in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_five_min | Amount velocity \| Shipping address \| 5 minutes | The sum of all transaction amounts in EUR with the same shipping address in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_six_month | Amount velocity \| Shipping address \| 6 months | The sum of all transaction amounts in EUR with the same shipping address in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_seven_day | Amount velocity \| Shipping address \| 7 days | The sum of all transaction amounts in EUR with the same shipping address in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| ship_ad_line1_zip_cnct_eur_sum_seven_hour | Amount velocity \| Shipping address \| 7 hours | The sum of all transaction amounts in EUR with the same shipping address in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_one_day | Amount velocity \| Smart device ID \| 1 day | The sum of all transaction amounts in EUR with the same smart device ID in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_one_hour | Amount velocity \| Smart device ID \| 1 hour | The sum of all transaction amounts in EUR with the same smart device ID in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_one_min | Amount velocity \| Smart device ID \| 1 minute | The sum of all transaction amounts in EUR with the same smart device ID in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_one_month | Amount velocity \| Smart device ID \| 1 month | The sum of all transaction amounts in EUR with the same smart device ID in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_ten_day | Amount velocity \| Smart device ID \| 10 days | The sum of all transaction amounts in EUR with the same smart device ID in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_three_month | Amount velocity \| Smart device ID \| 3 months | The sum of all transaction amounts in EUR with the same smart device ID in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_five_day | Amount velocity \| Smart device ID \| 5 days | The sum of all transaction amounts in EUR with the same smart device ID in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_five_min | Amount velocity \| Smart device ID \| 5 minutes | The sum of all transaction amounts in EUR with the same smart device ID in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_six_month | Amount velocity \| Smart device ID \| 6 months | The sum of all transaction amounts in EUR with the same smart device ID in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_seven_day | Amount velocity \| Smart device ID \| 7 days | The sum of all transaction amounts in EUR with the same smart device ID in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
| device_id_smart_eur_sum_seven_hour | Amount velocity \| Smart device ID \| 7 hours | The sum of all transaction amounts in EUR with the same smart device ID in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, device_id_smart, slr_crncy, trans_amt, trans_currency, trans_ts |
## Average distance
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| ip_bill_ship_avg_dist | Average distance \| IP, billing, and shipping address | The attribute specifies an average distance between the IP and the billing address, IP and the shipping address, and billing and shipping addresses. The attribute uses 'Billing and shipping address \| Postal code distance' if it exists as a default. If it's not available, it uses 'Billing and shipping address \| City distance'. The expected value is in kilometres. | bill_ad_city, bill_ad_ctry, bill_ad_state, bill_ad_zip, ip, ship_ad_city, ship_ad_ctry, ship_ad_state, ship_ad_zip |
## Bank account
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| ba_ctry | Bank account \| Bank country code | The country code of the bank. | ba_iban |
| ba_code | Bank account \| Basic code | The basic bank account code. | ba_iban |
| ba_bban | Bank account \| Basic number | The basic bank account number, a subset of an IBAN. | ba_iban |
| ba_branch | Bank account \| Branch code | The branch code of the customer's bank account. | ba_iban |
| ba_num | Bank account \| Number | The bank account number of the customer. | ba_iban |
## Banking
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| cust_id_deposit_eur_sum_one_day | Banking \| Deposit EUR sum \| 1 day | Sum of deposit EUR amounts for this customer in one day (deposit composite key). | trans_ts, transaction_type |
| cust_id_deposit_eur_sum_one_month | Banking \| Deposit EUR sum \| 1 month | Sum of deposit EUR amounts for this customer in one month. | trans_ts, transaction_type |
| is_first_withdrawal | Banking \| Is first withdrawal | True when this is a withdrawal and the customer has no prior withdrawals in the six-month velocity window. | trans_ts, transaction_type |
| minutes_since_last_deposit | Banking \| Minutes since last deposit | Approximate minutes since the last deposit in the recent window; 999 when no recent deposit (proxy for rapid deposit-withdrawal). | trans_ts, transaction_type |
| cust_id_withdrawal_eur_sum_one_day | Banking \| Withdrawal EUR sum \| 1 day | Sum of withdrawal EUR amounts for this customer in one day. | trans_ts, transaction_type |
| cust_id_withdrawal_eur_sum_one_month | Banking \| Withdrawal EUR sum \| 1 month | Sum of withdrawal EUR amounts for this customer in one month. | trans_ts, transaction_type |
| withdrawal_minus_deposit_eur_one_day | Banking \| Withdrawal minus deposit EUR \| 1 day | cust_id_withdrawal_eur_sum_one_day minus cust_id_deposit_eur_sum_one_day. | trans_ts, transaction_type |
## Beneficiary
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| beneficiary_aml_screening_reference | Beneficiary \| AML Screening \| Search Reference | The search_reference from the AML screening API response for the beneficiary, used to reference the search case. | beneficiary_aml_screening, trans_id |
| beneficiary_aml_screening_status | Beneficiary \| AML Screening \| Status | Indicates the result of the AML screening check for the beneficiary based on match_status. MATCH if a match was found, NO_MATCH if no match, POTENTIAL_MATCH if a potential match, UNKNOWN if the status is unknown, ERROR if the API call failed, or TIMEOUT if the request timed out. | beneficiary_aml_screening, trans_id |
| beneficiary_ba_name | Beneficiary \| Bank account \| Account holder full name | The full name of the beneficiary's bank account holder. Send this datapoint if you collect the full name. Otherwise send parts of the name separately in 'beneficiary_ba_first_name', 'beneficiary_ba_middle_name', and 'beneficiary_ba_last_name'. | |
| beneficiary_ba_bic | Beneficiary \| Bank account \| BIC | The BIC (bank identifier code) of the beneficiary's bank account. Up to 11 characters. | |
| beneficiary_ba_iban | Beneficiary \| Bank account \| IBAN | IBAN (International bank account number) of the beneficiary's bank account. Up to 34 alphanumeric characters. | |
| beneficiary_ba_rtn_num | Beneficiary \| Bank account \| Routing number | The routing number of the beneficiary's bank account. | |
| beneficiary_bin_brand | Beneficiary \| BIN \| Brand | The credit card brand for the beneficiary's payment method. | |
| beneficiary_bin_ctry | Beneficiary \| BIN \| Country | The country of the credit card issuer for the beneficiary's payment method. An ISO 3166-1 alpha-2 code. | |
| beneficiary_dob | Beneficiary \| Date of birth | The date of birth of the beneficiary. | |
| beneficiary_email | Beneficiary \| Email | The email address of the beneficiary. | |
| beneficiary_name | Beneficiary \| Full name | The full name of the beneficiary. | |
| beneficiary_id | Beneficiary \| ID as per merchant | The ID of the beneficiary in the merchant's database. | |
| beneficiary_nationality | Beneficiary \| Nationality | The nationality of the beneficiary. | |
| beneficiary_phone | Beneficiary \| Phone | The phone number of the beneficiary. | |
## Best match
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| ip_bill_match_best | Best match \| IP and billing address | This attribute compares the geolocation of IP and billing address to find the best possible match between them. | bill_ad_city, bill_ad_ctry, bill_ad_zip, ip |
| ip_ship_match_best | Best match \| IP and shipping address | This attribute compares the IP geolocation and the shipping address to find the best possible match between them. | ip, ship_ad_city, ship_ad_ctry, ship_ad_zip |
| ip_bill_ship_match_best | Best match \| IP, billing, and shipping address | This attribute compares the IP geolocation, the billing and shipping address to find the best possible match between them. | bill_ad_city, bill_ad_ctry, bill_ad_zip, ip, ship_ad_city, ship_ad_ctry, ship_ad_zip |
## Billing address
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| str_crp_bill_ad_l2 | Billing address \| Apartment number \| Bogus | Indicates whether the apartment or flat number information on the billing address is bogus. | bill_ad_line2 |
| bill_line2_format | Billing address \| Apartment number format | The writing and capitalization format of the apartment or flat number on the billing address. | bill_ad_line2 |
| bill_ad_line2_norm | Billing address \| Apartment number normalized | The normalized value of the apartment or flat number on the billing address. | bill_ad_line2 |
| bill_city_format | Billing address \| City format | The writing format of the city on the billing address. | bill_ad_city |
| bill_ad_city_norm | Billing address \| City normalized | The normalized form of the city on the billing address. | bill_ad_city |
| bill_city_pop | Billing address \| City population | The population of the city on the billing address. | bill_ad_city, bill_ad_ctry, bill_ad_state |
| bill_ad_ctry_crncy | Billing address \| Country currency | The currency of the country on the billing address. | bill_ad_ctry |
| bill_ad_ctry_gdp | Billing address \| Country GDP | The GDP (Gross Domestic Product) of the country on the billing address. The expected value is in US dollars. | bill_ad_ctry |
| bill_ad_ctry_gdp_per_capita | Billing address \| Country GDP per capita | The GDP (Gross Domestic Product) per capita of the country on the billing address. The expected value is in US dollars. | bill_ad_ctry |
| bill_ad_ctry_pop | Billing address \| Country population | The population of the country on the billing address. | bill_ad_ctry |
| bill_ad_ctry_rgn | Billing address \| Country region | The world region of the country on the billing address. | bill_ad_ctry |
| bill_ad_ctry_total_km2 | Billing address \| Country size in km2 | The size of the country on the billing address in square kilometers. | bill_ad_ctry |
| bill_fl | Billing address \| Customer full name | The full name of the customer on the billing address. This is an attribute calculated by Shufti (as opposed to the datapoint 'bill_ad_name' you can send in your API request). | bill_ad_first_name, bill_ad_last_name, bill_ad_middle_name, bill_ad_name |
| bill_fl_norm | Billing address \| Customer full name normalized | The normalized value of the customer's full name on the billing address. Normalization in this case removes unicode and special characters (an apostrophe is removed, 'ü' becomes 'u', etc.) and spells all the names in lower case. | bill_ad_first_name, bill_ad_last_name, bill_ad_middle_name, bill_ad_name |
| bill_fl_ordered | Billing address \| Customer full name ordered alphabetically | The full name of the customer on the billing address in alphabetical order. | bill_ad_first_name, bill_ad_last_name, bill_ad_middle_name, bill_ad_name |
| bill_f_l_format | Billing address \| Full name format | The writing and capitalization format of the customer's full name on the billing address. | bill_ad_first_name, bill_ad_last_name |
| bill_ad_zip_less1 | Billing address \| Postal code shortened by 1 | The postal code on the billing address without the last character. | bill_ad_zip |
| bill_ad_zip_less2 | Billing address \| Postal code shortened by 2 | The postal code on the billing address without the last two characters. | bill_ad_zip |
| bill_ad_zip_less3 | Billing address \| Postal code shortened by 3 | The postal code on the billing address without the last three characters. | bill_ad_zip |
| str_crp_bill_ad_l1 | Billing address \| Street and building number \| Bogus | Indicates whether the street and building number information on the billing address is bogus. | bill_ad_line1 |
| bill_line1_format | Billing address \| Street and building number format | The writing and capitalization format of the street and building number on the billing address. | bill_ad_line1 |
| bill_ad_line1_norm | Billing address \| Street and building number normalized | The normalized value of the street and building number on the billing address. | bill_ad_line1 |
| bill_ad_line1_zip_cnct | Billing address \| Street, building number, postal code concatenated | The normalized and concatenated values of the street and building number on the billing address together with the postal code. The attribute is useful if you want to create a blacklist. It helps you see a specific address without upper-case letters or spaces, making it easier to find and compare two identical addresses. | bill_ad_line1, bill_ad_zip |
| bill_ad_line1_zip_last_name_cnct | Billing address \| Street, building number, postal code, last name concatenated | The concatenated values of the street and building number of the billing address together with the postal code and the available last name (customer, shipping, or billing). Used for linking. | bill_ad_last_name, bill_ad_line1, bill_ad_zip, cust_last_name, ship_ad_last_name |
## Billing address normalized
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| bill_ad_norm_cnct | Billing address normalized \| Street, building number, postal code concatenated | The normalized and concatenated values of the street and building number on the billing address together with the postal code. The attribute is useful if you want to create a decline list. It helps you see a specific address without upper-case letters or spaces, making it easier to find and compare two identical addresses. | bill_ad_line1, bill_ad_zip |
| bill_ad_norm_last_name_cnct | Billing address normalized \| Street, building number, postal code, last name concatenated | The normalized and concatenated values of the street and building number of the billing address together with the postal code and the available last name (customer, shipping, or billing). Used for linking. | bill_ad_last_name, bill_ad_line1, bill_ad_zip, cust_last_name, ship_ad_last_name |
## Billing and shipping address
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| bill_ship_city_dist | Billing and shipping address \| City distance | The distance in kilometers between the city on the billing address and the city on the shipping address. | bill_ad_city, bill_ad_ctry, bill_ad_state, ship_ad_city, ship_ad_ctry, ship_ad_state |
| bill_ship_ctry_cor | Billing and shipping address \| Country corridor | The attribute combines the ISO 3166-1 alpha-2 codes of the billing and shipping country and returns the country-level geographical corridor of the two. | bill_ad_ctry, ship_ad_ctry |
| bill_ship_ctry_gdp_diff | Billing and shipping address \| Country GDP difference | The GDP (Gross Domestic Product) difference between the countries on the billing and shipping addresses. A negative number indicates that the country on the shipping address is poorer than the country on the billing address. The lower the value, the worse the ratio. The expected value is in US dollars. | bill_ad_ctry, ship_ad_ctry |
| bill_ship_ctry_gdp_per_capita_diff | Billing and shipping address \| Country GDP per capita difference | The GDP per capita difference between the countries on the billing and shipping addresses. A negative number indicates that the country on the shipping address is poorer than the country on the billing address. The lower the value, the worse the ratio. The expected value is in US dollars. | bill_ad_ctry, ship_ad_ctry |
| bill_ship_zip_dist | Billing and shipping address \| Postal code distance | The distance in kilometers between the postal code on the billing address and the postal code on the shipping address. | bill_ad_ctry, bill_ad_zip, ship_ad_ctry, ship_ad_zip |
| bill_ship_ctry_rgn_cor | Billing and shipping address \| Region corridor | The attribute combines the regions of the billing and shipping country ('Billing address \| Country region' and 'Shipping address \| Country region') and returns the region-level geographical corridor of the two. | bill_ad_ctry, ship_ad_ctry |
## BIN
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| bin_brand | BIN \| Brand | The credit card brand. | bin_ctry, cc_bin |
| bin_category | BIN \| Brand category | The category of the credit card brand. | bin_ctry, cc_bin |
| is_commercial | BIN \| Card is Commercial | Specifies if the card qualifies as 'Commercial' under PSD2. 'true' if the card is a Commercial one and 'false' if not. | bin_ctry, cc_bin |
| bin_ctry_gdp | BIN \| Country GDP | The GDP (Gross Domestic Product) of the BIN country. The expected value is in US dollars. | bin_ctry, cc_bin |
| bin_ctry_gdp_per_capita | BIN \| Country GDP per capita | The GDP (Gross Domestic Product) per capita of the BIN country. The expected value is in US dollars. | bin_ctry, cc_bin |
| is_eea_bin_ctry | BIN \| Country is in EEA | Specifies if the BIN country is one of the EEA countries under PSD2. 'true' if the country is in the EEA and 'false' if not. | bin_ctry, cc_bin |
| bin_ctry_rgn | BIN \| Country region | The world region of the BIN country. | bin_ctry, cc_bin |
| is_risky_bin | BIN \| Is risky | Specifies if the BIN is in our list of risky BINs ('true' if premium or standard, 'false' if prepaid). | bin_ctry, cc_bin |
| bin_issuer | BIN \| Issuer | The issuer of the credit card. | bin_ctry, cc_bin |
| bin_risk_cat | BIN \| Risk category | The category of the credit card showing the potential risk associated with the card. | bin_ctry, cc_bin |
| bin_type | BIN \| Type | The type of the credit card. | bin_ctry, cc_bin |
## BIN and billing country
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| bin_bill_ctry_cor | BIN and billing country \| Country corridor | The attribute combines the ISO 3166-1 alpha-2 codes of the credit card BIN country and the country on the billing address. It returns the country-level geographical corridor of the two. | bill_ad_ctry, bin_ctry, cc_bin |
| bin_bill_gdp_per_capita_diff | BIN and billing country \| Country GDP per capita difference | The GDP per capita difference between the credit card BIN country and the country on the billing address. The expected value is in US dollars. | bill_ad_ctry, bin_ctry, cc_bin |
| bin_bill_ctry_rgn_cor | BIN and billing country \| Region corridor | The attribute combines the regions of the credit card BIN country and the country on the billing address and returns the region-level geographical corridor of the two. | bill_ad_ctry, bin_ctry, cc_bin |
## BIN and IP country
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| bin_ip_gdp_per_capita_diff | BIN and IP country \| Country GDP per capita difference | The GDP per capita difference between the credit card BIN country and the IP country. The expected value is in US dollars. | bin_ctry, cc_bin, ip |
| bin_ip_ctry_rgn_cor | BIN and IP country \| Region corridor | The attribute combines the regions of the credit card BIN country and the IP country ('BIN \| Country region' and 'IP \| Country region'). It returns the region-level geographical corridor of the two. | bin_ctry, cc_bin, ip |
## BIN and merchant country
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| bin_slr_ctry_cor | BIN and merchant country \| Country corridor | The attribute combines the ISO 3166-1 alpha-2 codes of the credit card BIN country and the country where the merchant operates. It returns the country-level geographical corridor of the two. | bin_ctry, cc_bin, slr_ctry |
| bin_slr_ctry_rgn_cor | BIN and merchant country \| Region corridor | The attribute combines the regions of the credit card BIN country and the country where the merchant operates. It returns the region-level geographical corridor of the two. | bin_ctry, cc_bin, slr_ctry |
## BIN and shipping country
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| bin_ship_ctry_cor | BIN and shipping country \| Country corridor | The attribute combines the ISO 3166-1 alpha-2 codes of the credit card BIN country and the country on the shipping address. It returns the country-level geographical corridor of the two. | bin_ctry, cc_bin, ship_ad_ctry |
| bin_ship_gdp_per_capita_diff | BIN and shipping country \| Country GDP per capita difference | The GDP per capita difference between the credit card BIN country and the country on the shipping address. The expected value is in US dollars. | bin_ctry, cc_bin, ship_ad_ctry |
| bin_ship_ctry_rgn_cor | BIN and shipping country \| Region corridor | The attribute combines the regions of the credit card BIN country and the country on the shipping address ('Shipping address \| Country region' and 'BIN \| Country region'). It returns the region-level geographical corridor of the two. | bin_ctry, cc_bin, ship_ad_ctry |
## Browser
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| brwsr_hour | Browser \| Hour | The hour detected from the browser timestamp. The value is between 0 and 24, -99 means the value is not available. | brwsr_ts |
| brwsr_os_time_diff | Browser \| OS \| Time difference | The difference between the time in the customer's browser and the time of the customer's OS. | brwsr_ts, os_ts |
| brwsr_daytime | Browser \| Time of day | The time of the day detected from the browser timestamp. | brwsr_ts |
## Client
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| client_id | Client \| ID assigned by Fraugster | Client IDs are assigned by Shufti during the integration process. By definition, they are equal to the API user that customers send in order to authenticate. Client IDs are always lower case. | |
## Cold score
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| cold_norm_score | Cold score \| Normalized | The cold score after normalization. A decimal number between 0 and 1. | |
## Credit card
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| cc_bin_last_4 | Credit card \| BIN and last 4 digits | Represents the combination of the BIN and the last 4 digits of the credit card number. The format of the calculated value includes a hyphen between the BIN and the 4 digits. This attribute is calculated for 6-digit BINs only. | cc_bin, cc_last_4_dig |
| cc_num_frg_token | Credit card \| Encrypted number | A concatenation of the BIN, a salted hash of the credit card number and its last 4 digits. The first 6 digits are the BIN and the last 4 digits are actual last 4 digits of the credit card number. | |
| cc_months_to_exp | Credit card \| Validity \| Remaining months | The number of months until the credit card expires. | cc_exp_dt, cc_exp_month, cc_exp_year, trans_ts |
| cc_months_to_exp_h_l | Credit card \| Validity \| Remaining months | The number of months until the credit card expires. | cc_exp_dt, cc_exp_month, cc_exp_year, trans_ts |
## Credit risk
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| credit_risk_rating | Credit risk \| Rating | The credit risk rating produced by the ACD model. | |
## Customer
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| cust_account_balance | Customer \| Account balance | The balance of the customer's account in the merchant's database. | |
| cust_age_y | Customer \| Age in years | The age of the customer in years. Relies on the customer's date of birth 'cust_dob' to be calculated. | cust_dob, trans_ts |
| bill_name_ethn_v3_good | Customer \| Billing address name ethnicities | The most probable ethnicities of the name on the billing address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| bill_name_ethn_v3_good_ctry | Customer \| Billing address name ethnicities \| Related countries | Countries related to the most probable ethnicities of the name on the billing address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| bill_name_ethn_v3_best | Customer \| Billing address name ethnicity | The most probable ethnicity of the name on the billing address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| bill_name_ethn_v3_best_ctry | Customer \| Billing address name ethnicity \| Related countries | Countries related to the most probable ethnicity of the name on the billing address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| name_ethn_v3_good_ctry | Customer \| Countries related to ethnicities | The countries that are related to the most probable ethnicities of the customer. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| name_ethn_v3_best_ctry | Customer \| Countries related to ethnicity | The countries that are related to the most probable ethnicity of the customer. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| days_since_last_login | Customer \| Days since last login | Specifies how many days ago the customer last logged in to their account. | cust_last_login_ts, trans_ts |
| days_since_signup | Customer \| Days since signup date | The number of days between the date a customer signed up to the merchant's e-commerce platform and the date they made a particular transaction. | cust_signup_ts, trans_ts |
| str_crp_eun | Customer \| Email \| Bogus | Indicates whether the email username of the customer is bogus. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| cust_email_norm | Customer \| Email address normalized | The normalized version of the customer's email address. Normalization may include standardizing the case, removing unnecessary spaces, etc. | cust_email |
| str_crp_fname | Customer \| First name \| Bogus | Indicates whether the first name of the customer is bogus. | cust_first_name |
| str_crp_name | Customer \| Full name \| Bogus | Indicates whether the full name of the customer is bogus. | cust_first_name, cust_last_name |
| name_ip | Customer \| Full name and IP address concatenated | The concatenated value of the customer's first and last name and the IP address. Used for linking. | cust_first_name, cust_last_name, cust_middle_name, cust_name, ip |
| cust_name_ship_zip_cnct | Customer \| Full name and shipping postal code concatenated | The concatenated value of the customer's first and last name and the postal code on the shipping address. The attribute is used for linking and/or blacklisting. | cust_first_name, cust_last_name, cust_middle_name, cust_name, ship_ad_zip |
| full_name_ip_c_class | Customer \| Full name available and IP class C network concatenated | The concatenated value of a first and last name and the IP class C network. Used for linking. The customer name is taken for concatenation. If it's not available, we take the name on the shipping address. If neither of the two are available, we take the name on the billing address. | bill_ad_first_name, bill_ad_last_name, bill_ad_middle_name, bill_ad_name, cust_first_name, cust_last_name, cust_middle_name, cust_name, ip, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name |
| fl_format | Customer \| Full name capitalization format | Specifies the capitalization format of the customer's first and last name. | cust_first_name, cust_last_name |
| cust_fl_norm | Customer \| Full name normalized | The normalized value of the customer's full name. Normalization in this case removes unicode and special characters (for example, an apostrophe is removed and ü becomes u) and spells all the names in lower case. | cust_first_name, cust_last_name, cust_middle_name, cust_name |
| cust_m_f | Customer \| Gender | The gender of the customer. | |
| hours_since_signup | Customer \| Hours since signup date | The number of hours between the date a customer signed up to the merchant's e-commerce platform and the date they made a particular transaction. | cust_signup_ts, trans_ts |
| cust_on_sanctions_list | Customer \| Is on sanctions lists | Indicates whether the customer was found on one or more of the sanctions lists. Also states whether the request to our sanctions lists service timed out or returned an error. | bill_ad_city, bill_ad_line1, bill_ad_zip, client_id, cust_dob, cust_first_name, cust_last_name, cust_middle_name, cust_name, seller_id, sub_seller |
| str_crp_lname | Customer \| Last name \| Bogus | Indicates whether the last name of the customer is bogus. | cust_last_name |
| name_ethn_v3_good | Customer \| Most probable ethnicities | The most probable ethnicities of the customer. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| name_ethn_v3_best | Customer \| Most probable ethnicity | The most probable ethnicity of the customer. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| str_crp_phone | Customer \| Phone \| Bogus | Indicates whether the phone number of the customer is bogus. | phone |
| str_crp_scndry_eun | Customer \| Secondary email \| Bogus | Indicates whether the username of the customer's secondary email is bogus. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| str_crp_scndry_phone | Customer \| Secondary phone \| Bogus | Indicates whether the secondary phone number of the customer is bogus. | scndry_phone |
| ship_name_ethn_v3_good | Customer \| Shipping address name ethnicities | The most probable ethnicities of the name on the shipping address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| ship_name_ethn_v3_good_ctry | Customer \| Shipping address name ethnicities \| Related countries | Countries related to the most probable ethnicities of the name on the shipping address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| ship_name_ethn_v3_best | Customer \| Shipping address name ethnicity | The most probable ethnicity of the name on the shipping address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| ship_name_ethn_v3_best_ctry | Customer \| Shipping address name ethnicity \| Related countries | Countries related to the most probable ethnicity of the name on the shipping address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| cust_signup_daytime | Customer \| Signup time of the day | The time of day when the customer signed up for the merchant's e-commerce platform. | cust_signup_ts |
## Customer entity
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| customer_entity_approval_rate | Customer entity \| approval_rate | approval_rate from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_approval_rate_trans_eur_amt | Customer entity \| approval_rate_trans_eur_amt | approval_rate_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_approved_count | Customer entity \| approved_count | approved_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_approved_count_one_day | Customer entity \| approved_count \| 1 day | approved_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_approved_count_one_hour | Customer entity \| approved_count \| 1 hour | approved_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_approved_count_thirty_day | Customer entity \| approved_count \| 30 days | approved_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_approved_count_five_min | Customer entity \| approved_count \| 5 minutes | approved_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_avg_trans_eur_amt | Customer entity \| avg_trans_eur_amt | avg_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_ctry_count | Customer entity \| bill_ad_ctry_count | bill_ad_ctry_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_ctry_count_one_day | Customer entity \| bill_ad_ctry_count \| 1 day | bill_ad_ctry_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_ctry_count_one_hour | Customer entity \| bill_ad_ctry_count \| 1 hour | bill_ad_ctry_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_ctry_count_thirty_day | Customer entity \| bill_ad_ctry_count \| 30 days | bill_ad_ctry_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_ctry_count_five_min | Customer entity \| bill_ad_ctry_count \| 5 minutes | bill_ad_ctry_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_line1_zip_cnct_count | Customer entity \| bill_ad_line1_zip_cnct_count | bill_ad_line1_zip_cnct_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_line1_zip_cnct_count_one_day | Customer entity \| bill_ad_line1_zip_cnct_count \| 1 day | bill_ad_line1_zip_cnct_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_line1_zip_cnct_count_one_hour | Customer entity \| bill_ad_line1_zip_cnct_count \| 1 hour | bill_ad_line1_zip_cnct_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_line1_zip_cnct_count_thirty_day | Customer entity \| bill_ad_line1_zip_cnct_count \| 30 days | bill_ad_line1_zip_cnct_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bill_ad_line1_zip_cnct_count_five_min | Customer entity \| bill_ad_line1_zip_cnct_count \| 5 minutes | bill_ad_line1_zip_cnct_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bin_ctry_count | Customer entity \| bin_ctry_count | bin_ctry_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bin_ctry_count_one_day | Customer entity \| bin_ctry_count \| 1 day | bin_ctry_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bin_ctry_count_one_hour | Customer entity \| bin_ctry_count \| 1 hour | bin_ctry_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bin_ctry_count_thirty_day | Customer entity \| bin_ctry_count \| 30 days | bin_ctry_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bin_ctry_count_five_min | Customer entity \| bin_ctry_count \| 5 minutes | bin_ctry_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bin_ctry_per_email | Customer entity \| bin_ctry_per_email | bin_ctry_per_email from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_bin_ctry_per_phone | Customer entity \| bin_ctry_per_phone | bin_ctry_per_phone from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cancelled_count | Customer entity \| cancelled_count | cancelled_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cc_num_hash_count | Customer entity \| cc_num_hash_count | cc_num_hash_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cc_num_hash_count_one_day | Customer entity \| cc_num_hash_count \| 1 day | cc_num_hash_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cc_num_hash_count_one_hour | Customer entity \| cc_num_hash_count \| 1 hour | cc_num_hash_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cc_num_hash_count_thirty_day | Customer entity \| cc_num_hash_count \| 30 days | cc_num_hash_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cc_num_hash_count_five_min | Customer entity \| cc_num_hash_count \| 5 minutes | cc_num_hash_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cc_num_hash_per_email | Customer entity \| cc_num_hash_per_email | cc_num_hash_per_email from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cc_num_hash_per_phone | Customer entity \| cc_num_hash_per_phone | cc_num_hash_per_phone from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cc_num_hash_per_ship_ad | Customer entity \| cc_num_hash_per_ship_ad | cc_num_hash_per_ship_ad from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_chargeback_count | Customer entity \| chargeback_count | chargeback_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_email_norm_count | Customer entity \| cust_email_norm_count | cust_email_norm_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_email_norm_count_one_day | Customer entity \| cust_email_norm_count \| 1 day | cust_email_norm_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_email_norm_count_one_hour | Customer entity \| cust_email_norm_count \| 1 hour | cust_email_norm_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_email_norm_count_thirty_day | Customer entity \| cust_email_norm_count \| 30 days | cust_email_norm_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_email_norm_count_five_min | Customer entity \| cust_email_norm_count \| 5 minutes | cust_email_norm_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_fl_ordered_count | Customer entity \| cust_fl_ordered_count | cust_fl_ordered_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_fl_ordered_count_one_day | Customer entity \| cust_fl_ordered_count \| 1 day | cust_fl_ordered_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_fl_ordered_count_one_hour | Customer entity \| cust_fl_ordered_count \| 1 hour | cust_fl_ordered_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_fl_ordered_count_thirty_day | Customer entity \| cust_fl_ordered_count \| 30 days | cust_fl_ordered_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_fl_ordered_count_five_min | Customer entity \| cust_fl_ordered_count \| 5 minutes | cust_fl_ordered_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_id_count | Customer entity \| cust_id_count | cust_id_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_id_count_one_day | Customer entity \| cust_id_count \| 1 day | cust_id_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_id_count_one_hour | Customer entity \| cust_id_count \| 1 hour | cust_id_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_id_count_thirty_day | Customer entity \| cust_id_count \| 30 days | cust_id_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_id_count_five_min | Customer entity \| cust_id_count \| 5 minutes | cust_id_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_cust_id_count_cust_name | Customer entity \| cust_id_count_cust_name | cust_id_count_cust_name from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_decline_rate | Customer entity \| decline_rate | decline_rate from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_decline_rate_trans_eur_amt | Customer entity \| decline_rate_trans_eur_amt | decline_rate_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_declined_count | Customer entity \| declined_count | declined_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_declined_count_fraudscreening | Customer entity \| declined_count_fraudscreening | declined_count_fraudscreening from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_email_per_phone | Customer entity \| email_per_phone | email_per_phone from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_fraud_count | Customer entity \| fraud_count | fraud_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_frg_declined_count | Customer entity \| frg_declined_count | frg_declined_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_good_count | Customer entity \| good_count | good_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_entity_id | Customer entity \| ID | ID that identifies a customer. It can change after two or more entities merge. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_count | Customer entity \| ip_count | ip_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_count_one_day | Customer entity \| ip_count \| 1 day | ip_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_count_one_hour | Customer entity \| ip_count \| 1 hour | ip_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_count_thirty_day | Customer entity \| ip_count \| 30 days | ip_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_count_five_min | Customer entity \| ip_count \| 5 minutes | ip_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_ctry_count | Customer entity \| ip_ctry_count | ip_ctry_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_ctry_count_one_day | Customer entity \| ip_ctry_count \| 1 day | ip_ctry_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_ctry_count_one_hour | Customer entity \| ip_ctry_count \| 1 hour | ip_ctry_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_ctry_count_thirty_day | Customer entity \| ip_ctry_count \| 30 days | ip_ctry_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_ctry_count_five_min | Customer entity \| ip_ctry_count \| 5 minutes | ip_ctry_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_ctry_per_email | Customer entity \| ip_ctry_per_email | ip_ctry_per_email from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_ctry_per_phone | Customer entity \| ip_ctry_per_phone | ip_ctry_per_phone from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_cust_name_count | Customer entity \| ip_cust_name_count | ip_cust_name_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_per_email | Customer entity \| ip_per_email | ip_per_email from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ip_per_phone | Customer entity \| ip_per_phone | ip_per_phone from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_is_large | Customer entity \| Is large entity | Indicates if the customer entity is too large to be enriched. In this case we update the entity with a new transaction but don't enrich the entity after the addition. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_manual_review_bad_count | Customer entity \| manual_review_bad_count | manual_review_bad_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_manual_review_good_count | Customer entity \| manual_review_good_count | manual_review_good_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_max_trans_eur_amt | Customer entity \| max_trans_eur_amt | max_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_min_trans_eur_amt | Customer entity \| min_trans_eur_amt | min_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_not_matured_count | Customer entity \| not_matured_count | not_matured_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_not_matured_rate | Customer entity \| not_matured_rate | not_matured_rate from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_phone_norm_count | Customer entity \| phone_norm_count | phone_norm_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_phone_norm_count_one_day | Customer entity \| phone_norm_count \| 1 day | phone_norm_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_phone_norm_count_one_hour | Customer entity \| phone_norm_count \| 1 hour | phone_norm_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_phone_norm_count_thirty_day | Customer entity \| phone_norm_count \| 30 days | phone_norm_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_phone_norm_count_five_min | Customer entity \| phone_norm_count \| 5 minutes | phone_norm_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_refund_count | Customer entity \| refund_count | refund_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_ctry_count | Customer entity \| ship_ad_ctry_count | ship_ad_ctry_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_ctry_count_one_day | Customer entity \| ship_ad_ctry_count \| 1 day | ship_ad_ctry_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_ctry_count_one_hour | Customer entity \| ship_ad_ctry_count \| 1 hour | ship_ad_ctry_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_ctry_count_thirty_day | Customer entity \| ship_ad_ctry_count \| 30 days | ship_ad_ctry_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_ctry_count_five_min | Customer entity \| ship_ad_ctry_count \| 5 minutes | ship_ad_ctry_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_cust_name_count | Customer entity \| ship_ad_cust_name_count | ship_ad_cust_name_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_line1_zip_cnct_count | Customer entity \| ship_ad_line1_zip_cnct_count | ship_ad_line1_zip_cnct_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_line1_zip_cnct_count_one_day | Customer entity \| ship_ad_line1_zip_cnct_count \| 1 day | ship_ad_line1_zip_cnct_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_line1_zip_cnct_count_one_hour | Customer entity \| ship_ad_line1_zip_cnct_count \| 1 hour | ship_ad_line1_zip_cnct_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_line1_zip_cnct_count_thirty_day | Customer entity \| ship_ad_line1_zip_cnct_count \| 30 days | ship_ad_line1_zip_cnct_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_ship_ad_line1_zip_cnct_count_five_min | Customer entity \| ship_ad_line1_zip_cnct_count \| 5 minutes | ship_ad_line1_zip_cnct_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sub_seller_count | Customer entity \| sub_seller_count | sub_seller_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sub_seller_count_one_day | Customer entity \| sub_seller_count \| 1 day | sub_seller_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sub_seller_count_one_hour | Customer entity \| sub_seller_count \| 1 hour | sub_seller_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sub_seller_count_thirty_day | Customer entity \| sub_seller_count \| 30 days | sub_seller_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sub_seller_count_five_min | Customer entity \| sub_seller_count \| 5 minutes | sub_seller_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_approved_trans_eur_amt | Customer entity \| sum_approved_trans_eur_amt | sum_approved_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_approved_trans_eur_amt_one_day | Customer entity \| sum_approved_trans_eur_amt \| 1 day | sum_approved_trans_eur_amt in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_approved_trans_eur_amt_one_hour | Customer entity \| sum_approved_trans_eur_amt \| 1 hour | sum_approved_trans_eur_amt in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_approved_trans_eur_amt_thirty_day | Customer entity \| sum_approved_trans_eur_amt \| 30 days | sum_approved_trans_eur_amt in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_approved_trans_eur_amt_five_min | Customer entity \| sum_approved_trans_eur_amt \| 5 minutes | sum_approved_trans_eur_amt in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_fraud_trans_eur_amt | Customer entity \| sum_fraud_trans_eur_amt | sum_fraud_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_total_declined_trans_eur_amt | Customer entity \| sum_total_declined_trans_eur_amt | sum_total_declined_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_total_declined_trans_eur_amt_one_day | Customer entity \| sum_total_declined_trans_eur_amt \| 1 day | sum_total_declined_trans_eur_amt in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_total_declined_trans_eur_amt_one_hour | Customer entity \| sum_total_declined_trans_eur_amt \| 1 hour | sum_total_declined_trans_eur_amt in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_total_declined_trans_eur_amt_thirty_day | Customer entity \| sum_total_declined_trans_eur_amt \| 30 days | sum_total_declined_trans_eur_amt in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_total_declined_trans_eur_amt_five_min | Customer entity \| sum_total_declined_trans_eur_amt \| 5 minutes | sum_total_declined_trans_eur_amt in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_trans_eur_amt | Customer entity \| sum_trans_eur_amt | sum_trans_eur_amt from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_trans_eur_amt_one_day | Customer entity \| sum_trans_eur_amt \| 1 day | sum_trans_eur_amt in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_trans_eur_amt_one_hour | Customer entity \| sum_trans_eur_amt \| 1 hour | sum_trans_eur_amt in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_trans_eur_amt_thirty_day | Customer entity \| sum_trans_eur_amt \| 30 days | sum_trans_eur_amt in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_sum_trans_eur_amt_five_min | Customer entity \| sum_trans_eur_amt \| 5 minutes | sum_trans_eur_amt in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_total_declined_count | Customer entity \| total_declined_count | total_declined_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_total_declined_count_one_day | Customer entity \| total_declined_count \| 1 day | total_declined_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_total_declined_count_one_hour | Customer entity \| total_declined_count \| 1 hour | total_declined_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_total_declined_count_thirty_day | Customer entity \| total_declined_count \| 30 days | total_declined_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_total_declined_count_five_min | Customer entity \| total_declined_count \| 5 minutes | total_declined_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_txn_count | Customer entity \| txn_count | txn_count from the start of the measurement. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_txn_count_one_day | Customer entity \| txn_count \| 1 day | txn_count in the last day. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_txn_count_one_hour | Customer entity \| txn_count \| 1 hour | txn_count in the last hour. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_txn_count_thirty_day | Customer entity \| txn_count \| 30 days | txn_count in the last 30 days. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
| customer_entity_txn_count_five_min | Customer entity \| txn_count \| 5 minutes | txn_count in the last 5 minutes. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_zip, bin_ctry, cc_num_hash, client_id, cust_email, cust_first_name, cust_id, cust_last_name, cust_middle_name, cust_name, ip, phone, seller_id, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip, slr_crncy, trans_amt, trans_currency, ts |
## Device
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| device_id_mapped | Device \| Device ID mapped | The value of the device ID based on the client's configuration (Shufti's or their own). | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller |
| device_id_shared_across_accounts | Device \| ID shared across accounts | Indicates whether the same device ID has been used by more than one customer account. | |
| screen_resolution | Device \| Screen resolution | The screen resolution of the customer's device. | screen_x, screen_y |
| virtual_machine | Device \| Virtual machine | Specifies if the device used for the purchase is not a physical device but rather a virtual machine. | |
## Digital
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| digital_affiliate_id | Digital \| Affiliate ID | The ID of the affiliate partner that facilitated the purchase in this transaction. | |
| digital_on_sale | Digital \| On sale | Indicates if the items/services were purchased during a sale. | |
| digital_product_description | Digital \| Product description | The description of the digital product purchased by the customer. If there are multiple items in the basket, send a concatenated string of products. | |
| digital_region_locked | Digital \| Region locked | Region locking prevents a digital product from being used outside of a region. The datapoint specifies if the digital good (most likely a video game) is locked to a specific region. | |
| digital_subscription_active | Digital \| Subscription active | Indicates if the customer has an active subscription with the merchant. | |
| digital_subscription_end_date | Digital \| Subscription end date | Indicates the end date of an active subscription. If there is no active subscription available, use this datapoint to indicate the end date of the most recent subscription. The date part of an RFC3339-encoded UTC timestamp. | |
| digital_subscription_purchased | Digital \| Subscription purchased | Indicates if the purchase includes a subscription to a service. | |
| digital_vouchers_used | Digital \| Vouchers used | Indicates if the items/services were purchased with a promo voucher. | |
## Distance
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| ip_ship_dist | Distance \| IP and shipping address | The distance in kilometers between the IP geolocation and the shipping address. | ip, ship_ad_city, ship_ad_ctry, ship_ad_state, ship_ad_zip |
## Email
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| e_format | Email \| Capitalization format | Specifies the capitalization format of the primary email address. | cust_email |
| e_dom_type_controlled | Email \| Domain control | The control level of the email domain in the primary email address. | cust_email, cust_first_name, cust_last_name, cust_scndry_email |
| e_dom_is_risky | Email \| Domain risk | Specifies if the email domain in the primary email address is risky, i.e. has a tendency to appear in a lot of fraudulent transactions. | cust_email |
| e_dom_type | Email \| Domain type | The type of the email domain in the primary email address. | cust_email, cust_first_name, cust_last_name, cust_scndry_email |
| e_dom | Email \| Full domain name | The full domain name of the primary email address. | cust_email |
| e_dom_name | Email \| Server name | The full domain name without the top-level domain, often .com or .net. | cust_email |
| e_tld | Email \| Top level domain | The top-level domain of the primary email address. | cust_email |
| e_tld_is_ctry | Email \| Top level domain is country | Specifies if the top-level domain of the primary email address refers to a country. | cust_email |
| e_dom_ctry_tld | Email \| Top-level email domain country | Specifies which country the top-level email domain of the primary email address belongs to. | cust_email |
| e_un | Email \| Username | The username of the recipient in the primary email address (the part before the @ symbol). | cust_email |
| eun_is_bogus | Email \| Username bogus | Specifies if username of the primary email address contains only dictionary words and optionally digits. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| eun_contains_only_digits | Email \| Username contains only digits | Specifies if username of the primary email address contains only digits. | cust_email |
| eun_contains_crappy_digits | Email \| Username with bogus digits | Specifies if username of the primary email address contains consecutive numbers. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| eun_contains_cust_name | Email \| Username with customer name | Specifies if username of the primary email address contains first or last customer name. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| eun_contains_dict_word | Email \| Username with dict word | Specifies if username of the primary email address contains dictionary word. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| eun_contains_digits | Email \| Username with digits | Specifies if username of the primary email address contains digits. | bill_ad_ctry, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry |
## Email username
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| eun_contains_other_name | Email username \| Contains different name fully or partially | Specifies if the username of the recipient in the email address (the part before the @ symbol) contains a name that is not the customer's name. Possible scenarios: the username contains the first or last name of another person, both of them, or none. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| digits_ratio_eun | Email username \| Digits ratio | The ratio of digits in the email username. | cust_email |
| eun_fl_pattern_v2 | Email username \| Full name pattern | A representation of the username in the primary email address as a pattern of names, words, and signs. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| eun_fl_pattern | Email username \| Full name pattern | A representation of the username in the primary email address as a pattern of names, words, and signs. | bill_ad_ctry, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry |
## Gaming
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| gaming_account_creation_ts | Gaming \| Account creation date | An RFC3339-encoded UTC timestamp indicating the date when the user created their account. | |
| gaming_affiliate_id | Gaming \| Affiliate ID | The ID of the affiliate partner that facilitated the purchase in this transaction. | |
| gaming_customer_is_of_age | Gaming \| Customer is of age | Specifies if the customer is of age, i.e. old enough, according to the law, to be eligible for certain purchases. | |
| gaming_first_purchase | Gaming \| First purchase | Indicates if the user is making their first purchase. In some products, the first purchase is considered less secure because the merchant doesn't have sufficient data to evaluate the user. | |
| gaming_item_in_locked_region | Gaming \| Item in locked region | Indicates if the purchased item belongs to a locked region. If an item is locked for a specific geographic area, it means it can only be bought is that area. | |
| gaming_preorder | Gaming \| Preorder | Indicates if the purchased item is a preorder. Generally, preordered purchases are way less risky. | |
| gaming_product_name | Gaming \| Product name | Indicates the name of the product, for example a game name. | |
| gaming_game_has_subscription | Gaming \| Subscription | Indicates if the product is a subscription. Generally, subscription products are less risky. | |
| gaming_username | Gaming \| Username | Specifies the username/alias of the user. | |
| gaming_verified_account | Gaming \| Verified account | Indicates if user's account has been verified. Different products offer different verification processes, i.e. via an email address or a code. This normally depends on the type of the registration system. | |
| gaming_voucher_used | Gaming \| Voucher used | Indicates if the item was purchased with a promo voucher. | |
## General
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| airticket_one_way | airticket_one_way | Indicates whether the ticket purchased is a one-way ticket. If the value is 'false', it means that the buyer purchased a round-trip ticket. | airticket_itinerary_raw_info |
| airticket_trip_duration | airticket_trip_duration | Number of days between the departure and the return flight. | airticket_itinerary_raw_info |
| airticket_trip_wknd | airticket_trip_wknd | Indicates whether the period between the outbound and return flights contains at least one weekend. | airticket_itinerary_raw_info |
| ba_acct_num | Bank account number | | |
| bill_ad_ctry_is_evil | bill_ad_ctry_is_evil | whether or not the billing country is a recognized fraud-haven. | bill_ad_ctry |
| bill_ad_norm | Billing address concatenated | | |
| bin_ip_ctry_cor | BIN and IP country corridor | The attribute combines the ISO 3166-1 alpha-2 codes of the credit card BIN country and the IP address country. It returns the country-level geographical corridor of the two. | bin_ctry, cc_bin, ip |
| cust_id_num | Customer ID | | |
| engine_score | Engine score | The score after aggregating the different algorithm scores (e.g. cold, or ML scores). How this aggregation is done is a seller specific configuration. | |
| engine_version | Engine version | The major version of the Shufti Engine. | |
| frg_score | Fraugster AI score | The Shufti score. An integer between 0 and 100. | |
| cold_score | Fraugster cold score | The genuine score the Shufti AI gave to a transaction (0–100). | |
| norm_score | Fraugster normalized AI score | The Shufti score after normalization. An integer between 0 and 100. | |
| product | Fraugster product | The Shufti product we offer to a merchant of a client. | client_id, seller_id, sub_seller |
| grace_period_end_ts | Grace period end timestamp | End of the grace period for deposits. Transactions with ts after this timestamp can be restricted by rules. | |
| grace_period_expiration_enabled | Grace period expiration enabled | True if the transaction time is after grace_period_end_ts. | grace_period_end_ts, trans_ts, ts |
| ip_ctry_is_evil | ip_ctry_is_evil | Indicates if the IP country is very fraud-prone. | ip |
| neigh_count_links_one_hour | neigh_count_links_one_hour | Count of the number of transactions in the neighborhood that 1) were made at most 60 minutes before the transaction we're currently scoring; 2) share the value of one of the following attributes ('linking assets') with the transaction we're scoring: bill_ad_line1_norm, ship_ad_line1_norm, cust_fl_norm, ip, phone_norm, cust_email, cc_num_frg_token. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bin_ctry, cc_num_frg_token, cust_email, cust_first_name, cust_last_name, cust_middle_name, cust_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1 |
| neigh_count_links_one_hour_ten_day | neigh_count_links_one_hour_ten_day | Count of the number of transactions in the neighborhood that 1) were made more than 60 minutes before the transaction we're currently scoring and less than 10 days before the transaction we're currently scoring; 2) share the value of one of the following attributes (linking assets) with the transaction we're scoring: bill_ad_line1_norm, ship_ad_line1_norm, cust_fl_norm, ip, phone_norm, cust_email, cc_num_frg_token. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bin_ctry, cc_num_frg_token, cust_email, cust_first_name, cust_last_name, cust_middle_name, cust_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1 |
| neigh_count_links_ten_day_plus | neigh_count_links_ten_day_plus | Count of the number of transactions in the neighborhood that 1) were made more than 10 days before the transaction we're currently scoring; 2) share the value of one of the following attributes (linking assets) with the transaction we're scoring: bill_ad_line1_norm, ship_ad_line1_norm, cust_fl_norm, ip, phone_norm, cust_email, cc_num_frg_token. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bin_ctry, cc_num_frg_token, cust_email, cust_first_name, cust_last_name, cust_middle_name, cust_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name, ship_ad_line1 |
| neigh_count_unique_linked_bin_ctrys | neigh_count_unique_linked_bin_ctrys | Number of unique values of attribute bin_ctry among those transactions in the neighborhood that either share the attribute value for cc_num_frg_token or the attribute value for cust_email with the transaction we are calculating the neighborhood attribute for. | bin_ctry, cc_num_frg_token, cust_email |
| neigh_count_unique_linked_cust_email | neigh_count_unique_linked_cust_email | Number of unique values of attribute cust_email among those transactions in the neighborhood that either share the attribute value for cc_num_frg_token or the attribute value for cust_email with the transaction we are calculating the neighborhood attribute for. | cc_num_frg_token, cust_email |
| neigh_mean_cc_over_email_five_day | neigh_mean_cc_over_email_five_day | Mean value of attribute cc_over_email_five_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| neigh_mean_cc_over_email_one_day | neigh_mean_cc_over_email_one_day | Mean value of attribute cc_over_email_one_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| neigh_mean_cc_over_ip_one_day | neigh_mean_cc_over_ip_one_day | Mean value of attribute cc_over_ip_one_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| neigh_mean_cust_email_five_day | neigh_mean_cust_email_five_day | Mean value of attribute cust_email_five_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | cust_email, trans_ts |
| neigh_mean_cust_email_one_day | neigh_mean_cust_email_one_day | Mean value of attribute cust_email_one_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | cust_email, trans_ts |
| neigh_mean_cust_fl_ordered_one_day | neigh_mean_cust_fl_ordered_one_day | Mean value of attribute cust_fl_ordered_one_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| neigh_mean_email_over_phone_five_day | neigh_mean_email_over_phone_five_day | Mean value of attribute email_over_phone_five_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | cust_email, phone, trans_ts |
| neigh_mean_funding_source_five_day | neigh_mean_funding_source_five_day | Mean value of attribute funding_source_five_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| neigh_mean_funding_source_one_hour | neigh_mean_funding_source_one_hour | Mean value of attribute funding_source_one_hour of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| neigh_mean_ip_over_email_five_day | neigh_mean_ip_over_email_five_day | Mean value of attribute ip_over_email_five_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | cust_email, ip, trans_ts |
| neigh_mean_ship_ad_line1_zip_cnct_five_day | neigh_mean_ship_ad_line1_zip_cnct_five_day | Mean value of attribute ship_ad_line1_zip_cnct_five_day of all transactions in the neighborhood. In calculating the mean, missing values are treated as 0. | ship_ad_line1, ship_ad_zip, trans_ts |
| neigh_count_unique_linked_ccs | Neighborhood attribute: Count of unique linked credit cards. | Number of unique values of attribute cc_num_frg_token among those transactions in the neighborhood that either share the attribute value for cc_num_frg_token or the attribute value for cust_email with the transaction we are calculating the neighborhood attribute for. | |
| random_number | Random number | A random number between 0 and 999. Can be used for sampling. | |
| ship_ad_ctry_is_evil | ship_ad_ctry_is_evil | whether or not the shipping country is a recognized fraud-haven. | ship_ad_ctry |
| ship_ad_norm | Shipping address concatenated | | |
| sloth_logistic_score | Sloth logistic regression score | In contrast to the Shufti score, the Sloth logistic score is based on classic machine learning algorithms that run in parallel to the Shufti algorithm. It returns a decimal number between 0 and 1. | |
| sloth_model | Sloth model name | Sloth model name as used in the service configuration. | |
| sloth_nbh_score | Sloth neighborhood score | The Neighbourhood score is calculated based on attributes of a transaction's neighborhood, i.e. previously received similar transactions. It returns a decimal number between 0 and 1. | |
| sloth_nbh_model | Sloth neighborhood scoring model name | Sloth neighborhood scoring model name as used in the service configuration. | |
| reccurence_type | Transaction recurrence type | | |
## Goodies
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| goodies_score | Goodies \| Score | Score of the Goodies classifier between 0 and 100. | |
| goodies_size | Goodies \| Size | The total number of transactions in the Goodies result cluster (including both fraudulent and legit transactions). | |
| goodies_type | Goodies \| Type | The logic ID of the cluster (upper case) that was used by the Goodies classifier. | |
## Hotel
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| hotel_agency_country | Hotel \| Agency country | The country where the hotel agency operates. An ISO 3166-1 alpha-2 code. | custom |
| hotel_agency_ctry_name | Hotel \| Agency country name | The country where the hotel agency operates. An ISO 3166-1 alpha-2 code. | custom |
| hotel_agency_name | Hotel \| Agency name | The name of the agency. | custom |
| hotel_channel | Hotel \| Channel | The hotel's booking channel. This is a client-specific attribute, please talk to Customer Success first if you want to start using it. | custom |
| hotel_ctry | Hotel \| Country | The country of the hotel. An ISO 3166-1 alpha-2 code. | custom |
| hotel_days_until_arrival | Hotel \| Days until arrival | The number of days until the arrival at the hotel. | custom |
| hotel_days_to_stay | Hotel \| Days until stay begins | The number of days until the arrival at the hotel. | custom |
| hotel_final_price | Hotel \| Final price | The final amount paid for the stay at the hotel, calculated after discounts and gift cards are applied to the order total. | custom |
| hotel_amt | Hotel \| Final price | The final amount paid for the stay at the hotel, calculated after discounts and gift cards are applied to the order total. | custom |
| hotel_name | Hotel \| Hotel name | The name of the hotel. | custom |
| hotel_ip_dist | Hotel \| IP and Hotel \| Distance | The distance in kilometers between the IP address and the hotel. | custom, ip |
| hotel_lodging_days | Hotel \| Lodging days | The number of days booked at the hotel. | custom |
| hotel_stay_days | Hotel \| Lodging days | The number of days booked at the hotel. | custom |
| hotel_payment_type | Hotel \| Payment type | The payment type used to pay for the stay at the hotel. | custom |
| hotel_refundable | Hotel \| Refundable | Indicates whether the transaction is refundable. | custom |
| hotel_room_type | Hotel \| Room type | The type of room booked. | custom |
| hotel_sales_channel | Hotel \| Sales channel | The hotel's sales channel. | custom |
| hotel_stay_end_dt | Hotel \| Stay end date | The date of the departure from the hotel. | custom, trans_ts |
| hotel_stay_wknd | Hotel \| Stay includes weekend | The stay includes at least one weekend. | custom, trans_ts |
| hotel_stay_start_dt | Hotel \| Stay start date | The date of the arrival at the hotel. | custom, trans_ts |
## Hotels
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| hotels_agency_country | Hotels \| Agency country name | The country where the hotel agency operates. An ISO 3166-1 alpha-2 code. | |
| hotels_agency_name | Hotels \| Agency name | The name of the hotel agency. | |
| hotels_extra_services | Hotels \| Extra services | List of extra services purchased with the hotel booking. | |
| hotels_extra_services_purchased | Hotels \| Extra services purchased | Indicates if the hotel stay purchase includes extra services. | |
| hotels_number_of_guests | Hotels \| Guests in the booking | The number of guests in the hotel booking. | |
| hotels_loyalty_status_used | Hotels \| Loyalty status used | Indicates if the booking was made using a loyalty program. | |
| hotels_promo_used | Hotels \| Promotion used | Indicates if discounts or promos were used for the hotel booking. | |
| hotels_refundable | Hotels \| Refundable purchase | Indicates whether the booking is refundable. | |
| hotels_sales_type | Hotels \| Sales type | Indicates the sales type used in the transaction. | |
## Invoicing
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| invoicing_basis_points | Invoicing \| Basis points \| Chargeback Protection | The attribute indicates how much Shufti charges a merchant for a transaction as a fraction of the transaction amount. The value of this attribute is expected to be a string representing a positive integer. The unit is bps (1 bps is equivalent to 0.01% worth of the transaction). | client_id, seller_id, sub_seller |
| invoicing_fixed_fee_eur | Invoicing \| Fixed fee in euro \| Fraud Management SaaS | The attribute indicates how much Shufti charges a merchant for a transaction as a fixed price. The value of this attribute is expected to be a string representing a float value. The fee is in euro. | client_id, seller_id, sub_seller |
| invoicing_monthly_fee_eur | Invoicing \| Monthly fee in euro \| Fraud Decisions as a Service | The attribute indicates how much Shufti charges a merchant a month for using Fraud Decisions as a Service. The value of this attribute is expected to be a string representing a float value. The fee is in euro. | client_id, seller_id, sub_seller |
## IP
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| ip_20_bits | IP \| 20-bits block | The first 20-bits block of the IP address. | ip |
| ip_abuse_velocity | IP \| Abuse velocity | Indicates the frequency of abusive behavior by this IP address over the past 24-48 hours. | ip |
| ip_accuracy_radius | IP \| Accuracy radius | The accuracy radius of the IP address in kilometers. | ip |
| ip_active_tor | IP \| Active Tor | Indicates whether the IP address range is actively hosting a Tor node. | ip |
| ip_active_tor_high | IP \| Active Tor high strictness | Indicates whether the IP address range is actively hosting a Tor node - high strictness. | ip |
| ip_active_tor_med | IP \| Active Tor medium strictness | Indicates whether the IP address range is actively hosting a Tor node - medium strictness - medium strictness. | ip |
| ip_active_vpn | IP \| Active VPN | Indicates whether the IP address range is actively facilitating a VPN connection. | ip |
| ip_active_vpn_high | IP \| Active VPN high strictness | Indicates whether the IP address range is actively facilitating a VPN connection - high strictness. | ip |
| ip_active_vpn_med | IP \| Active VPN medium strictness | Indicates whether the IP address range is actively facilitating a VPN connection - medium strictness. | ip |
| ip_brwsr_time_diff | IP \| Browser \| Time difference | The difference in hours between the IP address location time and the time of the browser. | brwsr_ts, ip, trans_ts |
| ip_city | IP \| City | The city of the IP address. | ip |
| ip_city_pop | IP \| City population | The population of the IP address city. | ip |
| ip_a_class | IP \| Class A network | The network portion of a Class A IP address. A Class A IP address is a commercial IP address where the first octet is the network portion. Octets 2, 3, and 4 (the next 24 bits) are for the hosts. Example: the network portion of the address 10.1.25.1 is 10. | ip |
| ip_b_class | IP \| Class B network | The network portion of a Class B IP address. A Class B IP address is a commercial IP address where the first two octets are the network portion. Octets 3 and 4 (the next 16 bits) are for the hosts. Example: the network portion of the address 172.16.122.204 is 172.16. | ip |
| ip_c_class | IP \| Class C network | The network portion of a Class C IP address. A Class C IP address is a commercial IP address where the first three octets are the network portion. Octet 4 (the last 8 bits) is for hosts. Example: the network portion of the address 193.18.9.45 is 193.18.9. | ip |
| ip_conn_type | IP \| Connection type | The type of the IP connection. | ip |
| ip_ctry | IP \| Country | The country of the IP address. An ISO 3166-1 alpha-2 code. | ip |
| ip_crncy | IP \| Country currency | The ISO-3 currency code of the IP address country. | ip |
| ip_ctry_gdp | IP \| Country GDP | The GDP (Gross Domestic Product) of the IP address country. The expected value is in US dollars. | ip |
| ip_ctry_gdp_per_capita | IP \| Country GDP per capita | The GDP (Gross Domestic Product) per capita of the IP address country. The expected value is in US dollars. | ip |
| ip_ctry_pop | IP \| Country population | The population of the IP address country. | ip |
| ip_ctry_rgn | IP \| Country region | The world region of the IP address country. | ip |
| ip_fraud_score | IP \| Fraud score | The fraud score of the IP address. It represents the overall risk associated with this IP address based on a medium strictness scoring level. 75+ is considered suspicious, 85+ is considered high risk. Elevated fraud scores 85+ are usually associated with recent abuse, fraud, or acts of cyber crime. | ip |
| ip_hour | IP \| Hour of the day | The hour of the day in the IP address location. | ip, trans_ts |
| ip_isp | IP \| Internet service provider | The ISP (Internet Service Provider) that owns the IP address. | ip |
| ip_conn_type_ipqs | IP \| IPQS connection type | Classification of the IP address connection type. | ip |
| ipv6_two_blocks | IP \| IPv6 network | The first two 16 bit blocks of the IPv6 network component. | ip |
| ipv6_three_blocks | IP \| IPv6 network | The first three 16 bit blocks of the IPv6 network component. | ip |
| ip_is_bot | IP \| Is bot | Indicates if the IP address has recently been active within a major botnet or facilitated non-human requests, or exhibited automated behavior. | ip |
| ip_is_bot_high | IP \| Is bot high strictness | Indicates if the IP address has recently been active within a major botnet or facilitated non-human requests, or exhibited automated behavior - high strictness. | ip |
| ip_is_bot_med | IP \| Is bot medium strictness | Indicates if the IP address has recently been active within a major botnet or facilitated non-human requests, or exhibited automated behavior - medium strictness. | ip |
| ip_is_hosting_provider | IP \| Is hosting provider | Indicates if the IP address belongs to a data center, which commonly suggests a VPN connection. | ip |
| ip_is_hosting_provider_high | IP \| Is hosting provider high strictness | Indicates if the IP address belongs to a data center, which commonly suggests a VPN connection - high strictness. | ip |
| ip_is_hosting_provider_med | IP \| Is hosting provider medium strictness | Indicates if the IP address belongs to a data center, which commonly suggests a VPN connection - medium strictness. | ip |
| ip_is_proxy | IP \| Is proxy | The IP address is suspected to be a proxy (SOCKS, Elite, Anonymous, VPN, Tor, and similar). Please note that a proxy is not always indicative of fraud. | ip |
| ip_is_proxy_high | IP \| Is proxy high strictness | The IP address is suspected to be a proxy (SOCKS, Elite, Anonymous, VPN, Tor, and similar). Please note that a proxy is not always indicative of fraud - high strictness. | ip |
| ip_is_proxy_med | IP \| Is proxy medium strictness | The IP address is suspected to be a proxy (SOCKS, Elite, Anonymous, VPN, Tor, and similar). Please note that a proxy is not always indicative of fraud - medium strictness. | ip |
| ip_is_tor | IP \| Is Tor | The IP address and server is associated with Tor activity. Tor IP addresses are highly indicative of fraud. | ip |
| ip_is_tor_high | IP \| Is Tor high strictness | The IP address and server is associated with Tor activity. Tor IP addresses are highly indicative of fraud - high strictness. | ip |
| ip_is_tor_med | IP \| Is Tor medium strictness | The IP address and server is associated with Tor activity. Tor IP addresses are highly indicative of fraud - medium strictness. | ip |
| ip_is_vpn | IP \| Is VPN | The IP address is using a VPN connection. Please note that a VPN is not always indicative of fraud. A corporate IP can be using a VPN and not be fraudulent. | ip |
| ip_is_vpn_high | IP \| Is VPN high strictness | The IP address is using a VPN connection. Please note that a VPN is not always indicative of fraud. A corporate IP can be using a VPN and not be fraudulent - high strictness. | ip |
| ip_is_vpn_med | IP \| Is VPN medium strictness | The IP address is using a VPN connection. Please note that a VPN is not always indicative of fraud. A corporate IP can be using a VPN and not be fraudulent - medium strictness. | ip |
| ip_day_time | IP \| Part of the day | The part of the day in the IP address location. | ip, trans_ts |
| ip_zip | IP \| Postal code | The postal code of the IP address. | ip |
| ip_public_access_point | IP \| Public access point | Indicates education and research institutions, corporate connections, or public Wi-Fi ranges. | ip |
| ip_public_access_point_high | IP \| Public access point high strictness | Indicates education and research institutions, corporate connections, or public Wi-Fi ranges - high strictness. | ip |
| ip_public_access_point_med | IP \| Public access point medium strictness | Indicates education and research institutions, corporate connections, or public Wi-Fi ranges - medium strictness. | ip |
| ip_recent_abuse | IP \| Recent abuse | Indicates if the IP address has recently been involved in cybercrime, fraud, or general purpose abuse online. | ip |
| ip_recent_abuse_high | IP \| Recent abuse high strictness | Indicates if the IP address has recently been involved in cybercrime, fraud, or general purpose abuse online - high strictness. | ip |
| ip_recent_abuse_med | IP \| Recent abuse medium strictness | Indicates if the IP address has recently been involved in cybercrime, fraud, or general purpose abuse online - medium strictness. | ip |
| ip_request | IP \| Request value | Specifies the IP address value that was originally sent to the API, in case this original value was invalid. The attribute is used to expose the request value of an invalid IP to the Shufti AI. | ip |
| ip_time | IP \| Timestamp | An RFC3339-encoded timestamp at the IP location. | ip, trans_ts |
## IP and billing address
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| ip_bill_dist | IP and billing address \| Distance | The distance in kilometers between the IP address and the billing address. | bill_ad_city, bill_ad_ctry, bill_ad_state, bill_ad_zip, ip |
## IP and billing country
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| ip_bill_ctry_corridor | IP and billing country \| Country corridor | The attribute combines the ISO 3166-1 alpha-2 codes of the IP country and the country on the billing address. It returns the country-level geographical corridor of the two. | bill_ad_ctry, ip |
## Logistic regression score
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| sloth_logistic_norm_score | Logistic regression score \| Normalized | The logistic regression score after normalization. A decimal number between 0 and 1. | |
## Match
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| acct_bill_ad_match | Match \| Account and billing address | Specifies if the customer's account registration address matches the billing address. | acct_ad_city, acct_ad_ctry, acct_ad_line1, acct_ad_line2, acct_ad_state, acct_ad_zip, bill_ad_city, bill_ad_ctry, bill_ad_line1, bill_ad_line2, bill_ad_state, bill_ad_zip |
| acct_bill_line2_match | Match \| Account and billing address \| Apartment number | Specifies if the apartment number on the customer's account registration address matches the apartment number on the billing address. | acct_ad_line2, bill_ad_line2 |
| acct_bill_city_match | Match \| Account and billing address \| City | Specifies if the city on the customer's account registration address matches the city on the billing address. | acct_ad_city, bill_ad_city |
| acct_bill_ctry_match | Match \| Account and billing address \| Country | Specifies if the country on the customer's account registration address matches the country on the billing address. | acct_ad_ctry, bill_ad_ctry |
| acct_bill_zip_match | Match \| Account and billing address \| Postal code | Specifies if the postal code on the customer's account registration address matches the postal code on the billing address. | acct_ad_zip, bill_ad_zip |
| acct_bill_state_match | Match \| Account and billing address \| State | Specifies if the state on the customer's account registration address matches the state on the billing address. | acct_ad_state, bill_ad_state |
| acct_bill_line1_match | Match \| Account and billing address \| Street and building number | Specifies if the street and building number on the customer's account registration address matches the street and building number on the billing address. | acct_ad_line1, bill_ad_line1 |
| ba_bill_first_name_match | Match \| Bank account holder and billing address \| First name | Specifies if the first name of the bank account holder matches the first name on the billing address. | ba_first_name, ba_last_name, ba_name, bill_ad_first_name, bill_ad_last_name, bill_ad_name |
| ba_bill_f_l_match | Match \| Bank account holder and billing address \| Full name | Specifies if the full name of the bank account holder matches the full name on the billing address. | ba_first_name, ba_last_name, ba_name, bill_ad_first_name, bill_ad_last_name, bill_ad_name |
| ba_bill_f_l_match_h_l | Match \| Bank account holder and billing address \| Full name \| High level | Specifies if the full name of the bank account holder matches the full name on the billing address. This high-level attribute only has two enum values available. If you’d like to have more granular match options, use 'Match \| Bank account holder and billing address \| Full name' instead. | ba_first_name, ba_last_name, ba_name, bill_ad_first_name, bill_ad_last_name, bill_ad_name |
| ba_bill_last_name_match | Match \| Bank account holder and billing address \| Last name | Specifies if the last name of the bank account holder matches the last name on the billing address. | ba_first_name, ba_last_name, ba_name, bill_ad_first_name, bill_ad_last_name, bill_ad_name |
| ba_cc_first_name_match | Match \| Bank account holder and CC holder \| First name | Specifies if the first name of the bank account holder matches the first name of the credit card holder. | ba_first_name, ba_last_name, ba_name, cc_cardholder, cc_first_name, cc_last_name |
| ba_cc_f_l_match | Match \| Bank account holder and CC holder \| Full name | Specifies if the full name of the bank account holder matches the full name of the credit card holder. | ba_first_name, ba_last_name, ba_name, cc_cardholder, cc_first_name, cc_last_name |
| ba_cc_f_l_match_h_l | Match \| Bank account holder and CC holder \| Full name \| High level | Specifies if the full name of the bank account holder matches the full name of the credit card holder. This high-level attribute only has two enum values available. If you’d like to have more granular match options, use 'Match \| Bank account holder and CC holder \| Full name' instead. | ba_first_name, ba_last_name, ba_name, cc_cardholder, cc_first_name, cc_last_name |
| ba_cc_last_name_match | Match \| Bank account holder and CC holder \| Last name | Specifies if the last name of the bank account holder matches the last name of the credit card holder. | ba_first_name, ba_last_name, ba_name, cc_cardholder, cc_first_name, cc_last_name |
| ba_cust_first_name_match | Match \| Bank account holder and customer \| First name | Specifies if the first name of the bank account holder matches the first name of the customer. | ba_first_name, ba_last_name, ba_name, cust_first_name, cust_last_name, cust_name |
| ba_cust_f_l_match | Match \| Bank account holder and customer \| Full name | Specifies if the full name of the bank account holder matches the full name of the customer. | ba_first_name, ba_last_name, ba_name, cust_first_name, cust_last_name, cust_name |
| ba_cust_f_l_match_h_l | Match \| Bank account holder and customer \| Full name \| High level | Specifies if the full name of the bank account holder matches the full name of the customer. This high-level attribute only has two enum values available. If you’d like to have more granular match options, use 'Match \| Bank account holder and customer \| Full name' instead. | ba_first_name, ba_last_name, ba_name, cust_first_name, cust_last_name, cust_name |
| ba_cust_last_name_match | Match \| Bank account holder and customer \| Last name | Specifies if the last name of the bank account holder matches the last name of the customer. | ba_first_name, ba_last_name, ba_name, cust_first_name, cust_last_name, cust_name |
| ba_ship_first_name_match | Match \| Bank account holder and shipping address \| First name | Specifies if the first name of the bank account holder matches the first name on the shipping address. | ba_first_name, ba_last_name, ba_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| ba_ship_f_l_match | Match \| Bank account holder and shipping address \| Full name | Specifies if the full name of the bank account holder matches the full name on the shipping address. | ba_first_name, ba_last_name, ba_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| ba_ship_f_l_match_h_l | Match \| Bank account holder and shipping address \| Full name \| High level | Specifies if the full name of the bank account holder matches the full name on the shipping address. This high-level attribute only has two enum values available. If you’d like to have more granular match options, use 'Match \| Bank account holder and shipping address \| Full name' instead. | ba_first_name, ba_last_name, ba_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| ba_ship_last_name_match | Match \| Bank account holder and shipping address \| Last name | Specifies if the last name of the bank account holder matches the last name on the shipping address. | ba_first_name, ba_last_name, ba_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| bill_zip_city_match | Match \| Billing address \| Postal code and city | Specifies if the postal code on the billing address matches the city on the billing address. | bill_ad_city, bill_ad_ctry, bill_ad_state, bill_ad_zip |
| bill_zip_ctry_match | Match \| Billing address \| Postal code and country | Specifies if the postal code on the billing address matches the country on the billing address. | bill_ad_ctry, bill_ad_zip |
| bill_cc_first_name_match | Match \| Billing address and CC holder \| First name | Specifies if the first name on the billing address matches the first name of the credit card holder. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, cc_cardholder, cc_first_name, cc_last_name |
| bill_cc_last_name_match | Match \| Billing address and CC holder \| Last name | Specifies if the last name on the billing address matches the last name of the credit card holder. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, cc_cardholder, cc_first_name, cc_last_name |
| bill_eth_bill_ctry_match | Match \| Billing address name ethnicity and billing country | Specifies if the ethnicity of the name on the billing address matches the billing country. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| bill_eth_bin_ctry_match | Match \| Billing address name ethnicity and BIN country | Specifies if the ethnicity of the name on the billing address matches the credit card BIN country. | bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| bill_eth_ip_ctry_match | Match \| Billing address name ethnicity and IP country | Specifies if the ethnicity of the name on the billing address matches the IP country. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ip, ship_ad_first_name, ship_ad_last_name |
| bill_eth_phone_ctry_match | Match \| Billing address name ethnicity and phone country | Specifies if the ethnicity of the name on the billing address matches the phone country. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| bill_ship_ad_match | Match \| Billing and shipping address | This attribute compares the billing and shipping address to find the best possible match between them. | bill_ad_city, bill_ad_ctry, bill_ad_line1, bill_ad_line2, bill_ad_state, bill_ad_zip, ship_ad_city, ship_ad_ctry, ship_ad_line1, ship_ad_line2, ship_ad_state, ship_ad_zip |
| bill_ship_line2_match | Match \| Billing and shipping address \| Apartment number | Specifies if the apartment number on the billing address matches the apartment number on the shipping address. | bill_ad_line2, ship_ad_line2 |
| bill_ship_line2_format_match | Match \| Billing and shipping address \| Apartment number format | Specifies if the writing and capitalization format of the apartment number on the billing address matches the writing and capitalization format of the apartment number on the shipping address. | bill_ad_line2, ship_ad_line2 |
| bill_ship_city_match | Match \| Billing and shipping address \| City | Specifies if the city on the shipping address matches the city on the billing address. | bill_ad_city, ship_ad_city |
| bill_ship_ctry_match | Match \| Billing and shipping address \| Country | Specifies if the country on the shipping address matches the country on the billing address. | bill_ad_ctry, ship_ad_ctry |
| bill_ship_first_name_match | Match \| Billing and shipping address \| First name | Specifies if the first name on the billing address matches the first name on the shipping address. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| bill_ship_f_l_match | Match \| Billing and shipping address \| Full name | Specifies if the full name of the customer on the billing address matches their full name on the shipping address. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| bill_ship_f_l_match_h_l | Match \| Billing and shipping address \| Full name \| High level | Specifies if the full name of the customer on the billing address matches their full name on the shipping address. This high-level attribute only has two enum values available. If you'd like to have more granular match options, use 'Match \| Billing and shipping address \| Full name' instead. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| bill_ship_last_name_match | Match \| Billing and shipping address \| Last name | Specifies if the last name on the billing address matches the last name on the shipping address. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| bill_ship_zip_match | Match \| Billing and shipping address \| Postal code | Specifies if the postal code on the billing address matches the postal code on the shipping address. | bill_ad_zip, ship_ad_zip |
| bill_ship_ctry_rgn_match | Match \| Billing and shipping address \| Region | Specifies if the region of the shipping address matches the region of the billing address. | bill_ad_ctry, ship_ad_ctry |
| bill_ship_state_match | Match \| Billing and shipping address \| State | Specifies if the state on the billing address matches the state on the shipping address. | bill_ad_state, ship_ad_state |
| bill_ship_line1_match | Match \| Billing and shipping address \| Street and building number | Specifies if the street and building number on the billing address matches the street and building number on the shipping address. | bill_ad_line1, ship_ad_line1 |
| bill_ship_line1_format_match | Match \| Billing and shipping address \| Street and building number format | Specifies if the writing and capitalization format of the street and building number on the billing address matches the writing and capitalization format of the street and building number on the shipping address. | bill_ad_line1, ship_ad_line1 |
| bill_ship_ad_norm_match | Match \| Billing and shipping address normalized | This attribute compares the normalized billing and normalized shipping address to find the best possible match between them. | bill_ad_city, bill_ad_ctry, bill_ad_line1, bill_ad_line2, bill_ad_state, bill_ad_zip, ship_ad_city, ship_ad_ctry, ship_ad_line1, ship_ad_line2, ship_ad_state, ship_ad_zip |
| bin_bill_ctry_match | Match \| BIN and billing country | Specifies if the credit card BIN country matches the country on the billing address. | bill_ad_ctry, bin_ctry, cc_bin |
| bin_ip_ctry_match | Match \| BIN and IP country | Specifies if the credit card BIN country matches the IP address country. | bin_ctry, cc_bin, ip |
| bin_ship_ctry_match | Match \| BIN and shipping country | Specifies if the credit card BIN country matches the country on the shipping address. | bin_ctry, cc_bin, ship_ad_ctry |
| bill_cc_f_l_match | Match \| CC holder and billing address \| Full name | Specifies if the full name of the credit card holder matches the full name on the billing address. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, cc_cardholder, cc_first_name, cc_last_name |
| bill_cc_f_l_match_h_l | Match \| CC holder and billing address \| Full name \| High level | Specifies if the full name of the credit card holder matches the full name on the billing address. This high-level attribute only has two enum values available. If you’d like to have more granular match options, use 'Match \| CC holder and billing address \| Full name' instead. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, cc_cardholder, cc_first_name, cc_last_name |
| cc_cust_f_l_match | Match \| CC holder and customer \| Full name | Specifies if the full name of the credit card holder matches the full name of the customer. | cc_cardholder, cc_first_name, cc_last_name, cust_first_name, cust_last_name, cust_name |
| cc_cust_f_l_match_h_l | Match \| CC holder and customer \| Full name \| High level | Specifies if the full name of the credit card holder matches the full name of the customer. This high-level attribute only has two enum values available. If you’d like to have more granular match options, use 'Match \| CC holder and customer \| Full name' instead. | cc_cardholder, cc_first_name, cc_last_name, cust_first_name, cust_last_name, cust_name |
| cc_cust_first_name_match | Match \| CC holder and customer name \| First name | Specifies if the first name of the credit card holder matches the first name of the customer. | cc_cardholder, cc_first_name, cc_last_name, cust_first_name, cust_last_name, cust_name |
| cc_cust_last_name_match | Match \| CC holder and customer name \| Last name | Specifies if the last name of the credit card holder matches the last name of the customer. | cc_cardholder, cc_first_name, cc_last_name, cust_first_name, cust_last_name, cust_name |
| cc_ship_first_name_match | Match \| CC holder and shipping address \| First name | Specifies if the first name of the credit card holder matches the first name on the shipping address. | cc_cardholder, cc_first_name, cc_last_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| cc_ship_f_l_match | Match \| CC holder and shipping address \| Full name | Specifies if the full name of the credit card holder matches the full name on the shipping address. | cc_cardholder, cc_first_name, cc_last_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| cc_ship_f_l_match_h_l | Match \| CC holder and shipping address \| Full name \| High level | Specifies if the full name of the credit card holder matches the full name on the shipping address. This high-level attribute only has two enum values available. If you’d like to have more granular match options, use 'Match \| CC holder and shipping address \| Full name' instead. | cc_cardholder, cc_first_name, cc_last_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| cc_ship_last_name_match | Match \| CC holder and shipping address \| Last name | Specifies if the last name of the credit card holder matches the last name on the shipping address. | cc_cardholder, cc_first_name, cc_last_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| bill_cust_first_name_match | Match \| Customer and billing address \| First name | Specifies if the first name of the customer matches their first name on the billing address. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, cust_first_name, cust_last_name, cust_name |
| bill_cust_f_l_match | Match \| Customer and billing address \| Full name | Specifies if the full name of the customer matches their full name on the billing address. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, cust_first_name, cust_last_name, cust_name |
| bill_cust_f_l_match_h_l | Match \| Customer and billing address \| Full name \| High level | Specifies if the full name of the customer matches the full name on the billing address. This high-level attribute only has two enum values available. If you'd like to have more granular match options, use 'Match \| Customer and billing address \| Full name' instead. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, cust_first_name, cust_last_name, cust_name |
| bill_cust_last_name_match | Match \| Customer and billing address \| Last name | Specifies if the last name of the customer matches their last name on the billing address. | bill_ad_first_name, bill_ad_last_name, bill_ad_name, cust_first_name, cust_last_name, cust_name |
| cust_ship_first_name_match | Match \| Customer and shipping address \| First name | Specifies if the first name of the customer matches the first name on the shipping address. | cust_first_name, cust_last_name, cust_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| cust_ship_f_l_match | Match \| Customer and shipping address \| Full name | Specifies if the full name of the customer matches the full name on the shipping address. | cust_first_name, cust_last_name, cust_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| cust_ship_f_l_match_h_l | Match \| Customer and shipping address \| Full name \| High level | Specifies if the full name of the customer matches the full name on the shipping address. This high-level attribute only has two enum values available. If you’d like to have more granular match options, use 'Match \| Customer and shipping address \| Full name' instead. | cust_first_name, cust_last_name, cust_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| cust_ship_last_name_match | Match \| Customer and shipping address \| Last name | Specifies if the last name of the customer matches the last name on the shipping address. | cust_first_name, cust_last_name, cust_name, ship_ad_first_name, ship_ad_last_name, ship_ad_name |
| e_dom_bill_ctry_match | Match \| Email domain and billing country | Specifies if the country on the billing address matches the country of the email domain. | bill_ad_ctry, cust_email |
| ip_ctry_e_tld_match | Match \| Email domain and IP country | Specifies if the IP country matches the country of the email domain. | cust_email, ip |
| e_dom_ship_ctry_match | Match \| Email domain and shipping country | Specifies if the country on the shipping address matches the country of the email domain. | cust_email, ship_ad_ctry |
| cust_eth_bill_ctry_match | Match \| Ethnicity and billing country | Specifies if the customer's ethnicity matches the country on the billing address. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| bin_ctry_ethn_match | Match \| Ethnicity and BIN country | Specifies if the customer's ethnicity matches the credit card BIN country. | bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| cust_eth_ip_ctry_match | Match \| Ethnicity and IP address | Specifies if the customer's ethnicity matches the IP address country. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ip, ship_ad_first_name, ship_ad_last_name |
| phone_ctry_cust_ethn_match | Match \| Ethnicity and phone country | Specifies if the customer's ethnicity matches the country of the customer's phone number. The phone number is available in the attribute 'Phone'. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| cust_eth_ship_ctry_match | Match \| Ethnicity and shipping country | Specifies if the customer's ethnicity matches the country on the shipping address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| cust_first_name_device_match | Match \| First name and device name | Specifies if the first name of the customer matches their name on the device. | cust_first_name, device_name |
| cust_bill_ship_f_l_format_match | Match \| Format of the customer name, billing name and shipping name | Checks for format matching between the customer's name, the name on the billing address and the name on the shipping address. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| e_dom_fl_match | Match \| Full name and email domain | Specifies if the first and last name of the customer match the domain in the primary email address. | cust_email, cust_first_name, cust_last_name, cust_scndry_email |
| eun_fl_match | Match \| Full name and email username | Specifies if the first and last name of the customer match the username in the primary email address (the part before the @ symbol). | cust_email, cust_first_name, cust_last_name, cust_scndry_email |
| eun_ship_fl_match | Match \| Full shipping address name and email username | Specifies if the first and last name of the customer on the shipping address match the username in the primary email address (the part before the @ symbol). | cust_email, cust_scndry_email, ship_ad_first_name, ship_ad_last_name |
| bill_f_l_bill_ad_format_h_l_match | Match \| High-level \| Format of the billing name and format of the billing address | Checks for format matching between billing name and billing address. | bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_line2 |
| ship_f_l_ship_ad_format_h_l_match | Match \| High-level \| Format of the shipping name and format of the shipping address | Checks for format matching between shipping name and shipping address. | ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_line2 |
| basket_bill_fl_match | Match \| Item description and Name | Specifies if the first and last name of the customer on the billing address match the names in the purchased item description. | bill_ad_first_name, bill_ad_last_name, items |
| bill_f_l_bill_ad_format_l_l_match | Match \| Low-level \| Format of the billing name and format of the billing address | Checks for format matching between billing name and billing address. If the formats match or partially match, the format is also detected and listed. | bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_line2 |
| ship_f_l_ship_ad_format_l_l_match | Match \| Low-level \| Format of the shipping name and format of the shipping address | Checks for format matching between shipping name and shipping address. If the formats match or partially match, the format is also detected and listed. | ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_line2 |
| phone_ctry_bill_ctry_match | Match \| Phone and billing country | Specifies if the phone country matches the country on the billing address. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_ctry_bin_ctry_match | Match \| Phone and BIN country | Specifies if the phone country matches the credit card BIN country. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_ctry_ip_ctry_match | Match \| Phone and IP country | Specifies if the phone country matches the IP country. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_ctry_ship_ctry_match | Match \| Phone and shipping country | Specifies if the phone country matches the country on the shipping address. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| e_scndry_e_match | Match \| Primary and secondary email address | Specifies if the primary email address matches in any way the secondary email address of the customer. | cust_email, cust_scndry_email |
| scndry_e_dom_bill_ctry_match | Match \| Secondary email domain and billing country | Specifies if the country on the billing address matches the country of the secondary email domain. | bill_ad_ctry, cust_scndry_email |
| scndry_e_tld_bin_match | Match \| Secondary email domain and BIN country | Specifies if the credit card BIN country matches the country of the secondary email domain. | bin_ctry, cc_bin, cust_scndry_email |
| ip_ctry_scndry_e_tld_match | Match \| Secondary email domain and IP country | Specifies if the IP country matches the country of the secondary email domain. | cust_scndry_email, ip |
| scndry_e_dom_ship_ctry_match | Match \| Secondary email domain and shipping country | Specifies if the country on the shipping address matches the country of the secondary email domain. | cust_scndry_email, ship_ad_ctry |
| ship_zip_city_match | Match \| Shipping address \| Postal code and city | Specifies if the postal code on the shipping address matches the city on the shipping address. | ship_ad_city, ship_ad_ctry, ship_ad_state, ship_ad_zip |
| ship_zip_ctry_match | Match \| Shipping address \| Postal code and country | Specifies if the postal code on the shipping address matches the country on the shipping address. | ship_ad_ctry, ship_ad_zip |
| ship_eth_bill_ctry_match | Match \| Shipping address name ethnicity and billing country | Specifies if the ethnicity of the name on the shipping address matches the billing country. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| bill_eth_ship_ctry_match | Match \| Shipping address name ethnicity and billing country | Specifies if the ethnicity of the name on the billing address matches the shipping country. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| ship_eth_bin_ctry_match | Match \| Shipping address name ethnicity and BIN country | Specifies if the ethnicity of the name on the shipping address matches the BIN country. | bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_first_name, cust_last_name, ship_ad_first_name, ship_ad_last_name |
| ship_eth_ip_ctry_match | Match \| Shipping address name ethnicity and IP country | Specifies if the ethnicity of the name on the shipping address matches the IP country. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ip, ship_ad_first_name, ship_ad_last_name |
| ship_eth_phone_ctry_match | Match \| Shipping address name ethnicity and phone country | Specifies if the ethnicity of the name on the shipping address matches the phone country. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| ship_eth_ship_ctry_match | Match \| Shipping address name ethnicity and shipping country | Specifies if the ethnicity of the name on the shipping address matches the shipping country. | bill_ad_first_name, bill_ad_last_name, cust_first_name, cust_last_name, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| e_tld_bin_match | Match \| Top email domain and BIN country | Specifies if the credit card BIN country matches the country of the email top level domain. | bin_ctry, cc_bin, cust_email |
## Merchant
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| custom_threshold | Merchant \| Custom threshold | A custom threshold value provided by the merchant, usable in rules or downstream logic. | |
| device_id_type | Merchant \| Device ID type | The device ID type as defined in the merchant configuration service. Used to decide what value goes into 'device_id_mapped'. | client_id, seller_id, sub_seller |
| slr_ind_hl | Merchant \| High level industry | The high-level industry of the merchant. | client_id, seller_id, sub_seller |
| primary_pmt_method | Merchant \| Primary payment method | The primary payment method used by the merchant. | client_id, seller_id, sub_seller |
| slr_ctry_rgn | Merchant \| Region | The world region where the merchant operates. | slr_ctry |
| regions_or_blocked_regions | Merchant \| Regions (blocked or allowed) | Comma-separated list of regions/country codes provided by the merchant. Can be used as blocked regions or for other custom purposes. | |
## Merchant and shipping address country
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| slr_ship_ctry_cor | Merchant and shipping address country \| Country codes combined | The attribute combines the country code of the merchant and the country code of the shipping address into a geographical corridor. The codes are expected in the ISO 3166-1 alpha-2 format as country code 1_country code 2. | ship_ad_ctry, slr_ctry |
## Merchant and shipping address region
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| slr_ship_ctry_rgn_cor | Merchant and shipping address region \| Regions combined | The attribute combines the region of the merchant and the region of the shipping address into a geographical corridor. | ship_ad_ctry, slr_ctry |
## Neighborhood score
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| sloth_nbh_norm_score | Neighborhood score \| Normalized | The neighborhood score after normalization. A decimal number between 0 and 1. | |
## OS
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| os_hour | OS \| Hour of the day | The hour of the day as captured by the OS of the customer. | os_ts |
| os_daytime | OS \| Part of the day | The part of the day as captured by the OS of the customer. | os_ts |
## Phone
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| phone_ctry | Phone \| Country | The country the customer's phone number belongs to. An ISO 3166-1 alpha-2 code. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_ctry_code | Phone \| Country code | The country code of the phone number. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_time_zone | Phone \| Country time zone | The time zone of the country that the phone number belongs to. The expected format of the value is continent/city. If the city name has multiple words, they are joined by an underscore. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_ctry_tld | Phone \| Country top level domain | The top-level domain of the phone country. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_norm | Phone \| International phone number normalized | The normalized value of the phone number in an international phone format, with the country code. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_national | Phone \| National phone number normalized | The normalized value of the phone number in a national phone format, i.e. without the country code. For example, if the phone number is +33673379101, then the expected value for this attribute is 673379101. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
| phone_is_valid | Phone \| Validity | Indicates if the phone number is valid. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cust_first_name, cust_last_name, ip, phone, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
## Purchase
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| affiliate_id | Purchase \| Affiliate ID | The ID of the affiliate partner that facilitated the purchase in this transaction. | |
| basket_items_desc | Purchase \| Concatenated full description of all basket items | A concatenated string of items' description (item_desc) and additional description (additional_description) for all items in the basket. Additional description is joined to the primary description with a space. Items in the basket are joined together with a semicolon. | items |
| basket_max_amt | Purchase \| Highest item price | The price of the most expensive item ordered in one purchase order. | items |
| basket_max_quant | Purchase \| Highest order quantity | The highest order quantity for one item in a purchase order. | items |
| item_code | Purchase \| Item code | | |
| basket_items_cnt | Purchase \| Items total | The total number of items ordered in one purchase order. | items |
| basket_min_amt | Purchase \| Lowest item price | The price of the least expensive item ordered in one purchase order. | items |
| basket_min_quant | Purchase \| Lowest order quantity | The lowest order quantity for one item in a purchase order. | items |
| basket_unique_items_cnt | Purchase \| Unique item count | The number of unique items ordered in one purchase order. | items |
## Sanctions lists hits
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| sanctions_lists_hits_json | Sanctions lists hits \| JSON string | A list of objects with all sanctions lists hits, represented as a JSON string. | bill_ad_city, bill_ad_line1, bill_ad_zip, client_id, cust_dob, cust_first_name, cust_last_name, cust_middle_name, cust_name, seller_id, sub_seller |
## Secondary email
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| scndry_e_format | Secondary email \| Capitalization format | Specifies the capitalization format of the secondary email address. | cust_scndry_email |
| scndry_e_dom_type_controlled | Secondary email \| Domain control | The control level of the email domain in the secondary email address. | cust_email, cust_first_name, cust_last_name, cust_scndry_email |
| scndry_e_dom_is_risky | Secondary email \| Domain risk | Specifies if the email domain in the secondary email address is risky, i.e. has a tendency to appear in a lot of fraudulent transactions. | cust_scndry_email |
| scndry_e_dom_type | Secondary email \| Domain type | The type of the email domain in the secondary email address. | cust_email, cust_first_name, cust_last_name, cust_scndry_email |
| scndry_public_suffix | Secondary email \| Public suffix | The public suffix of the secondary email address., i.e. the last part of it. | cust_scndry_email |
| scndry_e_dom_name | Secondary email \| Server name | The full domain name without the top-level domain, often .com or .net., of the secondary email address. | cust_scndry_email |
| scndry_e_tld | Secondary email \| Top level domain | The top-level domain of the secondary email address. | cust_scndry_email |
| scndry_e_tld_is_ctry | Secondary email \| Top level domain is country | Specifies if the top-level domain of the secondary email address refers to a country. | cust_scndry_email |
| scndry_e_dom_ctry_tld | Secondary email \| Top-level email domain country | Specifies which country the top-level email domain of the secondary email address belongs to. | cust_scndry_email |
| scndry_e_un | Secondary email \| Username | The username of the recipient in the secondary email address (the part before the @ symbol). | cust_scndry_email |
## Secondary email username
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| scndry_eun_fl_pattern | Secondary email username \| Full name pattern | A representation of the username in the secondary email address as a pattern of names, words, and signs. | cust_email, cust_first_name, cust_last_name, cust_scndry_email |
| scndry_eun_fl_pattern_v2 | Secondary email username \| Full name pattern | A representation of the username in the secondary email address as a pattern of names, words, and signs. | bill_ad_ctry, bill_ad_first_name, bill_ad_last_name, bin_ctry, cc_bin, cust_email, cust_first_name, cust_last_name, cust_scndry_email, ship_ad_ctry, ship_ad_first_name, ship_ad_last_name |
## Shipping address
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| str_crp_ship_ad_l2 | Shipping address \| Apartment number \| Bogus | Indicates whether the apartment or flat number information on the shipping address is bogus. | ship_ad_line2 |
| ship_line2_format | Shipping address \| Apartment number format | The writing and capitalization format of the apartment or flat number on the shipping address. | ship_ad_line2 |
| ship_ad_line2_norm | Shipping address \| Apartment number normalized | The normalized value of the apartment or flat number on the shipping address. | ship_ad_line2 |
| ship_city_format | Shipping address \| City format | The writing format of the city on the shipping address. | ship_ad_city |
| ship_ad_city_norm | Shipping address \| City normalized | The normalized value of the city on the shipping address. | ship_ad_city |
| ship_city_pop | Shipping address \| City population | The population of the city on the shipping address. | ship_ad_city, ship_ad_ctry, ship_ad_state |
| ship_ad_continent | Shipping address \| Continent | The continent that the country on the shipping address belongs to. | ship_ad_ctry |
| ship_ad_ctry_crncy | Shipping address \| Country currency | The currency of the country on the shipping address. | ship_ad_ctry |
| ship_ad_ctry_gdp | Shipping address \| Country GDP | The GDP (Gross Domestic Product) of the country on the shipping address. The expected value is in US dollars. | ship_ad_ctry |
| ship_ad_ctry_gdp_per_capita | Shipping address \| Country GDP per capita | The GDP (Gross Domestic Product) per capita of the country on the shipping address. The expected value is in US dollars. | ship_ad_ctry |
| ship_ad_ctry_pop | Shipping address \| Country population | The population of the country on the shipping address. | ship_ad_ctry |
| ship_ad_ctry_rgn | Shipping address \| Country region | The world region of the country on the shipping address. | ship_ad_ctry |
| ship_ad_ctry_total_km2 | Shipping address \| Country size in km2 | The size of the country on the shipping address in square kilometers. | ship_ad_ctry |
| ship_fl | Shipping address \| Customer full name | The full name of the customer on the shipping address. This is an attribute calculated by Shufti (as opposed to the datapoint 'ship_ad_name' you can send in your API request). | ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name |
| ship_fl_norm | Shipping address \| Customer full name normalized | The normalized value of the customer's full name on the shipping address. Normalization in this case removes unicode and special characters (an apostrophe is removed, 'ü' becomes 'u', etc.) and spells all the names in lower case. | ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name |
| ship_fl_ordered | Shipping address \| Customer full name ordered alphabetically | The full name of the customer on the shipping address in alphabetical order. | ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name |
| packstation_id | Shipping address \| DHL Packstation ID \| Calculated | A 3-digit ID of a DHL Packstation. This is a calculated attribute that you can use in rules only if you send 'ship_ad_line1' as a datapoint. If you prefer to send packstation information in the API request instead, use the datapoint 'packstation_id_dp'. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3 |
| ship_f_l_format | Shipping address \| Full name format | The writing and capitalization format of the customer's full name on the shipping address. | ship_ad_first_name, ship_ad_last_name |
| postnummer | Shipping address \| Personal customer number \| Calculated | The personal customer number (Postnummer) used at the DHL Packstation. This is a calculated attribute that you can use in rules only if you send 'ship_ad_line1' as a datapoint. If you prefer to send personal customer number in the API request instead, use the datapoint 'postnummer_dp'. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3 |
| ship_ad_zip_less1 | Shipping address \| Postal code shortened by 1 | The postal code on the shipping address without the last character. | ship_ad_zip |
| ship_ad_zip_less2 | Shipping address \| Postal code shortened by 2 | The postal code on the shipping address without the last two characters. | ship_ad_zip |
| ship_ad_zip_less3 | Shipping address \| Postal code shortened by 3 | The postal code on the shipping address without the last three characters. | ship_ad_zip |
| str_crp_ship_ad_l1 | Shipping address \| Street and building number \| Bogus | Indicates whether the street and building number information on the shipping address is bogus. | ship_ad_line1 |
| ship_line1_format | Shipping address \| Street and building number format | The writing and capitalization format of the street and building number on the shipping address. | ship_ad_line1 |
| ship_ad_line1_norm | Shipping address \| Street and building number normalized | The normalized value of the street and building number on the shipping address. | ship_ad_line1 |
| ship_ad_line1_zip_cnct | Shipping address \| Street, building number, postal code concatenated | The normalized and concatenated values of the street and building number on the shipping address together with the postal code. The attribute is useful if you want to create a blacklist. It helps you see a specific address without upper-case letters or spaces, making it easier to find and compare two identical addresses. | ship_ad_line1, ship_ad_zip |
| ship_ad_line1_zip_last_name_cnct | Shipping address \| Street, building number, postal code, last name concatenated | The concatenated values of the street and building number of the shipping address together with the postal code and the available last name (customer, shipping, or billing). Used for linking. | bill_ad_last_name, cust_last_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip |
## Shipping address normalized
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| ship_ad_norm_cnct | Shipping address normalized \| Street, building number, postal code concatenated | The normalized and concatenated values of the street and building number on the shipping address together with the postal code. The attribute is useful if you want to create a decline list. It helps you see a specific address without upper-case letters or spaces, making it easier to find and compare two identical addresses. | ship_ad_line1, ship_ad_zip |
| ship_ad_norm_last_name_cnct | Shipping address normalized \| Street, building number, postal code, last name concatenated | The normalized and concatenated values of the street and building number of the shipping address together with the postal code and the available last name (customer, shipping, or billing). Used for linking. | bill_ad_last_name, cust_last_name, ship_ad_last_name, ship_ad_line1, ship_ad_zip |
## Sub-merchant
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| sub_slr_name | Sub-merchant \| Name | The name of the sub-merchant. | client_id, seller_id, sub_seller |
## Trading
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| source_of_wealth | Trading \| Source of wealth | Declared source of the customer's wealth/funds, e.g., salary, inheritance, business income. | |
## Transaction
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| is_3ds_attempted | Transaction \| 3D Secure attempt | Specifies if the 3D Secure check was attempted for the transaction. | |
| is_eea_acquirer_ctry | Transaction \| Acquirer country is in EEA | Specifies if the acquirer country is one of the EEA countries under PSD2. 'True' if the country is in the EEA, and 'false' if it's not. | acquirer_ctry |
| trans_aud_amt | Transaction \| Amount in AUD | The transaction amount in AUD. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_brl_amt | Transaction \| Amount in BRL | The transaction amount in BRL. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_cad_amt | Transaction \| Amount in CAD | The transaction amount in CAD. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_chf_amt | Transaction \| Amount in CHF | The transaction amount in CHF. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_cny_amt | Transaction \| Amount in CNY | The transaction amount in CNY. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_eur_amt | Transaction \| Amount in euro | The transaction amount in euro. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_gbp_amt | Transaction \| Amount in GBP | The transaction amount in GBP. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_jpy_amt | Transaction \| Amount in JPY | The transaction amount in JPY. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_mxn_amt | Transaction \| Amount in MXN | The transaction amount in MXN. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_rel_eur_amt | Transaction \| Amount in standard deviation from seller's average | The transaction amount in standard deviation from the seller's average. | client_id, seller_id, slr_crncy, sub_seller, trans_amt, trans_currency |
| trans_usd_amt | Transaction \| Amount in USD | The transaction amount in USD. | client_id, slr_crncy, trans_amt, trans_currency |
| trans_amt_is_round_number | Transaction \| Amount is a round number | Indicates whether the transaction amount in its original currency is a round number. | trans_amt |
| attempt_id | Transaction \| Attempt ID | The number of payment attempts made on a single order. | trans_id |
| bulk_job_id | Transaction \| Bulk job ID | Optional identifier that links a transaction to a bulk upload job. | |
| client_assumes_liability | Transaction \| Client assumes liability | Indicates if the client assumes liability for this transaction and Shufti is not liable for it as a result. The reasons may differ from client to client. | custom |
| client_assumes_responsibility | Transaction \| Client assumes responsibility | Indicates if the client assumes responsibility for this transaction and Shufti is not liable for it as a result. The reasons may differ from client to client. | custom |
| trans_dt | Transaction \| Date | The date part of the transaction timestamp as reported by the client. | trans_ts |
| trans_day_of_week | Transaction \| Day of week | Represents the day of the week on which the transaction took place. | trans_ts |
| effort_id | Transaction \| Effort ID | The number of payments or refunds made on a recurring order. | trans_id |
| expected_monthly_volume | Transaction \| Expected monthly volume | The expected monthly volume of the transaction in the original currency. The value is between 0 and 1000000. | |
| funding_source | Transaction \| Funding source | The actual funding source used in a transaction. Can be a bank account number or a credit card number (hash/token). The goal is to use it for velocity and clustering. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash |
| trans_hour | Transaction \| Hour | The hour when the transaction happened. The value is between 0 and 24. | trans_ts |
| trans_is_test | Transaction \| Is test | Indicates if the transaction is a test transaction. | ba_first_name, ba_last_name, ba_name, bill_ad_city, bill_ad_first_name, bill_ad_last_name, bill_ad_line1, bill_ad_line2, bill_ad_name, bill_ad_state, bill_ad_zip, bill_name_title, cc_cardholder, cc_first_name, cc_last_name, cust_email, cust_first_name, cust_last_name, cust_middle_name, cust_name, cust_scndry_email, cust_title, ship_ad_city, ship_ad_email, ship_ad_first_name, ship_ad_last_name, ship_ad_line1, ship_ad_line2, ship_ad_name, ship_ad_state, ship_ad_zip, ship_comments, ship_name_title |
| m_segment | Transaction \| Meaningful segment | The meaningful segment of the transaction. It is a condensed way to describe information linked to the transaction. It is composed by the concatenation of the country of activity, the sub-seller and the geographical pattern. | bill_ad_ctry, bin_ctry, ip, seller_id, ship_ad_ctry, sub_seller |
| payment_service_provider | Transaction \| Payment service provider (PSP) | The name of the payment service provider or gateway routing the transaction (e.g., Adyen, Stripe, Checkout.com). | |
| rule_type | Transaction \| Rule Type | A free-form classifier the client sends in the transaction payload to route the transaction to a specific rule set (e.g. 'topup', 'payout', 'transfer', 'kyc_review'). The value is opaque to the engine and is intended for use in rule conditions. | |
| transaction_type | Transaction \| Type | High-level transaction type used for rule logic. Typical values include deposit, withdrawal, trade, transfer, conversion, fee, refund. | |
## Velocity
| Name | Display Name | Description | Depends On |
| --- | --- | --- | --- |
| beneficiary_id_approved_one_day | Velocity \| Approved beneficiary ID \| 1 day | The number of times the same beneficiary ID appeared in approved transactions in the last day. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_one_hour | Velocity \| Approved beneficiary ID \| 1 hour | The number of times the same beneficiary ID appeared in approved transactions in the last hour. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_one_min | Velocity \| Approved beneficiary ID \| 1 minute | The number of times the same beneficiary ID appeared in approved transactions in the last minute. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_one_month | Velocity \| Approved beneficiary ID \| 1 month | The number of times the same beneficiary ID appeared in approved transactions in the last month (30 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_ten_day | Velocity \| Approved beneficiary ID \| 10 days | The number of times the same beneficiary ID appeared in approved transactions in the last 10 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_three_month | Velocity \| Approved beneficiary ID \| 3 months | The number of times the same beneficiary ID appeared in approved transactions in the last 3 months (90 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_five_day | Velocity \| Approved beneficiary ID \| 5 days | The number of times the same beneficiary ID appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_five_min | Velocity \| Approved beneficiary ID \| 5 minutes | The number of times the same beneficiary ID appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_six_month | Velocity \| Approved beneficiary ID \| 6 months | The number of times the same beneficiary ID appeared in approved transactions in the last 6 months (180 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_seven_day | Velocity \| Approved beneficiary ID \| 7 days | The number of times the same beneficiary ID appeared in approved transactions in the last 7 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_approved_seven_hour | Velocity \| Approved beneficiary ID \| 7 hours | The number of times the same beneficiary ID appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| bill_ad_norm_cnct_approved_one_day | Velocity \| Approved billing address \| 1 day | The number of times the same billing address appeared in approved transactions in the last day. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_approved_one_hour | Velocity \| Approved billing address \| 1 hour | The number of times the same billing address appeared in approved transactions in the last hour. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_approved_one_min | Velocity \| Approved billing address \| 1 minute | The number of times the same billing address appeared in approved transactions in the last minute. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_approved_five_day | Velocity \| Approved billing address \| 5 days | The number of times the same billing address appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_approved_five_min | Velocity \| Approved billing address \| 5 minutes | The number of times the same billing address appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_approved_seven_hour | Velocity \| Approved billing address \| 7 hours | The number of times the same billing address appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| cust_id_approved_one_day | Velocity \| Approved customer ID \| 1 day | The number of times the same customer ID appeared in approved transactions in the last day. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_one_hour | Velocity \| Approved customer ID \| 1 hour | The number of times the same customer ID appeared in approved transactions in the last hour. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_one_min | Velocity \| Approved customer ID \| 1 minute | The number of times the same customer ID appeared in approved transactions in the last minute. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_one_month | Velocity \| Approved customer ID \| 1 month | The number of times the same customer ID appeared in approved transactions in the last month (30 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_ten_day | Velocity \| Approved customer ID \| 10 days | The number of times the same customer ID appeared in approved transactions in the last 10 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_three_month | Velocity \| Approved customer ID \| 3 months | The number of times the same customer ID appeared in approved transactions in the last 3 months (90 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_five_day | Velocity \| Approved customer ID \| 5 days | The number of times the same customer ID appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_five_min | Velocity \| Approved customer ID \| 5 minutes | The number of times the same customer ID appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_six_month | Velocity \| Approved customer ID \| 6 months | The number of times the same customer ID appeared in approved transactions in the last 6 months (180 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_seven_day | Velocity \| Approved customer ID \| 7 days | The number of times the same customer ID appeared in approved transactions in the last 7 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_approved_seven_hour | Velocity \| Approved customer ID \| 7 hours | The number of times the same customer ID appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_fl_ordered_approved_one_day | Velocity \| Approved customer name \| 1 day | The number of times the same customer name appeared in approved transactions in the last day. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_approved_one_hour | Velocity \| Approved customer name \| 1 hour | The number of times the same customer name appeared in approved transactions in the last hour. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_approved_one_min | Velocity \| Approved customer name \| 1 minute | The number of times the same customer name appeared in approved transactions in the last minute. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_approved_five_day | Velocity \| Approved customer name \| 5 days | The number of times the same customer name appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_approved_five_min | Velocity \| Approved customer name \| 5 minutes | The number of times the same customer name appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_approved_seven_hour | Velocity \| Approved customer name \| 7 hours | The number of times the same customer name appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_eur_sum_approved_one_day | Velocity \| Approved customer name amount \| 1 day | The sum of approved transaction amounts in EUR with the same first and last names in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_one_hour | Velocity \| Approved customer name amount \| 1 hour | The sum of approved transaction amounts in EUR with the same first and last names in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_one_min | Velocity \| Approved customer name amount \| 1 minute | The sum of approved transaction amounts in EUR with the same first and last names in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_one_month | Velocity \| Approved customer name amount \| 1 month | The sum of approved transaction amounts in EUR with the same first and last names in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_ten_day | Velocity \| Approved customer name amount \| 10 days | The sum of approved transaction amounts in EUR with the same first and last names in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_three_month | Velocity \| Approved customer name amount \| 3 months | The sum of approved transaction amounts in EUR with the same first and last names in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_five_day | Velocity \| Approved customer name amount \| 5 days | The sum of approved transaction amounts in EUR with the same first and last names in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_five_min | Velocity \| Approved customer name amount \| 5 minutes | The sum of approved transaction amounts in EUR with the same first and last names in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_six_month | Velocity \| Approved customer name amount \| 6 months | The sum of approved transaction amounts in EUR with the same first and last names in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_seven_day | Velocity \| Approved customer name amount \| 7 days | The sum of approved transaction amounts in EUR with the same first and last names in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_approved_seven_hour | Velocity \| Approved customer name amount \| 7 hours | The sum of approved transaction amounts in EUR with the same first and last names in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_email_approved_one_day | Velocity \| Approved email \| 1 day | The number of times the same email address appeared in approved transactions in the last day. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_one_hour | Velocity \| Approved email \| 1 hour | The number of times the same email address appeared in approved transactions in the last hour. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_one_min | Velocity \| Approved email \| 1 minute | The number of times the same email address appeared in approved transactions in the last minute. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_one_month | Velocity \| Approved email \| 1 month | The number of times the same email address appeared in approved transactions in the last month (30 days). The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_ten_day | Velocity \| Approved email \| 10 days | The number of times the same email address appeared in approved transactions in the last 10 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_three_month | Velocity \| Approved email \| 3 months | The number of times the same email address appeared in approved transactions in the last 3 months (90 days). The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_five_day | Velocity \| Approved email \| 5 days | The number of times the same email address appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_five_min | Velocity \| Approved email \| 5 minutes | The number of times the same email address appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_six_month | Velocity \| Approved email \| 6 months | The number of times the same email address appeared in approved transactions in the last 6 months (180 days). The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_seven_day | Velocity \| Approved email \| 7 days | The number of times the same email address appeared in approved transactions in the last 7 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_approved_seven_hour | Velocity \| Approved email \| 7 hours | The number of times the same email address appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | cust_email, trans_ts |
| ip_approved_one_day | Velocity \| Approved IP address \| 1 day | The number of times the same IP address appeared in approved transactions in the last day. The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_one_hour | Velocity \| Approved IP address \| 1 hour | The number of times the same IP address appeared in approved transactions in the last hour. The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_one_min | Velocity \| Approved IP address \| 1 minute | The number of times the same IP address appeared in approved transactions in the last minute. The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_one_month | Velocity \| Approved IP address \| 1 month | The number of times the same IP address appeared in approved transactions in the last month (30 days). The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_ten_day | Velocity \| Approved IP address \| 10 days | The number of times the same IP address appeared in approved transactions in the last 10 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_three_month | Velocity \| Approved IP address \| 3 months | The number of times the same IP address appeared in approved transactions in the last 3 months (90 days). The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_five_day | Velocity \| Approved IP address \| 5 days | The number of times the same IP address appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_five_min | Velocity \| Approved IP address \| 5 minutes | The number of times the same IP address appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_six_month | Velocity \| Approved IP address \| 6 months | The number of times the same IP address appeared in approved transactions in the last 6 months (180 days). The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_seven_day | Velocity \| Approved IP address \| 7 days | The number of times the same IP address appeared in approved transactions in the last 7 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_approved_seven_hour | Velocity \| Approved IP address \| 7 hours | The number of times the same IP address appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | ip, trans_ts |
| device_id_mapped_approved_one_day | Velocity \| Approved mapped device ID \| 1 day | The number of times the same device ID appeared in approved transactions in the last day. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_approved_one_hour | Velocity \| Approved mapped device ID \| 1 hour | The number of times the same device ID appeared in approved transactions in the last hour. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_approved_one_min | Velocity \| Approved mapped device ID \| 1 minute | The number of times the same device ID appeared in approved transactions in the last minute. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_approved_five_day | Velocity \| Approved mapped device ID \| 5 days | The number of times the same device ID appeared in approved transactions in the last 5 days. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_approved_five_min | Velocity \| Approved mapped device ID \| 5 minutes | The number of times the same device ID appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_approved_seven_hour | Velocity \| Approved mapped device ID \| 7 hours | The number of times the same device ID appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| funding_source_approved_one_day | Velocity \| Approved payment method \| 1 day | The number of times the same payment method appeared in approved transactions in the last day. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_one_hour | Velocity \| Approved payment method \| 1 hour | The number of times the same payment method appeared in approved transactions in the last hour. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_one_min | Velocity \| Approved payment method \| 1 minute | The number of times the same payment method appeared in approved transactions in the last minute. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_one_month | Velocity \| Approved payment method \| 1 month | The number of times the same payment method appeared in approved transactions in the last month (30 days). The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_ten_day | Velocity \| Approved payment method \| 10 days | The number of times the same payment method appeared in approved transactions in the last 10 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_three_month | Velocity \| Approved payment method \| 3 months | The number of times the same payment method appeared in approved transactions in the last 3 months (90 days). The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_five_day | Velocity \| Approved payment method \| 5 days | The number of times the same payment method appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_five_min | Velocity \| Approved payment method \| 5 minutes | The number of times the same payment method appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_six_month | Velocity \| Approved payment method \| 6 months | The number of times the same payment method appeared in approved transactions in the last 6 months (180 days). The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_seven_day | Velocity \| Approved payment method \| 7 days | The number of times the same payment method appeared in approved transactions in the last 7 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_approved_seven_hour | Velocity \| Approved payment method \| 7 hours | The number of times the same payment method appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| phone_approved_one_day | Velocity \| Approved phone \| 1 day | The number of times the same phone number appeared in approved transactions in the last day. The current transaction is not added to the count. | phone, trans_ts |
| phone_approved_one_hour | Velocity \| Approved phone \| 1 hour | The number of times the same phone number appeared in approved transactions in the last hour. The current transaction is not added to the count. | phone, trans_ts |
| phone_approved_one_min | Velocity \| Approved phone \| 1 minute | The number of times the same phone number appeared in approved transactions in the last minute. The current transaction is not added to the count. | phone, trans_ts |
| phone_approved_five_day | Velocity \| Approved phone \| 5 days | The number of times the same phone number appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | phone, trans_ts |
| phone_approved_five_min | Velocity \| Approved phone \| 5 minutes | The number of times the same phone number appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | phone, trans_ts |
| phone_approved_seven_hour | Velocity \| Approved phone \| 7 hours | The number of times the same phone number appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | phone, trans_ts |
| postnummer_approved_one_day | Velocity \| Approved Postnummer \| 1 day | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in approved transactions in the last day. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_approved_one_hour | Velocity \| Approved Postnummer \| 1 hour | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in approved transactions in the last hour. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_approved_one_min | Velocity \| Approved Postnummer \| 1 minute | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in approved transactions in the last minute. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_approved_five_day | Velocity \| Approved Postnummer \| 5 days | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_approved_five_min | Velocity \| Approved Postnummer \| 5 minutes | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_approved_seven_hour | Velocity \| Approved Postnummer \| 7 hours | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| ship_ad_line1_zip_cnct_approved_one_day | Velocity \| Approved shipping address \| 1 day | The number of times the same shipping address appeared in approved transactions in the last day. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_one_hour | Velocity \| Approved shipping address \| 1 hour | The number of times the same shipping address appeared in approved transactions in the last hour. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_one_min | Velocity \| Approved shipping address \| 1 minute | The number of times the same shipping address appeared in approved transactions in the last minute. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_one_month | Velocity \| Approved shipping address \| 1 month | The number of times the same shipping address appeared in approved transactions in the last month (30 days). The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_ten_day | Velocity \| Approved shipping address \| 10 days | The number of times the same shipping address appeared in approved transactions in the last 10 days. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_three_month | Velocity \| Approved shipping address \| 3 months | The number of times the same shipping address appeared in approved transactions in the last 3 months (90 days). The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_five_day | Velocity \| Approved shipping address \| 5 days | The number of times the same shipping address appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_five_min | Velocity \| Approved shipping address \| 5 minutes | The number of times the same shipping address appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_six_month | Velocity \| Approved shipping address \| 6 months | The number of times the same shipping address appeared in approved transactions in the last 6 months (180 days). The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_seven_day | Velocity \| Approved shipping address \| 7 days | The number of times the same shipping address appeared in approved transactions in the last 7 days. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_approved_seven_hour | Velocity \| Approved shipping address \| 7 hours | The number of times the same shipping address appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| device_id_smart_approved_one_day | Velocity \| Approved smart device ID \| 1 day | The number of times the same smart device ID appeared in approved transactions in the last day. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_one_hour | Velocity \| Approved smart device ID \| 1 hour | The number of times the same smart device ID appeared in approved transactions in the last hour. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_one_min | Velocity \| Approved smart device ID \| 1 minute | The number of times the same smart device ID appeared in approved transactions in the last minute. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_one_month | Velocity \| Approved smart device ID \| 1 month | The number of times the same smart device ID appeared in approved transactions in the last month (30 days). The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_ten_day | Velocity \| Approved smart device ID \| 10 days | The number of times the same smart device ID appeared in approved transactions in the last 10 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_three_month | Velocity \| Approved smart device ID \| 3 months | The number of times the same smart device ID appeared in approved transactions in the last 3 months (90 days). The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_five_day | Velocity \| Approved smart device ID \| 5 days | The number of times the same smart device ID appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_five_min | Velocity \| Approved smart device ID \| 5 minutes | The number of times the same smart device ID appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_six_month | Velocity \| Approved smart device ID \| 6 months | The number of times the same smart device ID appeared in approved transactions in the last 6 months (180 days). The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_seven_day | Velocity \| Approved smart device ID \| 7 days | The number of times the same smart device ID appeared in approved transactions in the last 7 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_approved_seven_hour | Velocity \| Approved smart device ID \| 7 hours | The number of times the same smart device ID appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | device_id_smart, trans_ts |
| beneficiary_bin_ctry_over_cust_id_one_day | Velocity \| Beneficiary BIN country over customer ID \| 1 day | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last day. The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_one_hour | Velocity \| Beneficiary BIN country over customer ID \| 1 hour | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last hour. The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_one_min | Velocity \| Beneficiary BIN country over customer ID \| 1 minute | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last minute. The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_one_month | Velocity \| Beneficiary BIN country over customer ID \| 1 month | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last month (30 days). The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_ten_day | Velocity \| Beneficiary BIN country over customer ID \| 10 days | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last 10 days. The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_three_month | Velocity \| Beneficiary BIN country over customer ID \| 3 months | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last 3 months (90 days). The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_five_day | Velocity \| Beneficiary BIN country over customer ID \| 5 days | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last 5 days. The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_five_min | Velocity \| Beneficiary BIN country over customer ID \| 5 minutes | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last 5 minutes. The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_six_month | Velocity \| Beneficiary BIN country over customer ID \| 6 months | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last 6 months (180 days). The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_seven_day | Velocity \| Beneficiary BIN country over customer ID \| 7 days | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last 7 days. The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_bin_ctry_over_cust_id_seven_hour | Velocity \| Beneficiary BIN country over customer ID \| 7 hours | The number of different beneficiary BIN countries that the same customer ID sent transactions to in the last 7 hours. The current transaction is added to the count. | beneficiary_bin_ctry, cust_id, trans_ts |
| beneficiary_id_one_day | Velocity \| Beneficiary ID \| 1 day | The number of times the same beneficiary ID appeared in transactions in the last day. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_one_hour | Velocity \| Beneficiary ID \| 1 hour | The number of times the same beneficiary ID appeared in transactions in the last hour. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_one_min | Velocity \| Beneficiary ID \| 1 minute | The number of times the same beneficiary ID appeared in transactions in the last minute. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_one_month | Velocity \| Beneficiary ID \| 1 month | The number of times the same beneficiary ID appeared in transactions in the last month (30 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_ten_day | Velocity \| Beneficiary ID \| 10 days | The number of times the same beneficiary ID appeared in transactions in the last 10 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_three_month | Velocity \| Beneficiary ID \| 3 months | The number of times the same beneficiary ID appeared in transactions in the last 3 months (90 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_five_day | Velocity \| Beneficiary ID \| 5 days | The number of times the same beneficiary ID appeared in transactions in the last 5 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_five_min | Velocity \| Beneficiary ID \| 5 minutes | The number of times the same beneficiary ID appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_six_month | Velocity \| Beneficiary ID \| 6 months | The number of times the same beneficiary ID appeared in transactions in the last 6 months (180 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_seven_day | Velocity \| Beneficiary ID \| 7 days | The number of times the same beneficiary ID appeared in transactions in the last 7 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_seven_hour | Velocity \| Beneficiary ID \| 7 hours | The number of times the same beneficiary ID appeared in transactions in the last 7 hours. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_over_cust_id_one_day | Velocity \| Beneficiary ID over customer ID \| 1 day | The number of different beneficiaries that the same customer ID sent transactions to in the last day. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_one_hour | Velocity \| Beneficiary ID over customer ID \| 1 hour | The number of different beneficiaries that the same customer ID sent transactions to in the last hour. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_one_min | Velocity \| Beneficiary ID over customer ID \| 1 minute | The number of different beneficiaries that the same customer ID sent transactions to in the last minute. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_one_month | Velocity \| Beneficiary ID over customer ID \| 1 month | The number of different beneficiaries that the same customer ID sent transactions to in the last month (30 days). The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_ten_day | Velocity \| Beneficiary ID over customer ID \| 10 days | The number of different beneficiaries that the same customer ID sent transactions to in the last 10 days. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_three_month | Velocity \| Beneficiary ID over customer ID \| 3 months | The number of different beneficiaries that the same customer ID sent transactions to in the last 3 months (90 days). The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_five_day | Velocity \| Beneficiary ID over customer ID \| 5 days | The number of different beneficiaries that the same customer ID sent transactions to in the last 5 days. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_five_min | Velocity \| Beneficiary ID over customer ID \| 5 minutes | The number of different beneficiaries that the same customer ID sent transactions to in the last 5 minutes. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_six_month | Velocity \| Beneficiary ID over customer ID \| 6 months | The number of different beneficiaries that the same customer ID sent transactions to in the last 6 months (180 days). The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_seven_day | Velocity \| Beneficiary ID over customer ID \| 7 days | The number of different beneficiaries that the same customer ID sent transactions to in the last 7 days. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| beneficiary_id_over_cust_id_seven_hour | Velocity \| Beneficiary ID over customer ID \| 7 hours | The number of different beneficiaries that the same customer ID sent transactions to in the last 7 hours. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| bill_ad_norm_cnct_one_day | Velocity \| Billing address \| 1 day | The number of times the same billing address appeared in transactions in the last day. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_one_hour | Velocity \| Billing address \| 1 hour | The number of times the same billing address appeared in transactions in the last hour. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_one_min | Velocity \| Billing address \| 1 minute | The number of times the same billing address appeared in transactions in the last minute. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_five_day | Velocity \| Billing address \| 5 days | The number of times the same billing address appeared in transactions in the last 5 days. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_five_min | Velocity \| Billing address \| 5 minutes | The number of times the same billing address appeared in transactions in the last 5 minutes. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_seven_hour | Velocity \| Billing address \| 7 hours | The number of times the same billing address appeared in transactions in the last 7 hours. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bin_ctry_over_beneficiary_id_one_day | Velocity \| BIN country over beneficiary ID \| 1 day | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last day. The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_one_hour | Velocity \| BIN country over beneficiary ID \| 1 hour | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last hour. The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_one_min | Velocity \| BIN country over beneficiary ID \| 1 minute | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last minute. The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_one_month | Velocity \| BIN country over beneficiary ID \| 1 month | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last month (30 days). The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_ten_day | Velocity \| BIN country over beneficiary ID \| 10 days | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last 10 days. The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_three_month | Velocity \| BIN country over beneficiary ID \| 3 months | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last 3 months (90 days). The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_five_day | Velocity \| BIN country over beneficiary ID \| 5 days | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last 5 days. The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_five_min | Velocity \| BIN country over beneficiary ID \| 5 minutes | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last 5 minutes. The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_six_month | Velocity \| BIN country over beneficiary ID \| 6 months | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last 6 months (180 days). The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_seven_day | Velocity \| BIN country over beneficiary ID \| 7 days | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last 7 days. The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_beneficiary_id_seven_hour | Velocity \| BIN country over beneficiary ID \| 7 hours | The number of different sender BIN countries that sent transactions to the same beneficiary ID in the last 7 hours. The current transaction is added to the count. | beneficiary_id, bin_ctry, trans_ts |
| bin_ctry_over_email_one_day | Velocity \| BIN country over email \| 1 day | The number of different BIN countries used with the same email address in the last day. The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_one_hour | Velocity \| BIN country over email \| 1 hour | The number of different BIN countries used with the same email address in the last hour. The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_one_min | Velocity \| BIN country over email \| 1 minute | The number of different BIN countries used with the same email address in the last minute. The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_one_month | Velocity \| BIN country over email \| 1 month | The number of different BIN countries used with the same email address in the last month (30 days). The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_ten_day | Velocity \| BIN country over email \| 10 days | The number of different BIN countries used with the same email address in the last 10 days. The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_three_month | Velocity \| BIN country over email \| 3 months | The number of different BIN countries used with the same email address in the last 3 months (90 days). The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_five_day | Velocity \| BIN country over email \| 5 days | The number of different BIN countries used with the same email address in the last 5 days. The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_five_min | Velocity \| BIN country over email \| 5 minutes | The number of different BIN countries used with the same email address in the last 5 minutes. The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_six_month | Velocity \| BIN country over email \| 6 months | The number of different BIN countries used with the same email address in the last 6 months (180 days). The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_seven_day | Velocity \| BIN country over email \| 7 days | The number of different BIN countries used with the same email address in the last 7 days. The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_email_seven_hour | Velocity \| BIN country over email \| 7 hours | The number of different BIN countries used with the same email address in the last 7 hours. The current transaction is added to the count. | bin_ctry, cust_email, trans_ts |
| bin_ctry_over_phone_one_day | Velocity \| BIN country over phone \| 1 day | The number of different BIN countries used with the same phone number in the last day. The current transaction is added to the count. | bin_ctry, phone, trans_ts |
| bin_ctry_over_phone_one_hour | Velocity \| BIN country over phone \| 1 hour | The number of different BIN countries used with the same phone number in the last hour. The current transaction is added to the count. | bin_ctry, phone, trans_ts |
| bin_ctry_over_phone_one_min | Velocity \| BIN country over phone \| 1 minute | The number of different BIN countries used with the same phone number in the last minute. The current transaction is added to the count. | bin_ctry, phone, trans_ts |
| bin_ctry_over_phone_five_day | Velocity \| BIN country over phone \| 5 days | The number of different BIN countries used with the same phone number in the last 5 days. The current transaction is added to the count. | bin_ctry, phone, trans_ts |
| bin_ctry_over_phone_five_min | Velocity \| BIN country over phone \| 5 minutes | The number of different BIN countries used with the same phone number in the last 5 minutes. The current transaction is added to the count. | bin_ctry, phone, trans_ts |
| bin_ctry_over_phone_seven_hour | Velocity \| BIN country over phone \| 7 hours | The number of different BIN countries used with the same phone number in the last 7 hours. The current transaction is added to the count. | bin_ctry, phone, trans_ts |
| bin_ctry_over_ship_ad_one_day | Velocity \| BIN country over shipping address \| 1 day | The number of different BIN countries used with the same shipping address in the last day. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| bin_ctry_over_ship_ad_one_hour | Velocity \| BIN country over shipping address \| 1 hour | The number of different BIN countries used with the same shipping address in the last hour. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| bin_ctry_over_ship_ad_one_min | Velocity \| BIN country over shipping address \| 1 minute | The number of different BIN countries used with the same shipping address in the last minute. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| bin_ctry_over_ship_ad_five_day | Velocity \| BIN country over shipping address \| 5 days | The number of different BIN countries used with the same shipping address in the last 5 days. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| bin_ctry_over_ship_ad_five_min | Velocity \| BIN country over shipping address \| 5 minutes | The number of different BIN countries used with the same shipping address in the last 5 minutes. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| bin_ctry_over_ship_ad_seven_hour | Velocity \| BIN country over shipping address \| 7 hours | The number of different BIN countries used with the same shipping address in the last 7 hours. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| issuer_over_device_one_day | Velocity \| BIN issuer over device \| 1 day | The number of different BIN issuers used with the same device in the last day. The current transaction is added to the count. | bin_issuer, device_id, trans_ts |
| issuer_over_device_one_hour | Velocity \| BIN issuer over device \| 1 hour | The number of different BIN issuers used with the same device in the last hour. The current transaction is added to the count. | bin_issuer, device_id, trans_ts |
| issuer_over_device_one_min | Velocity \| BIN issuer over device \| 1 minute | The number of different BIN issuers used with the same device in the last minute. The current transaction is added to the count. | bin_issuer, device_id, trans_ts |
| issuer_over_device_five_day | Velocity \| BIN issuer over device \| 5 days | The number of different BIN issuers used with the same device in the last 5 days. The current transaction is added to the count. | bin_issuer, device_id, trans_ts |
| issuer_over_device_five_min | Velocity \| BIN issuer over device \| 5 minutes | The number of different BIN issuers used with the same device in the last 5 minutes. The current transaction is added to the count. | bin_issuer, device_id, trans_ts |
| issuer_over_device_seven_hour | Velocity \| BIN issuer over device \| 7 hours | The number of different BIN issuers used with the same device in the last 7 hours. The current transaction is added to the count. | bin_issuer, device_id, trans_ts |
| issuer_over_email_one_day | Velocity \| BIN issuer over email \| 1 day | The number of different BIN issuers used with the same email address in the last day. The current transaction is added to the count. | bin_issuer, cust_email, trans_ts |
| issuer_over_email_one_hour | Velocity \| BIN issuer over email \| 1 hour | The number of different BIN issuers used with the same email address in the last hour. The current transaction is added to the count. | bin_issuer, cust_email, trans_ts |
| issuer_over_email_one_min | Velocity \| BIN issuer over email \| 1 minute | The number of different BIN issuers used with the same email address in the last minute. The current transaction is added to the count. | bin_issuer, cust_email, trans_ts |
| issuer_over_email_five_day | Velocity \| BIN issuer over email \| 5 days | The number of different BIN issuers used with the same email address in the last 5 days. The current transaction is added to the count. | bin_issuer, cust_email, trans_ts |
| issuer_over_email_five_min | Velocity \| BIN issuer over email \| 5 minutes | The number of different BIN issuers used with the same email address in the last 5 minutes. The current transaction is added to the count. | bin_issuer, cust_email, trans_ts |
| issuer_over_email_seven_hour | Velocity \| BIN issuer over email \| 7 hours | The number of different BIN issuers used with the same email address in the last 7 hours. The current transaction is added to the count. | bin_issuer, cust_email, trans_ts |
| issuer_over_ip_one_day | Velocity \| BIN issuer over IP \| 1 day | The number of different BIN issuers used with the same IP address in the last day. The current transaction is added to the count. | bin_issuer, ip, trans_ts |
| issuer_over_ip_one_hour | Velocity \| BIN issuer over IP \| 1 hour | The number of different BIN issuers used with the same IP address in the last hour. The current transaction is added to the count. | bin_issuer, ip, trans_ts |
| issuer_over_ip_one_min | Velocity \| BIN issuer over IP \| 1 minute | The number of different BIN issuers used with the same IP address in the last minute. The current transaction is added to the count. | bin_issuer, ip, trans_ts |
| issuer_over_ip_five_day | Velocity \| BIN issuer over IP \| 5 days | The number of different BIN issuers used with the same IP address in the last 5 days. The current transaction is added to the count. | bin_issuer, ip, trans_ts |
| issuer_over_ip_five_min | Velocity \| BIN issuer over IP \| 5 minutes | The number of different BIN issuers used with the same IP address in the last 5 minutes. The current transaction is added to the count. | bin_issuer, ip, trans_ts |
| issuer_over_ip_seven_hour | Velocity \| BIN issuer over IP \| 7 hours | The number of different BIN issuers used with the same IP address in the last 7 hours. The current transaction is added to the count. | bin_issuer, ip, trans_ts |
| issuer_over_phone_one_day | Velocity \| BIN issuer over phone \| 1 day | The number of different BIN issuers used with the same phone number in the last day. The current transaction is added to the count. | bin_issuer, phone, trans_ts |
| issuer_over_phone_one_hour | Velocity \| BIN issuer over phone \| 1 hour | The number of different BIN issuers used with the same phone number in the last hour. The current transaction is added to the count. | bin_issuer, phone, trans_ts |
| issuer_over_phone_one_min | Velocity \| BIN issuer over phone \| 1 minute | The number of different BIN issuers used with the same phone number in the last minute. The current transaction is added to the count. | bin_issuer, phone, trans_ts |
| issuer_over_phone_five_day | Velocity \| BIN issuer over phone \| 5 days | The number of different BIN issuers used with the same phone number in the last 5 days. The current transaction is added to the count. | bin_issuer, phone, trans_ts |
| issuer_over_phone_five_min | Velocity \| BIN issuer over phone \| 5 minutes | The number of different BIN issuers used with the same phone number in the last 5 minutes. The current transaction is added to the count. | bin_issuer, phone, trans_ts |
| issuer_over_phone_seven_hour | Velocity \| BIN issuer over phone \| 7 hours | The number of different BIN issuers used with the same phone number in the last 7 hours. The current transaction is added to the count. | bin_issuer, phone, trans_ts |
| issuer_over_phone_velocity_high_level | Velocity \| BIN issuer over phone \| High level | The high level values of the velocity attribute 'issuer_over_phone'. | ba_iban, bin_issuer, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, cust_first_name, cust_last_name, cust_middle_name, cust_name, phone, trans_ts |
| cc_over_device_one_day | Velocity \| Credit card over device \| 1 day | The number of different credit cards used with the same device in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, device_id, trans_ts |
| cc_over_device_one_hour | Velocity \| Credit card over device \| 1 hour | The number of different credit cards used with the same device in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, device_id, trans_ts |
| cc_over_device_one_min | Velocity \| Credit card over device \| 1 minute | The number of different credit cards used with the same device in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, device_id, trans_ts |
| cc_over_device_five_day | Velocity \| Credit card over device \| 5 days | The number of different credit cards used with the same device in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, device_id, trans_ts |
| cc_over_device_five_min | Velocity \| Credit card over device \| 5 minutes | The number of different credit cards used with the same device in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, device_id, trans_ts |
| cc_over_device_seven_hour | Velocity \| Credit card over device \| 7 hours | The number of different credit cards used with the same device in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, device_id, trans_ts |
| cc_over_email_one_day | Velocity \| Credit card over email \| 1 day | The number of different credit cards used with the same email address in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_one_hour | Velocity \| Credit card over email \| 1 hour | The number of different credit cards used with the same email address in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_one_min | Velocity \| Credit card over email \| 1 minute | The count of different credit cards used with the same email address in the last minute. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_one_month | Velocity \| Credit card over email \| 1 month | The number of different credit cards used with the same email address in the last month (30 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_ten_day | Velocity \| Credit card over email \| 10 days | The number of different credit cards used with the same email address in the last 10 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_three_month | Velocity \| Credit card over email \| 3 months | The number of different credit cards used with the same email address in the last 3 months (90 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_five_day | Velocity \| Credit card over email \| 5 days | The number of different credit cards used with the same email address in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_five_min | Velocity \| Credit card over email \| 5 minutes | The number of different credit cards used with the same email address in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_six_month | Velocity \| Credit card over email \| 6 months | The number of different credit cards used with the same email address in the last 6 months (180 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_seven_day | Velocity \| Credit card over email \| 7 days | The number of different credit cards used with the same email address in the last 7 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_seven_hour | Velocity \| Credit card over email \| 7 hours | The number of different credit cards used with the same email address in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| cc_over_email_velocity_high_level | Velocity \| Credit card over email \| High level | The high level values of the velocity attribute 'cc_over_email'. | ba_iban, bin_issuer, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, cust_first_name, cust_last_name, cust_middle_name, cust_name, phone, trans_ts |
| cc_over_ip_one_day | Velocity \| Credit card over IP \| 1 day | The number of different credit cards used with the same IP address in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_one_hour | Velocity \| Credit card over IP \| 1 hour | The number of different credit cards used with the same IP address in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_one_min | Velocity \| Credit card over IP \| 1 minute | The number of different credit cards used with the same IP address in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_one_month | Velocity \| Credit card over IP \| 1 month | The number of different credit cards used with the same IP address in the last month (30 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_ten_day | Velocity \| Credit card over IP \| 10 days | The number of different credit cards used with the same IP address in the last 10 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_three_month | Velocity \| Credit card over IP \| 3 months | The number of different credit cards used with the same IP address in the last 3 months (90 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_five_day | Velocity \| Credit card over IP \| 5 days | The number of different credit cards used with the same IP address in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_five_min | Velocity \| Credit card over IP \| 5 minutes | The number of different credit cards used with the same IP address in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_six_month | Velocity \| Credit card over IP \| 6 months | The number of different credit cards used with the same IP address in the last 6 months (180 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_seven_day | Velocity \| Credit card over IP \| 7 days | The number of different credit cards used with the same IP address in the last 7 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_ip_seven_hour | Velocity \| Credit card over IP \| 7 hours | The number of different credit cards used with the same IP address in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| cc_over_phone_one_day | Velocity \| Credit card over phone \| 1 day | The number of different credit cards used with the same phone number in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| cc_over_phone_one_hour | Velocity \| Credit card over phone \| 1 hour | The number of different credit cards used with the same phone number in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| cc_over_phone_one_min | Velocity \| Credit card over phone \| 1 minute | The number of different credit cards used with the same phone number in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| cc_over_phone_five_day | Velocity \| Credit card over phone \| 5 days | The number of different credit cards used with the same phone number in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| cc_over_phone_five_min | Velocity \| Credit card over phone \| 5 minutes | The number of different credit cards used with the same phone number in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| cc_over_phone_seven_hour | Velocity \| Credit card over phone \| 7 hours | The number of different credit cards used with the same phone number in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| cc_over_ship_ad_one_day | Velocity \| Credit card over shipping address \| 1 day | The number of different credit cards used with the same shipping address in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_one_hour | Velocity \| Credit card over shipping address \| 1 hour | The number of different credit cards used with the same shipping address in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_one_min | Velocity \| Credit card over shipping address \| 1 minute | The number of different credit cards used with the same shipping address in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_one_month | Velocity \| Credit card over shipping address \| 1 month | The number of different credit cards used with the same shipping address in the last month (30 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_ten_day | Velocity \| Credit card over shipping address \| 10 days | The number of different credit cards used with the same shipping address in the last 10 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_three_month | Velocity \| Credit card over shipping address \| 3 months | The number of different credit cards used with the same shipping address in the last 3 months (90 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_five_day | Velocity \| Credit card over shipping address \| 5 days | The number of different credit cards used with the same shipping address in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_five_min | Velocity \| Credit card over shipping address \| 5 minutes | The number of different credit cards used with the same shipping address in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_six_month | Velocity \| Credit card over shipping address \| 6 months | The number of different credit cards used with the same shipping address in the last 6 months (180 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_seven_day | Velocity \| Credit card over shipping address \| 7 days | The number of different credit cards used with the same shipping address in the last 7 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cc_over_ship_ad_seven_hour | Velocity \| Credit card over shipping address \| 7 hours | The number of different credit cards used with the same shipping address in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| cust_dob_over_id_one_day | Velocity \| Customer date of birth over customer ID \| 1 day | The number of times a different customer date of birth was used with the same customer ID in the last day. The current transaction is added to the count. | cust_dob, cust_id, trans_ts |
| cust_dob_over_id_one_hour | Velocity \| Customer date of birth over customer ID \| 1 hour | The number of times a different customer date of birth was used with the same customer ID in the last hour. The current transaction is added to the count. | cust_dob, cust_id, trans_ts |
| cust_dob_over_id_one_min | Velocity \| Customer date of birth over customer ID \| 1 minute | The number of times a different customer date of birth was used with the same customer ID in the last minute. The current transaction is added to the count. | cust_dob, cust_id, trans_ts |
| cust_dob_over_id_five_day | Velocity \| Customer date of birth over customer ID \| 5 days | The number of times a different customer date of birth was used with the same customer ID in the last 5 days. The current transaction is added to the count. | cust_dob, cust_id, trans_ts |
| cust_dob_over_id_five_min | Velocity \| Customer date of birth over customer ID \| 5 minutes | The number of times a different customer date of birth was used with the same customer ID in the last 5 minutes. The current transaction is added to the count. | cust_dob, cust_id, trans_ts |
| cust_dob_over_id_seven_hour | Velocity \| Customer date of birth over customer ID \| 7 hours | The number of times a different customer date of birth was used with the same customer ID in the last 7 hours. The current transaction is added to the count. | cust_dob, cust_id, trans_ts |
| cust_first_edom_seller_id_one_day | Velocity \| Customer first name + Email domain + Seller ID \| 1 day | The number of times the same combination of first name, email domain and seller ID appeared in transactions in the last day. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_approved_one_day | Velocity \| Customer first name + Email domain + Seller ID \| 1 day | The number of times the same combination of first name, email domain and seller ID appeared in approved transactions in the last day. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_one_hour | Velocity \| Customer first name + Email domain + Seller ID \| 1 hour | The number of times the same combination of first name, email domain and seller ID appeared in transactions in the last hour. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_approved_one_hour | Velocity \| Customer first name + Email domain + Seller ID \| 1 hour | The number of times the same combination of first name, email domain and seller ID appeared in approved transactions in the last hour. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_one_min | Velocity \| Customer first name + Email domain + Seller ID \| 1 minute | The number of times the same combination of first name, email domain and seller ID appeared in transactions in the last minute. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_approved_one_min | Velocity \| Customer first name + Email domain + Seller ID \| 1 minute | The number of times the same combination of first name, email domain and seller ID appeared in approved transactions in the last minute. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_five_day | Velocity \| Customer first name + Email domain + Seller ID \| 5 days | The number of times the same combination of first name, email domain and seller ID appeared in transactions in the last 5 days. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_approved_five_day | Velocity \| Customer first name + Email domain + Seller ID \| 5 days | The number of times the same combination of first name, email domain and seller ID appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_five_min | Velocity \| Customer first name + Email domain + Seller ID \| 5 minutes | The number of times the same combination of first name, email domain and seller ID appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_approved_five_min | Velocity \| Customer first name + Email domain + Seller ID \| 5 minutes | The number of times the same combination of first name, email domain and seller ID appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_seven_hour | Velocity \| Customer first name + Email domain + Seller ID \| 7 hours | The number of times the same combination of first name, email domain and seller ID appeared in transactions in the last 7 hours. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_approved_seven_hour | Velocity \| Customer first name + Email domain + Seller ID \| 7 hours | The number of times the same combination of first name, email domain and seller ID appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_id_one_day | Velocity \| Customer ID \| 1 day | The number of times the same customer ID appeared in transactions in the last day. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_one_hour | Velocity \| Customer ID \| 1 hour | The number of times the same customer ID appeared in transactions in the last hour. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_one_min | Velocity \| Customer ID \| 1 minute | The number of times the same customer ID appeared in transactions in the last minute. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_one_month | Velocity \| Customer ID \| 1 month | The number of times the same customer ID appeared in transactions in the last month (30 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_ten_day | Velocity \| Customer ID \| 10 days | The number of times the same customer ID appeared in transactions in the last 10 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_three_month | Velocity \| Customer ID \| 3 months | The number of times the same customer ID appeared in transactions in the last 3 months (90 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_five_day | Velocity \| Customer ID \| 5 days | The number of times the same customer ID appeared in transactions in the last 5 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_five_min | Velocity \| Customer ID \| 5 minutes | The number of times the same customer ID appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_six_month | Velocity \| Customer ID \| 6 months | The number of times the same customer ID appeared in transactions in the last 6 months (180 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_seven_day | Velocity \| Customer ID \| 7 days | The number of times the same customer ID appeared in transactions in the last 7 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_seven_hour | Velocity \| Customer ID \| 7 hours | The number of times the same customer ID appeared in transactions in the last 7 hours. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_over_beneficiary_id_one_day | Velocity \| Customer ID over beneficiary ID \| 1 day | The number of different customers that sent transactions to the same beneficiary ID in the last day. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_one_hour | Velocity \| Customer ID over beneficiary ID \| 1 hour | The number of different customers that sent transactions to the same beneficiary ID in the last hour. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_one_min | Velocity \| Customer ID over beneficiary ID \| 1 minute | The number of different customers that sent transactions to the same beneficiary ID in the last minute. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_one_month | Velocity \| Customer ID over beneficiary ID \| 1 month | The number of different customers that sent transactions to the same beneficiary ID in the last month (30 days). The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_ten_day | Velocity \| Customer ID over beneficiary ID \| 10 days | The number of different customers that sent transactions to the same beneficiary ID in the last 10 days. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_three_month | Velocity \| Customer ID over beneficiary ID \| 3 months | The number of different customers that sent transactions to the same beneficiary ID in the last 3 months (90 days). The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_five_day | Velocity \| Customer ID over beneficiary ID \| 5 days | The number of different customers that sent transactions to the same beneficiary ID in the last 5 days. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_five_min | Velocity \| Customer ID over beneficiary ID \| 5 minutes | The number of different customers that sent transactions to the same beneficiary ID in the last 5 minutes. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_six_month | Velocity \| Customer ID over beneficiary ID \| 6 months | The number of different customers that sent transactions to the same beneficiary ID in the last 6 months (180 days). The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_seven_day | Velocity \| Customer ID over beneficiary ID \| 7 days | The number of different customers that sent transactions to the same beneficiary ID in the last 7 days. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_id_over_beneficiary_id_seven_hour | Velocity \| Customer ID over beneficiary ID \| 7 hours | The number of different customers that sent transactions to the same beneficiary ID in the last 7 hours. The current transaction is added to the count. | beneficiary_id, cust_id, trans_ts |
| cust_fl_ordered_one_day | Velocity \| Customer name \| 1 day | The number of times the same name appeared in transactions in the last day. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_one_hour | Velocity \| Customer name \| 1 hour | The number of times the same name appeared in transactions in the last hour. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_one_min | Velocity \| Customer name \| 1 minute | The number of times the same first and last names appeared in transactions in the last minute. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_one_month | Velocity \| Customer name \| 1 month | The number of times the same name appeared in transactions in the last month (30 days). The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_ten_day | Velocity \| Customer name \| 10 days | The number of times the same name appeared in transactions in the last 10 days. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_three_month | Velocity \| Customer name \| 3 months | The number of times the same name appeared in transactions in the last 3 months (90 days). The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_five_day | Velocity \| Customer name \| 5 days | The number of times the same name appeared in transactions in the 5 days. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_five_min | Velocity \| Customer name \| 5 minutes | The number of times the same name appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_six_month | Velocity \| Customer name \| 6 months | The number of times the same name appeared in transactions in the last 6 months (180 days). The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_seven_day | Velocity \| Customer name \| 7 days | The number of times the same name appeared in transactions in the last 7 days. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_seven_hour | Velocity \| Customer name \| 7 hours | The number of times the same name appeared in transactions in the last 7 hours. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_eur_sum_one_day | Velocity \| Customer name amount \| 1 day | The sum of all transaction amounts in EUR with the same first and last names in the last day. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_one_hour | Velocity \| Customer name amount \| 1 hour | The sum of all transaction amounts in EUR with the same first and last names in the last hour. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_one_min | Velocity \| Customer name amount \| 1 minute | The sum of all transaction amounts in EUR with the same first and last names in the last minute. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_one_month | Velocity \| Customer name amount \| 1 month | The sum of all transaction amounts in EUR with the same first and last names in the last month (30 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_ten_day | Velocity \| Customer name amount \| 10 days | The sum of all transaction amounts in EUR with the same first and last names in the last 10 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_three_month | Velocity \| Customer name amount \| 3 months | The sum of all transaction amounts in EUR with the same first and last names in the last 3 months (90 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_five_day | Velocity \| Customer name amount \| 5 days | The sum of all transaction amounts in EUR with the same first and last names in the last 5 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_five_min | Velocity \| Customer name amount \| 5 minutes | The sum of all transaction amounts in EUR with the same first and last names in the last 5 minutes. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_six_month | Velocity \| Customer name amount \| 6 months | The sum of all transaction amounts in EUR with the same first and last names in the last 6 months (180 days). The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_seven_day | Velocity \| Customer name amount \| 7 days | The sum of all transaction amounts in EUR with the same first and last names in the last 7 days. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| cust_fl_ordered_eur_sum_seven_hour | Velocity \| Customer name amount \| 7 hours | The sum of all transaction amounts in EUR with the same first and last names in the last 7 hours. The current transaction is not added to the count. The transaction amount in other currencies is converted to EUR. | client_id, cust_first_name, cust_last_name, cust_middle_name, cust_name, slr_crncy, trans_amt, trans_currency, trans_ts |
| name_over_cc_one_day | Velocity \| Customer name over credit card \| 1 day | The number of different customer names used with the same credit card in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| name_over_cc_one_hour | Velocity \| Customer name over credit card \| 1 hour | The number of different customer names used with the same credit card in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| name_over_cc_one_min | Velocity \| Customer name over credit card \| 1 minute | The number of different customer names used with the same credit card in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| name_over_cc_five_day | Velocity \| Customer name over credit card \| 5 days | The number of different customer names used with the same credit card in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| name_over_cc_five_min | Velocity \| Customer name over credit card \| 5 minutes | The number of different customer names used with the same credit card in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| name_over_cc_seven_hour | Velocity \| Customer name over credit card \| 7 hours | The number of different customer names used with the same credit card in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| name_over_cc_velocity_high_level | Velocity \| Customer name over credit card \| High level | The high level values of the velocity attribute 'name_over_cc'. | ba_iban, bin_issuer, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, cust_first_name, cust_last_name, cust_middle_name, cust_name, phone, trans_ts |
| cust_id_withdrawal_one_day | Velocity \| Customer withdrawal count \| 1 day | Withdrawal transaction count for this customer in the last day (cust_id\|withdrawal composite key). | trans_ts, transaction_type |
| cust_id_withdrawal_one_month | Velocity \| Customer withdrawal count \| 1 month | Withdrawal transaction count for this customer in the last month. | trans_ts, transaction_type |
| cust_id_withdrawal_six_month | Velocity \| Customer withdrawal count \| 6 months | Withdrawal transaction count for this customer in the last six months. | trans_ts, transaction_type |
| beneficiary_id_declined_one_day | Velocity \| Declined Beneficiary ID \| 1 day | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_one_hour | Velocity \| Declined Beneficiary ID \| 1 hour | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_one_min | Velocity \| Declined Beneficiary ID \| 1 minute | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_one_month | Velocity \| Declined Beneficiary ID \| 1 month | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last month (30 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_ten_day | Velocity \| Declined Beneficiary ID \| 10 days | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last 10 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_three_month | Velocity \| Declined Beneficiary ID \| 3 months | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last 3 months (90 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_five_day | Velocity \| Declined Beneficiary ID \| 5 days | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_five_min | Velocity \| Declined Beneficiary ID \| 5 minutes | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_six_month | Velocity \| Declined Beneficiary ID \| 6 months | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last 6 months (180 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_seven_day | Velocity \| Declined Beneficiary ID \| 7 days | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last 7 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_declined_seven_hour | Velocity \| Declined Beneficiary ID \| 7 hours | The number of times the same beneficiary ID appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| bill_ad_norm_cnct_declined_one_day | Velocity \| Declined billing address \| 1 day | The number of times the same billing address appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_declined_one_hour | Velocity \| Declined billing address \| 1 hour | The number of times the same billing address appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_declined_one_min | Velocity \| Declined billing address \| 1 minute | The number of times the same billing address appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_declined_five_day | Velocity \| Declined billing address \| 5 days | The number of times the same billing address appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_declined_five_min | Velocity \| Declined billing address \| 5 minutes | The number of times the same billing address appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_declined_seven_hour | Velocity \| Declined billing address \| 7 hours | The number of times the same billing address appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| cust_first_edom_seller_id_declined_one_day | Velocity \| Declined customer first name + Email domain + Seller ID \| 1 day | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_declined_one_hour | Velocity \| Declined customer first name + Email domain + Seller ID \| 1 hour | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_declined_one_min | Velocity \| Declined customer first name + Email domain + Seller ID \| 1 minute | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_declined_five_day | Velocity \| Declined customer first name + Email domain + Seller ID \| 5 days | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_declined_five_min | Velocity \| Declined customer first name + Email domain + Seller ID \| 5 minutes | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_declined_seven_hour | Velocity \| Declined customer first name + Email domain + Seller ID \| 7 hours | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_id_declined_one_day | Velocity \| Declined Customer ID \| 1 day | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_one_hour | Velocity \| Declined Customer ID \| 1 hour | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_one_min | Velocity \| Declined Customer ID \| 1 minute | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_one_month | Velocity \| Declined Customer ID \| 1 month | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last month (30 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_ten_day | Velocity \| Declined Customer ID \| 10 days | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last 10 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_three_month | Velocity \| Declined Customer ID \| 3 months | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last 3 months (90 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_five_day | Velocity \| Declined Customer ID \| 5 days | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_five_min | Velocity \| Declined Customer ID \| 5 minutes | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_six_month | Velocity \| Declined Customer ID \| 6 months | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last 6 months (180 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_seven_day | Velocity \| Declined Customer ID \| 7 days | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last 7 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_declined_seven_hour | Velocity \| Declined Customer ID \| 7 hours | The number of times the same customer ID appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_fl_ordered_declined_one_day | Velocity \| Declined customer name \| 1 day | The number of times the same customer name appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_declined_one_hour | Velocity \| Declined customer name \| 1 hour | The number of times the same customer name appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_declined_one_min | Velocity \| Declined customer name \| 1 minute | The number of times the same customer name appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_declined_five_day | Velocity \| Declined customer name \| 5 days | The number of times the same customer name appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_declined_five_min | Velocity \| Declined customer name \| 5 minutes | The number of times the same customer name appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_declined_seven_hour | Velocity \| Declined customer name \| 7 hours | The number of times the same customer name appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_email_declined_one_day | Velocity \| Declined email \| 1 day | The number of times the same email address appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_declined_one_hour | Velocity \| Declined email \| 1 hour | The number of times the same email address appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_declined_one_min | Velocity \| Declined email \| 1 minute | The number of times the same email address appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_declined_five_day | Velocity \| Declined email \| 5 days | The number of times the same email address appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_declined_five_min | Velocity \| Declined email \| 5 minutes | The number of times the same email address appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_declined_seven_hour | Velocity \| Declined email \| 7 hours | The number of times the same email address appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | cust_email, trans_ts |
| device_id_exact_declined_one_day | Velocity \| Declined exact device ID \| 1 day | The number of times the same exact device ID appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_declined_one_hour | Velocity \| Declined exact device ID \| 1 hour | The number of times the same exact device ID appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_declined_one_min | Velocity \| Declined exact device ID \| 1 minute | The number of times the same exact device ID appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_declined_five_day | Velocity \| Declined exact device ID \| 5 days | The number of times the same exact device ID appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_declined_five_min | Velocity \| Declined exact device ID \| 5 minutes | The number of times the same exact device ID appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_declined_seven_hour | Velocity \| Declined exact device ID \| 7 hours | The number of times the same exact device ID appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | device_id_exact, trans_ts |
| ip_declined_one_day | Velocity \| Declined IP address \| 1 day | The number of times the same IP address appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | ip, trans_ts |
| ip_declined_one_hour | Velocity \| Declined IP address \| 1 hour | The number of times the same IP address appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | ip, trans_ts |
| ip_declined_one_min | Velocity \| Declined IP address \| 1 minute | The number of times the same IP address appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | ip, trans_ts |
| ip_declined_five_day | Velocity \| Declined IP address \| 5 days | The number of times the same IP address appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_declined_five_min | Velocity \| Declined IP address \| 5 minutes | The number of times the same IP address appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | ip, trans_ts |
| ip_declined_seven_hour | Velocity \| Declined IP address \| 7 hours | The number of times the same IP address appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | ip, trans_ts |
| device_id_mapped_declined_one_day | Velocity \| Declined mapped device ID \| 1 day | The number of times the same device ID appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_declined_one_hour | Velocity \| Declined mapped device ID \| 1 hour | The number of times the same device ID appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_declined_one_min | Velocity \| Declined mapped device ID \| 1 minute | The number of times the same device ID appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_declined_five_day | Velocity \| Declined mapped device ID \| 5 days | The number of times the same device ID appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_declined_five_min | Velocity \| Declined mapped device ID \| 5 minutes | The number of times the same device ID appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_declined_seven_hour | Velocity \| Declined mapped device ID \| 7 hours | The number of times the same device ID appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| funding_source_declined_one_day | Velocity \| Declined payment method \| 1 day | The number of times the same payment method appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_declined_one_hour | Velocity \| Declined payment method \| 1 hour | The number of times the same payment method appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_declined_one_min | Velocity \| Declined payment method \| 1 minute | The number of times the same payment method appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_declined_five_day | Velocity \| Declined payment method \| 5 days | The number of times the same payment method appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_declined_five_min | Velocity \| Declined payment method \| 5 minutes | The number of times the same payment method appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_declined_seven_hour | Velocity \| Declined payment method \| 7 hours | The number of times the same payment method appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| phone_declined_one_day | Velocity \| Declined phone \| 1 day | The number of times the same phone number appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | phone, trans_ts |
| phone_declined_one_hour | Velocity \| Declined phone \| 1 hour | The number of times the same phone number appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | phone, trans_ts |
| phone_declined_one_min | Velocity \| Declined phone \| 1 minute | The number of times the same phone number appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | phone, trans_ts |
| phone_declined_five_day | Velocity \| Declined phone \| 5 days | The number of times the same phone number appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | phone, trans_ts |
| phone_declined_five_min | Velocity \| Declined phone \| 5 minutes | The number of times the same phone number appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | phone, trans_ts |
| phone_declined_seven_hour | Velocity \| Declined phone \| 7 hours | The number of times the same phone number appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | phone, trans_ts |
| postnummer_declined_one_day | Velocity \| Declined Postnummer \| 1 day | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_declined_one_hour | Velocity \| Declined Postnummer \| 1 hour | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_declined_one_min | Velocity \| Declined Postnummer \| 1 minute | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_declined_five_day | Velocity \| Declined Postnummer \| 5 days | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_declined_five_min | Velocity \| Declined Postnummer \| 5 minutes | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_declined_seven_hour | Velocity \| Declined Postnummer \| 7 hours | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| ship_ad_line1_zip_cnct_declined_one_day | Velocity \| Declined shipping address \| 1 day | The number of times the same shipping address appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_declined_one_hour | Velocity \| Declined shipping address \| 1 hour | The number of times the same shipping address appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_declined_one_min | Velocity \| Declined shipping address \| 1 minute | The number of times the same shipping address appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_declined_five_day | Velocity \| Declined shipping address \| 5 days | The number of times the same shipping address appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_declined_five_min | Velocity \| Declined shipping address \| 5 minutes | The number of times the same shipping address appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_declined_seven_hour | Velocity \| Declined shipping address \| 7 hours | The number of times the same shipping address appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| device_id_smart_declined_one_day | Velocity \| Declined smart device ID \| 1 day | The number of times the same smart device ID appeared in transactions declined either by Shufti or an external entity in the last day. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_declined_one_hour | Velocity \| Declined smart device ID \| 1 hour | The number of times the same smart device ID appeared in transactions declined either by Shufti or an external entity in the last hour. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_declined_one_min | Velocity \| Declined smart device ID \| 1 minute | The number of times the same smart device ID appeared in transactions declined either by Shufti or an external entity in the last minute. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_declined_five_day | Velocity \| Declined smart device ID \| 5 days | The number of times the same smart device ID appeared in transactions declined either by Shufti or an external entity in the last 5 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_declined_five_min | Velocity \| Declined smart device ID \| 5 minutes | The number of times the same smart device ID appeared in transactions declined either by Shufti or an external entity in the last 5 minutes. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_declined_seven_hour | Velocity \| Declined smart device ID \| 7 hours | The number of times the same smart device ID appeared in transactions declined either by Shufti or an external entity in the last 7 hours. The current transaction is not added to the count. | device_id_smart, trans_ts |
| cust_email_one_day | Velocity \| Email \| 1 day | The number of times the same email address appeared in transactions in the last day. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_one_hour | Velocity \| Email \| 1 hour | The number of times the same email address appeared in transactions in the last hour. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_one_min | Velocity \| Email \| 1 minute | The number of times the same email address appeared in transactions in the last minute. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_one_month | Velocity \| Email \| 1 month | The number of times the same email address appeared in transactions in the last month (30 days). The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_ten_day | Velocity \| Email \| 10 days | The number of times the same email address appeared in transactions in the last 10 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_three_month | Velocity \| Email \| 3 months | The number of times the same email address appeared in transactions in the last 3 months (90 days). The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_five_day | Velocity \| Email \| 5 days | The number of times the same email address appeared in transactions in the last 5 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_five_min | Velocity \| Email \| 5 minutes | The number of times the same email address appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_six_month | Velocity \| Email \| 6 months | The number of times the same email address appeared in transactions in the last 6 months (180 days). The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_seven_day | Velocity \| Email \| 7 days | The number of times the same email address appeared in transactions in the last 7 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_seven_hour | Velocity \| Email \| 7 hours | The number of times the same email address appeared in transactions in the last 7 hours. The current transaction is not added to the count. | cust_email, trans_ts |
| email_over_bill_ad_one_day | Velocity \| Email over billing address \| 1 day | The number of times a different email was used with the same billing address in the last day. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, cust_email, trans_ts |
| email_over_bill_ad_one_hour | Velocity \| Email over billing address \| 1 hour | The number of times a different email was used with the same billing address in the last hour. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, cust_email, trans_ts |
| email_over_bill_ad_one_min | Velocity \| Email over billing address \| 1 minute | The number of times a different email was used with the same billing address in the last minute. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, cust_email, trans_ts |
| email_over_bill_ad_five_day | Velocity \| Email over billing address \| 5 days | The number of times a different email was used with the same billing address in the last 5 days. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, cust_email, trans_ts |
| email_over_bill_ad_five_min | Velocity \| Email over billing address \| 5 minutes | The number of times a different email was used with the same billing address in the last 5 minutes. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, cust_email, trans_ts |
| email_over_bill_ad_seven_hour | Velocity \| Email over billing address \| 7 hours | The number of times a different email was used with the same billing address in the last 7 hours. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, cust_email, trans_ts |
| email_over_cc_one_day | Velocity \| Email over credit card \| 1 day | The number of different email addresses used with the same credit card in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_one_hour | Velocity \| Email over credit card \| 1 hour | The number of different email addresses used with the same credit card in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_one_min | Velocity \| Email over credit card \| 1 minute | The number of different email addresses used with the same credit card in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_one_month | Velocity \| Email over credit card \| 1 month | The number of different email addresses used with the same credit card in the last month (30 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_ten_day | Velocity \| Email over credit card \| 10 days | The number of different email addresses used with the same credit card in the last 10 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_three_month | Velocity \| Email over credit card \| 3 months | The number of different email addresses used with the same credit card in the last 3 months (90 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_five_day | Velocity \| Email over credit card \| 5 days | The number of different email addresses used with the same credit card in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_five_min | Velocity \| Email over credit card \| 5 minutes | The number of different email addresses used with the same credit card in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_six_month | Velocity \| Email over credit card \| 6 months | The number of different email addresses used with the same credit card in the last 6 months (180 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_seven_day | Velocity \| Email over credit card \| 7 days | The number of different email addresses used with the same credit card in the last 7 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_cc_seven_hour | Velocity \| Email over credit card \| 7 hours | The number of different email addresses used with the same credit card in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, trans_ts |
| email_over_device_one_day | Velocity \| Email over device \| 1 day | The number of different email addresses used with the same device in the last day. The current transaction is added to the count. | cust_email, device_id, trans_ts |
| email_over_device_one_hour | Velocity \| Email over device \| 1 hour | The number of different email addresses used with the same device in the last hour. The current transaction is added to the count. | cust_email, device_id, trans_ts |
| email_over_device_one_min | Velocity \| Email over device \| 1 minute | The number of different email addresses used with the same device in the last minute. The current transaction is added to the count. | cust_email, device_id, trans_ts |
| email_over_device_five_day | Velocity \| Email over device \| 5 days | The number of different email addresses used with the same device in the last 5 days. The current transaction is added to the count. | cust_email, device_id, trans_ts |
| email_over_device_five_min | Velocity \| Email over device \| 5 minutes | The number of different email addresses used with the same device in the last 5 minutes. The current transaction is added to the count. | cust_email, device_id, trans_ts |
| email_over_device_seven_hour | Velocity \| Email over device \| 7 hours | The number of different email addresses used with the same device in the last 7 hours. The current transaction is added to the count. | cust_email, device_id, trans_ts |
| email_over_device_id_exact_one_day | Velocity \| Email over exact device ID \| 1 day | The number of different email addresses used with the same exact device ID in the last day. The current transaction is added to the count. | cust_email, device_id_exact, trans_ts |
| email_over_device_id_exact_one_hour | Velocity \| Email over exact device ID \| 1 hour | The number of different email addresses used with the same exact device ID in the last hour. The current transaction is added to the count. | cust_email, device_id_exact, trans_ts |
| email_over_device_id_exact_one_min | Velocity \| Email over exact device ID \| 1 minute | The number of different email addresses used with the same exact device ID in the last minute. The current transaction is added to the count. | cust_email, device_id_exact, trans_ts |
| email_over_device_id_exact_five_day | Velocity \| Email over exact device ID \| 5 days | The number of different email addresses used with the same exact device ID in the last 5 days. The current transaction is added to the count. | cust_email, device_id_exact, trans_ts |
| email_over_device_id_exact_five_min | Velocity \| Email over exact device ID \| 5 minutes | The number of different email addresses used with the same exact device ID in the last 5 minutes. The current transaction is added to the count. | cust_email, device_id_exact, trans_ts |
| email_over_device_id_exact_seven_hour | Velocity \| Email over exact device ID \| 7 hours | The number of different email addresses used with the same exact device ID in the last 7 hours. The current transaction is added to the count. | cust_email, device_id_exact, trans_ts |
| email_over_ip_one_day | Velocity \| Email over IP \| 1 day | The number of different email addresses used with the same IP address in the last day. The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_one_hour | Velocity \| Email over IP \| 1 hour | The number of different email addresses used with the same IP address in the last hour. The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_one_min | Velocity \| Email over IP \| 1 minute | The number of different email addresses used with the same IP address in the last minute. The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_one_month | Velocity \| Email over IP \| 1 month | The number of different email addresses used with the same IP address in the last month (30 days). The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_ten_day | Velocity \| Email over IP \| 10 days | The number of different email addresses used with the same IP address in the last 10 days. The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_three_month | Velocity \| Email over IP \| 3 months | The number of different email addresses used with the same IP address in the last 3 months (90 days). The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_five_day | Velocity \| Email over IP \| 5 days | The number of different email addresses used with the same IP address in the last 5 days. The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_five_min | Velocity \| Email over IP \| 5 minutes | The number of different email addresses used with the same IP address in the last 5 minutes. The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_six_month | Velocity \| Email over IP \| 6 months | The number of different email addresses used with the same IP address in the last 6 months (180 days). The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_seven_day | Velocity \| Email over IP \| 7 days | The number of different email addresses used with the same IP address in the last 7 days. The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_ip_seven_hour | Velocity \| Email over IP \| 7 hours | The number of different email addresses used with the same IP address in the last 7 hours. The current transaction is added to the count. | cust_email, ip, trans_ts |
| email_over_device_id_mapped_one_day | Velocity \| Email over mapped device ID \| 1 day | The number of different email addresses used with the same device ID in the last day. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, cust_email, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| email_over_device_id_mapped_one_hour | Velocity \| Email over mapped device ID \| 1 hour | The number of different email addresses used with the same device ID in the last hour. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, cust_email, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| email_over_device_id_mapped_one_min | Velocity \| Email over mapped device ID \| 1 minute | The number of different email addresses used with the same device ID in the last minute. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, cust_email, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| email_over_device_id_mapped_five_day | Velocity \| Email over mapped device ID \| 5 days | The number of different email addresses used with the same device ID in the last 5 days. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, cust_email, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| email_over_device_id_mapped_five_min | Velocity \| Email over mapped device ID \| 5 minutes | The number of different email addresses used with the same device ID in the last 5 minutes. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, cust_email, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| email_over_device_id_mapped_seven_hour | Velocity \| Email over mapped device ID \| 7 hours | The number of different email addresses used with the same device ID in the last 7 hours. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, cust_email, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| email_over_phone_one_day | Velocity \| Email over phone \| 1 day | The number of different email addresses used with the same phone number in the last day. The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_one_hour | Velocity \| Email over phone \| 1 hour | The number of different email addresses used with the same phone number in the last hour. The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_one_min | Velocity \| Email over phone \| 1 minute | The number of different email addresses used with the same phone number in the last minute. The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_one_month | Velocity \| Email over phone \| 1 month | The number of different email addresses used with the same phone number in the last month (30 days). The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_ten_day | Velocity \| Email over phone \| 10 days | The number of different email addresses used with the same phone number in the last 10 days. The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_three_month | Velocity \| Email over phone \| 3 months | The number of different email addresses used with the same phone number in the last 3 months (90 days). The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_five_day | Velocity \| Email over phone \| 5 days | The number of different email addresses used with the same phone number in the last 5 days. The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_five_min | Velocity \| Email over phone \| 5 minutes | The number of different email addresses used with the same phone number in the last 5 minutes. The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_six_month | Velocity \| Email over phone \| 6 months | The number of different email addresses used with the same phone number in the last 6 months (180 days). The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_seven_day | Velocity \| Email over phone \| 7 days | The number of different email addresses used with the same phone number in the last 7 days. The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_phone_seven_hour | Velocity \| Email over phone \| 7 hours | The number of different email addresses used with the same phone number in the last 7 hours. The current transaction is added to the count. | cust_email, phone, trans_ts |
| email_over_ship_ad_one_day | Velocity \| Email over shipping address \| 1 day | The number of different email addresses used with the same shipping address in the last day. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| email_over_ship_ad_one_hour | Velocity \| Email over shipping address \| 1 hour | The number of different email addresses used with the same shipping address in the last hour. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| email_over_ship_ad_one_min | Velocity \| Email over shipping address \| 1 minute | The number of different email addresses used with the same shipping address in the last minute. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| email_over_ship_ad_five_day | Velocity \| Email over shipping address \| 5 days | The number of different email addresses used with the same shipping address in the last 5 days. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| email_over_ship_ad_five_min | Velocity \| Email over shipping address \| 5 minutes | The number of different email addresses used with the same shipping address in the last 5 minutes. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| email_over_ship_ad_seven_hour | Velocity \| Email over shipping address \| 7 hours | The number of different email addresses used with the same shipping address in the last 7 hours. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| email_over_device_id_smart_one_day | Velocity \| Email over smart device ID \| 1 day | The number of different email addresses used with the same smart device ID in the last day. The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_one_hour | Velocity \| Email over smart device ID \| 1 hour | The number of different email addresses used with the same smart device ID in the last hour. The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_one_min | Velocity \| Email over smart device ID \| 1 minute | The number of different email addresses used with the same smart device ID in the last minute. The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_one_month | Velocity \| Email over smart device ID \| 1 month | The number of different email addresses used with the same smart device ID in the last month (30 days). The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_ten_day | Velocity \| Email over smart device ID \| 10 days | The number of different email addresses used with the same smart device ID in the last 10 days. The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_three_month | Velocity \| Email over smart device ID \| 3 months | The number of different email addresses used with the same smart device ID in the last 3 months (90 days). The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_five_day | Velocity \| Email over smart device ID \| 5 days | The number of different email addresses used with the same smart device ID in the last 5 days. The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_five_min | Velocity \| Email over smart device ID \| 5 minutes | The number of different email addresses used with the same smart device ID in the last 5 minutes. The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_six_month | Velocity \| Email over smart device ID \| 6 months | The number of different email addresses used with the same smart device ID in the last 6 months (180 days). The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_seven_day | Velocity \| Email over smart device ID \| 7 days | The number of different email addresses used with the same smart device ID in the last 7 days. The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| email_over_device_id_smart_seven_hour | Velocity \| Email over smart device ID \| 7 hours | The number of different email addresses used with the same smart device ID in the last 7 hours. The current transaction is added to the count. | cust_email, device_id_smart, trans_ts |
| device_id_exact_one_day | Velocity \| Exact device ID \| 1 day | The number of times the same exact device ID appeared in transactions in the last day. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_approved_one_day | Velocity \| Exact device ID \| 1 day | The number of times the same exact device ID appeared in approved transactions in the last day. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_one_hour | Velocity \| Exact device ID \| 1 hour | The number of times the same exact device ID appeared in transactions in the last hour. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_approved_one_hour | Velocity \| Exact device ID \| 1 hour | The number of times the same exact device ID appeared in approved transactions in the last hour. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_one_min | Velocity \| Exact device ID \| 1 minute | The number of times the same exact device ID appeared in transactions in the last minute. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_approved_one_min | Velocity \| Exact device ID \| 1 minute | The number of times the same exact device ID appeared in approved transactions in the last minute. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_five_day | Velocity \| Exact device ID \| 5 days | The number of times the same exact device ID appeared in transactions in the last five days. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_approved_five_day | Velocity \| Exact device ID \| 5 days | The number of times the same exact device ID appeared in approved transactions in the last 5 days. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_five_min | Velocity \| Exact device ID \| 5 minutes | The number of times the same exact device ID appeared in transactions in the last five minutes. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_approved_five_min | Velocity \| Exact device ID \| 5 minutes | The number of times the same exact device ID appeared in approved transactions in the last 5 minutes. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_seven_hour | Velocity \| Exact device ID \| 7 hours | The number of times the same exact device ID appeared in transactions in the last seven hours. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_approved_seven_hour | Velocity \| Exact device ID \| 7 hours | The number of times the same exact device ID appeared in approved transactions in the last 7 hours. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_over_ip_one_day | Velocity \| Exact device ID over IP address \| 1 day | The number of different device IDs used with the same IP address in the last day. The current transaction is added to the count. | device_id_exact, ip, trans_ts |
| device_id_exact_over_ip_one_hour | Velocity \| Exact device ID over IP address \| 1 hour | The number of different device IDs used with the same IP address in the last hour. The current transaction is added to the count. | device_id_exact, ip, trans_ts |
| device_id_exact_over_ip_one_min | Velocity \| Exact device ID over IP address \| 1 minute | The number of different device IDs used with the same IP address in the last minute. The current transaction is added to the count. | device_id_exact, ip, trans_ts |
| device_id_exact_over_ip_five_day | Velocity \| Exact device ID over IP address \| 5 days | The number of different device IDs used with the same IP address in the last 5 days. The current transaction is added to the count. | device_id_exact, ip, trans_ts |
| device_id_exact_over_ip_five_min | Velocity \| Exact device ID over IP address \| 5 minutes | The number of different device IDs used with the same IP address in the last 5 minutes. The current transaction is added to the count. | device_id_exact, ip, trans_ts |
| device_id_exact_over_ip_seven_hour | Velocity \| Exact device ID over IP address \| 7 hours | The number of different device IDs used with the same IP address in the last 7 hours. The current transaction is added to the count. | device_id_exact, ip, trans_ts |
| beneficiary_id_external_declined_one_day | Velocity \| Externally declined beneficiary ID \| 1 day | The number of times the same beneficiary ID appeared in externally declined transactions in the last day. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_one_hour | Velocity \| Externally declined beneficiary ID \| 1 hour | The number of times the same beneficiary ID appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_one_min | Velocity \| Externally declined beneficiary ID \| 1 minute | The number of times the same beneficiary ID appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_one_month | Velocity \| Externally declined beneficiary ID \| 1 month | The number of times the same beneficiary ID appeared in externally declined transactions in the last month (30 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_ten_day | Velocity \| Externally declined beneficiary ID \| 10 days | The number of times the same beneficiary ID appeared in externally declined transactions in the last 10 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_three_month | Velocity \| Externally declined beneficiary ID \| 3 months | The number of times the same beneficiary ID appeared in externally declined transactions in the last 3 months (90 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_five_day | Velocity \| Externally declined beneficiary ID \| 5 days | The number of times the same beneficiary ID appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_five_min | Velocity \| Externally declined beneficiary ID \| 5 minutes | The number of times the same beneficiary ID appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_six_month | Velocity \| Externally declined beneficiary ID \| 6 months | The number of times the same beneficiary ID appeared in externally declined transactions in the last 6 months (180 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_seven_day | Velocity \| Externally declined beneficiary ID \| 7 days | The number of times the same beneficiary ID appeared in externally declined transactions in the last 7 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_external_declined_seven_hour | Velocity \| Externally declined beneficiary ID \| 7 hours | The number of times the same beneficiary ID appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| bill_ad_norm_cnct_external_declined_one_day | Velocity \| Externally declined billing address \| 1 day | The number of times the same billing address appeared in externally declined transactions in the last day. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_external_declined_one_hour | Velocity \| Externally declined billing address \| 1 hour | The number of times the same billing address appeared in externally declined transactions in the last hour. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_external_declined_one_min | Velocity \| Externally declined billing address \| 1 minute | The number of times the same billing address appeared in externally declined transactions in the last minute. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_external_declined_five_day | Velocity \| Externally declined billing address \| 5 days | The number of times the same billing address appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_external_declined_five_min | Velocity \| Externally declined billing address \| 5 minutes | The number of times the same billing address appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_external_declined_seven_hour | Velocity \| Externally declined billing address \| 7 hours | The number of times the same billing address appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | bill_ad_line1, bill_ad_zip, trans_ts |
| cust_first_edom_seller_id_external_declined_one_day | Velocity \| Externally declined customer first name + Email domain + Seller ID \| 1 day | The number of times the same combination of first name, email domain and seller ID appeared in externally declined transactions in the last day. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_external_declined_one_hour | Velocity \| Externally declined customer first name + Email domain + Seller ID \| 1 hour | The number of times the same combination of first name, email domain and seller ID appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_external_declined_one_min | Velocity \| Externally declined customer first name + Email domain + Seller ID \| 1 minute | The number of times the same combination of first name, email domain and seller ID appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_external_declined_five_day | Velocity \| Externally declined customer first name + Email domain + Seller ID \| 5 days | The number of times the same combination of first name, email domain and seller ID appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_external_declined_five_min | Velocity \| Externally declined customer first name + Email domain + Seller ID \| 5 minutes | The number of times the same combination of first name, email domain and seller ID appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_external_declined_seven_hour | Velocity \| Externally declined customer first name + Email domain + Seller ID \| 7 hours | The number of times the same combination of first name, email domain and seller ID appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_id_external_declined_one_day | Velocity \| Externally declined customer ID \| 1 day | The number of times the same customer ID appeared in externally declined transactions in the last day. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_one_hour | Velocity \| Externally declined customer ID \| 1 hour | The number of times the same customer ID appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_one_min | Velocity \| Externally declined customer ID \| 1 minute | The number of times the same customer ID appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_one_month | Velocity \| Externally declined customer ID \| 1 month | The number of times the same customer ID appeared in externally declined transactions in the last month (30 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_ten_day | Velocity \| Externally declined customer ID \| 10 days | The number of times the same customer ID appeared in externally declined transactions in the last 10 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_three_month | Velocity \| Externally declined customer ID \| 3 months | The number of times the same customer ID appeared in externally declined transactions in the last 3 months (90 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_five_day | Velocity \| Externally declined customer ID \| 5 days | The number of times the same customer ID appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_five_min | Velocity \| Externally declined customer ID \| 5 minutes | The number of times the same customer ID appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_six_month | Velocity \| Externally declined customer ID \| 6 months | The number of times the same customer ID appeared in externally declined transactions in the last 6 months (180 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_seven_day | Velocity \| Externally declined customer ID \| 7 days | The number of times the same customer ID appeared in externally declined transactions in the last 7 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_external_declined_seven_hour | Velocity \| Externally declined customer ID \| 7 hours | The number of times the same customer ID appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_fl_ordered_external_declined_one_day | Velocity \| Externally declined customer name \| 1 day | The number of times the same customer name appeared in externally declined transactions in the last day. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_external_declined_one_hour | Velocity \| Externally declined customer name \| 1 hour | The number of times the same customer name appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_external_declined_one_min | Velocity \| Externally declined customer name \| 1 minute | The number of times the same customer name appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_external_declined_five_day | Velocity \| Externally declined customer name \| 5 days | The number of times the same customer name appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_external_declined_five_min | Velocity \| Externally declined customer name \| 5 minutes | The number of times the same customer name appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_external_declined_seven_hour | Velocity \| Externally declined customer name \| 7 hours | The number of times the same customer name appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_email_external_declined_one_day | Velocity \| Externally declined email \| 1 day | The number of times the same email address appeared in externally declined transactions in the last day. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_external_declined_one_hour | Velocity \| Externally declined email \| 1 hour | The number of times the same email address appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_external_declined_one_min | Velocity \| Externally declined email \| 1 minute | The number of times the same email address appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_external_declined_five_day | Velocity \| Externally declined email \| 5 days | The number of times the same email address appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_external_declined_five_min | Velocity \| Externally declined email \| 5 minutes | The number of times the same email address appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_external_declined_seven_hour | Velocity \| Externally declined email \| 7 hours | The number of times the same email address appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | cust_email, trans_ts |
| device_id_exact_external_declined_one_day | Velocity \| Externally declined exact device ID \| 1 day | The number of times the same exact device ID appeared in externally declined transactions in the last day. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_external_declined_one_hour | Velocity \| Externally declined exact device ID \| 1 hour | The number of times the same exact device ID appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_external_declined_one_min | Velocity \| Externally declined exact device ID \| 1 minute | The number of times the same exact device ID appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_external_declined_five_day | Velocity \| Externally declined exact device ID \| 5 days | The number of times the same exact device ID appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_external_declined_five_min | Velocity \| Externally declined exact device ID \| 5 minutes | The number of times the same exact device ID appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_external_declined_seven_hour | Velocity \| Externally declined exact device ID \| 7 hours | The number of times the same exact device ID appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | device_id_exact, trans_ts |
| ip_external_declined_one_day | Velocity \| Externally declined IP address \| 1 day | The number of times the same IP address appeared in externally declined transactions in the last day. The current transaction is not added to the count. | ip, trans_ts |
| ip_external_declined_one_hour | Velocity \| Externally declined IP address \| 1 hour | The number of times the same IP address appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | ip, trans_ts |
| ip_external_declined_one_min | Velocity \| Externally declined IP address \| 1 minute | The number of times the same IP address appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | ip, trans_ts |
| ip_external_declined_five_day | Velocity \| Externally declined IP address \| 5 days | The number of times the same IP address appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_external_declined_five_min | Velocity \| Externally declined IP address \| 5 minutes | The number of times the same IP address appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | ip, trans_ts |
| ip_external_declined_seven_hour | Velocity \| Externally declined IP address \| 7 hours | The number of times the same IP address appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | ip, trans_ts |
| device_id_mapped_external_declined_one_day | Velocity \| Externally declined mapped device ID \| 1 day | The number of times the same device ID appeared in externally declined transactions in the last day. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_external_declined_one_hour | Velocity \| Externally declined mapped device ID \| 1 hour | The number of times the same device ID appeared in externally declined transactions in the last hour. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_external_declined_one_min | Velocity \| Externally declined mapped device ID \| 1 minute | The number of times the same device ID appeared in externally declined transactions in the last minute. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_external_declined_five_day | Velocity \| Externally declined mapped device ID \| 5 days | The number of times the same device ID appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_external_declined_five_min | Velocity \| Externally declined mapped device ID \| 5 minutes | The number of times the same device ID appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_external_declined_seven_hour | Velocity \| Externally declined mapped device ID \| 7 hours | The number of times the same device ID appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| funding_source_external_declined_one_day | Velocity \| Externally declined payment method \| 1 day | The number of times the same payment method appeared in externally declined transactions in the last day. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_external_declined_one_hour | Velocity \| Externally declined payment method \| 1 hour | The number of times the same payment method appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_external_declined_one_min | Velocity \| Externally declined payment method \| 1 minute | The number of times the same payment method appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_external_declined_five_day | Velocity \| Externally declined payment method \| 5 days | The number of times the same payment method appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_external_declined_five_min | Velocity \| Externally declined payment method \| 5 minutes | The number of times the same payment method appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_external_declined_seven_hour | Velocity \| Externally declined payment method \| 7 hours | The number of times the same payment method appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| phone_external_declined_one_day | Velocity \| Externally declined phone \| 1 day | The number of times the same phone number appeared in externally declined transactions in the last day. The current transaction is not added to the count. | phone, trans_ts |
| phone_external_declined_one_hour | Velocity \| Externally declined phone \| 1 hour | The number of times the same phone number appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | phone, trans_ts |
| phone_external_declined_one_min | Velocity \| Externally declined phone \| 1 minute | The number of times the same phone number appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | phone, trans_ts |
| phone_external_declined_five_day | Velocity \| Externally declined phone \| 5 days | The number of times the same phone number appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | phone, trans_ts |
| phone_external_declined_five_min | Velocity \| Externally declined phone \| 5 minutes | The number of times the same phone number appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | phone, trans_ts |
| phone_external_declined_seven_hour | Velocity \| Externally declined phone \| 7 hours | The number of times the same phone number appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | phone, trans_ts |
| postnummer_external_declined_one_day | Velocity \| Externally declined Postnummer \| 1 day | The number of times the same Postnummer appeared in externally declined transactions in the last day. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_external_declined_one_hour | Velocity \| Externally declined Postnummer \| 1 hour | The number of times the same Postnummer appeared in externally declined transactions in the last hour. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_external_declined_one_min | Velocity \| Externally declined Postnummer \| 1 minute | The number of times the same Postnummer appeared in externally declined transactions in the last minute. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_external_declined_five_day | Velocity \| Externally declined Postnummer \| 5 days | The number of times the same Postnummer appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_external_declined_five_min | Velocity \| Externally declined Postnummer \| 5 minutes | The number of times the same Postnummer appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_external_declined_seven_hour | Velocity \| Externally declined Postnummer \| 7 hours | The number of times the same Postnummer appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. Transactions may be declined externally by the issuer, another fraud-prevention solution, etc. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| ship_ad_line1_zip_cnct_external_declined_one_day | Velocity \| Externally declined shipping address \| 1 day | The number of times the same shipping address appeared in externally declined transactions in the last day. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_external_declined_one_hour | Velocity \| Externally declined shipping address \| 1 hour | The number of times the same shipping address appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_external_declined_one_min | Velocity \| Externally declined shipping address \| 1 minute | The number of times the same shipping address appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_external_declined_five_day | Velocity \| Externally declined shipping address \| 5 days | The number of times the same shipping address appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_external_declined_five_min | Velocity \| Externally declined shipping address \| 5 minutes | The number of times the same shipping address appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_external_declined_seven_hour | Velocity \| Externally declined shipping address \| 7 hours | The number of times the same shipping address appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| device_id_smart_external_declined_one_day | Velocity \| Externally declined smart device ID \| 1 day | The number of times the same smart device ID appeared in externally declined transactions in the last day. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_external_declined_one_hour | Velocity \| Externally declined smart device ID \| 1 hour | The number of times the same smart device ID appeared in externally declined transactions in the last hour. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_external_declined_one_min | Velocity \| Externally declined smart device ID \| 1 minute | The number of times the same smart device ID appeared in externally declined transactions in the last minute. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_external_declined_five_day | Velocity \| Externally declined smart device ID \| 5 days | The number of times the same smart device ID appeared in externally declined transactions in the last 5 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_external_declined_five_min | Velocity \| Externally declined smart device ID \| 5 minutes | The number of times the same smart device ID appeared in externally declined transactions in the last 5 minutes. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_external_declined_seven_hour | Velocity \| Externally declined smart device ID \| 7 hours | The number of times the same smart device ID appeared in externally declined transactions in the last 7 hours. The current transaction is not added to the count. | device_id_smart, trans_ts |
| beneficiary_id_fraugster_declined_one_day | Velocity \| Fraugster declined beneficiary ID \| 1 day | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_one_hour | Velocity \| Fraugster declined beneficiary ID \| 1 hour | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_one_min | Velocity \| Fraugster declined beneficiary ID \| 1 minute | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_one_month | Velocity \| Fraugster declined beneficiary ID \| 1 month | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last month (30 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_ten_day | Velocity \| Fraugster declined beneficiary ID \| 10 days | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last 10 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_three_month | Velocity \| Fraugster declined beneficiary ID \| 3 months | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last 3 months (90 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_five_day | Velocity \| Fraugster declined beneficiary ID \| 5 days | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_five_min | Velocity \| Fraugster declined beneficiary ID \| 5 minutes | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_six_month | Velocity \| Fraugster declined beneficiary ID \| 6 months | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last 6 months (180 days). The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_seven_day | Velocity \| Fraugster declined beneficiary ID \| 7 days | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last 7 days. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| beneficiary_id_fraugster_declined_seven_hour | Velocity \| Fraugster declined beneficiary ID \| 7 hours | The number of times the same beneficiary ID appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | beneficiary_id, trans_ts |
| bill_ad_norm_cnct_fraugster_declined_one_day | Velocity \| Fraugster declined billing address \| 1 day | The number of times the same billing address appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_fraugster_declined_one_hour | Velocity \| Fraugster declined billing address \| 1 hour | The number of times the same billing address appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_fraugster_declined_one_min | Velocity \| Fraugster declined billing address \| 1 minute | The number of times the same billing address appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_fraugster_declined_five_day | Velocity \| Fraugster declined billing address \| 5 days | The number of times the same billing address appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_fraugster_declined_five_min | Velocity \| Fraugster declined billing address \| 5 minutes | The number of times the same billing address appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| bill_ad_norm_cnct_fraugster_declined_seven_hour | Velocity \| Fraugster declined billing address \| 7 hours | The number of times the same billing address appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | bill_ad_line1, bill_ad_zip, trans_ts |
| cust_first_edom_seller_id_fraugster_declined_one_day | Velocity \| Fraugster declined customer first name + Email domain + Seller ID \| 1 day | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_fraugster_declined_one_hour | Velocity \| Fraugster declined customer first name + Email domain + Seller ID \| 1 hour | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_fraugster_declined_one_min | Velocity \| Fraugster declined customer first name + Email domain + Seller ID \| 1 minute | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_fraugster_declined_five_day | Velocity \| Fraugster declined customer first name + Email domain + Seller ID \| 5 days | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_fraugster_declined_five_min | Velocity \| Fraugster declined customer first name + Email domain + Seller ID \| 5 minutes | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_first_edom_seller_id_fraugster_declined_seven_hour | Velocity \| Fraugster declined customer first name + Email domain + Seller ID \| 7 hours | The number of times the same combination of first name, email domain and seller ID appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | client_id, cust_email, cust_first_name, seller_id, trans_ts |
| cust_id_fraugster_declined_one_day | Velocity \| Fraugster declined customer ID \| 1 day | The number of times the same customer ID appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_one_hour | Velocity \| Fraugster declined customer ID \| 1 hour | The number of times the same customer ID appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_one_min | Velocity \| Fraugster declined customer ID \| 1 minute | The number of times the same customer ID appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_one_month | Velocity \| Fraugster declined customer ID \| 1 month | The number of times the same customer ID appeared in transactions declined by Shufti in the last month (30 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_ten_day | Velocity \| Fraugster declined customer ID \| 10 days | The number of times the same customer ID appeared in transactions declined by Shufti in the last 10 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_three_month | Velocity \| Fraugster declined customer ID \| 3 months | The number of times the same customer ID appeared in transactions declined by Shufti in the last 3 months (90 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_five_day | Velocity \| Fraugster declined customer ID \| 5 days | The number of times the same customer ID appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_five_min | Velocity \| Fraugster declined customer ID \| 5 minutes | The number of times the same customer ID appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_six_month | Velocity \| Fraugster declined customer ID \| 6 months | The number of times the same customer ID appeared in transactions declined by Shufti in the last 6 months (180 days). The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_seven_day | Velocity \| Fraugster declined customer ID \| 7 days | The number of times the same customer ID appeared in transactions declined by Shufti in the last 7 days. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_id_fraugster_declined_seven_hour | Velocity \| Fraugster declined customer ID \| 7 hours | The number of times the same customer ID appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | cust_id, trans_ts |
| cust_fl_ordered_fraugster_declined_one_day | Velocity \| Fraugster declined customer name \| 1 day | The number of times the same customer name appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_fraugster_declined_one_hour | Velocity \| Fraugster declined customer name \| 1 hour | The number of times the same customer name appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_fraugster_declined_one_min | Velocity \| Fraugster declined customer name \| 1 minute | The number of times the same customer name appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_fraugster_declined_five_day | Velocity \| Fraugster declined customer name \| 5 days | The number of times the same customer name appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_fraugster_declined_five_min | Velocity \| Fraugster declined customer name \| 5 minutes | The number of times the same customer name appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_fl_ordered_fraugster_declined_seven_hour | Velocity \| Fraugster declined customer name \| 7 hours | The number of times the same customer name appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, trans_ts |
| cust_email_fraugster_declined_one_day | Velocity \| Fraugster declined email \| 1 day | The number of times the same email address appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_fraugster_declined_one_hour | Velocity \| Fraugster declined email \| 1 hour | The number of times the same email address appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_fraugster_declined_one_min | Velocity \| Fraugster declined email \| 1 minute | The number of times the same email address appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_fraugster_declined_five_day | Velocity \| Fraugster declined email \| 5 days | The number of times the same email address appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_fraugster_declined_five_min | Velocity \| Fraugster declined email \| 5 minutes | The number of times the same email address appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | cust_email, trans_ts |
| cust_email_fraugster_declined_seven_hour | Velocity \| Fraugster declined email \| 7 hours | The number of times the same email address appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | cust_email, trans_ts |
| device_id_exact_fraugster_declined_one_day | Velocity \| Fraugster declined exact device ID \| 1 day | The number of times the same exact device ID appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_fraugster_declined_one_hour | Velocity \| Fraugster declined exact device ID \| 1 hour | The number of times the same exact device ID appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_fraugster_declined_one_min | Velocity \| Fraugster declined exact device ID \| 1 minute | The number of times the same exact device ID appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_fraugster_declined_five_day | Velocity \| Fraugster declined exact device ID \| 5 days | The number of times the same exact device ID appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_fraugster_declined_five_min | Velocity \| Fraugster declined exact device ID \| 5 minutes | The number of times the same exact device ID appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | device_id_exact, trans_ts |
| device_id_exact_fraugster_declined_seven_hour | Velocity \| Fraugster declined exact device ID \| 7 hours | The number of times the same exact device ID appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | device_id_exact, trans_ts |
| ip_fraugster_declined_one_day | Velocity \| Fraugster declined IP address \| 1 day | The number of times the same IP address appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | ip, trans_ts |
| ip_fraugster_declined_one_hour | Velocity \| Fraugster declined IP address \| 1 hour | The number of times the same IP address appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | ip, trans_ts |
| ip_fraugster_declined_one_min | Velocity \| Fraugster declined IP address \| 1 minute | The number of times the same IP address appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | ip, trans_ts |
| ip_fraugster_declined_five_day | Velocity \| Fraugster declined IP address \| 5 days | The number of times the same IP address appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_fraugster_declined_five_min | Velocity \| Fraugster declined IP address \| 5 minutes | The number of times the same IP address appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | ip, trans_ts |
| ip_fraugster_declined_seven_hour | Velocity \| Fraugster declined IP address \| 7 hours | The number of times the same IP address appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | ip, trans_ts |
| device_id_mapped_fraugster_declined_one_day | Velocity \| Fraugster declined mapped device ID \| 1 day | The number of times the same device ID appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_fraugster_declined_one_hour | Velocity \| Fraugster declined mapped device ID \| 1 hour | The number of times the same device ID appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_fraugster_declined_one_min | Velocity \| Fraugster declined mapped device ID \| 1 minute | The number of times the same device ID appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_fraugster_declined_five_day | Velocity \| Fraugster declined mapped device ID \| 5 days | The number of times the same device ID appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_fraugster_declined_five_min | Velocity \| Fraugster declined mapped device ID \| 5 minutes | The number of times the same device ID appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_fraugster_declined_seven_hour | Velocity \| Fraugster declined mapped device ID \| 7 hours | The number of times the same device ID appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| funding_source_fraugster_declined_one_day | Velocity \| Fraugster declined payment method \| 1 day | The number of times the same payment method appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_fraugster_declined_one_hour | Velocity \| Fraugster declined payment method \| 1 hour | The number of times the same payment method appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_fraugster_declined_one_min | Velocity \| Fraugster declined payment method \| 1 minute | The number of times the same payment method appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_fraugster_declined_five_day | Velocity \| Fraugster declined payment method \| 5 days | The number of times the same payment method appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_fraugster_declined_five_min | Velocity \| Fraugster declined payment method \| 5 minutes | The number of times the same payment method appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_fraugster_declined_seven_hour | Velocity \| Fraugster declined payment method \| 7 hours | The number of times the same payment method appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| phone_fraugster_declined_one_day | Velocity \| Fraugster declined phone \| 1 day | The number of times the same phone number appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | phone, trans_ts |
| phone_fraugster_declined_one_hour | Velocity \| Fraugster declined phone \| 1 hour | The number of times the same phone number appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | phone, trans_ts |
| phone_fraugster_declined_one_min | Velocity \| Fraugster declined phone \| 1 minute | The number of times the same phone number appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | phone, trans_ts |
| phone_fraugster_declined_five_day | Velocity \| Fraugster declined phone \| 5 days | The number of times the same phone number appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | phone, trans_ts |
| phone_fraugster_declined_five_min | Velocity \| Fraugster declined phone \| 5 minutes | The number of times the same phone number appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | phone, trans_ts |
| phone_fraugster_declined_seven_hour | Velocity \| Fraugster declined phone \| 7 hours | The number of times the same phone number appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | phone, trans_ts |
| postnummer_fraugster_declined_one_day | Velocity \| Fraugster declined Postnummer \| 1 day | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_fraugster_declined_one_hour | Velocity \| Fraugster declined Postnummer \| 1 hour | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_fraugster_declined_one_min | Velocity \| Fraugster declined Postnummer \| 1 minute | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_fraugster_declined_five_day | Velocity \| Fraugster declined Postnummer \| 5 days | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_fraugster_declined_five_min | Velocity \| Fraugster declined Postnummer \| 5 minutes | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_fraugster_declined_seven_hour | Velocity \| Fraugster declined Postnummer \| 7 hours | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| ship_ad_line1_zip_cnct_fraugster_declined_one_day | Velocity \| Fraugster declined shipping address \| 1 day | The number of times the same shipping address appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_fraugster_declined_one_hour | Velocity \| Fraugster declined shipping address \| 1 hour | The number of times the same shipping address appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_fraugster_declined_one_min | Velocity \| Fraugster declined shipping address \| 1 minute | The number of times the same shipping address appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_fraugster_declined_five_day | Velocity \| Fraugster declined shipping address \| 5 days | The number of times the same shipping address appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_fraugster_declined_five_min | Velocity \| Fraugster declined shipping address \| 5 minutes | The number of times the same shipping address appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_fraugster_declined_seven_hour | Velocity \| Fraugster declined shipping address \| 7 hours | The number of times the same shipping address appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| device_id_smart_fraugster_declined_one_day | Velocity \| Fraugster declined smart device ID \| 1 day | The number of times the same smart device ID appeared in transactions declined by Shufti in the last day. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_fraugster_declined_one_hour | Velocity \| Fraugster declined smart device ID \| 1 hour | The number of times the same smart device ID appeared in transactions declined by Shufti in the last hour. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_fraugster_declined_one_min | Velocity \| Fraugster declined smart device ID \| 1 minute | The number of times the same smart device ID appeared in transactions declined by Shufti in the last minute. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_fraugster_declined_five_day | Velocity \| Fraugster declined smart device ID \| 5 days | The number of times the same smart device ID appeared in transactions declined by Shufti in the last 5 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_fraugster_declined_five_min | Velocity \| Fraugster declined smart device ID \| 5 minutes | The number of times the same smart device ID appeared in transactions declined by Shufti in the last 5 minutes. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_fraugster_declined_seven_hour | Velocity \| Fraugster declined smart device ID \| 7 hours | The number of times the same smart device ID appeared in transactions declined by Shufti in the last 7 hours. The current transaction is not added to the count. | device_id_smart, trans_ts |
| funding_source_over_cust_id_one_day | Velocity \| Funding source over customer ID \| 1 day | The number of different funding sources used with the same customer ID in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_one_hour | Velocity \| Funding source over customer ID \| 1 hour | The number of different funding sources used with the same customer ID in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_one_min | Velocity \| Funding source over customer ID \| 1 minute | The number of different funding sources used with the same customer ID in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_one_month | Velocity \| Funding source over customer ID \| 1 month | The number of different funding sources used with the same customer ID in the last month (30 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_ten_day | Velocity \| Funding source over customer ID \| 10 days | The number of different funding sources used with the same customer ID in the last 10 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_three_month | Velocity \| Funding source over customer ID \| 3 months | The number of different funding sources used with the same customer ID in the last 3 months (90 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_five_day | Velocity \| Funding source over customer ID \| 5 days | The number of different funding sources used with the same customer ID in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_five_min | Velocity \| Funding source over customer ID \| 5 minutes | The number of different funding sources used with the same customer ID in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_six_month | Velocity \| Funding source over customer ID \| 6 months | The number of different funding sources used with the same customer ID in the last 6 months (180 days). The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_seven_day | Velocity \| Funding source over customer ID \| 7 days | The number of different funding sources used with the same customer ID in the last 7 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| funding_source_over_cust_id_seven_hour | Velocity \| Funding source over customer ID \| 7 hours | The number of different funding sources used with the same customer ID in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_id, trans_ts |
| ip_one_day | Velocity \| IP \| 1 day | The number of times the same IP address appeared in transactions in the last day. The current transaction is not added to the count. | ip, trans_ts |
| ip_one_hour | Velocity \| IP \| 1 hour | The number of times the same IP address appeared in transactions in the last hour. The current transaction is not added to the count. | ip, trans_ts |
| ip_one_min | Velocity \| IP \| 1 minute | The number of times the same IP address appeared in transactions in the last minute. The current transaction is not added to the count. | ip, trans_ts |
| ip_one_month | Velocity \| IP \| 1 month | The number of times the same IP address appeared in transactions in the last month (30 days). The current transaction is not added to the count. | ip, trans_ts |
| ip_ten_day | Velocity \| IP \| 10 days | The number of times the same IP address appeared in transactions in the last 10 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_three_month | Velocity \| IP \| 3 months | The number of times the same IP address appeared in transactions in the last 3 months (90 days). The current transaction is not added to the count. | ip, trans_ts |
| ip_five_day | Velocity \| IP \| 5 days | The number of times the same IP address appeared in transactions in the last 5 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_five_min | Velocity \| IP \| 5 minutes | The number of times the same IP address appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | ip, trans_ts |
| ip_six_month | Velocity \| IP \| 6 months | The number of times the same IP address appeared in transactions in the last 6 months (180 days). The current transaction is not added to the count. | ip, trans_ts |
| ip_seven_day | Velocity \| IP \| 7 days | The number of times the same IP address appeared in transactions in the last 7 days. The current transaction is not added to the count. | ip, trans_ts |
| ip_seven_hour | Velocity \| IP \| 7 hours | The number of times the same IP address appeared in transactions in the last 7 hours. The current transaction is not added to the count. | ip, trans_ts |
| ip_ctry_over_cc_one_day | Velocity \| IP country over credit card \| 1 day | The number of different IP countries used with the same credit card in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_ctry_over_cc_one_hour | Velocity \| IP country over credit card \| 1 hour | The number of different IP countries used with the same credit card in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_ctry_over_cc_one_min | Velocity \| IP country over credit card \| 1 minute | The number of different IP countries used with the same credit card in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_ctry_over_cc_five_day | Velocity \| IP country over credit card \| 5 days | The number of different IP countries used with the same credit card in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_ctry_over_cc_five_min | Velocity \| IP country over credit card \| 5 minutes | The number of different IP countries used with the same credit card in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_ctry_over_cc_seven_hour | Velocity \| IP country over credit card \| 7 hours | The number of different IP countries used with the same credit card in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_ctry_over_device_one_day | Velocity \| IP country over device \| 1 day | The number of different IP countries used with the same device in the last day. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_ctry_over_device_one_hour | Velocity \| IP country over device \| 1 hour | The number of different IP countries used with the same device in the last hour. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_ctry_over_device_one_min | Velocity \| IP country over device \| 1 minute | The number of different IP countries used with the same device in the last minute. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_ctry_over_device_five_day | Velocity \| IP country over device \| 5 days | The number of different IP countries used with the same device in the last 5 days. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_ctry_over_device_five_min | Velocity \| IP country over device \| 5 minute | The number of different IP countries used with the same device in the last 5 minutes. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_ctry_over_device_seven_hour | Velocity \| IP country over device \| 7 hours | The number of different IP countries used with the same device in the last 7 hours. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_ctry_over_email_one_day | Velocity \| IP country over email \| 1 day | The number of different IP countries used with the same email address in the last day. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_ctry_over_email_one_hour | Velocity \| IP country over email \| 1 hour | The number of different IP countries used with the same email address in the last hour. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_ctry_over_email_one_min | Velocity \| IP country over email \| 1 minute | The number of different IP countries used with the same email address in the last minute. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_ctry_over_email_five_day | Velocity \| IP country over email \| 5 days | The number of different IP countries used with the same email address in the last 5 days. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_ctry_over_email_five_min | Velocity \| IP country over email \| 5 minutes | The number of different IP countries used with the same email address in the last 5 minutes. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_ctry_over_email_seven_hour | Velocity \| IP country over email \| 7 hours | The number of different IP countries used with the same email address in the last 7 hours. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_ctry_over_phone_one_day | Velocity \| IP country over phone \| 1 day | The number of different IP countries used with the same phone number in the last day. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_ctry_over_phone_one_hour | Velocity \| IP country over phone \| 1 hour | The number of different IP countries used with the same phone number in the last hour. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_ctry_over_phone_one_min | Velocity \| IP country over phone \| 1 minute | The number of different IP countries used with the same phone number in the last minute. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_ctry_over_phone_five_day | Velocity \| IP country over phone \| 5 days | The number of different IP countries used with the same phone number in the last 5 days. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_ctry_over_phone_five_min | Velocity \| IP country over phone \| 5 minutes | The number of different IP countries used with the same phone number in the last 5 minutes. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_ctry_over_phone_seven_hour | Velocity \| IP country over phone \| 7 hours | The number of different IP countries used with the same phone number in the last 7 hours. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_ctry_over_ship_ad_one_day | Velocity \| IP country over shipping address \| 1 day | The number of different IP countries used with the same shipping address in the last day. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_ctry_over_ship_ad_one_hour | Velocity \| IP country over shipping address \| 1 hour | The number of different IP countries used with the same shipping address in the last hour. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_ctry_over_ship_ad_one_min | Velocity \| IP country over shipping address \| 1 minute | The number of different IP countries used with the same shipping address in the last minute. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_ctry_over_ship_ad_five_day | Velocity \| IP country over shipping address \| 5 days | The number of different IP countries used with the same shipping address in the last 5 days. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_ctry_over_ship_ad_five_min | Velocity \| IP country over shipping address \| 5 minutes | The number of different IP countries used with the same shipping address in the last 5 minutes. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_ctry_over_ship_ad_seven_hour | Velocity \| IP country over shipping address \| 7 hours | The number of different IP countries used with the same shipping address in the last 7 hours. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_over_bill_ad_one_day | Velocity \| IP over billing address \| 1 day | The number of times a different IP was used with the same billing address in the last day. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, ip, trans_ts |
| ip_over_bill_ad_one_hour | Velocity \| IP over billing address \| 1 hour | The number of times a different IP was used with the same billing address in the last hour. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, ip, trans_ts |
| ip_over_bill_ad_one_min | Velocity \| IP over billing address \| 1 minute | The number of times a different IP was used with the same billing address in the last minute. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, ip, trans_ts |
| ip_over_bill_ad_five_day | Velocity \| IP over billing address \| 5 days | The number of times a different IP was used with the same billing address in the last 5 days. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, ip, trans_ts |
| ip_over_bill_ad_five_min | Velocity \| IP over billing address \| 5 minutes | The number of times a different IP was used with the same billing address in the last 5 minutes. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, ip, trans_ts |
| ip_over_bill_ad_seven_hour | Velocity \| IP over billing address \| 7 hours | The number of times a different IP was used with the same billing address in the last 7 hours. The billing address used in this attribute is a normalized version of the customer's billing address. The current transaction is added to the count. | bill_ad_line1, bill_ad_zip, ip, trans_ts |
| ip_over_cc_one_day | Velocity \| IP over credit card \| 1 day | The number of different IP addresses used with the same credit card in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_over_cc_one_hour | Velocity \| IP over credit card \| 1 hour | The number of different IP addresses used with the same credit card in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_over_cc_one_min | Velocity \| IP over credit card \| 1 minute | The number of different IP addresses used with the same credit card in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_over_cc_five_day | Velocity \| IP over credit card \| 5 days | The number of different IP addresses used with the same credit card in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_over_cc_five_min | Velocity \| IP over credit card \| 5 minutes | The number of different IP addresses used with the same credit card in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_over_cc_seven_hour | Velocity \| IP over credit card \| 7 hours | The number of different IP addresses used with the same credit card in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ip, trans_ts |
| ip_over_device_one_day | Velocity \| IP over device \| 1 day | The number of different IP addresses used with the same device in the last day. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_over_device_one_hour | Velocity \| IP over device \| 1 hour | The number of different IP addresses used with the same device in the last hour. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_over_device_one_min | Velocity \| IP over device \| 1 minute | The number of different IP addresses used with the same device in the last minute. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_over_device_five_day | Velocity \| IP over device \| 5 days | The number of different IP addresses used with the same device in the last 5 days. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_over_device_five_min | Velocity \| IP over device \| 5 minutes | The number of different IP addresses used with the same device in the last 5 minutes. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_over_device_seven_hour | Velocity \| IP over device \| 7 hours | The number of different IP addresses used with the same device in the last 7 hours. The current transaction is added to the count. | device_id, ip, trans_ts |
| ip_over_email_one_day | Velocity \| IP over email \| 1 day | The number of different IP addresses used with the same email address in the last day. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_one_hour | Velocity \| IP over email \| 1 hour | The number of different IP addresses used with the same email address in the last hour. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_one_min | Velocity \| IP over email \| 1 minute | The number of different IP addresses used with the same email address in the last minute. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_one_month | Velocity \| IP over email \| 1 month | The number of different IP addresses used with the same email address in the last month (30 days). The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_ten_day | Velocity \| IP over email \| 10 days | The number of different IP addresses used with the same email address in the last 10 days. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_three_month | Velocity \| IP over email \| 3 months | The number of different IP addresses used with the same email address in the last 3 months (90 days). The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_five_day | Velocity \| IP over email \| 5 days | The number of different IP addresses used with the same email address in the last 5 days. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_five_min | Velocity \| IP over email \| 5 minutes | The number of different IP addresses used with the same email address in the last 5 minutes. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_six_month | Velocity \| IP over email \| 6 months | The number of different IP addresses used with the same email address in the last 6 months (180 days). The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_seven_day | Velocity \| IP over email \| 7 days | The number of different IP addresses used with the same email address in the last 7 days. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_email_seven_hour | Velocity \| IP over email \| 7 hours | The number of different IP addresses used with the same email address in the last 7 hours. The current transaction is added to the count. | cust_email, ip, trans_ts |
| ip_over_device_id_mapped_one_day | Velocity \| IP over mapped device ID \| 1 day | The number of different IP addresses used with the same device ID in the last day. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| ip_over_device_id_mapped_one_hour | Velocity \| IP over mapped device ID \| 1 hour | The number of different IP addresses used with the same device ID in the last hour. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| ip_over_device_id_mapped_five_day | Velocity \| IP over mapped device ID \| 5 days | The number of different IP addresses used with the same device ID in the last 5 days. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| ip_over_device_id_mapped_five_min | Velocity \| IP over mapped device ID \| 5 minutes | The number of different IP addresses used with the same device ID in the last 5 minutes. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| ip_over_device_id_mapped_seven_hour | Velocity \| IP over mapped device ID \| 7 hours | The number of different IP addresses used with the same device ID in the last 7 hours. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| ip_over_device_id_mapped_one_min | Velocity \| IP over mapped device ID\| 1 minute | The number of different IP addresses used with the same device ID in the last minute. The current transaction is added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| ip_over_phone_one_day | Velocity \| IP over phone \| 1 day | The number of different IP addresses used with the same phone number in the last day. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_over_phone_one_hour | Velocity \| IP over phone \| 1 hour | The number of different IP addresses used with the same phone number in the last hour. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_over_phone_one_min | Velocity \| IP over phone \| 1 minute | The number of different IP addresses used with the same phone number in the last minute. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_over_phone_five_day | Velocity \| IP over phone \| 5 days | The number of different IP addresses used with the same phone number in the last 5 days. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_over_phone_five_min | Velocity \| IP over phone \| 5 minutes | The number of different IP addresses used with the same phone number in the last 5 minutes. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_over_phone_seven_hour | Velocity \| IP over phone \| 7 hours | The number of different IP addresses used with the same phone number in the last 7 hours. The current transaction is added to the count. | ip, phone, trans_ts |
| ip_over_ship_ad_one_day | Velocity \| IP over shipping address \| 1 day | The number of different IP addresses used with the same shipping address in the last day. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_over_ship_ad_one_hour | Velocity \| IP over shipping address \| 1 hour | The number of different IP addresses used with the same shipping address in the last hour. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_over_ship_ad_one_min | Velocity \| IP over shipping address \| 1 minute | The number of different IP addresses used with the same shipping address in the last minute. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_over_ship_ad_five_day | Velocity \| IP over shipping address \| 5 days | The number of different IP addresses used with the same shipping address in the last 5 days. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_over_ship_ad_five_min | Velocity \| IP over shipping address \| 5 minutes | The number of different IP addresses used with the same shipping address in the last 5 minutes. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ip_over_ship_ad_seven_hour | Velocity \| IP over shipping address \| 7 hours | The number of different IP addresses used with the same shipping address in the last 7 hours. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| device_id_mapped_one_day | Velocity \| Mapped device ID \| 1 day | The number of times the same device ID appeared in transactions in the last day. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_one_hour | Velocity \| Mapped device ID \| 1 hour | The number of times the same device ID appeared in transactions in the last hour. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_one_min | Velocity \| Mapped device ID \| 1 minute | The number of times the same device ID appeared in transactions in the last minute. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_one_month | Velocity \| Mapped device ID \| 1 month | The number of times the same device ID appeared in transactions in the last month (30 days). The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_ten_day | Velocity \| Mapped device ID \| 10 days | The number of times the same device ID appeared in transactions in the last 10 days. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_three_month | Velocity \| Mapped device ID \| 3 months | The number of times the same device ID appeared in transactions in the last 3 months (90 days). The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_five_day | Velocity \| Mapped device ID \| 5 days | The number of times the same device ID appeared in transactions in the last 5 days. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_five_min | Velocity \| Mapped device ID \| 5 minutes | The number of times the same device ID appeared in transactions in the last 5 minutes. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_six_month | Velocity \| Mapped device ID \| 6 months | The number of times the same device ID appeared in transactions in the last 6 months (180 days). The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_seven_day | Velocity \| Mapped device ID \| 7 days | The number of times the same device ID appeared in transactions in the last 7 days. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| device_id_mapped_seven_hour | Velocity \| Mapped device ID \| 7 hours | The number of times the same device ID appeared in transactions in the last 7 hours. The current transaction is not added to the count. The mapped value of the device ID is based on your configuration settings. | client_id, device_fingerprint, device_id, ip, seller_id, sub_seller, trans_ts |
| funding_source_one_day | Velocity \| Payment method \| 1 day | The number of times the same payment method appeared in transactions in the last day. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_one_hour | Velocity \| Payment method \| 1 hour | The number of times the same payment method appeared in transactions in the last hour. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_one_min | Velocity \| Payment method \| 1 minute | The number of times the same payment method appeared in transactions in the last minute. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_one_month | Velocity \| Payment method \| 1 month | The number of times the same payment method appeared in transactions in the last month (30 days). The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_ten_day | Velocity \| Payment method \| 10 days | The number of times the same payment method appeared in transactions in the last 10 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_three_month | Velocity \| Payment method \| 3 months | The number of times the same payment method appeared in transactions in the last 3 months (90 days). The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_five_day | Velocity \| Payment method \| 5 days | The number of times the same payment method appeared in transactions in the last 5 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_five_min | Velocity \| Payment method \| 5 minutes | The number of times the same payment method appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_six_month | Velocity \| Payment method \| 6 months | The number of times the same payment method appeared in transactions in the last 6 months (180 days). The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_seven_day | Velocity \| Payment method \| 7 days | The number of times the same payment method appeared in transactions in the last 7 days. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| funding_source_seven_hour | Velocity \| Payment method \| 7 hours | The number of times the same payment method appeared in transactions in the last 7 hours. The current transaction is not added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, trans_ts |
| pmt_method_brand_over_email_one_day | Velocity \| Payment method brand over email \| 1 day | The number of different payment methods used with the same email address in the last day. The current transaction is added to the count. | cust_email, pmt_method_brand, trans_ts |
| pmt_method_brand_over_email_one_hour | Velocity \| Payment method brand over email \| 1 hour | The number of different payment methods used with the same email address in the last hour. The current transaction is added to the count. | cust_email, pmt_method_brand, trans_ts |
| pmt_method_brand_over_email_one_min | Velocity \| Payment method brand over email \| 1 minute | The number of different payment methods used with the same email address in the last minute. The current transaction is added to the count. | cust_email, pmt_method_brand, trans_ts |
| pmt_method_brand_over_email_five_day | Velocity \| Payment method brand over email \| 5 days | The number of different payment methods used with the same email address in the last 5 days. The current transaction is added to the count. | cust_email, pmt_method_brand, trans_ts |
| pmt_method_brand_over_email_five_min | Velocity \| Payment method brand over email \| 5 minutes | The number of different payment methods used with the same email address in the last 5 minutes. The current transaction is added to the count. | cust_email, pmt_method_brand, trans_ts |
| pmt_method_brand_over_email_seven_hour | Velocity \| Payment method brand over email \| 7 hours | The number of different payment methods used with the same email address in the last 7 hours. The current transaction is added to the count. | cust_email, pmt_method_brand, trans_ts |
| phone_one_day | Velocity \| Phone \| 1 day | The number of times the same phone number appeared in transactions in the last day. The current transaction is not added to the count. | phone, trans_ts |
| phone_one_hour | Velocity \| Phone \| 1 hour | The number of times the same phone number appeared in transactions in the last hour. The current transaction is not added to the count. | phone, trans_ts |
| phone_one_min | Velocity \| Phone \| 1 minute | The number of times the same phone number appeared in transactions in the last minute. The current transaction is not added to the count. | phone, trans_ts |
| phone_five_day | Velocity \| Phone \| 5 days | The number of times the same phone number appeared in transactions in the last 5 days. The current transaction is not added to the count. | phone, trans_ts |
| phone_five_min | Velocity \| Phone \| 5 minutes | The number of times the same phone number appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | phone, trans_ts |
| phone_seven_hour | Velocity \| Phone \| 7 hours | The number of times the same phone number appeared in transactions in the last 7 hours. The current transaction is not added to the count. | phone, trans_ts |
| phone_over_cc_one_day | Velocity \| Phone over credit card \| 1 day | The number of different phone numbers used with the same credit card in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| phone_over_cc_one_hour | Velocity \| Phone over credit card \| 1 hour | The number of different phone numbers used with the same credit card in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| phone_over_cc_one_min | Velocity \| Phone over credit card \| 1 minute | The number of different phone numbers used with the same credit card in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| phone_over_cc_five_day | Velocity \| Phone over credit card \| 5 days | The number of different phone numbers used with the same credit card in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| phone_over_cc_five_min | Velocity \| Phone over credit card \| 5 minutes | The number of different phone numbers used with the same credit card in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| phone_over_cc_seven_hour | Velocity \| Phone over credit card \| 7 hours | The number of different phone numbers used with the same credit card in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, phone, trans_ts |
| phone_over_device_one_day | Velocity \| Phone over device \| 1 day | The number of different phone numbers used with the same device in the last day. The current transaction is added to the count. | device_id, phone, trans_ts |
| phone_over_device_one_hour | Velocity \| Phone over device \| 1 hour | The number of different phone numbers used with the same device in the last hour. The current transaction is added to the count. | device_id, phone, trans_ts |
| phone_over_device_one_min | Velocity \| Phone over device \| 1 minute | The number of different phone numbers used with the same device in the last minute. The current transaction is added to the count. | device_id, phone, trans_ts |
| phone_over_device_five_day | Velocity \| Phone over device \| 5 days | The number of different phone numbers used with the same device in the last 5 days. The current transaction is added to the count. | device_id, phone, trans_ts |
| phone_over_device_five_min | Velocity \| Phone over device \| 5 minutes | The number of different phone numbers used with the same device in the last 5 minutes. The current transaction is added to the count. | device_id, phone, trans_ts |
| phone_over_device_seven_hour | Velocity \| Phone over device \| 7 hours | The number of different phone numbers used with the same device in the last 7 hours. The current transaction is added to the count. | device_id, phone, trans_ts |
| phone_over_email_one_day | Velocity \| Phone over email \| 1 day | The number of different phone numbers used with the same email address in the last day. The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_one_hour | Velocity \| Phone over email \| 1 hour | The number of different phone numbers used with the same email address in the last hour. The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_one_min | Velocity \| Phone over email \| 1 minute | The number of different phone numbers used with the same email address in the last minute. The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_one_month | Velocity \| Phone over email \| 1 month | The number of different phone numbers used with the same email address in the last month (30 days). The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_ten_day | Velocity \| Phone over email \| 10 days | The number of different phone numbers used with the same email address in the last 10 days. The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_three_month | Velocity \| Phone over email \| 3 months | The number of different phone numbers used with the same email address in the last 3 months (90 days). The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_five_day | Velocity \| Phone over email \| 5 days | The number of different phone numbers used with the same email address in the last 5 days. The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_five_min | Velocity \| Phone over email \| 5 minutes | The number of different phone numbers used with the same email address in the last 5 minutes. The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_six_month | Velocity \| Phone over email \| 6 months | The number of different phone numbers used with the same email address in the last 6 months (180 days). The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_seven_day | Velocity \| Phone over email \| 7 days | The number of different phone numbers used with the same email address in the last 7 days. The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_seven_hour | Velocity \| Phone over email \| 7 hours | The number of different phone numbers used with the same email address in the last 7 hours. The current transaction is added to the count. | cust_email, phone, trans_ts |
| phone_over_email_velocity_high_level | Velocity \| Phone over email \| High level | The high level values of the velocity attribute 'phone_over_email'. | ba_iban, bin_issuer, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, cust_email, cust_first_name, cust_last_name, cust_middle_name, cust_name, phone, trans_ts |
| phone_over_ip_one_day | Velocity \| Phone over IP \| 1 day | The number of different phone numbers used with the same IP address in the last day. The current transaction is added to the count. | ip, phone, trans_ts |
| phone_over_ip_one_hour | Velocity \| Phone over IP \| 1 hour | The number of different phone numbers used with the same IP address in the last hour. The current transaction is added to the count. | ip, phone, trans_ts |
| phone_over_ip_one_min | Velocity \| Phone over IP \| 1 minute | The number of different phone numbers used with the same IP address in the last minute. The current transaction is added to the count. | ip, phone, trans_ts |
| phone_over_ip_five_day | Velocity \| Phone over IP \| 5 days | The number of different phone numbers used with the same IP address in the last 5 days. The current transaction is added to the count. | ip, phone, trans_ts |
| phone_over_ip_five_min | Velocity \| Phone over IP \| 5 minutes | The number of different phone numbers used with the same IP address in the last 5 minutes. The current transaction is added to the count. | ip, phone, trans_ts |
| phone_over_ip_seven_hour | Velocity \| Phone over IP \| 7 hours | The number of different phone numbers used with the same IP address in the last 7 hours. The current transaction is added to the count. | ip, phone, trans_ts |
| phone_over_ship_ad_one_day | Velocity \| Phone over shipping address \| 1 day | The number of different phone numbers used with the same shipping address in the last day. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| phone_over_ship_ad_one_hour | Velocity \| Phone over shipping address \| 1 hour | The number of different phone numbers used with the same shipping address in the last hour. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| phone_over_ship_ad_one_min | Velocity \| Phone over shipping address \| 1 minute | The number of different phone numbers used with the same shipping address in the last minute. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| phone_over_ship_ad_five_day | Velocity \| Phone over shipping address \| 5 days | The number of different phone numbers used with the same shipping address in the last 5 days. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| phone_over_ship_ad_five_min | Velocity \| Phone over shipping address \| 5 minutes | The number of different phone numbers used with the same shipping address in the last 5 minutes. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| phone_over_ship_ad_seven_hour | Velocity \| Phone over shipping address \| 7 hours | The number of different phone numbers used with the same shipping address in the last 7 hours. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| postnummer_one_day | Velocity \| Postnummer \| 1 day | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions in the last day. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_one_hour | Velocity \| Postnummer \| 1 hour | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions in the last hour. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_one_min | Velocity \| Postnummer \| 1 minute | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions in the last minute. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_five_day | Velocity \| Postnummer \| 5 days | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions in the last 5 days. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_five_min | Velocity \| Postnummer \| 5 minutes | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| postnummer_seven_hour | Velocity \| Postnummer \| 7 hours | The number of times the same Postnummer (personal customer number for DHL packstations) appeared in transactions in the last 7 hours. The current transaction is not added to the count. | cust_company, ship_ad_line1, ship_ad_line2, ship_ad_line3, trans_ts |
| ship_ad_line1_zip_cnct_one_day | Velocity \| Shipping address \| 1 day | The number of times the same shipping address appeared in transactions in the last day. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_one_hour | Velocity \| Shipping address \| 1 hour | The number of times the same shipping address appeared in transactions in the last hour. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_one_min | Velocity \| Shipping address \| 1 minute | The number of times the same shipping address appeared in transactions in the last minute. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_five_day | Velocity \| Shipping address \| 5 days | The number of times the same shipping address appeared in transactions in the last 5 days. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_five_min | Velocity \| Shipping address \| 5 minutes | The number of times the same shipping address appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_line1_zip_cnct_seven_hour | Velocity \| Shipping address \| 7 hours | The number of times the same shipping address appeared in transactions in the last 7 hours. The current transaction is not added to the count. | ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_name_over_email_one_day | Velocity \| Shipping address full name over email \| 1 day | The number of times a different name on the shipping address was used with the same email address in the last day. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_one_day | Velocity \| Shipping address full name over email \| 1 day | The number of times a different full name on the shipping address was used with the same email address in the last day. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_ad_name_over_email_one_hour | Velocity \| Shipping address full name over email \| 1 hour | The number of times a different name on the shipping address was used with the same email address in the last hour. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_one_hour | Velocity \| Shipping address full name over email \| 1 hour | The number of times a different full name on the shipping address was used with the same email address in the last hour. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_ad_name_over_email_one_min | Velocity \| Shipping address full name over email \| 1 minute | The number of times a different name on the shipping address was used with the same email address in the last minute. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_one_min | Velocity \| Shipping address full name over email \| 1 minute | The number of times a different full name on the shipping address was used with the same email address in the last minute. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_one_month | Velocity \| Shipping address full name over email \| 1 month | The number of times a different full name on the shipping address was used with the same email address in the last month (30 days). The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_ten_day | Velocity \| Shipping address full name over email \| 10 days | The number of times a different full name on the shipping address was used with the same email address in the last 10 days. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_three_month | Velocity \| Shipping address full name over email \| 3 months | The number of times a different full name on the shipping address was used with the same email address in the last 3 months (90 days). The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_ad_name_over_email_five_day | Velocity \| Shipping address full name over email \| 5 days | The number of times a different name on the shipping address was used with the same email address in the last 5 days. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_five_day | Velocity \| Shipping address full name over email \| 5 days | The number of times a different full name on the shipping address was used with the same email address in the last 5 days. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_ad_name_over_email_five_min | Velocity \| Shipping address full name over email \| 5 minutes | The number of times a different name on the shipping address was used with the same email address in the last 5 minutes. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_five_min | Velocity \| Shipping address full name over email \| 5 minutes | The number of times a different full name on the shipping address was used with the same email address in the last 5 minutes. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_six_month | Velocity \| Shipping address full name over email \| 6 months | The number of times a different full name on the shipping address was used with the same email address in the last 6 months (180 days). The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_seven_day | Velocity \| Shipping address full name over email \| 7 days | The number of times a different full name on the shipping address was used with the same email address in the last 7 days. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_ad_name_over_email_seven_hour | Velocity \| Shipping address full name over email \| 7 hours | The number of times a different name on the shipping address was used with the same email address in the last 7 hours. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_name, trans_ts |
| ship_fl_norm_over_email_seven_hour | Velocity \| Shipping address full name over email \| 7 hours | The number of times a different full name on the shipping address was used with the same email address in the last 7 hours. The name used in this attribute is a normalized version of the customer's full name. The current transaction is added to the count. | cust_email, ship_ad_first_name, ship_ad_last_name, ship_ad_middle_name, ship_ad_name, trans_ts |
| ship_ad_over_bin_ctry_one_day | Velocity \| Shipping address over BIN country \| 1 day | The number of different shipping addresses used with the same BIN country in the last day. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_bin_ctry_one_hour | Velocity \| Shipping address over BIN country \| 1 hour | The number of different shipping addresses used with the same BIN country in the last hour. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_bin_ctry_one_min | Velocity \| Shipping address over BIN country \| 1 minute | The number of different shipping addresses used with the same BIN country in the last minute. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_bin_ctry_five_day | Velocity \| Shipping address over BIN country \| 5 days | The number of different shipping addresses used with the same BIN country in the last 5 days. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_bin_ctry_five_min | Velocity \| Shipping address over BIN country \| 5 minutes | The number of different shipping addresses used with the same BIN country in the last 5 minutes. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_bin_ctry_seven_hour | Velocity \| Shipping address over BIN country \| 7 hours | The number of different shipping addresses used with the same BIN country in the last 7 hours. The current transaction is added to the count. | bin_ctry, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_cc_one_day | Velocity \| Shipping address over credit card \| 1 day | The number of different shipping addresses used with the same credit card in the last day. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_cc_one_hour | Velocity \| Shipping address over credit card \| 1 hour | The number of different shipping addresses used with the same credit card in the last hour. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_cc_one_min | Velocity \| Shipping address over credit card \| 1 minute | The number of different shipping addresses used with the same credit card in the last minute. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_cc_five_day | Velocity \| Shipping address over credit card \| 5 days | The number of different shipping addresses used with the same credit card in the last 5 days. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_cc_five_min | Velocity \| Shipping address over credit card \| 5 minutes | The number of different shipping addresses used with the same credit card in the last 5 minutes. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_cc_seven_hour | Velocity \| Shipping address over credit card \| 7 hours | The number of different shipping addresses used with the same credit card in the last 7 hours. The current transaction is added to the count. | ba_iban, cc_bin, cc_exp_dt, cc_last_4_dig, cc_num_frg_token, cc_num_hash, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_name_one_day | Velocity \| Shipping address over customer name \| 1 day | The number of different shipping addresses used with the same customer name in the last day. The current transaction is added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_name_one_hour | Velocity \| Shipping address over customer name \| 1 hour | The number of different shipping addresses used with the same customer name in the last hour. The current transaction is added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_name_one_min | Velocity \| Shipping address over customer name \| 1 minute | The number of different shipping addresses used with the same customer name in the last minute. The current transaction is added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_name_five_day | Velocity \| Shipping address over customer name \| 5 days | The number of different shipping addresses used with the same customer name in the last 5 days. The current transaction is added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_name_five_min | Velocity \| Shipping address over customer name \| 5 minutes | The number of different shipping addresses used with the same customer name in the last 5 minutes. The current transaction is added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_name_seven_hour | Velocity \| Shipping address over customer name \| 7 hours | The number of different shipping addresses used with the same customer name in the last 7 hours. The current transaction is added to the count. | cust_first_name, cust_last_name, cust_middle_name, cust_name, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_email_one_day | Velocity \| Shipping address over email \| 1 day | The number of different shipping addresses used with the same email address in the last day. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_email_one_hour | Velocity \| Shipping address over email \| 1 hour | The number of different shipping addresses used with the same email address in the last hour. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_email_one_min | Velocity \| Shipping address over email \| 1 minute | The number of different shipping addresses used with the same email address in the last minute. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_email_five_day | Velocity \| Shipping address over email \| 5 days | The number of different shipping addresses used with the same email address in the last 5 days. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_email_five_min | Velocity \| Shipping address over email \| 5 minutes | The number of different shipping addresses used with the same email address in the last 5 minutes. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_email_seven_hour | Velocity \| Shipping address over email \| 7 hours | The number of different shipping addresses used with the same email address in the last 7 hours. The current transaction is added to the count. | cust_email, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_one_day | Velocity \| Shipping address over IP \| 1 day | The number of different shipping addresses used with the same IP in the last day. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_one_hour | Velocity \| Shipping address over IP \| 1 hour | The number of different shipping addresses used with the same IP in the last hour. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_one_min | Velocity \| Shipping address over IP \| 1 minute | The number of different shipping addresses used with the same IP in the last minute. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_five_day | Velocity \| Shipping address over IP \| 5 days | The number of different shipping addresses used with the same IP in the last 5 days. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_five_min | Velocity \| Shipping address over IP \| 5 minutes | The number of different shipping addresses used with the same IP in the last 5 minutes. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_seven_hour | Velocity \| Shipping address over IP \| 7 hours | The number of different shipping addresses used with the same IP in the last 7 hours. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_ctry_one_day | Velocity \| Shipping address over IP country \| 1 day | The number of different shipping addresses used with the same IP country in the last day. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_ctry_one_hour | Velocity \| Shipping address over IP country \| 1 hour | The number of different shipping addresses used with the same IP country in the last hour. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_ctry_one_min | Velocity \| Shipping address over IP country \| 1 minute | The number of different shipping addresses used with the same IP country in the last minute. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_ctry_five_day | Velocity \| Shipping address over IP country \| 5 days | The number of different shipping addresses used with the same IP country in the last 5 days. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_ctry_five_min | Velocity \| Shipping address over IP country \| 5 minutes | The number of different shipping addresses used with the same IP country in the last 5 minutes. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_ip_ctry_seven_hour | Velocity \| Shipping address over IP country \| 7 hours | The number of different shipping addresses used with the same IP country in the last 7 hours. The current transaction is added to the count. | ip, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_phone_one_day | Velocity \| Shipping address over phone \| 1 day | The number of different shipping addresses used with the same phone number in the last day. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_phone_one_hour | Velocity \| Shipping address over phone \| 1 hour | The number of different shipping addresses used with the same phone number in the last hour. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_phone_one_min | Velocity \| Shipping address over phone \| 1 minute | The number of different shipping addresses used with the same phone number in the last minute. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_phone_five_day | Velocity \| Shipping address over phone \| 5 days | The number of different shipping addresses used with the same phone number in the last 5 days. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_phone_five_min | Velocity \| Shipping address over phone \| 5 minutes | The number of different shipping addresses used with the same phone number in the last 5 minutes. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| ship_ad_over_phone_seven_hour | Velocity \| Shipping address over phone \| 7 hours | The number of different shipping addresses used with the same phone number in the last 7 hours. The current transaction is added to the count. | phone, ship_ad_line1, ship_ad_zip, trans_ts |
| device_id_smart_one_day | Velocity \| Smart device ID \| 1 day | The number of times the same smart device ID appeared in transactions in the last day. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_one_hour | Velocity \| Smart device ID \| 1 hour | The number of times the same smart device ID appeared in transactions in the last hour. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_one_min | Velocity \| Smart device ID \| 1 minute | The number of times the same smart device ID appeared in transactions in the last minute. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_one_month | Velocity \| Smart device ID \| 1 month | The number of times the same smart device ID appeared in transactions in the last month (30 days). The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_ten_day | Velocity \| Smart device ID \| 10 days | The number of times the same smart device ID appeared in transactions in the last 10 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_three_month | Velocity \| Smart device ID \| 3 months | The number of times the same smart device ID appeared in transactions in the last 3 months (90 days). The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_five_day | Velocity \| Smart device ID \| 5 days | The number of times the same smart device ID appeared in transactions in the last 5 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_five_min | Velocity \| Smart device ID \| 5 minutes | The number of times the same smart device ID appeared in transactions in the last 5 minutes. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_six_month | Velocity \| Smart device ID \| 6 months | The number of times the same smart device ID appeared in transactions in the last 6 months (180 days). The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_seven_day | Velocity \| Smart device ID \| 7 days | The number of times the same smart device ID appeared in transactions in the last 7 days. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_seven_hour | Velocity \| Smart device ID \| 7 hours | The number of times the same smart device ID appeared in transactions in the last 7 hours. The current transaction is not added to the count. | device_id_smart, trans_ts |
| device_id_smart_over_ip_one_day | Velocity \| Smart device ID over IP address \| 1 day | The number of different smart device IDs used with the same IP address in the last day. The current transaction is added to the count. | device_id_smart, ip, trans_ts |
| device_id_smart_over_ip_one_hour | Velocity \| Smart device ID over IP address \| 1 hour | The number of different smart device IDs used with the same IP address in the last hour. The current transaction is added to the count. | device_id_smart, ip, trans_ts |
| device_id_smart_over_ip_one_min | Velocity \| Smart device ID over IP address \| 1 minute | The number of different smart device IDs used with the same IP address in the last minute. The current transaction is added to the count. | device_id_smart, ip, trans_ts |
| device_id_smart_over_ip_five_day | Velocity \| Smart device ID over IP address \| 5 days | The number of different smart device IDs used with the same IP address in the last 5 days. The current transaction is added to the count. | device_id_smart, ip, trans_ts |
| device_id_smart_over_ip_five_min | Velocity \| Smart device ID over IP address \| 5 minutes | The number of different smart device IDs used with the same IP address in the last five minutes. The current transaction is added to the count. | device_id_smart, ip, trans_ts |
| device_id_smart_over_ip_seven_hour | Velocity \| Smart device ID over IP address \| 7 hours | The number of different smart device IDs used with the same IP address in the last seven hours. The current transaction is added to the count. | device_id_smart, ip, trans_ts |
---
# Introduction
Source: https://developers.shuftipro.com/docs/travel_rule/introduction.md
## What is the Travel Rule?
The Travel Rule is a regulatory requirement that mandates financial institutions and VASPs to collect, verify, and transmit information about the originator and beneficiary of cryptocurrency transactions above certain thresholds. This requirement stems from:
- **FATF Recommendation #16** - Financial Action Task Force guidance on wire transfers
- **EU's MiCA and Transfer of Funds Regulation** - Markets in Crypto-Assets regulation
- **FinCEN Travel Rule** - U.S. regulatory requirements for cryptocurrency transactions
The Travel Rule aims to prevent money laundering, terrorist financing, and other illicit activities by ensuring transparency in cryptocurrency transfers.
## Key Features
### Full Regulatory Compliance
- Fully compliant with FATF Recommendation #16
- Meets EU's MiCA and Transfer of Funds Regulation requirements
- Supports FinCEN and other global regulatory frameworks
- Automatic compliance updates as regulations evolve
### Simple API Integration
- RESTful API design for easy integration
- JSON-based data model for straightforward implementation
- Comprehensive documentation and code examples
- Fast deployment - get compliant in days, not months
### Comprehensive VASP Network
- Access to extensive VASP directory
- Automatic counterparty identification
- Real-time VASP verification
- Network of 2000+ identified VASPs globally
### Transaction Management
- Create, read, update, and delete Travel Rule transactions
- Support for both `INCOMING` and `OUTGOING` transactions
- Real-time status tracking (`PENDING`, `FAILED`, `CANCELLED`, `DELIVERED`, `CONFIRMED`, `DECLINED`)
- Detailed transaction history and audit trails
### Secure Data Transmission
- End-to-end encrypted data transmission
- Secure message delivery between VASPs
- Privacy-preserving compliance
- Automated retry and delivery confirmation
## Data Model
The Travel Rule solution uses a comprehensive yet simple data model that captures all required compliance information:
- **Direction** - `INCOMING` or `OUTGOING` transaction
- **Asset & Amount** - Cryptocurrency type and transfer amount
- **Blockchain Info** - Transaction hash, origin/destination addresses, blockchain network
- **Originator** - Sender information (name, account, address, identifiers)
- **Beneficiary** - Recipient information (name, account, identifiers)
- **VASP Info** - Counterparty VASP details (name, email, additional info)
## Use Cases
- **Outgoing Transfers:** When your customers send crypto assets to external wallets or other VASPs, automatically transmit required originator information to the receiving party.
- **Incoming Transfers:** Receive and process Travel Rule information from other VASPs for incoming crypto transfers to your customers.
- **Compliance Monitoring:** Maintain comprehensive records of all Travel Rule transactions for regulatory audits and compliance reporting.
- **Risk Management:** Screen Travel Rule transactions for potential risks, sanctioned entities, or suspicious activity patterns.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/travel_rule/how_it_works.md
The Shufti Travel Rule solution follows a straightforward flow to ensure compliance with global regulatory requirements for crypto asset transfers.
## Step 1: Integration
Integrate the Travel Rule API into your crypto platform using the RESTful endpoints. The JSON-based data model makes implementation straightforward. Authenticate with **Basic Auth** using your `client_id` and `secret_key` (or an Access Token) — the same credentials used by every other Shufti service. See [Get Started - Authentication](/docs/get_started#authentication).
## Step 2: Transaction Creation
When a customer initiates a crypto transfer, create a Travel Rule transaction with all required originator and beneficiary information through the API. Specify the direction (`OUTGOING` or `INCOMING`), asset, amount, blockchain details, and party information.
## Step 3: Automatic Message Delivery
The system automatically identifies the counterparty VASP from the network of 2000+ identified VASPs and securely transmits the Travel Rule data. Message routing, delivery confirmation, and retry logic are handled automatically.
## Step 4: Status Tracking
Track a transaction's status in two ways:
- **Callbacks** — the final outcome is pushed to your `callback_url` as a signed `verification.accepted` / `verification.declined` callback. See [Responses › Callbacks](./responses#callbacks).
- **On-demand** — query the [Read](./transactions#read-transactions) / [Detail](./transactions#transaction-detail) endpoints at any time.
The Shufti verification stays **pending** until the transaction reaches a terminal status:
| Transaction status | Verification outcome |
|--------------------|----------------------|
| `CONFIRMED` | accepted |
| `DECLINED` / `FAILED` / `CANCELLED` | declined |
| `PENDING` / `DELIVERED` | stays pending |
For `INCOMING` transactions, you can also update the status to `CONFIRMED` or `DECLINED` based on your compliance review.
## Step 5: Compliance Reporting
Access complete audit trails and reporting for regulatory compliance. All Travel Rule transactions are securely stored and available for review. Use the Read Transactions endpoint with date range and status filters to generate compliance reports.

---
# Transactions
Source: https://developers.shuftipro.com/docs/travel_rule/transactions.md
The Transactions API allows you to create, read, update, and delete Travel Rule transactions for crypto asset transfers. These endpoints enable full lifecycle management of Travel Rule compliance data.
## Create Transaction
Create a new Travel Rule transaction for crypto asset transfers. Provide comprehensive originator and beneficiary information along with blockchain details to ensure compliance with FATF, MiCA, and other regulations.
Create Transaction is dispatched through Shufti's main verification endpoint by including a `travel_rule` block in the request body. The `type` field selects the Travel Rule operation - `transaction` is the default and may be omitted.
### Endpoint
```bash
POST {{BASE_URL}}/
```
**Note**
This is the same `/` endpoint used by other Shufti verification services. Authenticate using Basic Auth with your `client_id` and `secret_key` (or an Access Token), exactly as described in [Get Started - Authentication](/docs/get_started#authentication).
### Request Body
The Travel Rule transaction payload is sent as a `travel_rule` block inside the standard Shufti verification envelope (`reference`, `callback_url`, etc.).
```json title=create-transaction-request
{
"reference": "sp-tr-txn-001",
"callback_url": "https://webhook.site/your-unique-id",
"travel_rule": {
"type": "transaction",
"direction": "OUTGOING",
"asset": "BTC",
"amount": 0.875,
"blockchain_info": {
"blockchain": "bitcoin",
"transaction_hash": "b3c4d5e6f7a8b9c0d1e2f3456789abcdef0123456789abcdef0123456789abcd",
"origin": "1FfmbHfnpaZjKFvyi1okTjJJusN455paPH",
"destination": "bc1q8g9w8rj9h0w0v3n9z6q6h4j5y7x9c2f8r4d3pq",
"destination_type": "CUSTODIAL"
},
"vasp_info": {
"beneficiary_vasp_name": "Global Digital Assets Exchange Ltd",
"beneficiary_vasp_email": "compliance@globaldaex.com",
"beneficiary_vasp_extra_info": "Regulated VASP registered in the US."
},
"originator": {
"type": "NATURAL",
"name": "Michael Thompson",
"account_number": "GB-TRX-458721",
"address": "221 Baker Street, London",
"country": "GB",
"national_identificator_type": "PAS",
"national_identificator": "GBR458721963",
"customer_number": "CUS-GB-102938",
"date_of_birth": "20-06-1987",
"place_of_birth": "Manchester"
},
"beneficiary": {
"type": "NATURAL",
"name": "Daniel Carter",
"account_number": "US-TRX-785412",
"country": "US",
"national_identificator_type": "IDC",
"national_identificator": "USA874512369",
"customer_number": "CUS-US-564738"
}
}
}
```
### Travel Rule Service Type
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| travel_rule.type | No | string | Travel Rule operation type. Accepts `transaction` (default) or `wallet_verification`. Omit to default to `transaction`. |
### General Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| travel_rule.direction | Yes | string | Transaction direction: `OUTGOING` or `INCOMING`. |
| travel_rule.asset | Yes | string | Cryptocurrency asset code (e.g., `BTC`, `ETH`, `USDT`). |
| travel_rule.amount | Yes | number | Amount of asset transferred in the specified cryptocurrency. |
### Blockchain Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| travel_rule.blockchain_info.blockchain | Yes | string | Blockchain network name (e.g., `Bitcoin`, `Ethereum`). |
| travel_rule.blockchain_info.transaction_hash | Yes | string | The on-chain transaction hash. |
| travel_rule.blockchain_info.origin | Yes | string | Originating wallet address. |
| travel_rule.blockchain_info.destination | Yes | string | Destination wallet address. |
| travel_rule.blockchain_info.destination_type | Yes | string | Destination wallet type: `CUSTODIAL` or `NON_CUSTODIAL`. |
### VASP Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| travel_rule.vasp_info.beneficiary_vasp_name | Yes | string | Name of the receiving VASP. |
| travel_rule.vasp_info.beneficiary_vasp_email | Yes | string | Email for the receiving VASP's compliance team. |
| travel_rule.vasp_info.beneficiary_vasp_extra_info | No | string | Additional VASP info (LEI, license number, etc.). |
### Originator Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| travel_rule.originator.type | Yes | string | Entity type: `NATURAL` (person) or `LEGAL` (company/organization). |
| travel_rule.originator.name | Yes | string | Full name of the originator. |
| travel_rule.originator.account_number | Yes | string | Wallet address or account identifier. |
| travel_rule.originator.address | Yes* | string | Physical address. Required for `NATURAL` type persons. |
| travel_rule.originator.country | Yes | string | ISO 3166-1 alpha-2 country code (e.g., `US`, `GB`, `DE`). |
| travel_rule.originator.national_identificator_type | Yes | string | Type of national ID. See [National Identificator Types](#national-identificator-types). |
| travel_rule.originator.national_identificator | Yes | string | National identification number. |
| travel_rule.originator.customer_number | Yes | string | Internal customer reference number used by your VASP. |
| travel_rule.originator.date_of_birth | Yes* | string | Date of birth in `DD-MM-YYYY` format. Required for `NATURAL`. |
| travel_rule.originator.place_of_birth | Yes* | string | Place of birth (city, country). Required for `NATURAL`. |
**Note**
Fields marked `Yes*` are required only for `NATURAL` type persons.
### Beneficiary Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| travel_rule.beneficiary.type | Yes | string | Entity type: `NATURAL` (person) or `LEGAL` (company/organization). |
| travel_rule.beneficiary.name | Yes | string | Full name of the beneficiary. |
| travel_rule.beneficiary.account_number | Yes | string | Wallet address or account identifier. |
| travel_rule.beneficiary.country | Yes | string | ISO 3166-1 alpha-2 country code. |
| travel_rule.beneficiary.national_identificator_type | Yes | string | Type of national ID. See [National Identificator Types](#national-identificator-types). |
| travel_rule.beneficiary.national_identificator | Yes | string | National identification number. |
| travel_rule.beneficiary.customer_number | Yes | string | Internal customer reference number used by your VASP. |
### National Identificator Types
| Code | Description |
|------|-------------|
| `PASSPORT` (or `PAS`) | Passport number |
| `IDC` | Identity card number |
| `ALN` | Alien registration number |
| `DRV` | Driver's license number |
| `RAI` | Registration authority identifier |
| `FIN` | Foreign investment identity number |
| `TAX` (or `TXN`) | Tax identification number |
| `SSN` | Social security number |
| `LEI` | Legal entity identifier |
| `OTH` | Other identification type |
### Response
The transaction is created and screened **asynchronously**, so `POST /` returns the standard Shufti envelope with `event: request.pending` immediately. The screening outcome is delivered later to your `callback_url` as a signed `verification.accepted` / `verification.declined` callback — see [Responses › Callbacks](./responses#callbacks).
```json title=create-transaction-response
{
"reference": "sp-tr-txn-001",
"event": "request.pending",
"email": null,
"country": null
}
```
**Note**
Creation is asynchronous — `POST /` returns `request.pending` immediately, and `customer_unique_id` is echoed when you supply it. The full transaction object (with `_id`, `status`, parties, etc.) is retrieved from the [Read](#read-transactions) and [Transaction Detail](#transaction-detail) endpoints; its fields are described below.
### Transaction Object (returned by Read / Transaction Detail)
| Parameter | Description |
|-----------|-------------|
| _id | Unique identifier of the transaction. |
| reference | Your own `reference` from the create request, attached by Shufti for correlation. |
| direction | Transaction direction: `INCOMING` or `OUTGOING`. |
| asset | Cryptocurrency asset code (e.g., `BTC`, `ETH`). |
| amount | Transaction amount in the specified asset. |
| status | Current status: `PENDING`, `FAILED`, `CANCELLED`, `DELIVERED`, `CONFIRMED`, or `DECLINED`. |
| status_reasoning | Explanation for status change. Null unless `DECLINED`. |
| created_at | Timestamp in RFC 2822 format. |
| warnings | Array of warnings or validation messages. |
| travel_rule_message_source | Source reference for the Travel Rule message. |
| identified_tenant | Additional tenant/organization information. |
| blockchain_info | Blockchain-specific details (blockchain, hash, origin, destination, type). |
| vasp_info | Counterparty VASP details (name, email, extra info). |
| originator | Originator data (mirrors request parameters). |
| beneficiary | Beneficiary data (mirrors request parameters). |
## Read Transactions
Retrieve Travel Rule transactions with filtering, search, and pagination. Fetch all transactions, filter by status, search by criteria, and retrieve detailed information for compliance reporting.
### Endpoint
```bash
GET {{BASE_URL}}/travel-rule/transaction/read
```
### Query Parameters
All parameters are optional. Without parameters, the endpoint returns the first 25 transactions.
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| page | No | integer | Page number for pagination. Defaults to `1`. |
| per_page | No | integer | Results per page. Defaults to `25`, maximum `100`. |
| search | No | string | Search by transaction `_id`, customer name, or account number, or by your own `reference`. |
| start_date | No | string | Start date in `DD-MM-YYYY` format. |
| end_date | No | string | End date in `DD-MM-YYYY` format. |
| statuses[] | No | array | Filter by status: `PENDING`, `FAILED`, `CANCELLED`, `DELIVERED`, `CONFIRMED`, `DECLINED`. Repeat parameter for multiple values. |
| direction | No | string | Filter by direction: `INCOMING` or `OUTGOING`. |
### Response
Returns a transactions array and pagination metadata.
```json title=read-transactions-response
{
"error": false,
"status": "SUCCESS",
"message": "Transaction fetched successfully",
"data": {
"transactions": [ ],
"pagination": {
"page": 1,
"per_page": 25,
"total_count": 2,
"total_pages": 1,
"has_next": false,
"has_prev": false
}
}
}
```
### Pagination Fields
| Parameter | Description |
|-----------|-------------|
| data.pagination.page | Current page number. |
| data.pagination.per_page | Results per page. |
| data.pagination.total_count | Total number of matching transactions. |
| data.pagination.total_pages | Total pages available. |
| data.pagination.has_next | Boolean: whether a next page exists. |
| data.pagination.has_prev | Boolean: whether a previous page exists. |
## Transaction Detail
Retrieve detailed information for a specific Travel Rule transaction by its unique identifier. Ownership of the transaction is verified before the data is returned.
### Endpoint
```bash
GET {{BASE_URL}}/travel-rule/transaction/detail
```
### Query Parameters
You must provide the transaction identifier using either `transaction_id` (preferred) or `search` as a fallback.
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| transaction_id | Yes* | string | The unique `_id` of the transaction to retrieve. Preferred parameter. |
| search | Yes* | string | Alternative parameter accepting the transaction `_id`. Used as a fallback when `transaction_id` is not provided. |
**Note**
At least one of `transaction_id` or `search` must be provided. If both are omitted (or empty), the request fails with `422` and an error message: `transaction_id is required`.
### Sample Request
```bash
GET {{BASE_URL}}/travel-rule/transaction/detail?transaction_id=TRANSACTION_ID
```
The response structure is identical to [Read Transactions](#read-transactions), with the `transactions` array containing exactly one transaction.
## Update Transaction
Update the status of an existing Travel Rule transaction. This endpoint can only update transactions with `INCOMING` direction.
**Caution**
This endpoint can only update transactions with `INCOMING` direction. Attempting to update an `OUTGOING` transaction will result in an error.
### Endpoint
```bash
POST {{BASE_URL}}/travel-rule/transaction/update
```
### Request Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| transaction_id | Yes | string | Unique identifier of the transaction to update. |
| status | Yes | string | New status: `DELIVERED`, `CONFIRMED`, or `DECLINED`. |
| status_reasoning | Conditional | string | Required when status is `DECLINED`. Provide clear reasoning. |
### Updatable Statuses
| Status | Description | Reasoning Required |
|--------|-------------|--------------------|
| `DELIVERED` | Transaction successfully delivered to counterparty VASP. | No |
| `CONFIRMED` | Transaction confirmed and accepted by counterparty. | No |
| `DECLINED` | Transaction declined/rejected by counterparty. | Yes |
### Sample: Confirm Transaction
```json title=confirm-transaction
{
"transaction_id": "695798278f0a2bda14017663",
"status": "CONFIRMED"
}
```
### Sample: Decline Transaction
```json title=decline-transaction
{
"transaction_id": "695cb01826ae544d2f497410",
"status": "DECLINED",
"status_reasoning": "Beneficiary failed AML screening - sanctioned entity"
}
```
**Caution**
When declining a transaction, you must provide `status_reasoning` with a clear explanation. Omitting reasoning for `DECLINED` status will result in an error.
### Response
Returns the complete updated transaction object (same shape as [Read](#read-transactions)) with `message: "Transaction status updated successfully"`.
```json title=update-transaction-response
{
"error": false,
"status": "SUCCESS",
"message": "Transaction status updated successfully",
"data": {
"_id": "695798278f0a2bda14017663",
"status": "CONFIRMED",
"status_reasoning": null,
"direction": "INCOMING"
}
}
```
## Delete Transaction
Permanently delete a Travel Rule transaction from the system.
**Danger**
Deletion is permanent and irreversible. This may impact compliance audit trails. Use with caution.
### Endpoint
```bash
POST {{BASE_URL}}/travel-rule/transaction/delete
```
### Request Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| transaction_id | Yes | string | Unique identifier of the transaction to delete. |
### Sample Request
```json title=delete-transaction-request
{
"transaction_id": "TRANSACTION_ID"
}
```
### Response
```json title=delete-transaction-response
{
"data": {},
"error": false,
"message": "Transaction deleted successfully",
"status": "SUCCESS"
}
```
---
# VASP Directory
Source: https://developers.shuftipro.com/docs/travel_rule/vasp_directory.md
The VASP Directory API provides access to an extensive directory of Virtual Asset Service Providers. Use these endpoints for pre-transaction screening, compliance research, and counterparty risk assessment.
## Read VASP Directory
Retrieve VASP entities with comprehensive filtering by country, entity type, risk level, network status, and verification status.
### Endpoint
```bash
GET {{BASE_URL}}/travel-rule/vasp-directory/read
```
### Query Parameters
All parameters are optional. Without parameters, the endpoint returns the first 25 entities.
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| page | No | integer | Page number. Defaults to `1`. |
| per_page | No | integer | Results per page. Defaults to `25`, max `100`. |
| search | No | string | Search by entity name, legal name, or identifiers. |
| start_date | No | string | Filter by update date. `DD-MM-YYYY` format. |
| end_date | No | string | Filter by update date. `DD-MM-YYYY` format. |
| countries[] | No | array | Filter by country names (e.g., `United Kingdom`). |
| entity_type[] | No | array | Filter by entity type: `Exchange`, `ATM`, `Dex`, `Payment Service Provider`, `NFT Marketplace`, `Donations`, `Bot`, `Sanction list`. |
| in_network | No | boolean | Filter by network status. `true` = in Travel Rule network. |
| is_verified | No | boolean | Filter by verification status. `true` = verified entity. |
| risk_severity[] | No | array | Filter by risk: `LOW_RISK`, `MEDIUM_RISK`, `HIGH_RISK`. |
### Entity Types
| Type | Description |
|------|-------------|
| Exchange | Cryptocurrency trading platforms |
| ATM | Cryptocurrency ATM operators |
| Dex | Decentralized exchange platforms |
| Payment Service Provider | Crypto payment processing services |
| NFT Marketplace | Non-fungible token trading platforms |
| Donations | Donation and charity platforms |
| Bot | Automated trading or service bots |
| Sanction list | Entities on sanctions lists |
### Response
```json title=read-vasp-directory-response
{
"error": false,
"status": "SUCCESS",
"data": {
"entities": [
{
"_id": "6954cd24706f4f6d1c90353a",
"entity_name": "GlobalCrypto Exchange",
"entity_legal_name": "Global Crypto Exchange Inc.",
"entity_type": "Exchange",
"countries": ["United States", "United Kingdom"],
"in_network": true,
"is_verified": true,
"risk_assessment": { "score": 5, "severity": "LOW_RISK" },
"updated_at": "2025-04-14T14:08:07.000Z",
"url": "https://www.globalcrypto.com"
}
],
"pagination": { }
}
}
```
### Response Parameters
| Parameter | Description |
|-----------|-------------|
| data.entities[]._id | Unique identifier of the VASP entity. |
| data.entities[].entity_name | Common name of the VASP. |
| data.entities[].entity_legal_name | Official registered legal name. |
| data.entities[].entity_type | Entity category (`Exchange`, `ATM`, `Dex`, etc.). |
| data.entities[].countries | Array of countries where the entity operates. |
| data.entities[].in_network | Whether the entity is part of the Travel Rule network. |
| data.entities[].is_verified | Whether the entity has been verified. |
| data.entities[].risk_assessment.score | Numerical risk score. |
| data.entities[].risk_assessment.severity | Risk level: `LOW_RISK`, `MEDIUM_RISK`, or `HIGH_RISK`. |
| data.entities[].updated_at | Last update timestamp (ISO 8601 format). |
| data.entities[].url | Website URL of the entity. |
## VASP Directory Detail
Retrieve detailed information for a specific VASP entity by its unique identifier.
### Endpoint
```bash
GET {{BASE_URL}}/travel-rule/vasp-directory/detail
```
### Query Parameters
You must provide the VASP entity identifier using either `search` (preferred) or `entity_id` as a fallback.
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| search | Yes* | string | The unique `_id` of the VASP entity to retrieve. Preferred parameter. |
| entity_id | Yes* | string | Alternative parameter accepting the VASP entity `_id`. Used as a fallback when `search` is not provided. |
**Note**
At least one of `search` or `entity_id` must be provided. If both are omitted (or empty), the request fails with `422` and an error message: `search (entity id) is required`.
### Sample Request
```bash
GET {{BASE_URL}}/travel-rule/vasp-directory/detail?search=ENTITY_ID
```
The response structure is identical to [Read VASP Directory](#read-vasp-directory), with the `entities` array containing exactly one entity.
---
# Wallets
Source: https://developers.shuftipro.com/docs/travel_rule/wallets.md
The Wallets API allows you to manage wallet records within the Travel Rule system. Register customer wallets, track multi-asset wallets, and manage wallet data for compliance.
## Create Wallet
Create a new wallet owned by the current tenant. Wallets are created as confirmed automatically and are immediately available for use in Travel Rule transactions.
**Note**
Wallets are automatically created as confirmed. No additional verification steps are required before use in Travel Rule transactions.
### Endpoint
```bash
POST {{BASE_URL}}/travel-rule/wallets/create
```
### Request Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| wallet_address | Yes | string | Blockchain wallet address to register. Max 500 characters. (Sent as `wallet_address`, not `address`.) |
| asset | Yes | string | Asset code (e.g., `BTC`, `ETH`). Always required — use `*` to create a multi-asset wallet supporting all assets on the blockchain. |
| blockchain | Yes | string | Blockchain network name (e.g., `Bitcoin`, `Ethereum`). Use a name from the Read Blockchains endpoint (free text may reduce Travel Rule message delivery rates). |
| multi_asset | No | boolean | Whether the wallet supports multiple assets. Defaults to `false` if omitted. When `true`, set `asset` to `*`. |
| metadata | No | string | Custom metadata or notes about the wallet. Max 1000 characters. |
**Note**
The wallet address is sent as **`wallet_address`** (not `address`). The created wallet object returned by this endpoint and by [Read Wallets](#read-wallets) reports it back as `address`.
### Multi-Asset Wallets
To create a multi-asset wallet, set `asset` to `"*"` and `multi_asset` to `true`:
```json title=multi-asset-wallet-request
{
"wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"blockchain": "Ethereum",
"multi_asset": true,
"asset": "*",
"metadata": "Multi-asset wallet supporting ETH, USDT, and ERC-20 tokens"
}
```
### Response
```json title=create-wallet-response
{
"error": false,
"status": "SUCCESS",
"message": "Wallet created successfully",
"data": {
"_id": "69579b37e7968ddaf19b3f7c",
"address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"asset": "BTC",
"blockchain": "Bitcoin",
"multi_asset": false,
"metadata": "Customer wallet for John Doe",
"created_at": "Fri, 02 Jan 2026 10:17:27 GMT",
"updated_at": "Fri, 02 Jan 2026 10:17:27 GMT"
}
}
```
## Read Wallets
Retrieve your own wallets, scoped to your account. Results are paginated and filterable by asset, blockchain, status, and date range.
### Endpoint
```bash
GET {{BASE_URL}}/travel-rule/wallets/read
```
### Query Parameters
All parameters are optional. Without parameters, returns the first 25 wallets.
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| page | No | integer | Page number. Defaults to `1`. |
| per_page | No | integer | Results per page. Defaults to `25`, max `100`. |
| search | No | string | Search by wallet address or `_id`. Your `reference` is included in every result for correlation. |
| start_date | No | string | Filter by creation/update date, on or after. `DD-MM-YYYY` format. |
| end_date | No | string | Filter by creation/update date, on or before. `DD-MM-YYYY` format. |
| assets[] | No | array | Filter by one or more asset codes (e.g. `BTC`, `ETH`). Use `*` for multi-asset wallets. Repeat the parameter for multiple values. |
| blockchains[] | No | array | Filter by one or more blockchain names (e.g. `Bitcoin`, `Ethereum`). Repeat the parameter for multiple values. |
| statuses[] | No | array | Filter by wallet status: `verified`, `unverified`, `pending`, `failed`. Repeat the parameter for multiple values. |
**Note**
Results are scoped to your own account. Each returned wallet also includes your `reference` for correlation.
### Response
```json title=read-wallets-response
{
"error": false,
"status": "SUCCESS",
"message": "Wallets fetched successfully",
"data": {
"wallets": [ ],
"pagination": {
"page": 1,
"per_page": 25,
"total_count": 0,
"total_pages": 0,
"has_next": false,
"has_prev": false
}
}
}
```
## Delete Wallet
Permanently delete a wallet from the Travel Rule system.
### Endpoint
```bash
POST {{BASE_URL}}/travel-rule/wallets/delete
```
### Request Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| wallet_id | Yes | string | Unique identifier of the wallet to delete. |
### Response
```json title=delete-wallet-response
{
"data": {},
"error": false,
"message": "Wallet deleted successfully",
"status": "SUCCESS"
}
```
---
# Wallet Verification
Source: https://developers.shuftipro.com/docs/travel_rule/wallet_verification.md
The Wallet Verification API enables you to verify ownership of wallet addresses through multiple verification flows. This supports compliance requirements and fraud prevention.
## Create Wallet Verification
Create a new wallet verification request. Users prove ownership through `SATOSHI_TEST`, `VISUAL_PROOF`, `SELF_DECLARED`, or `SIGNATURE_PROOF` flows.
Create Wallet Verification is dispatched through Shufti's main verification endpoint by including a `travel_rule` block with `type` set to `wallet_verification`.
### Endpoint
```bash
POST {{BASE_URL}}/
```
**Note**
This is the same `/` endpoint used by other Shufti verification services. Authenticate using Basic Auth with your `client_id` and `secret_key` (or an Access Token), exactly as described in [Get Started - Authentication](/docs/get_started#authentication).
### Request Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| travel_rule.type | Yes | string | Must be set to `wallet_verification` to route this request as a wallet verification. |
| travel_rule.asset | Yes | string | Cryptocurrency asset code to verify (e.g., `BTC`, `ETH`). |
| travel_rule.blockchain | Yes | string | Blockchain network name (e.g., `Bitcoin`, `Ethereum`). |
| travel_rule.address | Yes | string | Wallet address to verify. |
| travel_rule.allowed_flows | No | array | Verification flow types to allow. See [Verification Flows](#verification-flows). If omitted or empty, **all** flows are allowed — which includes `SATOSHI_TEST`, so `satoshi_flow` then becomes required. |
| travel_rule.allowed_languages | No | array | Language codes for the verification form (e.g., `en`, `es`). If omitted, all languages are allowed. |
| travel_rule.metadata | No | string | Custom metadata or notes. |
| travel_rule.satoshi_flow | Cond. | object | Configuration for `SATOSHI_TEST` flow. Required when `SATOSHI_TEST` is in `allowed_flows`. |
| travel_rule.satoshi_flow.deposit_address | Cond. | string | Deposit address. Required if using `SATOSHI_TEST`. |
| travel_rule.satoshi_flow.amount | Cond. | number | Deposit amount, in the asset's smallest unit (e.g., satoshis for BTC, wei for ETH). Required if using `SATOSHI_TEST`. |
### Verification Flows
| Flow | Description |
|------|-------------|
| `SATOSHI_TEST` | User sends a small amount to a deposit address to prove wallet ownership. |
| `VISUAL_PROOF` | User provides visual proof of wallet ownership (screenshot, etc.). |
| `SELF_DECLARED` | User self-declares wallet ownership. |
| `SIGNATURE_PROOF` | User signs a message with the wallet's private key to prove ownership. |
### Supported Languages
| Code | Language |
|------|----------|
| en | English |
| es | Spanish |
| fr | French |
| de | German |
| it | Italian |
| pt | Portuguese |
| ru | Russian |
| zh | Chinese |
| ja | Japanese |
| ko | Korean |
| et | Estonian |
| cs | Czech |
| hu | Hungarian |
| pl | Polish |
| uk | Ukrainian |
### Sample Request - SELF_DECLARED (minimal)
The wallet verification payload is sent as a `travel_rule` block (with `type: "wallet_verification"`) inside the standard Shufti verification envelope. This minimal example uses only the `SELF_DECLARED` flow.
```json title=create-wallet-verification-self-declared
{
"reference": "sp-tr-wv-001",
"callback_url": "https://webhook.site/your-unique-id",
"travel_rule": {
"type": "wallet_verification",
"asset": "BTC",
"blockchain": "Bitcoin",
"address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"allowed_flows": ["SELF_DECLARED"]
}
}
```
### Sample Request - SATOSHI_TEST (full)
When `SATOSHI_TEST` is included in `allowed_flows`, the `satoshi_flow` object with `deposit_address` and `amount` is required.
```json title=create-wallet-verification-satoshi-test
{
"reference": "sp-tr-wv-satoshi-001",
"callback_url": "https://webhook.site/your-unique-id",
"travel_rule": {
"type": "wallet_verification",
"asset": "BTC",
"blockchain": "Bitcoin",
"address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"allowed_flows": ["SATOSHI_TEST", "VISUAL_PROOF", "SELF_DECLARED", "SIGNATURE_PROOF"],
"allowed_languages": ["en", "es"],
"metadata": "test wallet verification",
"satoshi_flow": {
"deposit_address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"amount": 100
}
}
}
```
### Response
`POST /` returns the standard Shufti envelope with `event: request.pending`. The hosted verification form the end user must open is returned as the top-level **`verification_url`** (this is the most important field — redirect your user there). The verification then resolves asynchronously; the outcome is delivered to your `callback_url` (see [Responses › Callbacks](./responses#callbacks)).
```json title=create-wallet-verification-response
{
"reference": "sp-tr-wv-001",
"event": "request.pending",
"verification_url": "https://{{VERIFICATION_DOMAIN}}/travel-rule/wallet-verification/TOKEN",
"email": null,
"country": null
}
```
**Info**
**`verification_url`** is the hosted form — share it with the end user to complete verification (the embedded token typically expires in 24 hours). `customer_unique_id` is also echoed when you supply it.
### Wallet Verification Object (returned by Read / Detail)
Querying the [Read](#read-wallet-verifications) endpoint returns the full wallet-verification object with these fields:
| Parameter | Description |
|-----------|-------------|
| _id | Unique identifier of the wallet verification. |
| reference | Your own `reference` from the create request, attached by Shufti for correlation. |
| wallet_verification_id | Alternative unique identifier (UUID format). |
| address | Wallet address being verified. |
| asset | Cryptocurrency asset code. |
| blockchain | Blockchain network name. |
| status | Verification status: `pending`, `verified`, or `failed`. |
| allowed_flows | Array of available verification flow types. |
| allowed_languages | Array of available language codes. |
| satoshi_flow | Satoshi test configuration (`deposit_address`, `amount`); empty object if not configured. |
| metadata | Custom metadata you supplied on create (may be null). |
| token | JWT token for the verification form. Typically expires in 24 hours. |
| url | Complete URL for users to complete verification (surfaced as `verification_url` on create). |
| origin | Origin recorded for the verification session (may be null). |
| redirect_url | URL the user is redirected to after completion (may be null). |
| created_by | Identifier of the user/system that created the verification. |
| created_at | Creation timestamp (RFC 2822 format). |
| updated_at | Last update timestamp (RFC 2822 format). |
## Read Wallet Verifications
Retrieve your own wallet verification records, scoped to your account. Results are paginated and filterable by asset, blockchain, status, and date range.
### Endpoint
```bash
GET {{BASE_URL}}/travel-rule/wallet-verification/read
```
### Query Parameters
All parameters are optional. Without parameters, returns the first 25 verifications.
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| page | No | integer | Page number. Defaults to `1`. |
| per_page | No | integer | Results per page. Defaults to `25`, max `100`. |
| search | No | string | Search by wallet address or `_id`. Your `reference` is included in every result for correlation. |
| start_date | No | string | Filter by creation date, on or after. `DD-MM-YYYY` format. |
| end_date | No | string | Filter by creation date, on or before. `DD-MM-YYYY` format. |
| assets[] | No | array | Filter by one or more asset codes (e.g. `BTC`, `ETH`). Repeat the parameter for multiple values. |
| blockchains[] | No | array | Filter by one or more blockchain names (e.g. `Bitcoin`, `Ethereum`). Repeat the parameter for multiple values. |
| statuses[] | No | array | Filter by verification status: `pending`, `verified`, `failed`. Repeat the parameter for multiple values. |
### Response
```json title=read-wallet-verifications-response
{
"error": false,
"status": "SUCCESS",
"message": "",
"data": {
"wallet_verifications": [ ],
"pagination": {
"page": 1,
"per_page": 25,
"total_count": 0,
"total_pages": 0,
"has_next": false,
"has_prev": false
}
}
}
```
## Delete Wallet Verification
Permanently delete a wallet verification record owned by your account.
### Endpoint
```bash
POST {{BASE_URL}}/travel-rule/wallet-verification/delete
```
### Request Parameters
| Parameter | Required | Type | Description |
|-----------|----------|------|-------------|
| wallet_verification_id | Yes | string | Identifier of the wallet verification to delete. Accepts either the UUID `wallet_verification_id` or the `_id` returned by Read. |
### Sample Request
```json title=delete-wallet-verification-request
{
"wallet_verification_id": "WALLET_VERIFICATION_ID"
}
```
### Response
```json title=delete-wallet-verification-response
{
"data": {},
"error": false,
"message": "Wallet verification deleted successfully",
"status": "SUCCESS"
}
```
---
# Reference Data
Source: https://developers.shuftipro.com/docs/travel_rule/reference_data.md
Reference data endpoints return the supported value lists used elsewhere in the Travel Rule API — the blockchain names accepted on wallets/transactions and the country names used for VASP Directory filtering. Both are global (the same for every account) and authenticated with Basic Auth like every other Shufti service.
## Read Blockchains
Returns the list of supported blockchains. Use the returned `blockchain_name` for the `blockchain` field on Create Wallet / Create Transaction / Create Wallet Verification, and for the `blockchains[]` read filters.
### Endpoint
```bash
GET {{BASE_URL}}/travel-rule/blockchains
```
### Response
```json title=read-blockchains-response
{
"data": [
{ "id": "6953f9f8706f4f6d1c9032ac", "blockchain_name": "Bitcoin" },
{ "id": "6953f9f8706f4f6d1c9032ad", "blockchain_name": "Ethereum" },
{ "id": "6953f9f8706f4f6d1c9032ae", "blockchain_name": "Polygon" },
{ "id": "6953f9f8706f4f6d1c9032af", "blockchain_name": "Binance Smart Chain" },
{ "id": "6953fa75706f4f6d1c903525", "blockchain_name": "Solana" }
],
"error": false,
"message": "blockchains fetched successfully",
"status": "SUCCESS"
}
```
### Response Fields
| Parameter | Description |
|-----------|-------------|
| error | Boolean. `false` when successful. |
| status | `SUCCESS` or `ERROR`. |
| message | Human-readable result message. |
| data | Array of blockchain objects. |
| data[].id | Unique identifier of the blockchain. |
| data[].blockchain_name | Blockchain network name (e.g. `Bitcoin`, `Ethereum`, `Polygon`). |
**Note**
A blockchain not in this list can still be passed as free text on create, but a known name improves Travel Rule message delivery rates.
## Read Countries
Returns the list of country names available for the VASP Directory `countries[]` filter.
### Endpoint
```bash
GET {{BASE_URL}}/travel-rule/countries
```
### Response
```json title=read-countries-response
{
"data": {
"countries": [
"Liechtenstein",
"Sweden",
"Nigeria",
"Malaysia",
"Cayman Islands",
"Australia",
"Ukraine",
"Canada",
"Czech Republic"
]
},
"error": false,
"message": "",
"status": "SUCCESS"
}
```
### Response Fields
| Parameter | Description |
|-----------|-------------|
| error | Boolean. `false` when successful. |
| status | `SUCCESS` or `ERROR`. |
| message | Human-readable result message (typically empty on success). |
| data | Object containing the countries array. |
| data.countries | Array of country names (strings). Use these exact names for the VASP Directory `countries[]` filter. |
---
# Responses
Source: https://developers.shuftipro.com/docs/travel_rule/responses.md
All Shufti Travel Rule API responses follow a consistent JSON structure. This section describes response formats, transaction statuses, and verification statuses.
## Standard Response Format
| Field | Type | Description |
|-------|------|-------------|
| error | boolean | `false` when successful, `true` on error. |
| status | string | Overall result: `SUCCESS` or `ERROR`. |
| message | string | Human-readable result description. |
| data | object | Response payload. Structure varies by endpoint. |
### Success Response
```json title=success-response
{
"error": false,
"status": "SUCCESS",
"message": "Operation completed successfully",
"data": { }
}
```
### Error Response
```json title=error-response
{
"error": true,
"status": "ERROR",
"message": "Descriptive error message",
"data": {}
}
```
**Note**
The `{ error, status, message, data }` envelope above applies to the **management endpoints** (`/travel-rule/*` read / detail / update / delete / wallets / VASP). The **create** flow (`POST /`) instead returns the standard Shufti envelope (`reference`, `event`, …) and delivers the result via [Callbacks](#callbacks).
## Callbacks
Travel Rule screening is **asynchronous**. `POST /` returns `request.pending` immediately; the result is pushed to your `callback_url` as a **signed** callback. Every callback includes an `sp_signature` header — verify it as `sha256(raw_json_body + secret_key)`, exactly as for other Shufti services.
| Event | When | Verification result |
|-------|------|---------------------|
| `request.pending` | Synchronous response on create (not a callback) | Pending |
| `verification.accepted` | Transaction reaches `CONFIRMED` (or wallet `verified`) | **Accepted** |
| `verification.declined` | Transaction reaches `DECLINED` / `FAILED` / `CANCELLED` | **Declined** |
The verification stays **`pending`** while the transaction moves through non-terminal statuses and only finalises on a terminal status — `CONFIRMED` → accepted; `DECLINED` / `FAILED` / `CANCELLED` → declined. **`DELIVERED` is not terminal** (the message reached the counterparty VASP but isn't yet confirmed), so it keeps the verification pending. Use the [Read](./transactions#read-transactions) / [Detail](./transactions#transaction-detail) endpoints to check the current status at any time.
### Final callback
```json title=verification.accepted-callback
{
"reference": "sp-tr-txn-001",
"event": "verification.accepted"
}
```
For a declined outcome the `event` is `verification.declined` (with `declined_reason` / `declined_codes` as for other services — see [Declined Reasons](./declined_reasons)).
## Transaction Statuses
Travel Rule transactions progress through these statuses during their lifecycle:
| Status | Description | Set By |
|--------|-------------|--------|
| `PENDING` | Transaction created, awaiting delivery to counterparty. | System |
| `FAILED` | Transaction delivery failed. | System |
| `CANCELLED` | Transaction cancelled. | System |
| `DELIVERED` | Successfully delivered to counterparty VASP. | User/System |
| `CONFIRMED` | Counterparty VASP confirmed receipt and acceptance. | User |
| `DECLINED` | Counterparty VASP declined the transaction. | User |
**Info**
Only `DELIVERED`, `CONFIRMED`, and `DECLINED` statuses can be set via the [Update Transaction](./transactions#update-transaction) endpoint, and only for `INCOMING` transactions.
## Wallet Verification Statuses
| Status | Description |
|--------|-------------|
| `pending` | Verification is pending review. |
| `verified` | Wallet ownership has been successfully verified. |
| `failed` | Verification failed. |
## Risk Severity Levels
| Severity | Description |
|----------|-------------|
| `LOW_RISK` | Low risk entities. |
| `MEDIUM_RISK` | Moderate risk entities. |
| `HIGH_RISK` | High risk entities requiring extra caution. |
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/travel_rule/declined_reasons.md
When a Travel Rule transaction is declined by the receiving VASP, the status is set to `DECLINED` and a `status_reasoning` field is populated explaining the reason. Below are the standard reasons for declining transactions.
## Transaction Decline Scenarios
The receiving VASP may decline a Travel Rule transaction for any of the following reasons:
| Reason Category | Example Reasoning |
|-----------------|-------------------|
| AML Screening Failure | Beneficiary failed AML screening - sanctioned entity |
| Incomplete Information | Missing required originator information for compliance review |
| Invalid Identification | National identification provided does not match records |
| Sanctions Match | Originator or beneficiary matches sanctioned entity list |
| Risk Threshold Exceeded | Transaction exceeds acceptable risk threshold for counterparty |
| Regulatory Non-Compliance | Transaction does not meet local regulatory requirements |
| Unverified VASP | Originating VASP could not be verified in the network |
| Data Inconsistency | Discrepancy between blockchain data and Travel Rule information |
**Info**
These are example decline reasons. The actual `status_reasoning` text is provided by the declining VASP and may vary. Always review the `status_reasoning` field for the specific reason.
## Handling Declined Transactions
When a transaction is declined:
- The transaction status changes to `DECLINED`.
- The `status_reasoning` field contains the specific reason provided by the counterparty VASP.
- The transaction cannot be further updated once declined.
- Review the decline reason and take appropriate action (correct data, contact counterparty, etc.).
## Decline via API
When declining an `INCOMING` transaction through the [Update Transaction](./transactions#update-transaction) endpoint, you must provide a `status_reasoning`:
```json title=decline-transaction-request
{
"transaction_id": "TRANSACTION_ID",
"status": "DECLINED",
"status_reasoning": "Clear, specific reasoning for the decline"
}
```
**Note**
Provide clear, specific reasoning that identifies the compliance concern and references relevant policy or regulation. Maintain professional language.
---
# Best Practices
Source: https://developers.shuftipro.com/docs/travel_rule/best_practices.md
## Data Validation
- Validate all required fields before submitting API requests.
- Use ISO 3166-1 alpha-2 country codes (e.g., `US`, `GB`, `DE`).
- Use `DD-MM-YYYY` format for all date fields (e.g., `date_of_birth`, and the `start_date` / `end_date` read filters).
- Ensure `address`, `date_of_birth`, and `place_of_birth` are provided for `NATURAL` type persons.
## Transaction Management
- Store the returned `_id` for all created transactions.
- Monitor transaction status regularly using the Read endpoint.
- Review any warnings returned in API responses.
- Always provide detailed reasoning when declining transactions.
- Use date ranges and status filters for efficient compliance reporting.
## Pagination
- Use reasonable `per_page` values (`25-100`) for large datasets.
- Apply status and direction filters to reduce response size.
- Specify date ranges for better performance on historical queries.
- Always check if the `transactions` array is empty in responses.
## Security
- Never expose your API key in client-side code or public repositories.
- All API requests must be sent over HTTPS.
- Implement proper error handling for all API requests.
- Maintain internal logs of all status updates for audit trails.
## VASP Directory
- Screen counterparty VASPs before initiating Travel Rule transactions.
- Check the `in_network` status for better message delivery rates.
- Review `risk_assessment` scores and severity for due diligence.
- Use standard blockchain names for improved delivery rates.
## Wallet Verification
- Verify wallet ownership before processing high-value transactions.
- Monitor verification token expiration (typically 24 hours).
- Use appropriate verification flows based on your compliance requirements.
- Track verification status transitions: `pending` -> `verified` / `failed`.
---
# How it Works?
Source: https://developers.shuftipro.com/docs/business_identification_risk/know_your_business/enhanced_kyb/how_it_works.md
**search_based**
Enhanced KYB delivers in-depth business verification by querying official registries, trusted data sources, and proprietary databases in real time. It supports configurable verification modes, flexible search inputs, and document-based validation, making it suitable for businesses operating across multiple jurisdictions globally.
1. **Configure Verification Settings**: Merchants begin by selecting the verification type that fits their workflow:
- **Onsite** – Shufti generates a dedicated verification URL where the end user completes the verification in real time. Results are returned to the merchant upon completion.
- **Offsite** – The merchant provides business identity data directly. Shufti processes the information and returns the verification results without end-user interaction.
2. **Choose Search Method**: Enhanced KYB supports the following search inputs:
- Company Name
- Registration Number
Merchants can provide one or both inputs depending on what information is available.
3. **Select Supported Countries**: Merchants are required to provide the jurisdiction of the company. Shufti requires country as a mandatory field in order to initiate the search request. Check out the supported countries & states for enhanced kyb [here](../../../../docs/coverage/countries#supported-countries--states).
**Note**
To process the request successfully, including the country in your request is mandatory.
4. **Real-Time Verification and Report Generation**: Upon submission, Shufti performs a live search across official business registries, trusted data sources, and proprietary databases for the selected jurisdiction. This real-time lookup fetches and cross-validates business information, ensuring high accuracy and compliance readiness.
After verification is complete, Shufti compiles a comprehensive KYB report containing:
- Company Name
- Company Registration Number
- Company Type
- Jurisdiction Code
- Registered Address
- Registry Information
- Company Status (Active, Dissolved, etc.)
- Company Officers / Directors
- Ultimate Beneficial Owners (UBOs)
- Organisational Structure
- Financial Performance Data
- Industry Codes
**Note**
Data in the KYB report may vary depending on the information available on the respective business registry.
All KYB reports are stored for easy retrieval. Merchants can review, download, or share reports to support onboarding decisions, audit requirements, and ongoing compliance workflows.
## AI Business Data Retrieval
When traditional registry-based verification returns insufficient or incomplete business data, Shufti's AI-powered retrieval offers an intelligent fallback. By scanning multiple alternative data sources simultaneously, the AI engine surfaces available business information that may not be captured through standard registry lookups. Shufti's AI aggregates and cross-references business data from across its data source network, compiles the findings, and generates a structured KYB report.
**Tip**
This fallback is enabled through the `ai_business_insights` parameter. For details, check out the [Onsite](./onsite.md#parameters--description) and [Offsite](./offsite.md#parameters--description) parameters.
**Note**
With enhanced KYB, the searched business can also be checked through **AML**. To do this, you need to pass an AML object. For details, check out **[Business AML Screening](../../business_aml_screening/how_it_works.md)**.
**document_based**
For companies that require to validate business documents, Shufti verifies the company's identity through official documents such as business registration certificates, incorporation documents, or tax filings. This verification method adds an extra layer of certainty, especially for businesses that may not be fully registered in standard business registries.
## How It Works
1. **Configure Verification Settings**: Merchants begin by selecting the verification type:
- **Onsite** – Shufti generates a dedicated verification URL where the end user uploads the required business documents in real time. Results are returned to the merchant upon completion.
- **Offsite** – The merchant submits the business documents. Shufti processes the documents and returns the verification results.
2. **Select Supported Country**: Merchants select the country in which the business is registered. This ensures document validation is performed against the correct jurisdiction-specific requirements.
3. **Upload Business Documents**: Merchants may submit documents depending on jurisdiction requirements and the depth of verification needed.
Shufti's document based KYB supports a wide range of business documents throughout the globe. Here is the list of all supported documents covered in Shufti's coverage [here](/docs/coverage/documents#document-based-kyb).
4. **Document Validation and Data Extraction**: Shufti validates each submitted document for authenticity and integrity, checking for signs of tampering or forgery. OCR extraction is then performed to retrieve structured business information directly from the document.
5. **Report Generation**: After processing is complete, Shufti compiles a verification report containing the business information extracted and validated from the submitted documents.
All Document based Enhanced KYB reports are stored for easy retrieval. Merchants can review, download, or share reports to support onboarding decisions and ongoing compliance workflows.
**Tip**
If the document you require is not listed, please contact us at **tech@shuftipro.com**.
**document_purchase**
Enhanced KYB's Document Purchase functionality allows merchants to request and retrieve official business documents directly from official business registries. Merchants can initiate a document retrieval request and Shufti sources the required documents from the official business registries.
1. **Initiate a Document Purchase Request**: Merchants submit a request specifying the company details and the documents required. The following information is needed to initiate the request:
- Company Name
- Company Registration Number
- Jurisdiction Code (ISO 3166-1 alpha-2 country code)
- Required Documents (e.g. Incorporation Certificate, Business Licence)
2. **Document Retrieval**: Upon receiving the request, Shufti queries the official business registry of the specified jurisdiction and retrieves the requested documents. If the `required_documents` field is left empty, Shufti treats all supported documents for that jurisdiction as required and retrieves them accordingly.
3. **Report Generation**: Once the documents are successfully retrieved, Shufti returns a structured response containing the retrieved document files. Each document entry includes:
- File URL (download link for the retrieved document)
- Document Title
- File Extension (PDF, JPEG, etc.)
## API Response
Upon receiving the request, Shufti returns an initial acknowledgement response:
```json title=acknowledgement-response
{
"reference": "test-reference-01",
"event": "request.received"
}
```
| Key | Type | Description |
| --- | --- | --- |
| reference | String | The unique reference ID provided in the request. |
| event | String | Confirms the request has been successfully received and is being processed. |
## Status Response
Once processing is complete, the full verification result can be retrieved via the status endpoint. Use the same authentication method as the initial request.
**Status Endpoint**: `https://api.shuftipro.com/status`
### Status Request
```json title=status-request
{
"reference": "test-reference-01"
}
```
### Status Response Example
```json title=status-response
{
"reference": "test-reference-01",
"event": "verification.accepted",
"verification_data": {
"kyb": {
"country_name": "united_kingdom",
"registration_number": "test-registration-number",
"company_filings": [
{
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01f",
"title": "incorporation_certificate",
"file_extension": "pdf"
},
{
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01f",
"title": "business_license",
"file_extension": "jpeg"
}
]
}
}
}
```
| Key | Type | Description |
| --- | --- | --- |
| reference | String | The unique reference ID provided at the time of the request. |
| event | String | The final status of the verification request. |
| verification_data.kyb.registration_number | String | The official registration number of the company as recorded in the registry. |
| verification_data.kyb.country_name | String | The name of the country where the company is registered. |
| verification_data.kyb.company_filings | Array of Objects | A collection of retrieved document records, each containing a download URL, document title, and file extension. |
## Supported Countries and Documents
Document availability varies by jurisdiction. Each country has a defined set of supported documents that can be requested. Any request containing document types outside of the supported list for the selected jurisdiction will be rejected.
**Tip**
Check out the full list of supported countries and documents for **Document Purchase KYB** [here](/docs/coverage/documents#document-purchase-kyb).
To know more about the documents collection, contact us at **tech@shuftipro.com**.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/business_identification_risk/know_your_business/enhanced_kyb/onsite.md
**search_based**
In onsite verification, Shufti will directly interact with the end user to collect the required information for verification purposes.
**Info**
The Enhanced KYB service enables merchants to include empty keys in their request payload, which triggers the generation of a verification URL in the response. By clicking on this URL, users can directly submit the required information. Shufti subsequently verifies the details and sends the verification report directly to the merchant in the backoffice.
## Parameters & Description
Parameters | Description
-------------- | --------------
advanced_search | Required: **Yes** Type: **string** Accepted Values: **0, 1** Default Value: **0** This parameter is used to enable enhanced KYB service for the client when the parameter value is set to "1".
company_registration_number | Required: **Yes** Type: **string** This parameter receives the company registration number to collect and verify the company information reports. Example: 12345678 **Note:** The registration number is not required if the company name is provided.
company_name | Required: **No** Type: **string** Minimum: **3 characters** This parameter receives the company name to collect and verify the company information reports. Example: 'SHUFTI PRO LIMITED' **Note:** The company name is not required if the registration number is provided.
country_names | Required: **Yes** Type: **array** The option allows users to input the single country name in the form of an array for the search. Additionally, you can pass the state of the country to specify the search. Feel free to click on the following links to view [supported countries](/docs/coverage/countries#know-your-business-kyb) and [states](/docs/coverage/countries#states) Example: ['united_kingdom'], ['alabama']
search_type | Required: **No** Type: **string** Accepted Values: **contains, start_with, fuzzy** Default Value: **Contains** When using the "start_with" option, the API fetches a list of companies whose names start with the user-provided characters.In contrast, with the "contains" option, the search covers companies having the given keywords anywhere in their names.'fuzzy' search expands to include less precise matches, broadening results by similarity rather than strict criteria.
ai_business_insights | Required: **No** Type: **string** Accepted Values: **0, 1** This key allows the client to access AI-generated business insights through in-depth research of publicly available business data.
## Request Payloads
**Tip**
Please include the country along with either the **company registration number** or the **company name** in your request.
[](https://app.getpostman.com/run-collection/29080667-a78d701c-58bf-4758-85d5-cc9a59c6dc3d?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D29080667-a78d701c-58bf-4758-85d5-cc9a59c6dc3d%26entityType%3Dcollection%26workspaceId%3Dbf87adcf-db93-4d81-ae8e-2ce2c3ea655d)
**http**
```json title=request-with-company_registration_number
//POST /status HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"advanced_search": "1",
"company_registration_number": "",
"country_names": ["united_kingdom"],
"search_type": "contains"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
country : "GB",
language : "EN"
}
//Use this key if you want to perform document verification with OCR
payload['kyb'] = {
advanced_search : "1",
company_registration_number : '',
country_names : ['united_kingdom'],
search_type : 'contains'
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'verification.accepted') {
console.log(data);
}
});
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key if you want to perform kyb service
$verification_request['kyb'] =[
'advanced_search' => '1',
'company_registration_number' => '',
'country_names' => ['united_kingdom'],
'search_type' => 'contains'
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if(in_array($event_name, ['verification.accepted', 'verification.declined', 'request.received']) ){
if($sp_signature == $calculate_signature){
echo $event_name." :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key if you want to perform document verification with OCR
verification_request['kyb'] = {
'advanced_search' : '1',
'company_registration_number' : '',
'country_names' : ['united_kingdom'],
'search_type' : 'contains'
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'verification.accepted':
if sp_signature == calculated_signature:
print ('Verification Response: {}'.format(response.content))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN"
}
# Use this key if you want to perform document verification with OCR
verification_request["kyb"] = {
advanced_search : "1",
company_registration_number: "",
country_names : ["united_kingdom"],
search_type : "contains"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/service/ocr_for_business/extraction";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\"reference\":\"1234567\",\"callback_url\":\"https://yourdomain.com/profile/sp-notify-callback\",\"country\":\"GB\",\"language\":\"EN\",\"kyb\":{\"advanced_search\": \"1\",\"company_registration_number\":\"\",\"country_names\":[\"united_kingdom\"],\"search_type\":\"contains\"}}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_registration_number" : "",
"country_names" : ["united_kingdom"],
"search_type" : "contains"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""https://yourdomain.com/profile/sp-notify-callback""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""kyb"" : {" + "\n" +
@" ""advanced_search"" : ""1""," + "\n" +
@" ""company_registration_number"" : "" ""," + "\n" +
@" ""country_names"" : [""united_kingdom""]," + "\n" +
@" ""search_type"" : ""contains""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_registration_number" : " ",
"country_names" : ["united_kingdom"],
"search_type" : "contains"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**http**
```json title=request-with-company_name
//POST /status HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"advanced_search": "1",
"company_name": " ",
"country_names": ["united_kingdom"],
"search_type": "start_with"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
country : "GB",
language : "EN"
}
//Use this key if you want to perform document verification with OCR
payload['kyb'] = {
'advanced_search': '1',
'company_name' : ' ',
'country_names' : ['united_kingdom'],
'search_type' : 'start_with'
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'verification.accepted') {
console.log(data);
}
});
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key if you want to perform kyb service
$verification_request['kyb'] =[
'advanced_search' => '1',
'company_name' => ' ',
'country_names'=> ['united_kingdom'],
'search_type' => 'start_with'
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if(in_array($event_name, ['verification.accepted', 'verification.declined']) ){
if($sp_signature == $calculate_signature){
echo $event_name." :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key if you want to perform document verification with OCR
verification_request['kyb'] = {
'advanced_search' : '1',
'company_name' : ' ',
'country_names' : ['united_kingdom'],
'search_type' : 'start_with'
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'verification.accepted':
if sp_signature == calculated_signature:
print ('Verification Response: {}'.format(response.content))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN"
}
# Use this key if you want to perform document verification with OCR
verification_request["kyb"] = {
advanced_search: '1',
company_name: ' ',
country_names: ['united_kingdom'],
search_type: 'start_with'
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\"reference\":\"1234567\",\"callback_url\":\"https://yourdomain.com/profile/sp-notify-callback\",\"country\":\"GB\",\"language\":\"EN\",\"kyb\":{\"advanced_search\": \"1\",\"company_name\":\"\",\"country_names\":[\"united_kingdom\"],\"search_type\":\"start_with\"}}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_name" : " ",
"country_names" : ["united_kingdom"],
"search_type" : "start_with"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""https://yourdomain.com/profile/sp-notify-callback""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""kyb"" : {" + "\n" +
@" ""advanced_search"" : ""1""" + "\n" +
@" ""company_name"" : "" """ + "\n" +
@" ""country_names"" : [""united_kingdom""]," + "\n" +
@" ""search_type"" : ""start_with""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_name" : " ",
"country_names" : ["united_kingdom"],
"search_type" : "start_with"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**Info**
In an Enhanced KYB verification request, the results screen will not be displayed irrespective of the 'show_results' parameter's setting 0 or 1.
**document_based**
In onsite verification, Shufti will directly interact with the end user to collect the required proof and information for verification purposes.
## Parameters and Description
| Parameters | Description |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Reference | Required: Yes Type: string Minimum: 6 characters Maximum: 250 characters Each request is issued a unique reference ID which is sent back to Shufti’s client with each response. This reference ID helps to verify the request. The client can use this ID to check the status of already performed verification |
| Country | Required: Yes Type: string Length: 2 characters Country selection is mandatory as document proofs need to be uploaded according to the selected country's requirements. |
| Language | Required: No Type: string Length: 2 characters If the Shufti client wants their preferred language to appear on the verification screens they may provide the 2-character long language code of their preferred language. |
| Document Proof | Default: Yes Values: Yes, No Document proof is set to "Yes" by default, and if "No" is selected, it will redirect to [Enhanced KYB](/docs/business_identification_risk/know_your_business/enhanced_kyb/how_it_works). |
| additional_proof_labels | Required: **No** Type: **array** Accepted Values: **Array of document label strings** (e.g. "tax_registration_certificate") Default Value: **[ ]** This parameter allows the merchant to collect business documents beyond company name and registration number. When populated with one or more document label strings, it requires the user to upload the specified additional business proofs. Sending an empty array or omitting the parameter entirely disables additional proof collection, and the process proceeds without document uploads. |
| validate_document | Required: **No** Type: **integer** Accepted Values: **0, 1** Default Value: **0** When set to `1`, the data extracted from the uploaded business document is used to look up and validate the business against official registry data, and the outcome is reported as part of the KYB result. Document validation currently resolves **one document per request**, so `additional_proof_labels` must contain exactly one label when this parameter is enabled — sending more than one label is rejected with a validation error. |
## Request Payloads
``` json title=request-object-sample-onsite
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"additional_proof_labels": ["label1", "label2"]
}
}
```
``` json title=request-object-sample-onsite-with-document-validation
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"additional_proof_labels": ["label1"],
"validate_document": 1
}
}
```
**Info**
`validate_document` supports a single document per request. When it is set to `1`, provide exactly one label in `additional_proof_labels`.
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/business_identification_risk/know_your_business/enhanced_kyb/offsite.md
**search_based**
In the offsite verification process, Shufti's merchants are solely responsible for gathering all necessary information from the end user and then submitting it to Shufti for verification.
## Parameters & Description
Parameters | Description
-------------- | --------------
advanced_search | Required: **Yes** Type: **string** Accepted Values: **0, 1** Default Value: **0** This parameter is used to enable enhanced KYB service for the client when the parameter value is set to "1".
company_registration_number | Required: **Yes** Type: **string** This parameter receives the company registration number to collect and verify the company information reports. Example: 12345678 **Note:** The registration number is not required if the company name is provided.
company_name | Required: **No** Type: **string** Minimum: **3 characters** This parameter receives the company name to collect and verify the company information reports. Example: 'SHUFTI PRO LIMITED' **Note:** The company name is not required if the registration number is provided.
country_names | Required: **Yes** Type: **array** The option allows users to input the single country name in the form of an array for the search. Additionally, you can pass the state of the country to specify the search. Feel free to click on the following links to view [supported countries](/docs/coverage/countries#know-your-business-kyb) and [states](/docs/coverage/countries#states) Example: ['united_kingdom'], ['alabama']
search_type | Required: **No** Type: **string** Accepted Values: **contains, start_with, fuzzy** Default Value: **Contains** When using the "start_with" option, the API fetches a list of companies whose names start with the user-provided characters.In contrast, with the "contains" option, the search covers companies having the given keywords anywhere in their names.'fuzzy' search expands to include less precise matches, broadening results by similarity rather than strict criteria.
search_by | Required: **No** Type: **string** This parameter contains the identifier used to search for a company. The identifier varies based on the company's registration country and includes country-specific options. **Note:** You can use the `search_by` and `search_word` keys when you want to use any other search identifiers apart from company_name and company_registration_number. **Example:** For Saudi Arabia, you can use "vat_number" in `search_by` and its value in `search_word`. For more details on supported identifiers, visit [here](../../../coverage/documents#supported-countries-with-search-identifiers).
search_word | Required: **No** Type: **string** This depends on the option selected in **'Search_by'** parameter and includes the actual value of the search identifier provided by the user for searching the company record.
ai_business_insights | Required: **No** Type: **string** Accepted Values: **0, 1** This key allows the client to access AI-generated business insights through in-depth research of publicly available business data.
## Request Payloads
**Tip**
Please include the country along with either the **company registration number** or the **company name** in your request.
[](https://app.getpostman.com/run-collection/29080667-a78d701c-58bf-4758-85d5-cc9a59c6dc3d?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D29080667-a78d701c-58bf-4758-85d5-cc9a59c6dc3d%26entityType%3Dcollection%26workspaceId%3Dbf87adcf-db93-4d81-ae8e-2ce2c3ea655d)
**http**
```json title=request-with-company_registration_number
//POST /status HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"advanced_search": "1",
"company_registration_number": "12345678",
"country_names": ["united_kingdom"],
"search_type": "contains"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
country : "GB",
language : "EN"
}
//Use this key if you want to perform document verification with OCR
payload['kyb'] = {
advanced_search : "1",
company_registration_number : '12345',
country_names : ['united_kingdom'],
search_type : 'contains'
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'verification.accepted') {
console.log(data);
}
});
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key if you want to perform kyb service
$verification_request['kyb'] =[
'advanced_search' => '1',
'company_registration_number' => '123456',
'country_names' => ['united_kingdom'],
'search_type' => 'contains'
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if(in_array($event_name, ['verification.accepted', 'verification.declined', 'request.received']) ){
if($sp_signature == $calculate_signature){
echo $event_name." :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key if you want to perform document verification with OCR
verification_request['kyb'] = {
'advanced_search' : '1',
'company_registration_number' : '123456',
'country_names' : ['united_kingdom'],
'search_type' : 'contains'
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'verification.accepted':
if sp_signature == calculated_signature:
print ('Verification Response: {}'.format(response.content))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN"
}
# Use this key if you want to perform document verification with OCR
verification_request["kyb"] = {
advanced_search : "1",
company_registration_number: "12345",
country_names : ["united_kingdom"],
search_type : "contains"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/service/ocr_for_business/extraction";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\"reference\":\"1234567\",\"callback_url\":\"https://yourdomain.com/profile/sp-notify-callback\",\"country\":\"GB\",\"language\":\"EN\",\"kyb\":{\"advanced_search\": \"1\",\"company_registration_number\":\"12345678\",\"country_names\":[\"united_kingdom\"],\"search_type\":\"contains\"}}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_registration_number" : "12345678",
"country_names" : ["united_kingdom"],
"search_type" : "contains"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""https://yourdomain.com/profile/sp-notify-callback""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""kyb"" : {" + "\n" +
@" ""advanced_search"" : ""1""," + "\n" +
@" ""company_registration_number"" : ""12345678""," + "\n" +
@" ""country_names"" : [""united_kingdom""]," + "\n" +
@" ""search_type"" : ""contains""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_registration_number" : "12345678",
"country_names" : ["united_kingdom"],
"search_type" : "contains"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**http**
```json title=request-with-company_name
//POST /status HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"advanced_search": "1",
"company_name": "SHUFTI PRO LIMITED",
"country_names": ["united_kingdom"],
"search_type": "start_with"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
country : "GB",
language : "EN"
}
//Use this key if you want to perform document verification with OCR
payload['kyb'] = {
'advanced_search': '1',
'company_name' : 'SHUFTI PRO LIMITED',
'country_names' : ['united_kingdom'],
'search_type' : 'start_with'
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'verification.accepted') {
console.log(data);
}
});
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key if you want to perform kyb service
$verification_request['kyb'] =[
'advanced_search' => '1',
'company_name' => 'SHUFTI PRO LIMITED',
'country_names'=> ['united_kingdom'],
'search_type' => 'start_with'
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if(in_array($event_name, ['verification.accepted', 'verification.declined']) ){
if($sp_signature == $calculate_signature){
echo $event_name." :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key if you want to perform document verification with OCR
verification_request['kyb'] = {
'advanced_search' : '1',
'company_name' : 'SHUFTI PRO LIMITED',
'country_names' : ['united_kingdom'],
'search_type' : 'start_with'
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'verification.accepted':
if sp_signature == calculated_signature:
print ('Verification Response: {}'.format(response.content))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN"
}
# Use this key if you want to perform document verification with OCR
verification_request["kyb"] = {
advanced_search: '1',
company_name: 'SHUFTI PRO LIMITED',
country_names: ['united_kingdom'],
search_type: 'start_with'
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\"reference\":\"1234567\",\"callback_url\":\"https://yourdomain.com/profile/sp-notify-callback\",\"country\":\"GB\",\"language\":\"EN\",\"kyb\":{\"advanced_search\": \"1\",\"company_name\":\"SHUFTI PRO LTD\",\"country_names\":[\"united_kingdom\"],\"search_type\":\"start_with\"}}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_name" : "SHUFTI PRO LIMITED",
"country_names" : ["united_kingdom"],
"search_type" : "start_with"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""https://yourdomain.com/profile/sp-notify-callback""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""kyb"" : {" + "\n" +
@" ""advanced_search"" : ""1""" + "\n" +
@" ""company_name"" : ""SHUFTI PRO LIMITED""" + "\n" +
@" ""country_names"" : [""united_kingdom""]," + "\n" +
@" ""search_type"" : ""start_with""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_name" : "SHUFTI PRO LIMITED",
"country_names" : ["united_kingdom"],
"search_type" : "start_with"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**http**
```json title=request-with-search_by-and-search_word
//POST /status HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"advanced_search": 1,
"search_by": "company_name",
"search_word": "SHUFTI PRO LIMITED",
"country_names":["united_kingdom"],
"search_type": "contains"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
country : "GB",
language : "EN"
}
//Use this key if you want to perform document verification with OCR
payload['kyb'] = {
'advanced_search': '1',
'search_by' : 'company_name',
'search_word' : 'SHUFTI PRO LIMITED',
'country_names' : ['united_kingdom'],
'search_type' : 'start_with'
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'verification.accepted') {
console.log(data);
}
});
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key if you want to perform kyb service
$verification_request['kyb'] =[
'advanced_search' => '1',
'search_by' => 'company_name',
'search_word' => 'SHUFTI PRO LIMITED',
'country_names'=> ['united_kingdom'],
'search_type' => 'start_with'
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if(in_array($event_name, ['verification.accepted', 'verification.declined']) ){
if($sp_signature == $calculate_signature){
echo $event_name." :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key if you want to perform document verification with OCR
verification_request['kyb'] = {
'advanced_search' : '1',
'search_by' : 'company_name',
'search_word' : 'SHUFTI PRO LIMITED',
'country_names' : ['united_kingdom'],
'search_type' : 'start_with'
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'verification.accepted':
if sp_signature == calculated_signature:
print ('Verification Response: {}'.format(response.content))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN"
}
# Use this key if you want to perform document verification with OCR
verification_request["kyb"] = {
advanced_search: '1',
search_by: 'company_name',
search_word: 'SHUFTI PRO LIMITED',
country_names: ['united_kingdom'],
search_type: 'start_with'
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\"reference\":\"1234567\",\"callback_url\":\"https://yourdomain.com/profile/sp-notify-callback\",\"country\":\"GB\",\"language\":\"EN\",\"kyb\":{\"advanced_search\": \"1\",\"search_by\":\"company_name",\"search_word\":\"SHUFTI PRO LIMITED",\"country_names\":[\"united_kingdom\"],\"search_type\":\"start_with\"}}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"search_by": 'company_name',
"search_word": 'SHUFTI PRO LIMITED',
"country_names" : ["united_kingdom"],
"search_type" : "start_with"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""https://yourdomain.com/profile/sp-notify-callback""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""kyb"" : {" + "\n" +
@" ""advanced_search"" : ""1""" + "\n" +
@" ""search_by"" : ""company_name""" + "\n" +
@" ""search_word"" : ""SHUFTI PRO LIMITED""" + "\n" +
@" ""country_names"" : [""united_kingdom""]," + "\n" +
@" ""search_type"" : ""start_with""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"advanced_search" : "1",
"company_name" : "SHUFTI PRO LIMITED",
"search_by" : "company_name",
"search_word" : "SHUFTI PRO LIMITED",
"country_names" : ["united_kingdom"],
"search_type" : "start_with"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**Info**
In an Enhanced KYB verification request, the results screen will not be displayed irrespective of the 'show_results' parameter's setting 0 or 1.
**document_based**
In the offsite verification process, Shufti's clients are solely responsible for gathering all necessary information and proof from the end user and then submitting it to Shufti for verification.
## Parameters and Description
| Parameters | Description |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Reference | Required: Yes Type: string Minimum: 6 characters Maximum: 250 characters Each request is issued a unique reference ID which is sent back to Shufti's client with each response. This reference ID helps to verify the request. The client can use this ID to check the status of already performed verification |
| Country | Required: Yes Type: string Length: 2 characters Country selection is mandatory as document proofs need to be uploaded according to the selected country's requirements. |
| Language | Required: No Type: string Length: 2 characters If the Shufti client wants their preferred language to appear on the verification screens they may provide the 2-character long language code of their preferred language. |
| Document Proof | Default: Yes Values: Yes, No Document proof is set to "Yes" by default, and if "No" is selected, it will redirect to [Enhanced KYB](/docs/business_identification_risk/know_your_business/enhanced_kyb/how_it_works). |
| additional_proof_labels | Required: **No** Type: **array** Accepted Values: **Array of document label strings** (e.g. "tax_registration_certificate") Default Value: **[ ]** This parameter allows the merchant to collect business documents beyond company name and registration number. When populated with one or more document label strings, it requires the user to upload the specified additional business proofs. Sending an empty array or omitting the parameter entirely disables additional proof collection, and the process proceeds without document uploads. |
| validate_document | Required: **No** Type: **integer** Accepted Values: **0, 1** Default Value: **0** When set to `1`, the data extracted from the submitted business document is used to look up and validate the business against official registry data, and the outcome is reported as part of the KYB result. Document validation currently resolves **one document per request**, so `proofs` must contain exactly one entry when this parameter is enabled — sending more than one proof is rejected with a validation error. |
## Request Payloads
``` json title=request-object-sample-offsite
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"proofs": [
{
"label": "label1",
"file": "base64image1"
},
{
"label": "label2",
"file": "base64image2"
}
]
}
}
```
``` json title=request-object-sample-offsite-with-document-validation
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"proofs": [
{
"label": "label1",
"file": "base64image1"
}
],
"validate_document": 1
}
}
```
**Info**
`validate_document` supports a single document per request. When it is set to `1`, provide exactly one entry in `proofs`.
**document_purchase**
In the offsite verification process, Shufti's clients are solely responsible for gathering the required company details and submitting them to Shufti, which then retrieves the requested documents from the official business registries on the client's behalf.
## Parameters & Description
Parameters | Description
-------------- | --------------
reference | Required: **Yes** Type: **string** A unique reference ID assigned to each request. Returned in the response for tracking purposes. Example: 1234567
callback_url | Required: **No** Type: **string** URL to receive server-to-server webhook responses upon completion. Example: https://yourdomain.com/callback
company_registration_number | Required: **Yes** Type: **string** The official registration number of the company to retrieve documents for. Example: 12345678
company_jurisdiction_code | Required: **Yes** Type: **string** ISO 3166-1 alpha-2 country code (lowercase) specifying the jurisdiction of the company. Only one jurisdiction per request is supported. Example: gb
required_documents | Required: **Yes** Type: **array of strings** List of document types to retrieve. If left empty, all supported documents for the jurisdiction are retrieved. Example: ["incorporation_certificate", "business_license"]
## Request Payloads
**http**
```json title=request-object-sample-offsite
{
"reference": "test-reference-01",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"kyb": {
"company_registration_number": "test-registration-number",
"company_jurisdiction_code": "gb",
"required_documents": ["incorporation_certificate", "business_license"]
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback"
}
//Use this key to perform document purchase kyb service
payload['kyb'] = {
company_registration_number : 'test-registration-number',
company_jurisdiction_code : 'gb',
required_documents : ['incorporation_certificate', 'business_license']
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'request.received') {
console.log(data);
}
});
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key to perform document purchase kyb service
$verification_request['kyb'] =[
'company_registration_number' => 'test-registration-number',
'company_jurisdiction_code' => 'gb',
'required_documents' => ['incorporation_certificate', 'business_license']
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if(in_array($event_name, ['request.received', 'verification.accepted', 'verification.declined']) ){
if($sp_signature == $calculate_signature){
echo $event_name." :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key to perform document purchase kyb service
verification_request['kyb'] = {
'company_registration_number' : 'test-registration-number',
'company_jurisdiction_code' : 'gb',
'required_documents' : ['incorporation_certificate', 'business_license']
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'request.received':
if sp_signature == calculated_signature:
print ('Verification Response: {}'.format(response.content))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback"
}
# Use this key to perform document purchase kyb service
verification_request["kyb"] = {
company_registration_number: 'test-registration-number',
company_jurisdiction_code: 'gb',
required_documents: ['incorporation_certificate', 'business_license']
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"reference\" : \"test-reference-01\",\n \"callback_url\" : \"https://yourdomain.com/profile/sp-notify-callback\",\n \"kyb\" : {\n \"company_registration_number\" : \"test-registration-number\",\n \"company_jurisdiction_code\" : \"gb\",\n \"required_documents\" : [\"incorporation_certificate\", \"business_license\"]\n }\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "test-reference-01",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"kyb" : {
"company_registration_number" : "test-registration-number",
"company_jurisdiction_code" : "gb",
"required_documents" : ["incorporation_certificate", "business_license"]
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""test-reference-01""," + "\n" +
@" ""callback_url"" : ""https://yourdomain.com/profile/sp-notify-callback""," + "\n" +
@" ""kyb"" : {" + "\n" +
@" ""company_registration_number"" : ""test-registration-number""," + "\n" +
@" ""company_jurisdiction_code"" : ""gb""," + "\n" +
@" ""required_documents"" : [""incorporation_certificate"", ""business_license""]" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/"
method := "POST"
payload := strings.NewReader(`{
"reference" : "test-reference-01",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"kyb" : {
"company_registration_number" : "test-registration-number",
"company_jurisdiction_code" : "gb",
"required_documents" : ["incorporation_certificate", "business_license"]
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**API Endpoint**: `https://api.shuftipro.com/`
---
# Response
Source: https://developers.shuftipro.com/docs/business_identification_risk/know_your_business/enhanced_kyb/responses.md
Shufti’s **Enhanced KYB** API response parameters return company information such as registration details, financial metrics, filings, UBOs, and contacts. These structured outputs help in easily interpreting business information for compliance tasks.
| Parameters | Description |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name | Type: **string** The legal name of the Company |
| registration_number | Type: **string** The identifier is given to the company by the company register |
| registration_date | Type: **string** The date the company was registered on |
| status | Type: **string** The current status of the company, as defined by the company register. |
| type | Type: Type: **string** The type of company (e.g. LLC, Private Limited Company, GBMH) |
| country_name | Type: **string** The name of the country where the company is registered |
| description | Type: **string** The description of the company |
| jurisdiction_code | Type: **string** The code for the jurisdiction in which the company is incorporated |
| incorporation_date | Type: **string** The date when the company was incorporated on |
| tax_number | Type: **string** The tax number of the company |
| dissolution_date | Type: **string** The date when the company was dissolved (if so) |
| inactive_date | Type: **string** The date on which the company became inactive. (if so) |
| nature_of_business | Type: **string** It describes the core functions, products, or services that a company offers to its customers or clients. |
| company_registration_period | Type: **string** The duration from the company's registration until the present time. |
| company_incorporation_period | Type: **string** The duration from the company's incorporation until the present time. |
| years_since_dissolution | The amount of time that has passed since a company or organization was officially dissolved or ceased its operations. |
| logo | Type: **url** The url of the company's logo. |
| contacts_detail | Type: **array** The information that allows individuals or entities to get in touch with a person or organization. It includes multiple contacts object inside an array. |
| previous_names_detail | Type: **array** Old name of that firm/company (if any). |
| company_officers | Type: **array** Any significant officers such as agent, director, CEO, CTO. **Parameters:** name, position, start_date, end_date, occupation, inactive, current_status and address etc. |
| company_ultimate_beneficial_owners | Type: **array** Owner, Beneficiary or anyone benefiting from revenues of company |
| company_filings | Type: **array** **Parameters:** date, description, filing_type and DCBA. |
| company_registered_address | Type: **array** Address where company is registered. It includes multiple address objects inside an array **Parameters:** address, type, description etc. |
| company_identifiers | Type: **array** This is similar to company registration number |
| ownership_shares_detail | Type: **array** It encompasses the allocation of shares among the company's shareholders. It contains name, ownership_min_shares and ownership_max_shares. |
| voting_shares_detail | Type: **array** It encompasses the allocation of voting shares among the company's shareholders. It contains name, voting_min_shares and voting_max_shares. |
| annoucements_detail | Type: **array** It comprises the company's announcements or any significant information that is publicly shared by the company. |
| accounts_detail | Type: **object** It includes the accounts information of the company. |
| confirmation_statement_detail | Type: **object** It refers to the specific information provided in a confirmation statement submitted by a company to the relevant authorities. |
| company_officers_detail_graph | Type: **array** It contains the data of the company's officers and their designation in the company. This data can be used to draw the graph on the basis of designations of the officers in the company. |
| additional_detail | Type: **array** The additional details of the company. |
| parent_companies | Type: **array** It includes the details of the parent companies of the searched company if any. |
| company_extra_detail | Type: **array** Additional details of the company if any. |
| capital_stock_information | Type: **array** It refers to the data and details related to the ownership structure of a company, particularly its authorized and issued shares of stock. |
**Info**
It will return an array of objects containing company information if multiple companies are found; otherwise, it will return a single object of company information.
```json title=enhanced-KYB-response-sample-object
{
"reference": "ABCDEF12345",
"event": "verification.accepted",
"email": null,
"country": null,
"verification_data": {
"kyb": {
"company_number": "45673838",
"nature_of_business": "62012 - Business and domestic software development\n63110 - Data processing, hosting and related activities",
"name": "SHUFTI PRO LIMITED",
"registration_number": "45673838",
"registration_date": "31 October 2012",
"status": "active",
"type": "Private limited Company",
"country_name": "united_kingdom",
"jurisdiction_code": "GB",
"incorporation_date": "31-10-2012",
"contacts_detail": [
{
"type": "domain",
"value": "https://shuftipro.com",
"enriched": true,
"source": "primary"
}
],
"company_filings": [
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "02 Jan 2024",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant",
"previous_file_detail": {
"_id": "41d505c5d41d505c5d41d505c5d",
"uid": "41d505c5d41d505c5d41d505c5d",
"file_id": "41d505c5d41d505c5d41d505c5d",
"submitted_at": "2024-06-20T19:03:51.486000Z",
"requested_at": "2024-06-20T19:03:51.088000Z",
"service_charges": "$0"
}
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "08 Nov 2023",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "07 Nov 2023",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant",
"previous_file_detail": {
"_id": "41d505c5d41d505c5d41d505c5d",
"uid": "41d505c5d41d505c5d41d505c5d",
"file_id": "41d505c5d41d505c5d41d505c5d",
"submitted_at": "2024-06-24T13:55:08.657000Z",
"requested_at": "2024-06-24T13:55:08.657000Z",
"service_charges": "$0"
}
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "21 Sep 2023",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "19 Sep 2023",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant",
"previous_file_detail": {
"_id": "41d505c5d41d505c5d41d505c5d",
"uid": "41d505c5d41d505c5d41d505c5d",
"file_id": "41d505c5d41d505c5d41d505c5d",
"submitted_at": "2024-06-24T13:55:18.510000Z",
"requested_at": "2024-06-24T13:55:18.510000Z",
"service_charges": "$0"
}
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "14 Sep 2023",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant",
"previous_file_detail": {
"_id": "41d505c5d41d505c5d41d505c5d",
"uid": "41d505c5d41d505c5d41d505c5d",
"file_id": "41d505c5d41d505c5d41d505c5d",
"submitted_at": "2024-06-24T13:55:13.684000Z",
"requested_at": "2024-06-24T13:55:13.684000Z",
"service_charges": "$0"
}
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "14 Sep 2023",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "31 Mar 2023",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "23 Feb 2023",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "22 Dec 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "30 Sep 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "01 Mar 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "09 Feb 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant",
"previous_file_detail": {
"_id": "41d505c5d41d505c5d41d505c5d",
"uid": "41d505c5d41d505c5d41d505c5d",
"file_id": "41d505c5d41d505c5d41d505c5d",
"submitted_at": "2024-06-24T13:55:47.713000Z",
"requested_at": "2024-06-24T13:55:47.713000Z",
"service_charges": "$0"
}
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "09 Feb 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant",
"previous_file_detail": {
"_id": "41d505c5d41d505c5d41d505c5d",
"uid": "41d505c5d41d505c5d41d505c5d",
"file_id": "41d505c5d41d505c5d41d505c5d",
"submitted_at": "2024-06-24T13:55:47.713000Z",
"requested_at": "2024-06-24T13:55:47.713000Z",
"service_charges": "$0"
}
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "09 Feb 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant",
"previous_file_detail": {
"_id": "41d505c5d41d505c5d41d505c5d",
"uid": "41d505c5d41d505c5d41d505c5d",
"file_id": "41d505c5d41d505c5d41d505c5d",
"submitted_at": "2024-06-24T13:55:47.713000Z",
"requested_at": "2024-06-24T13:55:47.713000Z",
"service_charges": "$0"
}
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "08 Feb 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Notification",
"date": "08 Feb 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "28 Jan 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "28 Jan 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Incorporation",
"date": "27 Jan 2022",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "316965f2dd82775d166afffeba887747",
"title": "Incorporation",
"date": "31 Oct 2012",
"description": "This is a filling",
"filing_code": "ABCD",
"filing_type": "DCBA",
"file_url": "https://api.shuftipro.com/api/get-file/67ef002dc5b01fd38ec188b0d82d2e285e3c312ae7c8e095832fe1db34b31e0e",
"deduced_data_status": "pending",
"source": "primary",
"price": "free",
"price_without_service_charges": "free",
"service_charges": "$0",
"category": "free",
"deliver_time": "Instant"
},
{
"uid": "41d505c5d41d505c5d41d505c5d",
"title": "Request Document category",
"deduced_data_status": "pending",
"source": "primary",
"price": "$4.56",
"price_without_service_charges": "$3.8",
"service_charges": "$0.76",
"category": "paid",
"deliver_time": "4-5 working days",
"previous_file_detail": {
"_id": "41d505c5d41d505c5d41d505c5d",
"uid": "41d505c5d41d505c5d41d505c5d",
"file_id": "41d505c5d41d505c5d41d505c5d",
"submitted_at": "2024-06-13T06:06:11.456000Z",
"requested_at": "2024-06-13T06:04:10.629000Z",
"price": "$2.28",
"price_without_service_charges": "$1.9",
"service_charges": "$0.38"
}
}
],
"company_registered_address": [
{
"address": "Abc, 123, New York",
"type": "legal_entity_registry_address",
"description": "registered office address",
"source": "primary"
},
{
"address": "Abc, 123, New York",
"type": "legal_entity_registry_address",
"description": "Registered address",
"source": "primary"
}
],
"annoucements_detail": [
{
"type": "Event::Company::NewEvent",
"categories": "credit,kyc",
"date": "2022-Jan-14",
"title": "Addition of officer John Doe, director",
"source": "primary",
"color": "#67F2BD"
},
{
"type": "Event::Company::NewEvent",
"categories": "credit,kyc",
"date": "2022-Jan-14",
"title": "Addition of officer John Doe, director",
"source": "primary",
"color": "#67F2BD"
},
{
"type": "Event::Company::NewEvent",
"categories": "credit,kyc",
"date": "2022-Jan-14",
"title": "Addition of officer John Doe, director",
"source": "primary",
"color": "#67F2BD"
},
{
"type": "Event::Company::NewEvent",
"categories": "credit,kyc",
"date": "2022-Jan-14",
"title": "Addition of officer John Doe, director",
"source": "primary",
"color": "#67F2BD"
},
{
"type": "Event::Company::NewEvent",
"categories": "credit,kyc",
"date": "2022-Jan-14",
"title": "Addition of officer John Doe, director",
"source": "primary",
"color": "#67F2BD"
},
{
"type": "Event::Company::NewEvent",
"categories": "credit,kyc",
"date": "2022-Jan-14",
"title": "Addition of officer John Doe, director",
"source": "primary",
"color": "#67F2BD"
}
],
"company_officers": [
{
"officer_role": "secretary",
"name": "John Doe",
"status": "ACTIVE",
"address": "Abc, 123, London",
"designation": "Secretary",
"appointment_date": "14 September 2020",
"appointment_period": "More than 9 months",
"employment_status": "active",
"source": "primary"
},
{
"officer_role": "secretary",
"name": "John Doe",
"status": "ACTIVE",
"address": "Abc, 123, London",
"designation": "Secretary",
"appointment_date": "14 September 2020",
"appointment_period": "More than 9 months",
"employment_status": "active",
"source": "primary"
},
{
"officer_role": "secretary",
"name": "John Doe",
"status": "ACTIVE",
"address": "Abc, 123, London",
"designation": "Secretary",
"appointment_date": "14 September 2020",
"appointment_period": "More than 9 months",
"employment_status": "active",
"source": "primary"
},
{
"officer_role": "secretary",
"name": "John Doe",
"status": "ACTIVE",
"address": "Abc, 123, London",
"designation": "Secretary",
"appointment_date": "14 September 2020",
"appointment_period": "More than 9 months",
"employment_status": "active",
"source": "primary"
},
{
"officer_role": "secretary",
"name": "John Doe",
"status": "ACTIVE",
"address": "Abc, 123, London",
"designation": "Secretary",
"appointment_date": "14 September 2020",
"appointment_period": "More than 9 months",
"employment_status": "active",
"source": "primary"
}
],
"additional_detail": [
{
"type": "statements",
"data": [
{
"statement_label": "Statement",
"statement": "This is an statement.",
"notified_on": "31 October 2012",
"ceased_on": "2018-11-03",
"statement_status": "WITHDRAWN",
"withdrawn_on": "3 November 2018"
}
],
"source": "primary"
}
],
"company_ultimate_beneficial_owners": [
{
"place_registered": "Companies House",
"registration_number": "5647833289",
"incorporated_in": "England",
"name": "John Doe Holdings",
"status": "ACTIVE",
"address": "Abc, 123, London",
"postal_address": "Abc, 123, London",
"appointment_date": "31 January 2022",
"appointment_period": "More than 2 years",
"legal_authority": "United Kingdom (England)",
"legal_form": "Corporate",
"shares_detail": {
"voting_min_shares": "0%",
"voting_max_shares": "0%",
"ownership_min_shares": "0%",
"ownership_max_shares": "0%"
},
"employment_status": "active",
"source": "primary"
},
{
"place_registered": "Companies House",
"registration_number": "5647833289",
"incorporated_in": "England",
"name": "John Doe Holdings",
"status": "ACTIVE",
"address": "Abc, 123, London",
"postal_address": "Abc, 123, London",
"appointment_date": "31 January 2022",
"appointment_period": "More than 2 years",
"legal_authority": "United Kingdom (England)",
"legal_form": "Corporate",
"shares_detail": {
"voting_min_shares": "0%",
"voting_max_shares": "0%",
"ownership_min_shares": "0%",
"ownership_max_shares": "0%"
},
"employment_status": "active",
"source": "primary"
},
{
"place_registered": "Companies House",
"registration_number": "5647833289",
"incorporated_in": "England",
"name": "John Doe Holdings",
"status": "ACTIVE",
"address": "Abc, 123, London",
"postal_address": "Abc, 123, London",
"appointment_date": "31 January 2022",
"appointment_period": "More than 2 years",
"legal_authority": "United Kingdom (England)",
"legal_form": "Corporate",
"shares_detail": {
"voting_min_shares": "0%",
"voting_max_shares": "0%",
"ownership_min_shares": "0%",
"ownership_max_shares": "0%"
},
"employment_status": "active",
"source": "primary"
},
{
"place_registered": "Companies House",
"registration_number": "5647833289",
"incorporated_in": "England",
"name": "John Doe Holdings",
"status": "ACTIVE",
"address": "Abc, 123, London",
"postal_address": "Abc, 123, London",
"appointment_date": "31 January 2022",
"appointment_period": "More than 2 years",
"legal_authority": "United Kingdom (England)",
"legal_form": "Corporate",
"shares_detail": {
"voting_min_shares": "0%",
"voting_max_shares": "0%",
"ownership_min_shares": "0%",
"ownership_max_shares": "0%"
},
"employment_status": "active",
"source": "primary"
}
],
"company_registration_period": "More than 10 years",
"company_incorporation_period": "More than 10 years",
"ownership_shares_detail": [
{
"name": "John Doe",
"ownership_min_shares": "0%",
"ownership_max_shares": "0%"
},
{
"name": "John Doe",
"ownership_min_shares": "0%",
"ownership_max_shares": "0%"
}
],
"voting_shares_detail": [
{
"name": "John Doe",
"voting_min_shares": "0%",
"voting_max_shares": "0%"
},
{
"name": "John Doe",
"voting_min_shares": "0%",
"voting_max_shares": "0%"
}
],
"accounts_detail": {
"last_account": "31 December 2022",
"next_account": "31 December 2023",
"due_by_date": "30 September 2024"
},
"confirmation_statement_detail": {
"last_account": "22 December 2023",
"next_account": "22 December 2024",
"due_by_date": "5 January 2025"
},
"company_identifiers": [
{
"identifier_type": "ABC",
"identifier_code": "abc",
"identifier_number": "64853985983948"
},
{
"identifier_type": "GB VAT Number",
"identifier_code": "gb_vat",
"identifier_number": "574t8739"
}
],
"company_officers_detail_graph": [
[
{
"name": "John Doe",
"designation": "Director"
},
{
"name": "John Doe",
"designation": "Director"
}
],
[
{
"name": "John Doe",
"designation": "Secretary"
},
{
"name": "John Doe",
"designation": "Secretary"
}
]
],
"additional_data": {
"status_info": "Active",
"company_fetched_data_status": "resolved",
"registries_detail": [
{
"name": "UK Companies House",
"source_type": "official"
}
]
}
}
},
"verification_result": {
"kyb": {
"kyb_service": 1,
"ai_business_insights": 1
}
},
"info": {
"agent": {
"is_desktop": false,
"is_phone": false,
"useragent": "",
"device_name": "",
"browser_name": "",
"platform_name": ""
},
"geolocation": {
"host": "",
"ip": "",
"rdns": "",
"asn": "",
"isp": "",
"country_name": "",
"country_code": "",
"region_name": "",
"region_code": "",
"city": "",
"postal_code": "",
"continent_name": "",
"continent_code": "",
"latitude": "",
"longitude": "",
"metro_code": "",
"timezone": "",
"ip_type": "",
"capital": "",
"currency": ""
}
},
"kyb_llm_report": {
"company": {
"legal_name": "SHUFTI PRO LIMITED",
"registration_number": "13472589",
"country": "united_kingdom",
"jurisdiction": "united_kingdom",
"legal_form": "Private limited Company",
"website": "https://shuftipro.com/",
"sector": "Information Technology",
"status": "Active"
},
"executive_summary": "Shufti Pro Limited is an active private limited company registered in the United Kingdom, operating in the Information Technology sector. The company provides identity verification and KYC/AML solutions. It was incorporated on July 20, 2021, and its registered office is located in London. The company appears to be in good standing with Companies House.",
"business_registration_legal_identity": {
"legal_name": "SHUFTI PRO LIMITED",
"registration_number": "13472589",
"registered_address": "128 City Road, London, England, EC1V 2NX",
"jurisdiction": "United Kingdom",
"legal_form": "Private limited Company",
"incorporation_date": "2021-07-20",
"status": "Active - Proposal to strike off",
"official_link": "https://find-and-update.company-information.service.gov.uk/company/13472589",
"source": "Companies House"
},
"business_overview_operations": {
"company_profile": "Shufti Pro offers a suite of identity verification and KYC/AML solutions designed to help businesses onboard customers securely and comply with regulatory requirements. Their services include ID verification, document verification, facial recognition, and watchlist screening.",
"products_services": [
"ID Verification",
"Document Verification",
"Facial Recognition",
"KYC/AML Compliance",
"Watchlist Screening",
"Digital Identity Solutions"
],
"business_model": "SaaS-based subscription model for identity verification and compliance services.",
"market_sector": "Information Technology, Fintech, Regtech",
"website": "https://shuftipro.com/",
"source": "Company Website"
},
"directors_shareholders_ubos": {
"directors_officers": [
{
"name": "SAJJAD, Shaffi",
"role": "Director",
"appointment_date": "2021-07-20",
"source": "Companies House"
},
{
"name": "KHAN, Muhammad",
"role": "Director",
"appointment_date": "2021-07-20",
"source": "Companies House"
}
],
"shareholding_structure": [
{
"holder_name": "SAJJAD, Shaffi",
"ownership_percentage": "50%",
"source": "Companies House"
},
{
"holder_name": "KHAN, Muhammad",
"ownership_percentage": "50%",
"source": "Companies House"
}
],
"ultimate_beneficial_owners": [
{
"name": "SAJJAD, Shaffi",
"ownership_or_control": "Direct ownership",
"percentage": "50%",
"source": "Companies House"
},
{
"name": "KHAN, Muhammad",
"ownership_or_control": "Direct ownership",
"percentage": "50%",
"source": "Companies House"
}
]
},
"financial_information": {
"status": "Accounts filing exemption for periods up to 2023-07-31",
"source": "Companies House"
},
"regulatory_licensing_checks": {
"regulatory_registrations": "The company provides KYC/AML solutions, which may be subject to various financial regulations depending on the jurisdictions of its clients. However, no specific UK regulatory licenses were found directly associated with Shufti Pro Limited's registration on Companies House.",
"source": "Companies House, General Industry Knowledge"
},
"adverse_media_reputation_risk": {
"negative_media_coverage_and_scandals": "No significant adverse media coverage or scandals were identified during the search.",
"source": "Public Internet Search"
},
"group_context_other_jurisdictions": {
"note": "Entities with similar names may exist in other jurisdictions, but this report focuses solely on the UK-registered entity."
},
"documentation_evidence": {
"official_registry_extract": "https://find-and-update.company-information.service.gov.uk/company/13472589"
},
"ai_generated_commentary": "Shufti Pro Limited appears to be a legitimate entity operating within the regulated fintech space, with its ownership and directorship clearly declared. The company's status as 'Active - Proposal to strike off' warrants monitoring, though this can sometimes be a procedural step.",
"sources": [
{
"url": "https://find-and-update.company-information.service.gov.uk/company/13472589",
"description": "Companies House - Official company information for SHUFTI PRO LIMITED"
},
{
"url": "https://shuftipro.com/",
"description": "Shufti Pro Official Website"
}
]
}
}
```
**Note**
If all the required information about the company is available on the official source, we will include this information in the response.
The AI-generated business insight is an LLM response. The output parameters are variable and may vary across different companies.
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/business_identification_risk/know_your_business/enhanced_kyb/declined_reasons.md
When a verification request involving Enhanced KYB is declined, the following reasons are presented to the end user or client.
Status Code | Description
-------------- | --------------
SPDR297 | Domain could not be verified.
SPDR300 | Failed to verify the company documents.
SPDR301 | The UBO Identity could not be verified.
---
# How it Works?
Source: https://developers.shuftipro.com/docs/business_identification_risk/know_your_business/standard_kyb/how_it_works.md
**Caution: Attention!**
This documentation is for the Standard Version, encompassing foundational features. To access expanded capabilities, the latest advancements, and customisations tailored to your needs, we strongly recommend upgrading to the **[Enhanced Version](../enhanced_kyb/how_it_works.md)**, which also includes comprehensive technical support.
Standard KYB simplifies the verification process by requiring clients to provide essential company details such as the name, registration number, and jurisdiction code. Shufti then conducts real-time verification using up-to-date databases. This streamlined approach ensures quick and accurate verification results, which clients can conveniently access and share from the dedicated report section in the back office.
1. **Request Initiation**: Merchants of Shufti begin by providing the company name, registration number, and jurisdiction code to initiate a Standard KYB request.
2. **Real-Time Verification**: Shufti conducts a comprehensive search using the provided information, using up-to-date databases from official business registries.
3. **Report Generation**: Upon completion of verification, Shufti compiles a standard report containing registration data, jurisdiction code, contact information, address details, and company officers' information.
4. **Download Report**: Merchants have the flexibility to easily review, download, and share the report from the designated section in the back office.
## Review Verification Results
To review the verification outcomes, follow these steps:
1. Navigate to BackOffice > [Reports section](https://backoffice.shuftipro.com/reports).
2. Open the desired report.
3. The report may include the following information:
- Company Name
- Company Number
- Company Type
- Company Jurisdiction Code
- Company Address
- Registry URL
- Status
- Company Officers
- Industry Codes
**Info**
Please note that the **Standard KYB Service** is exclusively available for **Offsite** mode only.
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/business_identification_risk/know_your_business/standard_kyb/offsite.md
In the offsite verification process, Shufti's clients are solely responsible for gathering all necessary information from the end user and then submitting it to Shufti for verification.
## Parameters & Description
Parameters | Description
-------------- | --------------
company_registration_number | Required: **Yes** Type: **string** This parameter receives the company registration number to collect and verify the company information reports. Example: 12345678
company_jurisdiction_code | Required: **Yes** Type: **string** This parameter receives the company jurisdiction code to collect and verify the company information. Supported types are listed here. Example: ae_az
company_name | Required: **No** Type: **string** This parameter receives the company name to collect all the companies information whose name matches the given company name. Example: 'SHUFTI PRO LIMITED'
**Tip**
Please send request with either **company_registration_number** and **company_jurisdiction_code** or only **company_name**.
## Request Payloads
[](https://god.gw.postman.com/run-collection/9386910-1fcc1e55-9c19-4317-af80-159805186708?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-1fcc1e55-9c19-4317-af80-159805186708%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**http**
```json title=request-with-company_registration_number_and_company_jurisdiction_code
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"company_registration_number": "12345678",
"company_jurisdiction_code": "ae_az"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
country : "GB",
language : "EN"
}
//Use this key if you want to perform document verification with OCR
payload['kyb'] = {
company_registration_number : '12345',
company_jurisdiction_code : 'ae_az'
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'verification.accepted') {
console.log(data);
}
});
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key if you want to perform kyb service
$verification_request['kyb'] =[
'company_registration_number' => '123456',
'company_jurisdiction_code' => 'ae_az'
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if(in_array($event_name, ['verification.accepted', 'verification.declined', 'request.received']) ){
if($sp_signature == $calculate_signature){
echo $event_name." :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key if you want to perform document verification with OCR
verification_request['kyb'] = {
'company_registration_number' : '123456',
'company_jurisdiction_code' : 'ae_az'
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'verification.accepted':
if sp_signature == calculated_signature:
print ('Verification Response: {}'.format(response.content))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN"
}
# Use this key if you want to perform document verification with OCR
verification_request["kyb"] = {
company_registration_number: '12345',
company_jurisdiction_code: 'ae_az'
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/service/ocr_for_business/extraction";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"reference\" : \"1234567\",\n \"callback_url\" : \"https://yourdomain.com/profile/sp-notify-callback\",\n \"country\" : \"GB\",\n \"language\" : \"EN\",\n \"kyb\" : {\n \"company_registration_number\" : \"12345678\",\n \"company_jurisdiction_code\" : \"ae_az\"\n }\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"company_registration_number" : "12345678",
"company_jurisdiction_code" : "ae_az"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""https://yourdomain.com/profile/sp-notify-callback""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""kyb"" : {" + "\n" +
@" ""company_registration_number"" : ""12345678""," + "\n" +
@" ""company_jurisdiction_code"" : ""ae_az""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"company_registration_number" : "12345678",
"company_jurisdiction_code" : "ae_az"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
**http**
```json title=request-with-company_name
{
"reference": "1234567",
"callback_url": "https://yourdomain.com/profile/sp-notify-callback",
"country": "GB",
"language": "EN",
"kyb": {
"company_name": "SHUFTI PRO LIMITED"
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
country : "GB",
language : "EN"
}
//Use this key if you want to perform document verification with OCR
payload['kyb'] = {
'company_name' : 'SHUFTI PRO LIMITED'
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'verification.accepted') {
console.log(data);
}
});
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
];
//Use this key if you want to perform kyb service
$verification_request['kyb'] =[
'company_name' => 'SHUFTI PRO LIMITED'
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if(in_array($event_name, ['verification.accepted', 'verification.declined']) ){
if($sp_signature == $calculate_signature){
echo $event_name." :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback'
}
# Use this key if you want to perform document verification with OCR
verification_request['kyb'] = {
'company_name' : 'SHUFTI PRO LIMITED'
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'verification.accepted':
if sp_signature == calculated_signature:
print ('Verification Response: {}'.format(response.content))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN"
}
# Use this key if you want to perform document verification with OCR
verification_request["kyb"] = {
company_name: 'SHUFTI PRO LIMITED'
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"reference\" : \"1234567\",\n \"callback_url\" : \"https://yourdomain.com/profile/sp-notify-callback\",\n \"country\" : \"GB\",\n \"language\" : \"EN\",\n \"kyb\" : {\n \"company_name\" : \"SHUFTI PRO LIMITED\"\n }\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"company_name" : "SHUFTI PRO LIMITED"
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""https://yourdomain.com/profile/sp-notify-callback""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""kyb"" : {" + "\n" +
@" ""company_name"" : ""SHUFTI PRO LIMITED""" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "https://yourdomain.com/profile/sp-notify-callback",
"country" : "GB",
"language" : "EN",
"kyb" : {
"company_name" : "SHUFTI PRO LIMITED"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
---
# Response
Source: https://developers.shuftipro.com/docs/business_identification_risk/know_your_business/standard_kyb/responses.md
Shufti’s **Standard KYB** API response parameters define the types of data returned, like registration details, financial metrics, filings, and contacts. These structured outputs help easily interpret business information for compliance tasks.
Parameters | Description
-------------- | --------------
company_name | Type: **string** The legal name of the Company.
company_number | Type: **string** The identifier is given to the company by the company register.
company_jurisdiction_code | Type: **string** The code for the jurisdiction in which the company is incorporated.
company_incorporation_date | Type: **string** The date the company was incorporated on.
company_dissolution_date | Type: **string** The date the company was dissolved (if so).
company_type | Type: **string** The type of company (e.g. LLC, Private Limited Company, GBMH).
company_registry_url | Type: **string** The URL of the company page in the company register. Note, not all company registers provide persistent URLs for the companies in the register.
company_branch | Type: **string** A flag to indicate if a company is a 'branch'. If the flag is 'F' it indicates that the entry in the company register relates to an out-of-jurisdiction company (sometimes called a 'foreign corporation' in the US). If it is 'L' it is a local office of a company (few company registers collect this information). If it is a null value, it means either the company is not a branch, or the company register does not make the information available.
company_branch_status | Type: **string** A descriptive text version of the 'branch' flag.
company_inactive | Type: **boolean** Filter by inactive status (boolean). This replaces the exclude_inactive filter from previous versions. If ‘true’ is supplied, it will be restricted to inactive companies. If ‘false’ is supplied, it will exclude inactive companies. If no value is supplied it will not filter by inactive status.
company_current_status | Type: **string** The current status of the company, as defined by the company register.
company_source | Type: **object** The source(s) from which we gather company data. **Parameters:** publisher, url, terms and retrieved_at.
company_agent_name | Type: **string** The name of the individual who manages the company affairs on behalf of the company.
company_agent_address | Type: **string** Specific person’s address.
company_alternative_names | Type: **array** Other operating name(s) of the company if any. **Parameters:** company_name, type and language.
company_previous_names | Type: **array** Old name of that firm/company (if any).
company_number_of_employees | Type: **string** No of employees working for the company.
native_company_number | Type: **string** Country number (Similar to ID number).
company_alternate_registration_entities | Type: **array** Other areas of registration (includes partnership types).
company_previous_registration_entities | Type: **array** Previous registration entity type (e.g. partnership, sole traders etc.).
company_subsequent_registration_entities | Type: **array** If closed then further or new entity type of partnership.
company_registered_address_in_full | Type: **string** Address where the company is registered
company_industry_codes | Type: **array** Type of industry it is working in (Tech, Manufacturing, etc.) **Parameters:** code, description, code_scheme_id and code_scheme_name.
company_identifiers | Type: **array** This is similar to company registration number.
company_trademark_registrations | Type: **array** Any patent or trademark registered or filled by company.
company_registered_address | Type: **object** Address where company is registered. **Parameters:** street_address, locality, region, postal_code and country.
company_corporate_groupings | Type: **array** Corporate umbrella(Parent company to child company tree)
company_data | Type: **array** Information related company filled or posted. **Parameters:** title, data_type and description.
company_financial_summary | Type: **string** Statement of Financial position.
home_company | Type: **object** Main parent company or Ultimate parent company. **Parameters:** name, jurisdiction_code, company_number and reference_url.
company_controlling_entity | Type: **object** Owner, Beneficiary ,CEO or anyone with decision making powers. **Parameters:** name, jurisdiction_code, company_number and reference_url.
company_ultimate_beneficial_owners | Type: **array** Owner, Beneficiary or anyone benefiting from revenues of company.
company_filings | Type: **array** **Parameters:** title, date and reference_url.
company_officers | Type: **array** Any significant officers such as agent, director, CEO, CTO. **Parameters:** name, position, start_date, end_date, occupation, inactive, current_status and address.
**Info**
In the case of a company search, it will return an array of objects with the same parameters if multiple companies are found; otherwise, it will return a single object with company information.
```json title=standard-KYB-response-sample-object
{
"reference": "sp-bc-demo-U3cl95qO",
"event": "verification.accepted",
"email": null,
"country": null,
"verification_data": {
"kyb": [
{
"company_number": "11039567",
"company_type": "Private Limited Company",
"company_source": {
"publisher": "UK Companies House",
"url": "http://xmlgw.companieshouse.gov.uk/",
"terms": "UK Crown Copyright",
"retrieved_at": "2019-10-31T08:50:01+00:00"
},
"native_company_number": null,
"company_industry_codes": [
{
"code": "62.01/2",
"description": "Business and domestic software development",
"code_scheme_id": "uk_sic_2007",
"code_scheme_name": "UK SIC Classification 2007"
},
{
"code": "63.11",
"description": "Data processing, hosting and related activities",
"code_scheme_id": "uk_sic_2007",
"code_scheme_name": "UK SIC Classification 2007"
},
{
"code": "62.01",
"description": "Computer programming activities",
"code_scheme_id": "eu_nace_2",
"code_scheme_name": "European Community NACE Rev 2"
},
{
"code": "6201",
"description": "Computer programming activities",
"code_scheme_id": "isic_4",
"code_scheme_name": "UN ISIC Rev 4"
},
{
"code": "63.11",
"description": "Data processing, hosting and related activities",
"code_scheme_id": "eu_nace_2",
"code_scheme_name": "European Community NACE Rev 2"
},
{
"code": "6311",
"description": "Data processing, hosting and related activities",
"code_scheme_id": "isic_4",
"code_scheme_name": "UN ISIC Rev 4"
}
],
"company_trademark_registrations": [],
"company_corporate_groupings": [],
"company_data": [],
"home_company": null,
"company_ultimate_beneficial_owners": [
{
"name": "Mr. Carl Victor Gregor Fredung Neschko"
}
],
"company_filings": [
{
"title": "Confirmation Statement",
"date": "2019-10-30",
"reference_url": "https://opencorporates.com/statements/705738001"
},
{
"title": "Annual Accounts",
"date": "2019-07-19",
"reference_url": "https://opencorporates.com/statements/656789159"
},
{
"title": "Change of registered office address",
"date": "2019-06-04",
"reference_url": "https://opencorporates.com/statements/635021777"
},
{
"title": "Change of registered office address",
"date": "2019-04-02",
"reference_url": "https://opencorporates.com/statements/610263028"
},
{
"title": "Change of secretary's details",
"date": "2018-11-26",
"reference_url": "https://opencorporates.com/statements/593461364"
},
{
"title": "Give notice of individual person with significant control",
"date": "2018-11-13",
"reference_url": "https://opencorporates.com/statements/579687687"
},
{
"title": "Give notice of update to PSC statements",
"date": "2018-11-13",
"reference_url": "https://opencorporates.com/statements/579687688"
},
{
"title": "Confirmation Statement",
"date": "2018-11-12",
"reference_url": "https://opencorporates.com/statements/579687689"
},
{
"title": "Termination of appointment of director ",
"date": "2018-11-12",
"reference_url": "https://opencorporates.com/statements/579687690"
},
{
"title": "Appointment of director",
"date": "2018-11-12",
"reference_url": "https://opencorporates.com/statements/579687691"
},
{
"title": "Return of allotment of shares",
"date": "2018-11-03",
"reference_url": "https://opencorporates.com/statements/579336389"
},
{
"title": "Appointment of secretary",
"date": "2018-10-26",
"reference_url": "https://opencorporates.com/statements/579336390"
},
{
"title": "New incorporation documents",
"date": "2017-10-31",
"reference_url": "https://opencorporates.com/statements/512335712"
}
],
"company_officers": [
{
"name": "RICHARD MARLEY FISHER",
"position": "director",
"start_date": "2017-10-31",
"end_date": "2018-11-02",
"occupation": "COMPANY DIRECTOR",
"inactive": true,
"current_status": null,
"address": null
},
{
"name": "MUAZ AHMAD JABAL",
"position": "secretary",
"start_date": "2018-10-25",
"end_date": null,
"occupation": null,
"inactive": false,
"current_status": null,
"address": null
},
{
"name": "CARL VICTOR GREGOR FREDUNG NESCHKO",
"position": "director",
"start_date": "2018-10-30",
"end_date": null,
"occupation": "BUSINESSMAN",
"inactive": false,
"current_status": null,
"address": null
}
],
"company_name": "SHUFTI PRO LIMITED",
"company_jurisdiction_code": "gb",
"company_incorporation_date": "2017-10-31",
"company_dissolution_date": null,
"company_registry_url": "https://beta.companieshouse.gov.uk/company/11039567",
"company_branch": null,
"company_branch_status": null,
"company_registered_address_in_full": "35 Little Russell Street, Holborn, London, WC1A 2HH",
"company_inactive": false,
"company_current_status": "Active",
"company_agent_name": null,
"company_agent_address": null,
"company_alternative_names": [],
"company_previous_names": [],
"company_number_of_employees": null,
"company_alternate_registration_entities": [],
"company_previous_registration_entities": [],
"company_subsequent_registration_entities": [],
"company_identifiers": [],
"company_registered_address": {
"street_address": "35 Little Russell Street, Holborn",
"locality": "London",
"region": null,
"postal_code": "WC1A 2HH",
"country": "England"
},
"company_financial_summary": null,
"company_controlling_entity": null
},
{
"company_number": "11039567",
"company_type": "Private Limited Company",
"company_source": {
"publisher": "UK Companies House",
"url": "http://xmlgw.companieshouse.gov.uk/",
"terms": "UK Crown Copyright",
"retrieved_at": "2019-10-31T08:50:01+00:00"
},
"native_company_number": null,
"company_industry_codes": [
{
"code": "62.01/2",
"description": "Business and domestic software development",
"code_scheme_id": "uk_sic_2007",
"code_scheme_name": "UK SIC Classification 2007"
},
{
"code": "63.11",
"description": "Data processing, hosting and related activities",
"code_scheme_id": "uk_sic_2007",
"code_scheme_name": "UK SIC Classification 2007"
},
{
"code": "62.01",
"description": "Computer programming activities",
"code_scheme_id": "eu_nace_2",
"code_scheme_name": "European Community NACE Rev 2"
},
{
"code": "6201",
"description": "Computer programming activities",
"code_scheme_id": "isic_4",
"code_scheme_name": "UN ISIC Rev 4"
},
{
"code": "63.11",
"description": "Data processing, hosting and related activities",
"code_scheme_id": "eu_nace_2",
"code_scheme_name": "European Community NACE Rev 2"
},
{
"code": "6311",
"description": "Data processing, hosting and related activities",
"code_scheme_id": "isic_4",
"code_scheme_name": "UN ISIC Rev 4"
}
],
"company_trademark_registrations": [],
"company_corporate_groupings": [],
"company_data": [],
"home_company": null,
"company_ultimate_beneficial_owners": [
{
"name": "Mr. Carl Victor Gregor Fredung Neschko"
}
],
"company_filings": [
{
"title": "Confirmation Statement",
"date": "2019-10-30",
"reference_url": "https://opencorporates.com/statements/705738001"
},
{
"title": "Annual Accounts",
"date": "2019-07-19",
"reference_url": "https://opencorporates.com/statements/656789159"
},
{
"title": "Change of registered office address",
"date": "2019-06-04",
"reference_url": "https://opencorporates.com/statements/635021777"
},
{
"title": "Change of registered office address",
"date": "2019-04-02",
"reference_url": "https://opencorporates.com/statements/610263028"
},
{
"title": "Change of secretary's details",
"date": "2018-11-26",
"reference_url": "https://opencorporates.com/statements/593461364"
},
{
"title": "Give notice of individual person with significant control",
"date": "2018-11-13",
"reference_url": "https://opencorporates.com/statements/579687687"
},
{
"title": "Give notice of update to PSC statements",
"date": "2018-11-13",
"reference_url": "https://opencorporates.com/statements/579687688"
},
{
"title": "Confirmation Statement",
"date": "2018-11-12",
"reference_url": "https://opencorporates.com/statements/579687689"
},
{
"title": "Termination of appointment of director ",
"date": "2018-11-12",
"reference_url": "https://opencorporates.com/statements/579687690"
},
{
"title": "Appointment of director",
"date": "2018-11-12",
"reference_url": "https://opencorporates.com/statements/579687691"
},
{
"title": "Return of allotment of shares",
"date": "2018-11-03",
"reference_url": "https://opencorporates.com/statements/579336389"
},
{
"title": "Appointment of secretary",
"date": "2018-10-26",
"reference_url": "https://opencorporates.com/statements/579336390"
},
{
"title": "New incorporation documents",
"date": "2017-10-31",
"reference_url": "https://opencorporates.com/statements/512335712"
}
],
"company_officers": [
{
"name": "RICHARD MARLEY FISHER",
"position": "director",
"start_date": "2017-10-31",
"end_date": "2018-11-02",
"occupation": "COMPANY DIRECTOR",
"inactive": true,
"current_status": null,
"address": null
},
{
"name": "MUAZ AHMAD JABAL",
"position": "secretary",
"start_date": "2018-10-25",
"end_date": null,
"occupation": null,
"inactive": false,
"current_status": null,
"address": null
},
{
"name": "CARL VICTOR GREGOR FREDUNG NESCHKO",
"position": "director",
"start_date": "2018-10-30",
"end_date": null,
"occupation": "BUSINESSMAN",
"inactive": false,
"current_status": null,
"address": null
}
],
"company_name": "SHUFTI PRO LIMITED",
"company_jurisdiction_code": "gb",
"company_incorporation_date": "2017-10-31",
"company_dissolution_date": null,
"company_registry_url": "https://beta.companieshouse.gov.uk/company/11039567",
"company_branch": null,
"company_branch_status": null,
"company_registered_address_in_full": "35 Little Russell Street, Holborn, London, WC1A 2HH",
"company_inactive": false,
"company_current_status": "Active",
"company_agent_name": null,
"company_agent_address": null,
"company_alternative_names": [],
"company_previous_names": [],
"company_number_of_employees": null,
"company_alternate_registration_entities": [],
"company_previous_registration_entities": [],
"company_subsequent_registration_entities": [],
"company_identifiers": [],
"company_registered_address": {
"street_address": "35 Little Russell Street, Holborn",
"locality": "London",
"region": null,
"postal_code": "WC1A 2HH",
"country": "England"
},
"company_financial_summary": null,
"company_controlling_entity": null
}
]
},
"verification_result": {
"kyb_service": 1
},
"info": {
"agent": {
"is_desktop": true,
"is_phone": false,
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36",
"device_name": "Macintosh",
"browser_name": "",
"platform_name": "OS X - 10_14_4"
},
"geolocation": {
"host": "172.18.0.1",
"ip": "172.18.0.1",
"rdns": "172.18.0.1",
"asn": "",
"isp": "",
"country_name": "",
"country_code": "",
"region_name": "",
"region_code": "",
"city": "",
"postal_code": "",
"continent_name": "",
"continent_code": "",
"latitude": "",
"longitude": "",
"metro_code": "",
"timezone": ""
}
}
}
```
---
# Overview
Source: https://developers.shuftipro.com/docs/business_identification_risk/business_aml_screening/overview.md
Shufti's Business AML Screening checks a business against global sanctions, warnings and regulatory enforcement lists, fitness and probity, adverse media, special interest entity (SIE), and insolvency records. These records cover companies, organizations, vessels, and aircraft flagged by law enforcement agencies and regulatory bodies worldwide. When a potential match is found, the system returns a calibrated **AML Match Score** so your compliance team can make informed, risk-based decisions.
This page orients you to the product. To integrate, jump to [Onsite Integration](/docs/business_identification_risk/business_aml_screening/onsite) or [Offsite Integration](/docs/business_identification_risk/business_aml_screening/offsite).
### Supported entity types {#supported-entity-types}
Business AML Screening covers a broad range of subjects so you can screen everything relevant in your compliance workflow:
| Entity type | Description |
| --- | --- |
| **Company** | Corporate entities flagged for regulatory breaches or financial crime. |
| **Organisation** | Non-corporate bodies under investigation or listed for non-compliance. |
| **Vessel** | Ships and maritime vessels flagged by regulatory or law-enforcement bodies. |
| **Aircraft** | Aircraft linked to sanctioned parties or under regulatory scrutiny. |
### What you can do {#what-you-can-do}
- **Screen by business name and incorporation date** against global sanctions, watchlist, and adverse media sources.
- **Tune the search** with country filters, a unique identifier, aliases, relatives and close associates (RCA), and a configurable match threshold.
- **Add contextual signals** by passing a context object to improve the AI Compliance Co-Pilot's assessment.
- **Keep records current** with ongoing monitoring that re-screens active profiles and alerts you on any watchlist change.
- **Resolve results in one place** using the AI Compliance Co-Pilot, a Custom Risk Scoring Engine, and a built-in case management workflow.
### How a screening works, in brief {#how-a-screening-works-in-brief}
1. **Input**: You provide the business name (required) and, ideally, the incorporation date. Data can be entered directly or extracted from a document.
2. **Search**: The engine matches the input against your selected data sources using phonetic, alias, transliteration, and name-variation logic.
3. **Score**: Every returned record gets an [AML Match Score](/docs/business_identification_risk/business_aml_screening/how_it_works#aml-match-score) from 0-100%. Records below your threshold are suppressed.
4. **Decide**: Matches are returned in the [response](/docs/business_identification_risk/business_aml_screening/responses) with full record detail. You accept, decline, or route them for review.
5. **Monitor** *(optional)*: Enrolled profiles are re-screened continuously, and you are alerted on any change.
For the full logic, data sources, and worked examples, see [How It Works](/docs/business_identification_risk/business_aml_screening/how_it_works).
### Two ways to integrate {#two-ways-to-integrate}
Business AML screening is exposed through the `aml_for_businesses` service in two integration modes:
| Mode | Who collects the data | Use when |
| --- | --- | --- |
| [**Onsite**](/docs/business_identification_risk/business_aml_screening/onsite) | Shufti's hosted flow collects the subject's details | You want Shufti to manage data collection |
| [**Offsite**](/docs/business_identification_risk/business_aml_screening/offsite) | You send the details directly via API | You already hold the business data and want a server-to-server check |
### Documentation in this section {#documentation-in-this-section}
| Page | What it covers |
| --- | --- |
| [Overview](/docs/business_identification_risk/business_aml_screening/overview) | Product orientation, entity types, screening flow summary, and integration modes |
| [How It Works](/docs/business_identification_risk/business_aml_screening/how_it_works) | Entity types, search modes, data sources, the matching engine, match score, ongoing monitoring, and compliance tooling |
| [Onsite Integration](/docs/business_identification_risk/business_aml_screening/onsite) | Request parameters and sample for the hosted flow |
| [Offsite Integration](/docs/business_identification_risk/business_aml_screening/offsite) | Request parameters and sample for the API-only flow |
| [Match Results](/docs/business_identification_risk/business_aml_screening/match_results) | Reference for the match-type values returned on each hit |
| [Responses](/docs/business_identification_risk/business_aml_screening/responses) | Structure of the verification response and the AML data object |
| [Declined Reasons](/docs/business_identification_risk/business_aml_screening/declined_reasons) | Status codes returned when a screening is declined |
---
---
# How It Works?
Source: https://developers.shuftipro.com/docs/business_identification_risk/business_aml_screening/how_it_works.md
Business AML Screening evaluates a business, and related subjects such as vessels and aircraft, against Shufti's connected watchlists and returns every record that resembles them, each with a match score you can act on. This page explains the full pipeline: how you search, what you search against, how matches are scored, and how results are monitored and resolved.
## The screening pipeline {#the-screening-pipeline}
Every screening follows the same five stages:
1. **Collect the subject's details**: business name (required) and, ideally, incorporation date, plus any optional refining parameters.
2. **Select the data sources**: either pick categories directly or apply a saved [search profile](/docs/business_identification_risk/business_aml_screening/how_it_works#search-by-profile).
3. **Search and score**: the [name-matching engine](/docs/business_identification_risk/business_aml_screening/how_it_works#the-name-matching-engine) compares the input against each source and assigns every record an [AML Match Score](/docs/business_identification_risk/business_aml_screening/how_it_works#aml-match-score).
4. **Return results**: records at or above your [match threshold](/docs/business_identification_risk/business_aml_screening/how_it_works#match-threshold) are returned in the [response](/docs/business_identification_risk/business_aml_screening/responses); the rest are suppressed.
5. **Resolve and monitor**: review matches through [case management](/docs/business_identification_risk/business_aml_screening/how_it_works#case-management), apply a decision, and optionally enroll the subject in [ongoing monitoring](/docs/business_identification_risk/business_aml_screening/how_it_works#ongoing-monitoring).
## Supported entity types {#supported-entity-types-2}
| Entity type | Description |
| --- | --- |
| **Company** | Corporate entities flagged for regulatory breaches or financial crime. |
| **Organisation** | Non-corporate bodies under investigation or listed for non-compliance. |
| **Vessel** | Ships and maritime vessels flagged by regulatory or law-enforcement bodies. |
| **Aircraft** | Aircraft linked to sanctioned parties or under regulatory scrutiny. |
## Screening modes {#screening-modes}
AML screening can source the subject's details in two ways:
| Mode | How details are supplied |
| --- | --- |
| **Search-based** | Business name and incorporation date are provided by the end user or merchant via the API and searched against AML data sources. |
| **Document-based** | Business name and incorporation date are extracted directly from a document supplied by the end user. |
## Search options {#search-options}
You control which data sources a screening runs against in one of two ways.
### Search by Databases
Shufti's AML data sources span **4,000+ global watchlists**, covering millions of high-risk entity profiles across **240+ countries and territories**, all drawn from reputable international and local databases. When searching by database, you select which sources to screen against from these categories:
- Sanctions
- Warnings and Regulatory Enforcement
- Fitness & Probity
- Adverse Media
- Insolvency
- Special Interest Entity (SIE)
### Search by Profile
A **search profile** is a custom, reusable set of data sources, created and managed in **AML Settings**, that fixes the exact scope of a check in advance. Search profiles are a shared feature used across both Individual and Business AML Screening. When building a search profile, sources are grouped under three headings, each with its underlying sources individually included or excluded:
- **PEP**: PEP Level 1, PEP Level 2, PEP Level 3, and PEP Level 4.
- **Warnings and Regulatory Enforcement**: Fitness & Probity, Regulatory Enforcements, Special Interest Persons (SIP), Special Interest Entities (SIE), and Insolvency.
- **Sanctions**: underlying sanctions sources that can be filtered by country.
**Note**
Because a search profile is shared across both products, it may include PEP and Special Interest Person (SIP) sources. These apply to individuals only, so a Business AML screening will not return matches from them even when the selected profile has them enabled.
At search time, the request carries a **Search By** key. You either choose **Select Databases Manually** and pick categories directly, or choose **Use Search Profile**, which reveals a dropdown of your preconfigured search profiles to screen the subject against. Using a saved search profile gives you consistent, repeatable checks.
## Search parameters {#search-parameters}
These are the parameters that drive a Business AML screening. Business Name is the foundation of every search; the rest refine, filter, or organize results. For request formats and limits, see [Onsite](/docs/business_identification_risk/business_aml_screening/onsite) and [Offsite](/docs/business_identification_risk/business_aml_screening/offsite).
| Parameter | Required | Description |
| --- | --- | --- |
| **Business Name** | Yes | Primary identifier and the basis of every search. Carries the highest weight in scoring. |
| **Incorporation Date** | No | Supporting identifier that distinguishes businesses with similar names and improves precision. |
| **Entity Type** | Yes | The type of entity being screened: Company, Organization, Vessel, or Aircraft. |
| **Unique Identifier** | No | Registry, tax ID, or registration number. Does not affect the score; promotes records with a matching identifier to the top of results. |
| **Country(s)** | No | Pre-search filter by country. Filters out non-matching records before scoring, with no effect on the score itself. |
| **Search By** | Yes | Sets the data scope: select databases manually, or use a saved search profile. |
| **Custom Risk Engine** | Yes | The risk scoring engine applied to results. If none is selected, the default engine is applied. |
| **Match Score** | No | Minimum match threshold, set with a 0 to 100 slider. An **Exact Match** checkbox sets the score to 100. |
| **Enable Ongoing AML?** | No | Enables continuous re-screening so the entity is monitored against database changes over time. |
| **Enable Ongoing Adverse Media?** | No | Available only when Adverse Media is among the selected databases. Enables continuous adverse media monitoring. |
| **Enable AI Compliance Co-Pilot?** | No | Enables AI-assisted review of results. Additional subject data is passed through the `context` key. |
| **Additional Configurations** | No | Search for Relatives & Close Associates (RCA), and Search for Aliases & Alternate Names. |
### Business Name
Business Name is the primary and mandatory parameter. The engine evaluates name similarity using phonetic analysis, alias resolution, transliteration, and name-variation handling, so spelling differences, alternative trading names, abbreviations, and cross-jurisdictional representations are all accounted for. As the core identifier, it carries the greatest weight in scoring.
### Incorporation Date
Incorporation date is a supporting parameter. When provided, it differentiates between businesses that share similar names, increasing confidence and reducing ambiguity. It is not mandatory, but supplying it significantly improves reliability, especially for commonly named entities or records spanning multiple jurisdictions.
### Entity Type
Entity Type is a mandatory parameter that sets the kind of entity being screened. The available options are **Company**, **Organization**, **Vessel**, and **Aircraft**. Selecting the correct type focuses the search on the relevant records.
### Unique Identifier
A specific identification number, such as a business registry number, tax identification number, or company registration number, used to narrow the search toward a specific business. It does not affect the match score. Instead, after scoring, records whose identifier matches or closely aligns with the value provided are **promoted to the top** of the results, while others remain visible but ranked lower.
### Country(s)
The country filter narrows results to records associated with one or more selected countries, removing unrelated jurisdictions and reducing noise.
**Note**
The country filter is a **pre-search filter only**. Records that do not match the selected country never appear in results; records that pass through are scored on business name and incorporation date as usual, so the filter has no effect on the match score itself.
### Search By
Search By sets the scope of data the entity is screened against. You either choose **Select Databases Manually** and pick categories directly, or choose **Use Search Profile** and select one of your preconfigured search profiles. See [Search by Databases](/docs/business_identification_risk/business_aml_screening/how_it_works#search-by-databases-1) and [Search by Profile](/docs/business_identification_risk/business_aml_screening/how_it_works#search-by-profile-1) for the available sources.
### Custom Risk Engine
The risk engine applies your configured scoring criteria to the returned results. It is **mandatory**: if no custom engine is selected, the default risk engine is applied automatically. For configuration details, see the [Custom Risk Scoring Engine](/docs/business_identification_risk/business_aml_screening/how_it_works#custom-risk-scoring-engine-1).
### Match Score
Match Score sets the minimum score a record must reach to be returned, configured with a **0 to 100 slider**. A separate **Exact Match** checkbox is available; when enabled, the score is set to **100** by default. For how scores are calculated and the recommended threshold, see [AML Match Score](/docs/business_identification_risk/business_aml_screening/how_it_works#aml-match-score-1).
### Enable Ongoing AML
When enabled, the entity is enrolled in continuous re-screening, so any future changes across the connected databases are surfaced without resubmitting the check. See [Ongoing monitoring](/docs/business_identification_risk/business_aml_screening/how_it_works#ongoing-monitoring-1).
### Enable Ongoing Adverse Media
This option appears only when **Adverse Media** is among the databases selected for screening. When enabled, the entity is continuously monitored for new adverse media coverage in addition to standard ongoing AML updates.
### AI Compliance Co-Pilot
Enabling the AI Compliance Co-Pilot adds an AI-assisted review layer over the screening results. Additional subject information can be passed into the request to give the Co-Pilot richer data for its assessment, passed through the `context` field. When AML runs alongside KYB verification, this data can be enriched with details extracted during KYB, such as document number and address, combined with anything the merchant supplies. See the [AI Compliance Co-Pilot](/docs/business_identification_risk/business_aml_screening/how_it_works#ai-compliance-co-pilot-1) section for what it returns.
### Additional Configurations
Two optional toggles extend the scope of a search:
- **Search for Relatives & Close Associates (RCA)**: extends the search to relatives and close associates of the entity. Parties who are not themselves listed may still pose indirect risk through shared finances, business relationships, or personal ties. RCA coverage brings beneficial-ownership structures, family-held assets, and associate networks into scope.
- **Search for Aliases & Alternate Names**: screens the entity against aliases, alternative trading names, transliterations, and name variations across all connected databases. Shufti applies fuzzy matching and transliteration logic so that non-exact variations are still captured, reducing false negatives.
## Data sources and categories {#data-sources-and-categories}
The following categories are supported across Shufti's AML databases.
| Category | Description |
| --- | --- |
| **Sanctions** | Penalties or restrictions imposed by authorities on individuals, organizations, or countries for violating laws or international norms. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrxj867eT44TuXbZ) |
| **Warnings and Regulatory Enforcement** | Alerts to rule violations, plus penalties or legal actions for non-compliance with laws and regulations. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrWwSSBHnexrTwdM) |
| **Fitness and Probity** | Evaluation of an individual's or entity's competence, skills, integrity, and ethical conduct in financial services. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrVROdjVqf4Q1Ps1) |
| **Adverse Media** | Negative or damaging information about individuals, organizations, or entities that can pose significant risk. View source list |
| **Special Interest Entity (SIE)** | Companies or organizations presenting a heightened level of risk due to suspected or confirmed involvement in criminal activity. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrf4xVPWPeNHxX6P) |
| **Insolvency** | Companies and organizations that are unable to pay the debts they owe or have been declared bankrupt by a judicial process. [View source list](https://airtable.com/appBg944vhUK0OPYO/shrMqODzDKg4SCuSi) |
## Adverse media screening {#adverse-media-screening}
Shufti's adverse media screening searches a network of **50,000+ integrated global sources**, including news outlets, regulatory publications, court records, and watchlist databases. The engine applies **sentiment analysis** to each piece of coverage, scoring its tone on a scale from -3 to +3: -3 severely negative, -2 moderately negative, -1 negative, 0 neutral, and +1 to +3 increasingly positive. This lets reviewers prioritise the most damaging coverage rather than treating every mention equally.
Searches run against keywords derived from FATF's 21 designated predicate offences for money laundering, supplemented by the 6th EU Anti-Money Laundering Directive (6AMLD), organized into these categories:
- **Financial Crimes**: money laundering, fraud, bribery, corruption, tax evasion, embezzlement, sanctions evasion, counterfeiting, insider trading.
- **Organized Crime & Trafficking**: drug, arms, and human trafficking, migrant smuggling, sexual exploitation, racketeering, smuggling of stolen goods.
- **Terrorism & Proliferation**: terrorist financing, proliferation financing, extremism, weapons of mass destruction.
- **Violent & Serious Crimes**: murder, kidnapping, hostage-taking, robbery, theft.
- **Regulatory & Legal Violations**: court convictions, criminal investigations, enforcement actions, sanctions violations, regulatory breaches, license revocations.
- **Environmental & Cybercrime**: illegal trafficking of natural resources and protected species, cybercrime, hacking, ransomware, data breaches (introduced under 6AMLD).
- **Reputational & Political Risk**: PEPs, abuse of power, conflict of interest, government misconduct, links to shell companies or offshore structures.
## The name-matching engine {#the-name-matching-engine}
At the core of scoring is a proprietary name-matching engine built for global AML screening. Its goal is **reducing false positives**, matches that look plausible but refer to a different entity, without missing genuine hits obscured by spelling, cultural differences, or data quality. It handles four categories of name variation:
- **Phonetics and diacritics**: names that sound identical but are spelled differently. *José Hernández* and *Jose Hernandez*, or *Mohamed* and *Muhammad*, are treated as equivalent.
- **Structural and spacing differences**: hyphenation, multi-part names, suffixes, and spacing. *Kim-Jong Un* and *Kim Jong Un* are treated as structurally identical.
- **Error and alias handling**: OCR, legacy-system, and manual-entry errors are normalised, and known aliases, AKAs, and transliteration variants are linked into one subject profile.
- **Cultural name variations**: non-Western naming structures are handled natively rather than treated as errors.
## AML Match Score {#aml-match-score}
The **AML Match Score** is a value between 0% and 100% generated for every returned record. It quantifies how closely the subject's details, primarily name and incorporation date, match a record in Shufti's sanctions, watchlist, or other AML databases.
### Match threshold
The match threshold is a configurable minimum cut-off. Only records scoring at or above it are returned; records below it are suppressed entirely.
- Set it **too high** and you risk missing genuine matches where data varies slightly across sources.
- Set it **too low** and you return loosely related results, burdening compliance teams.
**Info**
Recommended threshold
A threshold of **85%** is recommended as the optimal balance between accuracy and coverage. The threshold is configurable per screening, so you can control sensitivity for each individual check rather than only globally.
### Worked examples
These examples illustrate how the engine treats different kinds of business name variation, and the role a matching incorporation date plays. Assume each row is screened against a watchlist entry for **Pacific Maritime Holdings Ltd**.
| Search input | Incorporation date | How the engine treats it |
| --- | --- | --- |
| Pacific Maritime Holdings Ltd | Not provided | Exact match on every token. A strong, high-confidence match on name alone. |
| Pasific Maritime Holdngs Ltd | Provided | Minor spelling variants (*Pacific/Pasific*, *Holdings/Holdngs*) are still recognised as the same name. A matching incorporation date adds further confidence. |
| PMH Ltd | Provided | If *PMH* is recorded as a registered trading name or alias for the entity, alias resolution links it to the full name. Without a known alias, an abbreviation alone carries lower name confidence. |
| Maritime Holdings Ltd | Provided | A name token (*Pacific*) is missing, so name confidence is lower. The result may fall closer to the threshold and warrant manual review. |
Three things to note from these examples:
1. **Name similarity is the primary driver.** The closer the name match, the higher the confidence. A partial name match lowers confidence and may push a result below the threshold.
2. **Trading names and abbreviations rely on alias data.** Alternative trading names, abbreviations, and acronyms match when they are recorded as aliases for the entity. An unrecognised abbreviation is treated as a weaker, partial name.
3. **Incorporation date is a supporting signal.** A matching date increases confidence and helps separate businesses with similar names, but it does not by itself rescue a weak name match.
### Multilingual and transliteration matching
Business names derived from Arabic, Persian, Urdu, and other scripts may appear under multiple valid spellings, none matching the input exactly, common with trading companies, family-owned businesses, and conglomerates recorded inconsistently across registries. The phonetic algorithm resolves these by matching on **sound rather than spelling**. For supported languages, see AML Supported Languages.
## Ongoing monitoring {#ongoing-monitoring}
Watchlists and regulatory requirements change constantly. Ongoing monitoring keeps enrolled records current with real-time updates, reducing the risk of missed alerts from stale data.
### How monitoring works
The monitoring engine runs automatically in the background, re-screening active profiles against the latest AML databases at a configurable frequency. The **default interval is 15 minutes**, so status changes are detected with minimal delay and no manual intervention. When an entity is added to or removed from any watchlist, the system triggers an alert.
Alerts can be delivered through one or more channels:
- **Webhook**: automated event notifications sent to your integrated system.
- **Back Office**: notifications surfaced in the Shufti merchant dashboard.
- **Registered Email**: alerts sent to your registered address.
### Monitoring alert triggers
| Event | Description |
| --- | --- |
| **New information found** | The entity appears in a watchlist or database they were not previously associated with. |
| **Existing information updated** | Details for the entity on an existing list have been modified or revised. |
| **Entity added or removed from a source** | The entity has been newly added to, or delisted/removed from, a watchlist they are tracked against. |
### Adverse media monitoring
Alongside watchlist monitoring, Shufti continuously scans for adverse media about the screened subject. If new adverse media is detected, the status is updated and an alert is sent automatically.
**Info**
Enabling ongoing monitoring
Set `ongoing = 1` to enable watchlist monitoring and `ongoing_adverse_media = 1` for adverse media monitoring. Both are available on **production accounts only**.
## Compliance tooling {#compliance-tooling}
### AI Compliance Co-Pilot
The AI Compliance Co-Pilot is an AI-powered review layer that performs an automated first-line review of flagged profiles. It evaluates matches against sanctions, watchlist, and adverse media sources and returns a structured, evidence-backed risk summary, helping teams manage alert volume. It can be enabled **while you run a screening** or applied afterwards, and it is also available in [ongoing monitoring](/docs/business_identification_risk/business_aml_screening/how_it_works#ongoing-monitoring).
When you enable the Co-Pilot during a screening, a form appears so you can supply context about the entity. None of these fields are mandatory; the more you provide, the sharper the assessment. For a business, the entity-specific context covers business name, date of incorporation, business registration number, known alias, IMO number (vessels), and tail number (aircraft).
You can also configure how the Co-Pilot runs:
- **Records analysed per screening**: any value from 5 to 50, in steps of 5.
- **Use IDV data for context**: turn on *"Use Identity Verification (IDV) data for AI Compliance context?"* to let the Co-Pilot reuse data already captured during verification. Only successfully extracted and verified fields are shared; anything not captured is excluded automatically.
- **Co-Pilot in ongoing monitoring**: when ongoing monitoring is enabled, you can have the Co-Pilot re-run on cases that receive updates, at one of four frequencies: instantly (on a new hit or update), daily, weekly, or monthly.
- **Risk-change alerts**: notify analysts when the Co-Pilot detects a risk change, by email or webhook.
**Info**
Advisory only
The Co-Pilot does not make final determinations or define AML policy. All outputs are advisory and subject to human review and override.
### Custom Risk Scoring Engine
The Custom Risk Scoring Engine lets you define your own risk-assessment criteria instead of relying on a fixed model. Risk configuration defines threshold ranges across three levels, **Low**, **Medium**, and **High**, with a decision assigned to each level.
Scoring is distributed across three components:
| Component | What it scores |
| --- | --- |
| **Country** | One or more countries assigned a custom risk score |
| **Category** | AML watchlist categories scored by the risk they carry in your context |
| **Criminal Records** | Entities convicted by a court, and entities with a criminal penalty enforced |
Each component is assigned a weightage that determines its proportional contribution, and the three weightages **must total 100%**, keeping the model balanced and complete.
**Info**
Risk decision is separate from the verification decision
The detected risk level and its associated risk decision are returned **separately** from the main verification decision (accepted or declined). Treat the risk level as a parallel signal for your compliance workflow rather than the verification outcome itself.
### Case Management
Case Management provides a structured, fully auditable workflow for reviewing and resolving screening results.
- **Case assignment**: every screening result becomes a case, assigned to the admin by default and reassignable to secondary team members. Assignees are notified by email and in the Back Office.
- **Comments**: added at the **report level** (whole report) or **entity level** (a specific entity), with support for tagging team members and attaching files.
- **Activity logs**: a complete history per case: creation time, report-viewed events, assignee changes, and status changes with timestamps.
- **Case resolution**: every case opens with a status of **potential match** by default. Assignees review the case and update the status to mark it a **true positive** or **false positive**.
- **Alerts and notifications**: assignees are notified instantly, in the Back Office and by email, on assignment and unassignment.
**Note**
Only users with the appropriate role and permissions can update a case's resolution status. All status changes are recorded in the Activity Log for full auditability.
---
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/business_identification_risk/business_aml_screening/onsite.md
In On-site verification, Shufti directly interacts with the end-user, managing data collection to facilitate AML checks.
## Parameters and Description
| Parameters | Description |
|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| business_name | Required: **Yes** Type: **string** Max: **255 Characters** This parameter receives the business name to run it against the AML list. Example: Shufti Pro Ltd |
| business_incorporation_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** This parameter receives the incorporation date of the business to run it against the AML list. Example: 2016-01-01 |
| biometric_search_image | Required: **No** Type: **string** Format: **Base64 encoded JPG, JPEG, PNG** Maximum: **5MB (decoded)** A base64-encoded facial image of the business representative or subject being screened. Used for biometric matching against records across connected AML databases to improve the accuracy of match assessments. |
| ongoing | Required: **No** Accepted values: **0, 1** Default: **0** This Parameter is used for Ongoing AML Screening, and is allowed only on **Production Accounts**. If Shufti detects a change in AML statuses, then we will send you a webhook with event **verification.status.changed**. The new AML status can be checked using get status endpoint, or from the back-office. |
| ongoing_adverse_media | Required: **No** Accepted values: **0, 1** Default: **0** This parameter enables Ongoing Adverse Media Monitoring and is allowed only on **Production Accounts**. When set to **1**, Shufti continuously monitors for changes in adverse media status and sends a webhook with event **verification.status.changed** when a change is detected. **Note:** This parameter only takes effect when **adverse-media** is included in the `filters` array. |
| filters | Required: **No** Type: **Array** Default: **["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4", "adverse-media"]** This key includes specific filter types, namely, alert or warning, that are linked to the AML search. Use these filters within the search to refine and narrow down the results. |
| match_score | Required: **No** Type: **String** match_score indicates the extent to which a search should accommodate variances between the search term and the terms being matched. A value of 0 signifies a loose match, while 100 indicates an exact match. **Note:** It ranges from 0-100. By default value is 100.**Example:** "100". |
| risk_score_engine_id | Required: **No** Type: **string** The ID of a custom risk-scoring engine to apply to the screening results. If none is provided, the default risk-scoring engine is applied. See [Custom Risk Scoring Engine](/docs/business_identification_risk/business_aml_screening/how_it_works#custom-risk-scoring-engine). |
| countries | Required: **No** Type: **Array** Array of countries based on which you want to filters reports. See [Countries](../../coverage/countries#aml-for-users--aml-for-businesses). **Note:** ISO 3166-1 alpha-2 country codes are supported. **Example:** ['CA','IN'] |
| alias_search | Required: **No** Type: **Boolean** Alias search is used to specify whether user want to perform search within aliases or not. **Note:** The default value of alias_search is '0'.**Example:** "0". |
| rca_search | Required: **No** Type: **Boolean** RCA search is used to specify whether user want to perform search within rca or not. **Note:** The default value of rca_search is '0'.**Example:** "0". |
| unique_id | Required: **No** Type: **string** A unique identification number of the business, such as a company registry number, tax identification number, or business registration number, used to prioritise the most relevant records in the search results. |
| individual_face | Required: **No** Type: **string** Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** A facial image of the individual being screened, submitted as a biometric input to match against records across connected AML databases and improve the accuracy of match assessments. |
| context | Required: **No** Type: **string** Additional information about the subject being screened, provided by the merchant to give the AI Compliance Agent richer context for a more accurate and targeted match assessment. |
## Request Payload
[](https://god.gw.postman.com/run-collection/9386910-8e5efdf4-0132-469d-9f17-ef2a4156b79d?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-8e5efdf4-0132-469d-9f17-ef2a4156b79d%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**http**
```json title=AML-for-businesses-service-sample-object
//POST / HTTP/1.1 basic auth
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"aml_for_businesses": {
"business_name": "",
"business_incorporation_date": "",
"ongoing": "0",
"alias_search": "0",
"rca_search": "0",
"unique_id": "",
"individual_face": "",
"context": "",
"match_score": "100",
"countries": [ "gb", "cy"],
"filters": ["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4"]
}
}
```
**javascript**
```javascript title=AML-for-businesses-service-sample-object
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
redirect_url : "https://yourdomain.com/site/sp-redirect",
country : "GB",
language : "EN",
verification_mode : "any",
ttl : 60,
aml_for_businesses: {
business_name: " ",
business_incorporation_date: " ",
ongoing: "0",
alias_search: "0",
rca_search: "0",
unique_id : "",
individual_face : "",
context : "",
match_score: "100",
countries: ["gb", "cy"],
filters: ["sanction", "fitness-probity", "warning", "pep"]
}
}
// BASIC AUTH TOKEN
// Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); // BASIC AUTH TOKEN
// if Access Token
// var token = "YOUR_ACCESS_TOKEN";
// Dispatch request via fetch API or with whatever else best suits you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' + token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
})
```
**php**
```php title=AML-for-businesses-service-sample-object
'SP_REQUEST_' . rand(),
'callback_url' => 'https://yourdomain.com/profile/sp-notify-callback',
'redirect_url' => 'https://yourdomain.com/site/sp-redirect',
'country' => 'GB',
'language' => 'EN',
'verification_mode' => 'any',
'ttl' => 60,
'aml_for_businesses' => [
'business_name' => ' ',
'business_incorporation_date' => ' ',
'ongoing' => '0',
'alias_search' => '0',
'rca_search' => '0',
'unique_id' => '',
'individual_face' => '',
'context' => '',
'match_score' => "100",
'countries' => ['gb', 'cy'],
'filters' => ['sanction', 'fitness-probity', 'warning', 'pep']
]
];
$auth = $client_id . ':' . $secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($payload);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
$response_data = $body;
$decoded_response = json_decode($response_data, true);
return $decoded_response;
?>
```
**py**
```py title=AML-for-businesses-service-sample-object
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
client_id = 'YOUR_CLIENT_ID'
secret_key = 'YOUR_SECRET_KEY'
payload = {
'reference': f'SP_REQUEST_{randint(1000, 9999)}',
'callback_url': 'https://yourdomain.com/profile/sp-notify-callback',
'redirect_url': 'https://yourdomain.com/site/sp-redirect',
'country': 'GB',
'language': 'EN',
'verification_mode': 'any',
'ttl': 60,
'aml_for_businesses': {
'business_name': ' ',
'business_incorporation_date': ' ',
'ongoing': '0',
'alias_search': '0',
'rca_search': '0',
'unique_id': '',
'individual_face': '',
'context': '',
'match_score': "100",
'countries': ['gb', 'cy'],
'filters': ['sanction', 'fitness-probity', 'warning', 'pep']
}
}
auth = f'{client_id}:{secret_key}'
b64Val = auth.encode('ascii').hex()
headers = {
'Content-Type': 'application/json',
'Authorization': f'Basic {b64Val}'
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
sp_signature = response.headers.get('Signature', '')
json_response = response.json()
if sp_signature == calculated_signature:
return json_response
```
**ruby**
```rb title=AML-for-businesses-service-sample-object
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
client_id = "YOUR_CLIENT_ID"
secret_key = "YOUR_SECRET_KEY"
payload = {
"reference" => "SP_REQUEST_#{rand(1000..9999)}",
"callback_url" => "https://yourdomain.com/profile/sp-notify-callback",
"redirect_url" => "https://yourdomain.com/site/sp-redirect",
"country" => "GB",
"language" => "EN",
"verification_mode" => "any",
"ttl" => 60,
"aml_for_businesses" => {
"business_name" => " ",
"business_incorporation_date" => " ",
"ongoing" => "0",
"alias_search" => "0",
"rca_search" => "0",
"unique_id" => "",
"individual_face" => "",
"context" => "",
"match_score" => "100",
"countries" => ["gb", "cy"],
"filters" => ["sanction", "fitness-probity", "warning", "pep"]
}
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
auth = Base64.strict_encode64("#{client_id}:#{secret_key}")
request["Authorization"] = "Basic #{auth}"
request.body = payload.to_json
response = http.request(request)
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = Digest::SHA256.hexdigest secret_key
calculated_signature = Digest::SHA256.hexdigest response.read_body + secret_key
sp_signature = response['Signature']
json_response = JSON.parse(response.read_body)
if sp_signature == calculated_signature
return json_response
end
```
**java**
```java title=AML-for-businesses-service-sample-object
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\"aml_for_businesses\":{\"business_name\":\" \",\"business_incorporation_date\":\" \",\"ongoing\":\"0\",\"alias_search\":\"0\",\"rca_search\":\"0\",\"match_score\":\"100\",\"countries\":[\"gb\",\"cy\"],\"filters\":[\"sanction\",\"fitness-probity\",\"warning\",\"pep\"]}}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL title=AML-for-businesses-service-sample-object
curl --location --request POST 'https://api.shuftipro.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url": "http://www.example.com",
"ttl" : 60,
"verification_mode" : "any",
"aml_for_businesses": {
"business_name": " ",
"business_incorporation_date": " ",
"ongoing": "0",
"alias_search": "0",
"rca_search": "0",
"unique_id": "",
"individual_face": "",
"context": "",
"match_score": "100",
"countries": ["gb", "cy"],
"filters": ["sanction", "fitness-probity", "warning", "pep"]
}
}'
```
**c#**
```c title=AML-for-businesses-service-sample-object
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""http://www.example.com/""," + "\n" +
@" ""email"" : ""johndoe@example.com""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""redirect_url"": ""http://www.example.com""," + "\n" +
@" ""ttl"" : 60," + "\n" +
@" ""verification_mode"" : ""any""," + "\n" +
@" ""aml_for_businesses"" : {" + "\n" +
@" ""business_name"" : "" ""," + "\n" +
@" ""business_incorporation_date"": "" ""," + "\n" +
@" ""ongoing"" : ""0""," + "\n" +
@" ""alias_search"" : ""0""," + "\n" +
@" ""rca_search"" : ""0""," + "\n" +
@" ""unique_id"" : """"," + "\n" +
@" ""individual_face"": """"," + "\n" +
@" ""context"" : """"," + "\n" +
@" ""match_score"" : "100"," + "\n" +
@" ""countries"" : [""gb"",""cy""]," + "\n" +
@" ""filters"" : [""sanction"",""fitness-probity"",""warning"",""pep""]" + "\n" +
@" }" + "\n"
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go title=AML-for-businesses-service-sample-object
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url": "http://www.example.com",
"ttl" : 60,
"verification_mode" : "any",
"aml_for_businesses": {
"business_name": " ",
"business_incorporation_date": " ",
"ongoing": "0",
"alias_search": "0",
"rca_search": "0",
"unique_id": "",
"individual_face": "",
"context": "",
"match_score": "100",
"countries": ["gb", "cy"],
"filters": ["sanction", "fitness-probity", "warning", "pep"]
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
---
# Offsite Integration
Source: https://developers.shuftipro.com/docs/business_identification_risk/business_aml_screening/offsite.md
In the offsite verification process Shufti’s merchants are solely responsible for managing data collection and providing it to Shufti to facilitate AML checks.
## Parameters and Description
| Parameters | Description |
|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| business_name | Required: **Yes** Type: **string** Max: **255 Characters** This parameter receives the business name to run it against the AML list. Example: Shufti Pro Ltd |
| business_incorporation_date | Required: **No** Type: **string** Format: **yyyy-mm-dd** This parameter receives the incorporation date of the business to run it against the AML list. Example: 2016-01-01 |
| biometric_search_image | Required: **No** Type: **string** Format: **Base64 encoded JPG, JPEG, PNG** Maximum: **5MB (decoded)** A base64-encoded facial image of the business representative or subject being screened. Used for biometric matching against records across connected AML databases to improve the accuracy of match assessments. |
| ongoing | Required: **No** Accepted values: **0, 1** Default: **0** This Parameter is used for Ongoing AML Screening, and is allowed only on **Production Accounts**. If Shufti detects a change in AML statuses, then we will send you a webhook with event **verification.status.changed**. The new AML status can be checked using get status endpoint, or from the back-office. |
| ongoing_adverse_media | Required: **No** Accepted values: **0, 1** Default: **0** This parameter enables Ongoing Adverse Media Monitoring and is allowed only on **Production Accounts**. When set to **1**, Shufti continuously monitors for changes in adverse media status and sends a webhook with event **verification.status.changed** when a change is detected. **Note:** This parameter only takes effect when **adverse-media** is included in the `filters` array. |
| filters | Required: **No** Type: **Array** Default: **["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4", "adverse-media"]** This key includes specific filter types, namely, alert or warning, that are linked to the AML search. Use these filters within the search to refine and narrow down the results. |
| match_score | Required: **No** Type: **String** match_score indicates the extent to which a search should accommodate variances between the search term and the terms being matched. A value of 0 signifies a loose match, while 100 indicates an exact match. **Note:** It ranges from 0-100. By default value is 100.**Example:** "100". |
| risk_score_engine_id | Required: **No** Type: **string** The ID of a custom risk-scoring engine to apply to the screening results. If none is provided, the default risk-scoring engine is applied. See [Custom Risk Scoring Engine](/docs/business_identification_risk/business_aml_screening/how_it_works#custom-risk-scoring-engine). |
| countries | Required: **No** Type: **Array** Array of countries based on which you want to filters reports. See [Countries](../../coverage/countries#aml-for-users--aml-for-businesses). **Note:** ISO 3166-1 alpha-2 country codes are supported. **Example:** ['CA','IN'] |
| alias_search | Required: **No** Type: **Boolean** Alias search is used to specify whether user want to perform search within aliases or not. **Note:** The default value of alias_search is '0'.**Example:** "0". |
| rca_search | Required: **No** Type: **Boolean** RCA search is used to specify whether user want to perform search within rca or not. **Note:** The default value of rca_search is '0'.**Example:** "0". |
| unique_id | Required: **No** Type: **string** A unique identification number of the business, such as a company registry number, tax identification number, or business registration number, used to prioritise the most relevant records in the search results. |
| individual_face | Required: **No** Type: **string** Format: **JPG, JPEG, PNG, PDF** Maximum: **16MB** A facial image of the individual being screened, submitted as a biometric input to match against records across connected AML databases and improve the accuracy of match assessments. |
| context | Required: **No** Type: **string** Additional information about the subject being screened, provided by the merchant to give the AI Compliance Agent richer context for a more accurate and targeted match assessment. |
## Request Payloads
[](https://god.gw.postman.com/run-collection/9386910-be59a0f3-157e-4c7f-9073-ad8895b9b559?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-be59a0f3-157e-4c7f-9073-ad8895b9b559%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
**http**
```json title=AML-for-businesses-service-sample-object
//POST / HTTP/1.1 basic auth
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"aml_for_businesses": {
"business_name": "ShuftiPro",
"business_incorporation_date": "2016-01-01",
"ongoing": "0",
"alias_search": "0",
"rca_search": "0",
"unique_id": "",
"individual_face": "",
"context": "",
"match_score": "100",
"countries": [ "gb", "cy"],
"filters": ["sanction", "warning", "fitness-probity", "pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4"]
}
}
```
**javascript**
```javascript title=AML-for-businesses-service-sample-object
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
redirect_url : "https://yourdomain.com/site/sp-redirect",
country : "GB",
language : "EN",
verification_mode : "any",
ttl : 60,
aml_for_businesses: {
business_name: "Shufti Pro Ltd",
business_incorporation_date: "2016-01-01",
ongoing: "0",
alias_search: "0",
rca_search: "0",
unique_id : "",
individual_face : "",
context : "",
match_score: "100",
countries: ["gb", "cy"],
filters: ["sanction", "fitness-probity", "warning", "pep"]
}
}
// BASIC AUTH TOKEN
// Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); // BASIC AUTH TOKEN
// if Access Token
// var token = "YOUR_ACCESS_TOKEN";
// Dispatch request via fetch API or with whatever else best suits you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' + token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
})
```
**php**
```php title=AML-for-businesses-service-sample-object
'SP_REQUEST_' . rand(),
'callback_url' => 'https://yourdomain.com/profile/sp-notify-callback',
'redirect_url' => 'https://yourdomain.com/site/sp-redirect',
'country' => 'GB',
'language' => 'EN',
'verification_mode' => 'any',
'ttl' => 60,
'aml_for_businesses' => [
'business_name' => 'Shufti Pro Ltd',
'business_incorporation_date' => '2016-01-01',
'ongoing' => '0',
'alias_search' => '0',
'rca_search' => '0',
'unique_id' => '',
'individual_face' => '',
'context' => '',
'match_score' => "100",
'countries' => ['gb', 'cy'],
'filters' => ['sanction', 'fitness-probity', 'warning', 'pep']
]
];
$auth = $client_id . ':' . $secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($payload);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
$response_data = $body;
$decoded_response = json_decode($response_data, true);
return $decoded_response;
?>
```
**py**
```py title=AML-for-businesses-service-sample-object
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
client_id = 'YOUR_CLIENT_ID'
secret_key = 'YOUR_SECRET_KEY'
payload = {
'reference': f'SP_REQUEST_{randint(1000, 9999)}',
'callback_url': 'https://yourdomain.com/profile/sp-notify-callback',
'redirect_url': 'https://yourdomain.com/site/sp-redirect',
'country': 'GB',
'language': 'EN',
'verification_mode': 'any',
'ttl': 60,
'aml_for_businesses': {
'business_name': 'Shufti Pro Ltd',
'business_incorporation_date': '2016-01-01',
'ongoing': '0',
'alias_search': '0',
'rca_search': '0',
'unique_id': '',
'individual_face': '',
'context': '',
'match_score': "100",
'countries': ['gb', 'cy'],
'filters': ['sanction', 'fitness-probity', 'warning', 'pep']
}
}
auth = f'{client_id}:{secret_key}'
b64Val = auth.encode('ascii').hex()
headers = {
'Content-Type': 'application/json',
'Authorization': f'Basic {b64Val}'
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
sp_signature = response.headers.get('Signature', '')
json_response = response.json()
if sp_signature == calculated_signature:
return json_response
```
**ruby**
```rb title=AML-for-businesses-service-sample-object
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
client_id = "YOUR_CLIENT_ID"
secret_key = "YOUR_SECRET_KEY"
payload = {
"reference" => "SP_REQUEST_#{rand(1000..9999)}",
"callback_url" => "https://yourdomain.com/profile/sp-notify-callback",
"redirect_url" => "https://yourdomain.com/site/sp-redirect",
"country" => "GB",
"language" => "EN",
"verification_mode" => "any",
"ttl" => 60,
"aml_for_businesses" => {
"business_name" => "Shufti Pro Ltd",
"business_incorporation_date" => "2016-01-01",
"ongoing" => "0",
"alias_search" => "0",
"rca_search" => "0",
"unique_id" => "",
"individual_face" => "",
"context" => "",
"match_score" => "100",
"countries" => ["gb", "cy"],
"filters" => ["sanction", "fitness-probity", "warning", "pep"]
}
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
auth = Base64.strict_encode64("#{client_id}:#{secret_key}")
request["Authorization"] = "Basic #{auth}"
request.body = payload.to_json
response = http.request(request)
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = Digest::SHA256.hexdigest secret_key
calculated_signature = Digest::SHA256.hexdigest response.read_body + secret_key
sp_signature = response['Signature']
json_response = JSON.parse(response.read_body)
if sp_signature == calculated_signature
return json_response
end
```
**java**
```java title=AML-for-businesses-service-sample-object
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\"aml_for_businesses\":{\"business_name\":\"Shufti Pro Ltd\",\"business_incorporation_date\":\"2016-01-01\",\"ongoing\":\"0\",\"alias_search\":\"0\",\"rca_search\":\"0\",\"match_score\":"100",\"countries\":[\"gb\",\"cy\"],\"filters\":[\"sanction\",\"fitness-probity\",\"warning\",\"pep\"]}}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL title=AML-for-businesses-service-sample-object
curl --location --request POST 'https://api.shuftipro.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url": "http://www.example.com",
"ttl" : 60,
"verification_mode" : "any",
"aml_for_businesses": {
"business_name": "Shufti Pro Ltd",
"business_incorporation_date": "2016-01-01",
"ongoing": "0",
"alias_search": "0",
"rca_search": "0",
"unique_id": "",
"individual_face": "",
"context": "",
"match_score": "100",
"countries": ["gb", "cy"],
"filters": ["sanction", "fitness-probity", "warning", "pep"]
}
}'
```
**c#**
```c title=AML-for-businesses-service-sample-object
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""http://www.example.com/""," + "\n" +
@" ""email"" : ""johndoe@example.com""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""redirect_url"": ""http://www.example.com""," + "\n" +
@" ""ttl"" : 60," + "\n" +
@" ""verification_mode"" : ""any""," + "\n" +
@" ""aml_for_businesses"" : {" + "\n" +
@" ""business_name"" : ""Shufti Pro Ltd""," + "\n" +
@" ""business_incorporation_date"": ""2016-01-01""," + "\n" +
@" ""ongoing"" : ""0""," + "\n" +
@" ""alias_search"" : ""0""," + "\n" +
@" ""rca_search"" : ""0""," + "\n" +
@" ""unique_id"" : """"," + "\n" +
@" ""individual_face"": """"," + "\n" +
@" ""context"" : """"," + "\n" +
@" ""match_score"" : "100"," + "\n" +
@" ""countries"" : [""gb"",""cy""]," + "\n" +
@" ""filters"" : [""sanction"",""fitness-probity"",""warning"",""pep""]" + "\n" +
@" }" + "\n"
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go title=AML-for-businesses-service-sample-object
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url": "http://www.example.com",
"ttl" : 60,
"verification_mode" : "any",
"aml_for_businesses": {
"business_name": "Shufti Pro Ltd",
"business_incorporation_date": "2016-01-01",
"ongoing": "0",
"alias_search": "0",
"rca_search": "0",
"unique_id": "",
"individual_face": "",
"context": "",
"match_score": "100",
"countries": ["gb", "cy"],
"filters": ["sanction", "fitness-probity", "warning", "pep"]
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
---
# Match Results
Source: https://developers.shuftipro.com/docs/business_identification_risk/business_aml_screening/match_results.md
For every record returned, Shufti reports the **degree of correlation** between the screened business's details and the watchlist entry, so you can see exactly why a record was surfaced. These match types appear on each hit in the [response](/docs/business_identification_risk/business_aml_screening/responses) and explain the basis of the match, from exact to phonetic to synonym-based.
### Match types {#match-types}
| Field | Meaning |
| --- | --- |
| `name_exact` | Matched the entity name exactly. |
| `aka_exact` | Matched an entity AKA (also known as) entry exactly. |
| `name_fuzzy` | Matched the name closely, but at least one word had an edit-distance change. |
| `aka_fuzzy` | Matched an AKA name closely, but at least one word had an edit-distance change. |
| `phonetic_name` | Matched the entity name phonetically. |
| `phonetic_aka` | Matched an entity AKA phonetically. |
| `equivalent_name` | Matched the entity name via a synonym, e.g. *Robert Mugabe* → *Bob Mugabe*. |
| `equivalent_aka` | Matched an entity AKA via a synonym, e.g. *Robert Mugabe* → *Bob Mugabe*. |
| `unknown` | Matched for a more complex reason, such as an acronym. |
| `year_of_birth` | Matched the birth year given in filters; can be the exact year ±1 year depending on fuzziness and options. |
| `removed_personal_title` | A personal title (e.g. *Mrs*) was stripped from the search term. |
| `removed_personal_suffix` | A personal suffix (e.g. *PhD*) was stripped from the search term. |
| `removed_organisation_prefix` | An organization prefix (e.g. *JSC*) was stripped from the search term. |
| `removed_organisation_suffix` | An organization suffix (e.g. *Ltd*) was stripped from the search term. |
| `removed_clerical_mark` | A clerical mark (e.g. *DECEASED*) was stripped from the search term. |
**Tip**
For businesses, the `removed_organisation_prefix` and `removed_organisation_suffix` types are common: entity suffixes like *Ltd*, *LLC*, or *JSC* are stripped before matching so that *Al Ajmi Trading LLC* and *Al Ajmi Trading* resolve to the same record.
---
---
# Responses
Source: https://developers.shuftipro.com/docs/business_identification_risk/business_aml_screening/responses.md
```json title=AML-for-businesses-service-sample-response
{
"reference": "***********",
"event": "verification.declined",
"country": null,
"proofs": {
"verification_report": "https://ns.shuftipro.com/api/pea/****************************",
"access_token": "generated_access_token"
},
"verification_data": {
"aml_for_businesses": {
"business_name": "Aramco Ltd",
"business_incorporation_date": "2017-05-01",
"aml_data": {
"filters": [
"Sanctions",
"Warnings and Regulatory Enforcement",
"Fitness and Probity",
"PEP",
"PEP Level 1",
"PEP Level 2",
"PEP Level 3",
"PEP Level 4"
],
"hits": [
{
"name": "Warmech Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "10703796",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"For further details contact Evie Currie on 01782 394500 or at evie.currie@currieyoung.com"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armex Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03223393",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further information about this case is available from James Annerson at the offices of Seneca Insolvency Practitioners on 01629 761700 or at james.annerson@seneca-ip.co.uk."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armex Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03223393",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE IS GIVEN under rule 14.29 of The Insolvency (England and Wales) Rules 2016, by John Hedger, the liquidator of the Company, intends declaring a first and final dividend to the non-preferential unsecured creditors within two months of the last date for proving specified below. , Creditors who have not already proved are required, on or before 29 June 2023, the last date for proving, to submit a proof of debt to me at Seneca IP Limited, Speedwell Mill, Old Coach Road, Tansley, Matlock, DE4 5FY and, if so requested by me, to provide such further details or produce such documentary or other evidence as may appear to be necessary. A creditor who has not proved his debt before the date specified above is not entitled to disturb the dividend because he has not participated in it. , For further details contact James Annerson on 01629 761700 or at james.annerson@seneca-ip.co.uk, Dated this 1st day of June 2023"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armex Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03223393",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"For further details contact James Annerson by email at james.annerson@seneca-ip.co.uk or by phone on 01629 761700."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armex Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03223393",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is given by John Hedger that decisions are to be sought from the creditors of the above-named Company to approve the Administrator's proposals and to form a committee, and if one is not formed, to seek decisions approving the Administrator's pre-administration costs, fixing the Administrators' remuneration and approving the Administrator's category 2 disbursements. , In order for their votes to be counted creditors must submit their completed voting form so that it is received at Seneca IP Limited, Speedwell Mill, Old Coach Road, Tansley, Matlock, DE4 5FY by no later than 23.59 hours on 21 May 2019, the decision date. It must be accompanied by proof of their debt, (if not already lodged). Failure to do so will lead to their vote(s) being disregarded. , Administrator: John Hedger (IP No 9601) of Seneca IP Limited, Speedwell Mill. Old Coach Road, Tansley, Matlock DE4 5FY. , Date of appointment: 3 April 2019, For further details contact James Annerson on telephone 01629 761700, or by email at james.annerson@seneca-ip.co.uk , Dated: 29 April 2019"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Snc Armagh Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI45995",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"A petition to wind up the above-named company of Dobbin Lane Car Park, Armagh, BT61 7II presented on 23 October 2015 by the DEPARTMENT OF FINANCE AND PERSONNEL, LAND & PROPERTY SERVICES (RATING), 3rd Floor, Lanyon Plaza, Lanyon Place, Belfast, BT1 3LP claiming to be a creditor of the company will be heard at The Royal Courts of Justice, Chichester Street, Belfast, BT1 3JE, , On Thursday, Date 10 December 2015, Time 1000 hours, (or as soon thereafter as the petition can be heard), Any person intending to appear on the hearing of the petition (whether to support or oppose it) must give notice of intention to do so to the petitioner or its solicitor in accordance with Rule 4.016 by 16.00 hours on 9 December 2015."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euramco Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "02543586",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"For further details contact Harry Carter on 020 8559 5093 or at harry.carter@carterclark.co.uk"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euramco Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "02543586",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a general meeting of the above-named company, duly convened, and held at Recovery House, Hainault Business Park, 15-17 Roebuck Road, Ilford, Essex IG6 3TU on 4 June 2021, the following resolutions were passed: , Special resolution, “That the company be wound up voluntarily.”, Ordinary resolution, “That Alan J Clark of Carter Clark, Recovery House, 15-17 Roebuck Road, Hainault Business Park, Ilford, Essex IG6 3TU be and is hereby appointed Liquidator for the purpose of such winding up.” , For further details contact Harry Carter on 020 8559 5093 or at harry.carter@carterclark.co.uk, Dated: 4 June 2021"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramco Trading Limited",
"entity_type": ["Organization"],
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "Ibrahim"
},
{
"name": "Mohammed Ahmed"
},
{
"name": "Mohammed Khalifa"
}
],
"fields": {
"Address": [
{
"value": "London,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
}
],
"Category": [
{
"value": "PEP",
"source": "",
"tag": "category"
}
],
"Entity Type": [
{
"value": "Organization",
"source": "",
"tag": "entity_type"
}
],
"Nationality": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "nationality"
}
],
"Place Of Registration": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "place_of_registration"
}
]
},
"media": [],
"source_notes": {
"age": [],
"age_as_of": [],
"comment": ["Aug 2020 - no further information reported"],
"identification_remarks": [
"Company Number:11912176. LEI:213800KMNWBPZQNTNY04"
]
},
"sources": [
"Shufti Internal Database",
"Shufti Internal Database",
"Shufti Internal Database",
"Shufti Internal Database",
"Shufti Internal Database",
"Shufti Internal Database"
],
"types": ["PEP"]
},
{
"name": "Tekvar Armagan",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Signature Care Home, 6 Victoria Drive, Wimbledon, London (formerly of Flat 66 Whitelands\n House, Cheltenham Terrace, London SW3 4QZ)",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2020-04-10",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Oil Co. Ltd.",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI024550",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE IS HEREBY GIVEN pursuant to Article 92 of The Insolvency (Northern Ireland) Order 1989 that a final meeting of the members of the Company will be held at Cavanagh Kelly, Chartered Accountants and Licensed Insolvency Practitioners, 36 - 38 Northland Row, Dungannon, Co. Tyrone, BT71 6AP on 3 November 2017 at 11.00am to be followed by the final meeting of the creditors at 11.15am for the purpose of having an account laid before them by the Liquidator showing the manner in which the winding-up of the Company has been conducted and property of the Company has been disposed of, and of hearing any explanation that may be given by the Liquidator. The following resolutions will be considered at the creditors’ meeting: 1. That the Liquidator’s receipts and payments account be approved. 2. That the Liquidator receives her release. 3. That the books and records of the Company be destroyed by the Liquidator 1 year after her release. A person entitled to attend and vote at the above meeting may appoint a proxy to attend and vote instead of him. Proxies, if intended to be used, must be lodged at the address shown above no later than 12 noon on 2 November 2017. Date: 1 September 2017"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "ALBA CORPORATE ENTERPRISES LIMITED"
}
],
"fields": {
"Address": [
{
"value": "ALBA CORPORATE ENTERPRISES LIMITED 21D CHYTRON STREET 1075 NICOSIA CYPRUS *S.I.*",
"source": "",
"tag": "address"
}
],
"Country": [
{
"value": "Cyprus",
"source": "",
"tag": "country"
}
],
"Dissolution Date": [
{
"value": "1998-12-31",
"source": "",
"tag": "dissolution_date"
}
],
"Inactive Date": [
{
"value": "1998-11-13",
"source": "",
"tag": "inactive_date"
}
],
"Incorporation Date": [
{
"value": "1991-05-16",
"source": "",
"tag": "incorporation_date"
}
],
"Jurisdiction": [
{
"value": "Bahamas",
"source": "",
"tag": "jurisdiction"
}
],
"Status": [
{
"value": "Defaulted",
"source": "",
"tag": "status"
}
]
},
"media": [],
"source_notes": {
"country_codes": ["CYP"],
"dorm_date": [],
"ibcRUC": ["5187-B"],
"notes_remarks": [],
"original_name": ["ARMAGH LIMITED"],
"service_provider": ["Mossack Fonseca"],
"source_url": [
"https://offshoreleaks-data.icij.org/offshoreleaks/csv/full-oldb.LATEST.zip"
],
"valid_until": ["The Panama Papers data is current through 2015"]
},
"sources": ["ICIJ Offshore Leaks Database"],
"types": []
},
{
"name": "Maksim Yuryevich Ermakov",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Gender": [
{
"value": "Male",
"source": "",
"tag": "gender"
}
]
},
"media": [],
"source_notes": {
"business_registration_number": [],
"last_updated": ["2023-11-08"],
"ofsi_group_id": ["16194"],
"other_information": [],
"un_reference_number": []
},
"sources": ["GOV UK", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramak Consultancy Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05945572",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notification of written resolutions of the above-named Company proposed by the directors and having effect as a Special Resolution and as an Ordinary Resolution respectively pursuant to the provisions of Part 13 of the Companies Act 2006. Circulation Date: on 25 January 2017, Effective Date: on 25 January 2017. I, the undersigned, being a director of the Company hereby certify that the following written resolutions were circulated to all eligible members of the Company on the Circulation Date and that the written resolutions were passed on the Effective Date: , “That the Company be wound up voluntarily and that Julian N R Pitts, (IP No. 007851) and Nicholas E Reed, (IP No. 008639) both of Begbies Traynor (Central) LLP, Fourth Floor, Toronto Square, Toronto Street, Leeds, LS1 2HJ be and are hereby appointed as Joint Liquidators for the purposes of such winding up and that any power conferred on them by law or by this resolution, may be exercised and any act required or authorised under any enactment to be done by them, may be done by them jointly or by each of them alone.” , Any person who requires further information may contact the Joint Liquidators by telephone on 0113 244 0044. Alternatively enquiries can be made to Amelia Blythe by e-mail at amelia.blythe@begbies-traynor.com or by telephone on 0113 244 0044., Ag EF103320"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramak Consultancy Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05945572",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Any person who requires further information may contact the Joint Liquidators by telephone on 0113 244 0044. Alternatively enquiries can be made to Amelia Blythe by e-mail at amelia.blythe@begbies-traynor.com or by telephone on 0113 244 0044., Ag EF103320"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramak Consultancy Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05945572",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"The Company was placed into members’ voluntary liquidation on 25 January 2017 and on the same date, Julian N R Pitts and Nicholas E Reed both of Begbies Traynor (Central) LLP, Fourth Floor, Toronto Square, Toronto Street, Leeds LS1 2HJ were appointed as Joint Liquidators of the Company. Notice is hereby given that the Creditors of the Company are required, on or before 22 February 2017 to send in their names and addresses, particulars of their debts or claims and the names and addresses of their solicitors (if any) to the undersigned Julian N R Pitts of Begbies Traynor (Central) LLP, 4th Floor, Toronto Square, Toronto Street, Leeds LS1 2HJ the Joint Liquidator of the Company and, if so required by notice in writing to prove their debts or claims at such time and place as shall be specified in such notice, or in default thereof shall be excluded from the benefit of any distribution made before such debts are proved. , This notice is purely formal, the Company is able to pay all its known creditors in full. , Office Holder details: Julian N R Pitts, (IP No. 007851) and Nicholas E Reed, (IP No. 008639) both of Begbies Traynor (Central) LLP, Fourth Floor, Toronto Square, Toronto Street, Leeds, LS1 2HJ. , Any person who requires further information may contact the Joint Liquidators by telephone on 0113 244 0044. Alternatively enquiries can be made to Amelia Blythe by e-mail at amelia.blythe@begbies-traynor.com or by telephone on 0113 244 0044., Ag EF103320"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armchair Golf Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "08395097",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further details contact: Stephen Ryman, Email: rymans@shipleys.com, Tel: 020 7766 8560."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armchair Golf Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "08395097",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given in pursuance of Section 94 of the Insolvency Act 1986, that a Final Meeting of the Members of the above named Company will be held at the offices of Shipleys LLP, 10 Orange Street, Haymarket, London, WC2H 7DQ, on 23 September 2016 at 10.00 am, for the purpose of having an account laid before it, showing the manner in which the winding-up has been conducted and the property of the Company disposed of and of hearing any explanation that may be given by the Liquidator. , Any member entitled to attend and vote is entitled to appoint a proxy to attend and vote instead of him/her, and such proxy need not also be a member. The proxy form must be returned to the above address by no later than 12 noon on the business day before the meeting. In the case of a company having a share capital, a member may appoint more than one proxy in relation to a meeting, provided that each proxy is appointed to exercise the rights attached to a different share or shares held by him, or (as the case may be) to a different £10, or multiple of £10, of stock held by him. , Date of appointment: 13 February 2015, Office Holder details: Stephen Blandford Ryman, (IP No. 4731) of Shipleys LLP, 10 Orange Street, Haymarket, London, WC2H 7DQ , For further details contact: S B Ryman. Email: rymans@shipleys.com or Tel: 020 7766 8560. Alternative contact: Gilda Rochester"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramco Overseas Company Uk Limited",
"entity_type": ["Organization"],
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "Talal Hussain"
},
{
"name": "Mohammed Lafi"
}
],
"fields": {
"Address": [
{
"value": "London,Greater London,UNITED KINGDOM",
"source": "",
"tag": "address"
}
],
"Category": [
{
"value": "PEP",
"source": "",
"tag": "category"
}
],
"Entity Type": [
{
"value": "Organization",
"source": "",
"tag": "entity_type"
}
],
"Nationality": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "nationality"
}
],
"Place Of Registration": [
{
"value": "UNITED KINGDOM",
"source": "",
"tag": "place_of_registration"
}
]
},
"media": [],
"source_notes": {
"age": [],
"age_as_of": [],
"comment": ["Jan 2020 - no further information reported."],
"identification_remarks": ["Company Number (CH): 06428615."]
},
"sources": [
"Shufti Internal Database",
"Shufti Internal Database",
"Shufti Internal Database",
"Shufti Internal Database",
"Shufti Internal Database"
],
"types": ["PEP"]
},
{
"name": "Armchair Golf Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "08395097",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General Meeting of the above-named Company, duly convened and held at the office of Shipleys LLP, 10 Orange Street, Haymarket, London, WC2H 7DQ, on 13 February 2015, the subjoined Special Resolution was duly passed: , “That the Company be wound-up voluntarily and that Stephen Ryman, of Shipleys LLP, 10 Orange Street, Haymarket, London, WC2H 7DQ, (IP No 4731) be hereby appointed Liquidator for the purposes of such winding-up.” , Further details contact: Stephen Ryman, Email: rymans@shipleys.com, Tel: 020 7766 8560."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Wermig Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07363869",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General meeting of the above named Company duly convened and held at Regus House, Malthouse Avenue, Cardiff Gate Business Park, Cardiff, CF23 8RU on 27 March 2015 the following resolutions were duly passed as a special and an ordinary resolution respectively. , “That it has been resolved by special resolution that the Company be wound up voluntarily and that Steven Peter Ford, of S P Ford & Co Limited, 2 Spring Close, Lutterworth, Leicestershire, LE17 4DD, (IP Nos 9387) be and is hereby appointed Liquidator for the purpose of the winding up.” , For further details contact: Steven Ford email: steve@spford.co.uk, Tel: 01455 699737"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Concrete Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Aspire Business Solutions Limited, Unit 34 Ballymena Business Centre, 62 Fenaghy Road,\n Ballymena, County Antrim, BT42 1FL",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "NI016580",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Final Date For Submission: 30 December 2016., Notice is hereby given, pursuant to Rule 4.192 of the Insolvency Rules (Northern Ireland) 1991, that the liquidator of the Companies named above (all in members' voluntary liquidation) intends to make final distributions to creditors. Creditors are required to prove their debts on or before the final date for submission specified in this notice by sending full details of their claims to the liquidator. Creditors must also, if so requested by the liquidator, provide such further details and documentary evidence to support their claims as the liquidator deems necessary. , The intended distributions are final distributions and may be made without regard to any claims not proved by the final date for submission specified in this notice. Any creditor who has not proved his debt by that date, or who increases the claim in his proof after that date, will not be entitled to disturb the intended final distributions. The liquidator intends that, after paying or providing for final distributions in respect of creditors who have proved their claims, all funds remaining in the liquidator’s hands following the final distributions to creditors shall be distributed to the shareholders of the Companies absolutely. , This notice refers to company numbers stated above, which are solvent., The Companies are able to pay all their known liabilities in full., Date of Appointment: 15 November 2016"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Concrete Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "3rd Floor Harvester House, 4-8 Adelaide Street, Belfast, BT2 8GE",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "NI016580",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Place of meetings: 1020 Eskdale Road, Winnersh, Wokingham, RG41 5TS., Date of meetings: 12 July 2017., Time of meetings: Commencing 10:30 am at 15 minute intervals. , Notice is hereby given, pursuant to Article 92 of the Insolvency (Northern Ireland) Order 1989, that final meetings of the companies will be held for the purpose of receiving the liquidators account of the winding up and of hearing any explanation given by the liquidator. , A member entitled to attend and vote may appoint a proxy to exercise all or any of his rights to attend and speak and vote in his place. A member may appoint more than one proxy, provided that each proxy is appointed to exercise the rights attached to a different share or shares held by him. A proxy must be deposited at the office of the liquidator not less than 48 hours before the time for holding the meeting (taking no account of weekend days or other non-business days). , Date of Appointment: 15 November 2016"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramix International Ltd.",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [
{
"name": "LAVECO LTD."
}
],
"fields": {
"Address": [
{
"value": "LAVECO LTD. 8 INOMENON ETHNON, DESPINA SOFIA COURT SECOND FLOOR, FLAT/OFFICE 202 P.C. 6042 LARNACA, CYPRUS *S.I.*",
"source": "",
"tag": "address"
}
],
"Country": [
{
"value": "Cyprus",
"source": "",
"tag": "country"
}
],
"Dissolution Date": [
{
"value": "2005-04-30",
"source": "",
"tag": "dissolution_date"
}
],
"Inactive Date": [
{
"value": "2005-05-03",
"source": "",
"tag": "inactive_date"
}
],
"Incorporation Date": [
{
"value": "2003-09-11",
"source": "",
"tag": "incorporation_date"
}
],
"Jurisdiction": [
{
"value": "British Virgin Islands",
"source": "",
"tag": "jurisdiction"
}
],
"Status": [
{
"value": "Defaulted",
"source": "",
"tag": "status"
}
]
},
"media": [],
"source_notes": {
"country_codes": ["CYP"],
"dorm_date": [],
"ibcRUC": ["559773"],
"notes_remarks": [],
"original_name": ["ARAMIX INTERNATIONAL LTD."],
"service_provider": ["Mossack Fonseca"],
"source_url": [
"https://offshoreleaks-data.icij.org/offshoreleaks/csv/full-oldb.LATEST.zip"
],
"valid_until": ["The Panama Papers data is current through 2015"]
},
"sources": ["ICIJ Offshore Leaks Database"],
"types": []
},
{
"name": "Wermig Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07363869",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Section 106 of the Insolvency Act 1986 that a final meeting of the members of Wermig Ltd will be held at 2 Spring Close, Lutterworth, Leicestershire, LE17 4DD on 04 November 2016 at 10.00 am to be followed at 10.15 am on the same day by a meeting of the creditors of the company. The meetings are called for the purpose of receiving an account from the Liquidator explaining the manner in which the winding-up of the company has been conducted and to receive any explanation that they may consider necessary. A member or creditor entitled to attend and vote is entitled to appoint a proxy to attend and vote instead of him. A proxy need not be a member or creditor. The following resolutions will be considered at the creditors’ meeting: That the Liquidator’s final report and receipts and payments account be approved and that the Liquidator receives his release. , Proxies to be used at the meetings must be returned to the offices of S P Ford & Co Limited, 2 Spring Close, Lutterworth, Leicestershire, LE17 4DD no later than 12.00 noon on the working day immediately before the meetings. , Date of Appointment: 27 March 2015, Office Holder details: Steven Peter Ford,(IP No. 9387) of S P Ford & Co Ltd, 2 Spring Close, Lutterworth, Leicestershire, LE17 4DD. , For further details contact: Steve Ford, Email: steve@spford.co.uk or Tel: 01455 699737"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagrange Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03809119",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further information about this case is available from Sophie Murcott at the offices of MB Insolvency on 01905 776 771 or at sophiemurcott@mb-i.co.uk."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Elena Petrovna Timchenko",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Date Of Birth": [
{
"value": "1955-12-21",
"source": "",
"tag": "date_of_birth"
}
],
"Gender": [
{
"value": "Female",
"source": "",
"tag": "gender"
}
],
"Nationality": [
{
"value": "Russia, Finland",
"source": "",
"tag": "nationality"
}
]
},
"media": [],
"source_notes": {
"business_registration_number": [],
"last_updated": ["2023-01-03"],
"ofsi_group_id": ["15265"],
"other_information": [],
"un_reference_number": []
},
"sources": ["GOV UK", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagrange Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03809119",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a meeting of the above named company duly convened and held on 16 September 2019 the following resolutions were passed: , \"That the Company be wound up voluntarily.\", \"That Mark Bowen be appointed as Liquidator for the purposes of such winding up.\", Office Holder Details: Mark Elijah Thomas Bowen (IP number 8711) of MB Insolvency, 11 Roman Way, Berry Hill, Droitwich Spa WR9 9AJ. Date of Appointment: 16 September 2019. Further information about this case is available from Sophie Murcott at the offices of MB Insolvency on 01905 776 771 or at sophiemurcott@mb-i.co.uk."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Wermig Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07363869",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"For further details contact: Steven Ford email: steve@spford.co.uk, Tel: 01455 699737"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagrange Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03809119",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given that the creditors of the above named Company, which is being voluntarily wound up, are required to prove their debts on or before 11 October 2019, by sending their names and addresses along with descriptions and full particulars of their debts or claims and the names and addresses of their solicitors (if any), to the Liquidator at MB Insolvency, 11 Roman Way, Berry Hill, Droitwich Spa WR9 9AJ and, if so required by notice in writing from the Liquidator of the Company or by the Solicitors of the Liquidator, to come in and prove their debts or claims, or in default thereof they will be excluded from the benefit of any distribution made before such debts or claims are proved. , Note: It is anticipated that all known Creditors will be paid in full., Office Holder Details: Mark Elijah Thomas Bowen (IP number 8711) of MB Insolvency, 11 Roman Way, Berry Hill, Droitwich Spa WR9 9AJ. Date of Appointment: 16 September 2019. Further information about this case is available from Sophie Murcott at the offices of MB Insolvency on 01905 776 771 or at sophiemurcott@mb-i.co.uk. , Mark Elijah Thomas Bowen , Liquidator"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Wermig Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07363869",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Section 98 of the Insolvency Act 1986 that a meeting of the creditors of the above-named Company will be held at Cardiff Gate Business Park, Regus House, Malthouse Avenue, Cardiff, CF23 8RU on 27 March 2015 at 10.15 am for the purposes mentioned in Section 99 to 101 of the said Act. Creditors wishing to vote at the Meeting must (unless they are individual creditors attending in person) lodge their proxy, together with a full statement of account at S P Ford & Co Limited, 2 Spring Close, Lutterworth, Leicestershire, LE17 4DD, not later than 12 noon on 26 March 2015. , For the purposes of voting, a secured creditor is required (unless he surrenders his security) to lodge at 2 Spring Close, Lutterworth, Leicestershire, LE17 4DD before the meeting, a statement giving particulars of his security, the date when it was given and the value at which it is assessed. , Notice is further given that a list of the names and addresses of the Company’s creditors may be inspected, free of charge, at 2 Spring Close, Lutterworth, Leicester, LE17 4DD, between 10.00 am and 4.00 pm on the two business days preceding the date of the meeting stated above. The resolutions to be taken at the creditors’ meeting may include a resolution specifying the terms on which the Liquidator is to be remunerated, and the meeting may receive information about, or be called upon to approve, the costs of preparing the statement of affairs and convening the meeting. Note: Proxies to be used at the meeting must be lodged at 2 Spring Close, Lutterworth, Leicestershire, LE17 4DD not later than 12.00 noon on 26 March 2015. , For further details contact: Steven Peter Ford (IP No. 9387), Email: steve@spford.co.uk Tel: 01455 699737"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Concrete Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Aspire Business Solutions Limited, Unit 34 Ballymena Business Centre, 62 Fenaghy Road,\n Ballymena, County Antrim, BT42 1FL",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "NI016580",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given that pursuant to Chapter 2 of Part 13 of the Companies Act 2006, the following resolution was passed by the sole member as a special resolution on 15 November 2016 that: , The companies be wound up voluntarily, and the liquidator specified below be appointed liquidator of the companies for the purposes of the voluntary winding up. , Vishal Puri, Director, Date of Appointment: 15 November 2016"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Concrete Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Aspire Business Solutions Limited, Unit 34 Ballymena Business Centre, 62 Fenaghy Road,\n Ballymena, County Antrim, BT42 1FL",
"source": "",
"tag": "address"
}
],
"Company Number": [
{
"value": "NI016580",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": ["Date of Appointment: 15 November 2016"]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Oil Co Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI024550",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"In the Matter of, THE INSOLVENCY RULES (NORTHERN IRELAND) 1991, And, Notice is hereby given, pursuant to Rule 4.196 of the Insolvency Rules (Northern Ireland) 1991, that I, Rachel Fowler, Liquidator, intend to make a final distribution to creditors of the above named company, within the period of four months of the last day of proving. The last date for creditors to prove their claim in order to participate in the dividend is 18 November 2016. Creditors should send details of their claim to our office, Cavanagh Kelly, 36-38 Northland Row, Dungannon, Co. Tyrone, BT71 6AP. , A creditor who has not proved his debt before the last date for proving mentioned above, is not entitled to disturb, by reason that he has not participated in the dividend, the distribution of that dividend. , Dated this 19 October 2016"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Pearson-Armstrong Irmgard",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "149 Faversham Road, Seasalter, Whitstable, Kent CT5 4SD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-08-16",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramoko Broadband Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05137469",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a general meeting of the above-named company, duly convened and held at 5 Barnfield Crescent, Exeter, EX1 1QT on 23 August 2023 at 11.00 am, the following resolutions were passed as a Special Resolution and an Ordinary Resolution: , \"That the Company be wound up voluntarily and that David Gerard Kirk (IP No. 8830) and Daniel Robert Jeeves (IP No. 26032) both of Kirks, 5 Barnfield Crescent, Exeter, EX1 1QT be and are hereby appointed Joint Liquidators for the purpose of such winding up.\" , In case of queries, please contact Daniel Jeeves on 01392 474303 or email Nathan@kirks.co.uk., Ag FJ52883"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramoko Broadband Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05137469",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": ["Ag FJ52883"]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mrs Irmgard Jacques",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "16-18, Poole Road Wimborne BH21 1EJ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-03-25",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aramoko Broadband Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05137469",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is given that under Rule 6.23 of the Insolvency (England and Wales) Rules 2016 (\"the Rules\") that the company was placed into Creditors' Voluntary Liquidation (insolvent liquidation) and David Gerard Kirk (IP No. 8830) and Daniel Robert Jeeves (IP No. 26032) both of Kirks, 5 Barnfield Crescent, Exeter, EX1 1QT were appointed Joint Liquidators by the creditors on 23 August 2023. , Notice is further given that the Creditors are required to prove their debts on or before 29 September 2023 by sending full details of their claims to the Liquidators at Kirks, 5 Barnfield Crescent, Exeter, EX1 1QT. Creditors must also, if so requested by the Liquidators, provide such further details and documentary evidence to support their claims as may appear to the Liquidators to be necessary. , Please note that no further public notice will be made and therefore the Liquidators shall be entitled to make any distribution without regard to any claims not proved in the manner required by statute. , In case of queries, please contact Daniel Jeeves on 01392 474303 or email Nathan@kirks.co.uk., Ag FJ52883"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aremco Industries Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03012679",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further details contact: The Joint Administrators, Tel: 01642 917555, Ag DG111982"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armiger Derek",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "99 Pinecroft, Kingstown, Carlisle CA3 0DB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2014-08-13",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Food Company Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI614057",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further information about this case is available from the offices of PKF-FPM Accountants Limited on 02890 243131."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Warmic Developments Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "04123309",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Section 98 of the Insolvency Act 1986 that a meeting of the creditors of the above named Company will be held at Saxon House, Saxon Way, Cheltenham GL52 6QX on 19 May 2016 at 11.30 am for the purposes provided for in Sections 99, 100 and 101 of the Insolvency Act 1986. Creditors should lodge particulars of their claims for voting purposes at Findlay James, Saxon House, Saxon Way, Cheltenham GL52 6QX., Secured Creditors should also lodge a statement giving details of their security, the date(s) on which it was given and the value at which it is assessed. , Any creditor entitled to attend and vote at this meeting is entitled to do so either in person or by proxy. Completed proxy forms must be lodged at Findlay James, Saxon House, Saxon Way, Cheltenham, GL52 6QX no later than 12.00 noon on the preceding working day of the meeting. The resolutions to be taken at the meeting may include a resolution specifying the terms on which the liquidator is to be remunerated, and the meeting may receive information about, or be called upon to approve, the costs of preparing the statement of affairs and convening the meeting. An explanatory note is available. A J Findlay of Findlay James, Saxon House, Saxon Way, Cheltenham GL52 6QX, will, during the period before the meeting, furnish creditors free of charge with such information concerning the affairs of the company as they may reasonably require. , For further details contact: Alisdair J Findlay (IP No 8744), Email: info@findlayjames.co.uk, Tel: 01242 576555."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Warmic Developments Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "04123309",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"For further details contact: A J Findlay, E-mail: info@findlayjames.co.uk, Tel: 01242 576555."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mrs Patricia Irmiger",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "The Beeches, 3 Sunnyside Gardens Timsbury Lower Bristol Road, Bath BA2 3BH",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-04-14",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Food Company Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI614057",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Creditors’ Voluntary Winding Up, Notice is hereby given that following an Article 84 meeting of the creditors held on 31 May 2017 that I, Seamas Keating, was appointed Liquidator by the creditors. Creditors of the above-named company are required on or before 14 July 2017 to send their full names and addresses and particulars of their debts or claims and the names and addresses of the Solicitors, if any, to the undersigned Seamas Keating PKF-FPM Accountants Ltd, 1-3 Arthur Street, Belfast, Co. Antrim, BT1 4GA, the Liquidator of the Company and, if so come in and prove their said debts or claims at such time and place as shall be specified in such notice, or in default thereof, they will be excluded from the benefit of any distribution made before such debts are proved. , Office Holder Details: Seamas Keating (IP number GBNI91) of PKF-FPM Accountants Limited, 1-3 Arthur Street, Belfast BT1 4GA. Date of Appointment: 31 May 2017. Further information about this case is available from the offices of PKF-FPM Accountants Limited on 02890 243131. , Dated this 31 day of May 2017, Seamas Keating , Liquidator"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Warmic Developments Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "04123309",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General Meeting of the members of the above named Company, duly convened and held at Saxon House, Saxon Way, Cheltenham, Gloucestershire GL52 6QX on 19 May 2016 the following resolutions were passed as a Special Resolution and as an Ordinary Resolution respectively: , “That it has been proved to the satisfaction of this meeting that the Company cannot, by reason of its liabilities, continue its business, and that it is advisable to wind up the same, and accordingly that the Company be wound up voluntarily and that Alisdair James Findlay, of Findlay James, Saxon House, Saxon Way, Cheltenham GL52 6QX, (IP No 008744) be and he is hereby appointed Liquidator for the purposes of such winding up.” , For further details contact: A J Findlay, E-mail: info@findlayjames.co.uk, Tel: 01242 576555."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Food Company Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI614057",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE OF FINAL MEETING, IN THE MATTER OF THE INSOLVENCY (NORTHERN IRELAND) ORDER 1989, AND, IN THE MATTER OF, , , , (IN CREDITORS’ VOLUNTARY LIQUIDATION), , , NOTICE IS HEREBY GIVEN pursuant to Article 92 of The Insolvency (Northern Ireland) Order 1989, that the Final Meeting of the Members and the Creditors of the above named Company, will be held at PKF-FPM Accountants Limited, 1- 3 Arthur Street, Belfast, Co Antrim, BT1 4GA on 18 June 2018 at 12 noon and 12:15 pm respectively for the purpose of having an account laid before them by the Liquidator showing the manner in which the winding-up has been conducted and the property disposed of, and hearing any explanations that may be given by the Liquidator. , , The following resolutions will be considered at the creditors’ meeting:, , 1. That the Liquidator’s receipts and payments account be approved., , 2. That the Liquidator receives his release., , 3. That the Liquidator has the power to destroy the books and records of the company 12 months after the final meeting. , , In the absence of a quorum or any objections to the contrary, the liquidator will deem that the resolutions listed above have been accepted by default. , , Proxies to be used at the meeting, if intended to be used, must be duly completed and lodged at the offices of PKF-FPM Accountants Limited, 1- 3 Arthur Street, Belfast, Co Antrim, BT1 4GA not later than 12 noon on the working day immediately before the meeting. , , Seamas Keating, Liquidator of Armagh Food Company Limited - In Liquidation, , Date: 16 May 2018,"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armagh Food Company Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI614057",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE IS HEREBY GIVEN, pursuant to Article 84 of the Insolvency (Northern Ireland) Order 1989, that a meeting of the creditors of the above-named company will be held at the offices of PKF-FPM Accountants Limited, Dromalane Mill, The Quays, Newry, Down, BT35 8QS on 31 May 2017 at 11:00 am for the purposes mentioned in articles 85 to 87 of the said order. , Creditors wishing to vote at the meeting must (unless they are individual creditors attending in person) lodge their proxies at the offices of PKF-FPM Accountants, 1-3 Arthur Street, Belfast, BT1 4GA not later than 12.00 noon on the business day immediately preceding the meeting. , A list of the names and addresses of the company’s creditors will be available for inspection free of charge at the offices of PKF-FPM Accountants, 1-3 Arthur Street, Belfast, BT1 4GA on the two business days immediately preceding the meeting between the hours of 10.00 am and 4.00 pm. , The resolutions at the meeting of creditors may include a resolution specifying the terms on which the liquidators are to be remunerated. The meeting may receive information about, or be asked to approve, the costs of preparing the statement of affairs and convening the meeting. , By Order of the Board, Dated: 18 May 2017"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armc Services Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07478336",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General Meeting of the above-named Company, duly convened and held at1 Kings Avenue Winchmore Hill London N21 3NA on28 September 2018 at 11.00 am the following resolutions were passed as a Specialresolution and Ordinary resolution respectively:-“That the Company be wound up voluntarily” and “that Amie Johnson (IP No 18570)and Yiannis Koumettou(IP No 015676) of Alexander Lawson Jacobs, 1 Kings Avenue Winchmore Hill London N21 3NA be appointed Joint Liquidators of the Company.”Office Holder details: Amie Johnson and Yiannis Koumettou of Alexander Lawson Jacobs,1 Kings Avenue Winchmore Hill London N21 3NA. For further detailscontact Amie Johnson on telephone 020 8370 7250, or by email at amie@aljuk.com.Alan Tilley, DirectorDated: 2 October 2018, ns/ns 541295B"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armc Services Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07478336",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is given that Amie Johnson and Yiannis Koumettou, the Joint Liquidators of the Company, intend to declare a first and final dividend to unsecured creditors within two months of the date of this notice, detailed below. , For further details contact Daniel Oldham on 020 8370 7250 or at Daniel.Oldham@btguk.com, Dated this 4th day of June 2020"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Embers (Armagh) Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI605023",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE IS HEREBY GIVEN pursuant to Article 92 of The Insolvency (Northern Ireland) Order 1989, that the Final Meeting of the Members and the Creditors of the above named Company, will be held at PKF-FPM Accountants Limited, 1- 3 Arthur Street, Belfast, Co Antrim, BT1 4GA on 26 April 2016 at 12:00 noon and 12:15 pm respectively for the purpose of having an account laid before them by the Liquidator showing the manner in which the winding-up has been conducted and the property disposed of, and hearing any explanations that may be given by the Liquidator. , The following resolutions will be considered at the creditors’ meeting:, 1. That the Liquidator’s report and receipts and payments account be approved., 2. That the Liquidator receives his release., 3. That the Liquidator has the power to destroy the books and records of the company 12 months after the final meeting. , Proxies to be used at the meeting, if intended to be used, must be duly completed and lodged at the offices of PKF-FPM Accountants Limited, 1- 3 Arthur Street, Belfast, Co Antrim, BT1 4GA not later than 12 noon on the working day immediately before the meeting. , Date: 14 March 2016"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ormechurch Properties Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09489490",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General Meeting of the members of the above-named Company, duly convened and held at 10.45 am at 64 High Street, Belper, DE56 1GF on 27 June 2022 the following resolutions were passed as special and ordinary resolutions: , “That the Company be wound up voluntarily and that Andrew J Cordon (IP No. 009687) and James O Everist (IP No. 22710) both of CFS Restructuring LLP, 22 Regent Street, Nottingham, NG1 5BQ be and are hereby appointed Joint Liquidators of the Company.” , Further details contact: Andrew Cordon, Tel: 0115 8387330, Email: info@cfs-llp.com , Ag SH40233"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armc Services Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07478336",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is given that I, Amie Johnson, and Yiannis Koumettou, the Joint Liquidators of the Company, intend to declare a first and final dividend to unsecured creditors within two months of the last date for proving specified below. Unsecured Creditors who have not already proved are required, on or before 6 December 2019, the last date for proving, to submit a proof of debt to me at Begbies Traynor (Central) LLP, 1 Kings Avenue Winchmore Hill London N21 3NA and, if so requested by me, to provide such further details or produce such documentary or other evidence as may appear to be necessary to substantiate their claim. A creditor who has not proved his debt before the date specified above is not entitled to disturb the dividend because he has not participated in it. Liquidators: Amie Johnson (IP No: 18570) and Yiannis Koumettou (IP No: 15676) of Begbies Traynor (Central) LLP, 1 Kings Avenue Winchmore Hill London N21 3NA. Date of appointment: 28 September 2019. For further details, contact Daniel Oldham on telephone 020 8370 7250, or by email at daniel.oldham@aljuk.com. Dated: 5 November 2019"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ormechurch Properties Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09489490",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"We, Andrew J Cordon (IP No. 009687) and James O Everist (IP No. 22710) both of CFS Restructuring LLP, 22 Regent Street, Nottingham, NG1 5BQ give notice that we were appointed Joint Liquidators of the above-named Company on 27 June 2022 by a resolution of members. , Notice is hereby given that the creditors of the Company which is being voluntarily wound up, are required, on or before 30 September 2022 to send in their names, addresses, (and names/addresses of their solicitor, if any) along with particulars of debts and claims to the undersigned Andrew J Cordon of CFS Restructuring LLP, 22 Regent Street, Nottingham NG1 5BQ the Joint Liquidator of the Company and, if so required by notice in writing to prove their debts or claims at such time and place as shall be specified in such notice, or in default thereof shall be excluded from the benefit of any distribution made before such debts are proved. , This notice is purely formal, the Company is able to pay all its known creditors in full. , Please note that this is a solvent liquidation and therefore the Joint Liquidators are entitled to make the distribution without regard to the claim of any person in respect of a debt not proved. , Further details contact: Andrew Cordon, Tel: 0115 8387330, Email: info@cfs-llp.com , Ag SH40233"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ormechurch Properties Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09489490",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": ["Ag SH40233"]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armc Services Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07478336",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"A Petition to wind up the above-named Company, Registration Number 07478336, of ,3 Beddoes Court, Medbourne, Milton Keynes, Bucks, MK5 6FQ, presented on 21 August 2018 by the COMMISSIONERS FOR HM REVENUE AND CUSTOMS, of South West Wing, Bush House, Strand, London, WC2B 4RD,, claiming to be Creditors of the Company, will be heard at the High Court, Royal Courts of Justice, 7 Rolls Building, Fetter Lane, London, EC4A 1NL on 10 October 2018 at 1030 hours (or as soon thereafter as the Petition can be heard). , Any persons intending to appear on the hearing of the Petition (whether to support or oppose it) must give notice of intention to do so to the Petitioners or to their Solicitor in accordance with Rule 7.14 by 1600 hours on 7 October 2018 ."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armiger Margaret Rose",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Ivy Court, Ivy Road, Norwich, NR5 8BF",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-01-24",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armc Services Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07478336",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Joint Liquidators: Amie Johnson (IP No 18570) and Yiannis Koumettou (IP No 015676) of Alexander Lawson Jacobs, 1 Kings Avenue Winchmore Hill London N21 3NA. For further details contact Amie Johnson on telephone 020 8370 7250, or by email at amie@aljuk.com. Decision Date: 28 September 2018.By whom appointed: Members.Dated: 2 October 2018, ns 541295A"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armc Services Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "07478336",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Rule 15.13 of the Insolvency (England and Wales) Rules 2016, that the Directors of the above-named Company (the 'convener(s)') are seeking a decision from creditors on the nomination of a Liquidator by way of a virtual meeting. A resolution to wind up the Company is to be considered on 28 September 2018. , Notice is hereby given that a virtual meeting of the creditors of the above-named Company is being convened by Alan Robert Tilley, to be held on 28 September 2018 at 11.30 am for the purpose provided for in section 100 of the Insolvency Act 1986. Creditors entitled to attend and vote at the virtual meeting may do so personally or by proxy. A creditor can attend the virtual meeting in person and vote, and is entitled to vote if they have delivered proof of their debt by no later than 4.00 pm on the business day before the meeting. If a creditor cannot attend in person, or does not wish to attend but still wishes to vote at the meeting, they can either nominate a person to attend on their behalf, or they may nominate the Chair of the meeting, who will be a director of the Company, to vote on their behalf. Creditors must deliver their proxy by no later than the commencement of the meeting. Creditors must deliver all proofs of their debt and proxies to Alexander Lawson Jacobs, 1 Kings Avenue Winchmore Hill London N21 3NA. Creditors failing to lodge a proof of their debt or proxy as indicated will lead to their vote(s) being disregarded. Unless they surrender their security, secured creditors must give particulars of their security, the date when it was given and the estimated value at which it is assessed if they wish to vote at the meeting. At the meeting, creditors may receive information about, or be called upon to approve, the costs of preparing the statement of affairs and convening the meeting of creditors, and may be requested to consider a resolution specifying the terms on which the Liquidator is to be remunerated. A list of names and addresses of the Company’s creditors will be available for inspection free of charge at Alexander Lawson Jacobs, 1 Kings Avenue Winchmore Hill London N21 3NA between 10.00 am and 4.00 pm on the two business days prior to the meeting. For further details contact Amie Johnson on telephone 020 8370 7250, or by email at amie@aljuk.com. Alan Robert Tilley, DirectorDated: 12 September 2018N/AN/AN/A, ns/sm 540078"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armcom Communications Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03343868",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Alternative contact: Paul Ward, paulward@tc-group.com -Telephone: 01733 569494"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armiger Anthony Andrew",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "154 Earlham Green Lane Norwich NR5 8RB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2017-10-04",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armcom Communications Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03343868",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Pursuant to Chapter 2 of Part 13 of the Companies Act 2006, the following resolutions were passed by the shareholders of the Company on 21 March 2023 as special and ordinary written resolutions, respectively: 1. That the Company be wound up voluntarily. 2. That Michael James Gregson, Licensed Insolvency Practitioner, of TC Bulley Davey Limited, Brightfield Business Hub, Bakewell Road, Orton Southgate, Peterborough, PE2 6XU, be and is hereby appointed Liquidator for the purposes of Winding Up the Company. Michael James Gregson (IP No 9339) Liquidator, TC Bulley Davey Limited, Brightfield Business Hub, Bakewell Road, Orton Southgate, Peterborough, PE2 6XU. Contact: Paul Ward, paulward@tc-group.com - Telephone: 01733 569494"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armiger Robert William",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "The Gables, Wressle Road, Broughton, North Lincolnshire, DN20 0DB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-08-25",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ermc (Uk) Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "08956183",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General Meeting of the Members of the above-named Company, duly convened, and held on 22 June 2016 the following Resolutions were duly passed, as a Special Resolution and as an Ordinary Resolution: , \"That the Company cannot, by reason of its liabilities, continue its business, and that it is advisable to wind up the same, and accordingly that the Company be wound up voluntarily.\" , \"That Helen Whitehouse and Simon Thomas Barriball be appointed as Joint Liquidators for the purposes of such winding up.\" , At the subsequent Meeting of Creditors held on 22 June 2016 the appointment of Helen Whitehouse and Simon Thomas Barriball as Joint Liquidators was confirmed. , Office Holder Details: Helen Whitehouse and Simon Thomas Barriball (IP numbers 9680 and 11950) of McAlister & Co Insolvency Practitioners Ltd, 10 St Helens Road, Swansea SA1 4AW. Date of Appointment: 22 June 2016. Further information about this case is available from Pam Mankoo at the offices of McAlister & Co Insolvency Practitioners Ltd on 01792 459600 or at Helen@mcalisterco.co.uk."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armcom Communications Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03343868",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE IS HEREBY GIVEN that the creditors of the above named company, which is being voluntarily wound up, are required, on or before the 5 May 2023 to send in their names and addresses and particulars of their debts or claims and of any security held by them, and the names and addresses of their Solicitors (if any) to the undersigned Michael James Gregson, of TC Bulley Davey Limited, Brightfield Business Hub, Bakewell Road, Orton Southgate, Peterborough, PE2 6XU (Office Holder number: 9339), the Liquidator of the said Company, and if so required by notice in writing from the Liquidator, are, by their Solicitors or personally, to come in and prove their debts or claims and establish any title they may have to priority, at such time and place as shall be specified in such Notice or in default thereof they will be excluded from the benefit of any distribution made before such debts are proved, or such priority is established, or as the case may be, from objecting to such distribution. Alternative contact: Paul Ward, paulward@tc-group.com -Telephone: 01733 569494."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ermc (Uk) Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "08956183",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further information about this case is available from Pam Mankoo at the offices of McAlister & Co Insolvency Practitioners Ltd on 01792 459600 or at Helen@mcalisterco.co.uk."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ermc (Uk) Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "08956183",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Section 98 of the Insolvency Act 1986 that a meeting of creditors of the above named Company will be held at BCK House, 73-75 Aston Road North, Birmingham B6 4DA on 22 June 2016, at 11:30 am for the purposes mentioned in Sections 99 to 101 of the said Act. , Any Creditor entitled to attend and vote at this Meeting is entitled to do so either in person or by proxy. Creditors wishing to vote at the Meeting must (unless they are individual creditors attending in person) lodge their proxy at McAlister & Co Insolvency Practitioners Ltd, 10 St Helens Road, Swansea SA1 4AW by no later than 12:00 on the business day preceding the date of the meeting. , Resolutions to be taken at the meeting may include a resolution specifying the terms on which the Liquidator is to be remunerated and the meeting may receive information about, or be called upon to approve, the cost of preparing the statement of affairs and convening the meeting. , Helen Whitehouse (IP number 9680) of McAlister & Co Insolvency Practitioners Ltd, 10 St Helens Road, Swansea SA1 4AW is qualified to act as an insolvency practitioner in relation to the company and, during the period before the day on which the meeting is to be held, will furnish creditors free of charge with such information concerning the company's affairs as they may reasonably require. Further information about this case is available from Pam Mankoo at the offices of McAlister & Co Insolvency Practitioners Ltd on 01792 459600 or at Helen@mcalisterco.co.uk."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ermc (Uk) Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "08956183",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given that the creditors of the above named Company, which is being voluntarily wound up, are required to prove their debts on or before 22 September 2016, by sending their names and addresses along with descriptions and full particulars of their debts or claims and the names and addresses of their solicitors (if any), to the Joint Liquidators at McAlister & Co, 10 St Helens Road, Swansea SA1 4AW and, if so required by notice in writing from the Joint Liquidators of the Company or by the Solicitors of the Joint Liquidators, to come in and prove their debts or claims, or in default thereof they will be excluded from the benefit of any distribution made before such debts or claims are proved. , Office Holder Details: Helen Whitehouse and Simon Thomas Barriball (IP numbers 9680 and 11950) of McAlister & Co Insolvency Practitioners Ltd, 10 St Helens Road, Swansea SA1 4AW. Date of Appointment: 22 June 2016. Further information about this case is available from Pam Mankoo at the offices of McAlister & Co Insolvency Practitioners Ltd on 01792 459600 or at Helen@mcalisterco.co.uk. , Helen Whitehouse and Simon Thomas Barriball , Joint Liquidators"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euromix Concrete Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "01720534",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to Rule 2.95 of the Insolvency Rules 1986 that it is the intention of the Joint Administrators to make a distribution, by means of second interim, to unsecured creditors within the period of 2 months from the last date for proving. Creditors must send their full names and addresses (and those of their Solicitors, if any), together with full particulars of their debts or claims to the Joint Administrators at 7 More London Riverside, London SE1 2RT by 13 May 2015 (“the last date for proving”). The Joint Administrators are not obliged to deal with proofs lodged after the last date for proving. , David Robert Baxendale and Zelf Hussain (IP numbers 10972 and 9435) of PricewaterhouseCoopers LLP, 7 More London Riverside, London SE1 2RT were appointed Joint Liquidators of the Company on 20 December 2013. Further information about this case is available from Nadine Chambers at the offices of PricewaterhouseCoopers LLP on 02890 415649 or at nadine.t.chambers@uk.pwc.com."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Arrowmix Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "06361827",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further details contact: The Joint Liquidators, Email: cp.manchester@frpadvisory.com, Ag IF20393"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Arrowmix Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "06361827",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"On 2 May 2017 the above-named company went into insolvent liquidation. I, Paul Holt of 27 Sunnyside Road, Crosby, Merseyside L23 3AY was a director of the above-named company during the 12 months ending with the day before it went into liquidation. I give notice that it is my intention to act in one or more of the ways specified in section 216(3) of the Insolvency Act 1986 in connection with, or for the purposes of, the carrying on of the whole or substantially the whole of the business of the insolvent company under the following name: P J H Contracting Limited.Rule 22.5 - Statement as to the effect of the notice under rule 22.4(2): “Section 216(3) of the Insolvency Act 1986 lists the activities that a director of a company that has gone into insolvent liquidation may not undertake unless the court gives permission or there is an exception in the Insolvency Rules made under the Insolvency Act 1986. (This includes the exceptions in Part 22 of the Insolvency (England and Wales) Rules 2016). These activities are- (a) acting as a director of another company that is known by a name which is either the same as a name used by the company in insolvent liquidation in the 12 months before it entered liquidation or is so similar as to suggest an association with that company; (b) directly or indirectly being concerned or taking part in the promotion, formation or management of any such company; or (c) directly or indirectly being concerned in the carrying on of a business otherwise than through a company under a name of the kind mentioned in (a) above. This notice is given in pursuance of Rule 22.4 of the Insolvency (England and Wales) Rules 2016 where the business of a company which is in, or may go into, insolvent liquidation is, or is to be, carried on otherwise than by the company in liquidation with the involvement of a director of that company and under the same or a similar name to that of that company. The purpose of the giving of this notice is to permit the director to act in these circumstances where the company enters (or has entered) insolvent liquidation without the director committing a criminal offence and in the case of the carrying on of the business through another company, being personally liable for that company’s debts. Notice may be given where the person giving the notice is already the director of a company which proposes to adopt a prohibited name”."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armiger Reginald Charles",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Peterborough",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-11-26",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Arrowmix Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "06361827",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"On 2 May 2017 the above-named company went into insolvent liquidation. I, Jennifer Holt of 27 Sunnyside Road, Crosby, Merseyside L23 3AY was a director of the above-named company during the 12 months ending with the day before it went into liquidation. I give notice that it is my intention to act in one or more of the ways specified in section 216(3) of the Insolvency Act 1986 in connection with, or for the purposes of, the carrying on of the whole or substantially the whole of the business of the insolvent company under the following name: P J H Contracting Limited.Rule 22.5 - Statement as to the effect of the notice under rule 22.4(2): “Section 216(3) of the Insolvency Act 1986 lists the activities that a director of a company that has gone into insolvent liquidation may not undertake unless the court gives permission or there is an exception in the Insolvency Rules made under the Insolvency Act 1986. (This includes the exceptions in Part 22 of the Insolvency (England and Wales) Rules 2016). These activities are- (a) acting as a director of another company that is known by a name which is either the same as a name used by the company in insolvent liquidation in the 12 months before it entered liquidation or is so similar as to suggest an association with that company; (b) directly or indirectly being concerned or taking part in the promotion, formation or management of any such company; or (c) directly or indirectly being concerned in the carrying on of a business otherwise than through a company under a name of the kind mentioned in (a) above. This notice is given in pursuance of Rule 22.4 of the Insolvency (England and Wales) Rules 2016 where the business of a company which is in, or may go into, insolvent liquidation is, or is to be, carried on otherwise than by the company in liquidation with the involvement of a director of that company and under the same or a similar name to that of that company. The purpose of the giving of this notice is to permit the director to act in these circumstances where the company enters (or has entered) insolvent liquidation without the director committing a criminal offence and in the case of the carrying on of the business through another company, being personally liable for that company’s debts. Notice may be given where the person giving the notice is already the director of a company which proposes to adopt a prohibited name”."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Arrowmix Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "06361827",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"A Petition to wind up the above-named Company, Registration Number 06361827, of ,Arrowmix, St. Ives Way, Factory Road, Sandycroft, Deeside, Clwyd, CH5 2QS, presented on 22 November 2016 by the COMMISSIONERS FOR HM REVENUE AND CUSTOMS, of South West Wing, Bush House, Strand, London, WC2B 4RD,, claiming to be Creditors of the Company, will be heard at the High Court, Royal Courts of Justice, 7 Rolls Building, Fetter Lane, London, EC4A 1NL on 23 January 2017 at 1030 hours (or as soon thereafter as the Petition can be heard). , Any persons intending to appear on the hearing of the Petition (whether to support or oppose it) must give notice of intention to do so to the Petitioners or to their Solicitor in accordance with Rule 4.16 by 1600 hours on 20 January 2017 ."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euromix Concrete Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "01720534",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": [],
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euromix Concrete Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "01720534",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE IS HEREBY GIVEN pursuant to Rule 14.28 of the Insolvency (England & Wales) Rules 2016 that the Joint Liquidators intend to declare a second & final dividend to unsecured creditors of the company within 2 months of the last date for proving on 1 April 2021. , Creditors who have not yet proved, must send their full names and addresses (and those of their Solicitors, if any), together with full particulars of their debts or claims to the Joint Liquidators at PwC LLP, Waterfront Plaza, 8 Laganbank Road, Belfast BT1 3LR by 1 April 2021. , If so required by notice from the Joint Liquidators, either personally or by their Solicitors, Creditors must come in and prove their debts at such time and place as shall be specified in such notice. If they default in providing such proof, they will be excluded from the benefit of any distribution made before such debts are proved. , The distribution may be made without regard to the claim of any person in respect of a debt not proved. , For further details contact Nadine Chambers on 02890 415649 or at UK_Creditorservices@pwc.com"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ermc Consulting Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09127139",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Section 85(1), Insolvency Act 1986At a general meeting of the Company, duly convened and held on 17 October 2018, the following Resolutions were passed as a Special Resolution and an Ordinary Resolution respectively:“That the Company be wound up voluntarily and that Andrew John Whelan of WSM Marks Bloom LLP, Unit 2 Spinnaker Court 1C Becketts Place Hampton Wick Kingston upon Thames KT1 4EQ be and is hereby appointed Liquidator of the Company for the purposes of such winding up.”Date on which Resolutions were passed: 17 October 2018Details of the office-holder: Andrew John Whelan, IP no. 8726, Liquidator, WSM Marks Bloom LLP, Unit 2 Spinnaker Court 1C Becketts Place Hampton Wick Kingston upon Thames KT1 4EQ. Tel: 020 8939 8240. Alternative person to contact with enquiries about the case: Ankit Patel.Russell Marc Crashaw, Director.Dated: 17 October 2018, ns 542602B"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euromix Concrete Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "01720534",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"NOTICE IS HEREBY GIVEN that the business of a creditors’ meeting is to be conducted by correspondence, for the purpose of considering revisions to the administrator’s proposals. A creditor wishing to vote must lodge with the administrators a completed Form 2.25B together with details in writing of the debt that he claims to be due to him, not later than 12.00 noon on 1 June 2015. A copy of Form 2.25B is available on request. Under Rule 2.38 a person is entitled to submit a vote only if; he has given to the Joint Administrators at PricewaterhouseCoopers LLP, Benson House, 33 Wellington Street, Leeds LS1 4JP not later than 12.00 noon on the closing date, details in writing of the debt which he claims to be due to him from the Company, and the claim has been duly admitted under Rule 2.38 or 2.39. , David Baxendale (IP Number 10972) and Zelf Hussain (IP Number 9435) of PricewaterhouseCoopers LLP, 7 More London Riverside, London SE1 2RT were appointed Joint Administrators of the Company on 20 December 2013. Further information is available from Clare Davison on 0113 289 4062 or at clare.n.davison@uk.pwc.com"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mrs Irmgard Raven",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "15 Hogue Avenue Wimborne BH21 1EJ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-11-28",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ermc Consulting Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09127139",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Liquidator: Andrew John Whelan, IP no.8726 of WSM Marks Bloom LLP, Unit 2 Spinnaker Court 1C Becketts Place Hampton Wick Kingston upon Thames KT1 4EQ. Tel: 020 8939 8240. Alternative person to contact with enquiries about the case: Ankit Patel. Date of Appointment: 17 October 2018. Who the Liquidator was appointed by: Members , ns 542602A"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euramax Coated Products Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00849254",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"As Joint Liquidators of the Company, we hereby give notice that we intend to make a final distribution to its creditors. The last date for proving is 23 November 2022 and creditors of the Company should by that date send their full names and addresses and particulars of their debts or claims to me, Trevor Oates of Ernst & Young LLP, 1 Bridgewater Place, Water Lane, Leeds, LS11 5QR. , In accordance with Rule 14.38(1)(c) of the Insolvency (England and Wales) Rules 2016, we may thereafter make the proposed distribution without regard to the claim of any person in respect of a debt not yet proved. , For further details contact Jack Merrix on 0121 393 9900."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armaghanian Liza",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "13 Woodgrange Avenue, London W5 3NY",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2020-04-24",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ermc Consulting Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "09127139",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given that the Creditors of the Company are required, on or before 5 December 2018 to send their names and addresses and particulars of their debts or claims and the names and addresses of their solicitors (if any) to Andrew John Whelan of WSM Marks Bloom LLP, Unit 2 Spinnaker Court 1C Becketts Place Hampton Wick Kingston upon Thames KT1 4EQ, the Liquidator of the company, and, if so required by notice in writing from the Liquidator, by their solicitors or personally, to come in and prove their debts or claims at such time and place as shall be specified in any such notice, or in default thereof they will be excluded from the benefit of any distribution made before such debts are proved. NOTE: This notice is purely formal. All known creditors have been or will be paid in full. Explanatory Reason: The Directors have made a Declaration of Solvency, and the Company is being wound up for the purposes of distribution of surplus assets to shareholders.Andrew John Whelan, IP no 8726, Liquidator, of WSM Marks Bloom LLP, Unit 2 Spinnaker Court 1C Becketts Place Hampton Wick Kingston upon Thames KT1 4EQ. Tel: 020 8939 8240. Alternative person to contact with enquiries about the case: Ankit Patel. Date of Appointment: 17 October 2018, ns 542602C"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Arrowmix Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "06361827",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General Meeting of the above named Company, duly convened, and held at 7th Floor, Ship Canal House, 98 King Street, Manchester, M2 4WU on 2 May 2017 at 4.00 pm, the following resolutions were duly passed as a Special Resolution and an Ordinary Resolution respectively: , \"That the Company be wound up voluntarily and that Ben Woolrych (IP No. 10550) and David Thornhill (IP No. 8840) both of FRP Advisory LLP, 7th Floor, Ship Canal House, 98 King Street, Manchester, M2 4WU be and are hereby appointed Liquidators for the purposes of such winding up.\" , Further details contact: The Joint Liquidators, Email: cp.manchester@frpadvisory.com, Ag IF20393"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euramax Coated Products Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00849254",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"For further details contact Jack Merrix on 0121 393 9900."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euramax Coated Products Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00849254",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"On 29 September 2022, the following written resolutions were passed by the shareholder of the Company, as a special resolution and an ordinary resolution respectively: , \"THAT the Company be wound up voluntarily.\", \"THAT Trevor Oates and Derek Neil Hyslop of Ernst & Young LLP, 1 Bridgewater Place, Water Lane, Leeds, LS11 5QR be and they are hereby appointed Joint Liquidators for the purposes of the winding up.\" , For further details contact Jack Merrix on 0121 393 9900."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "The Armchair (Nw) Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "10212822",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"For further details contact Bill Brandon on 0161 358 0210"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "The Armchair (Nw) Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "10212822",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given that the following resolutions were passed on 11 July 2022, as a special resolution and an ordinary resolution respectively: , That the Company be wound up voluntarily; and , That Daniel Richardson and Edward M Avery-Gee of CG&Co., Greg’s Building, 1 Booth Street, Manchester M2 4DU be appointed as Joint Liquidators of the Company for the purposes of the voluntary winding up.; and , That the Liquidators be authorised to act jointly and severally in the liquidation., , For further details contact Bill Brandon on 0161 358 0210, John Close - Director"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Jaysh Khalid Ibn Al Waleed",
"entity_type": null,
"score": "",
"match_types": ["alias", "category", "country", "entity_type"],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": [],
"media": [],
"source_notes": {
"business_registration_number": [],
"last_updated": ["2022-01-13"],
"ofsi_group_id": ["13510"],
"other_information": [
"Joined the Islamic State in Iraq and the Levant (ISIL), listed as Al-Qaida in Iraq (QDe.115), in May 2015. INTERPOL-UN Security Council Special Notice web link: https://www.interpol.int/en/notice/search/une/6116594"
],
"un_reference_number": ["QDe.155"]
},
"sources": ["GOV UK", "Shufti Internal Database"],
"types": []
},
{
"name": "Euramka Promotions Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "01071572",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Any person who requires further information may contact the Joint Liquidators by telephone on 01223 495660. Alternatively enquiries can be made to Carol Wilson by e-mail at cambridge@begbies-traynor.com or by telephone on 01223 495660."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armaglaze Windows Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05477284",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Rule 14.28 of the Insolvency (England and Wales) Rules 2016, that further to the appointment of the Joint Liquidators on 20 December 2021, they intend to declare a first and final dividend to creditors of the above company within two months of the last date for proving, specified below. , Notice is hereby given that creditors of the Company are required, on or before 3 June 2022, to prove their debts by delivering their proofs (in the format specified in Rule 14.4 of the Insolvency (England and Wales) Rules 2016) to the Joint Liquidators at Leonard Curtis, Leonard Curtis House, Elms Square, Bury New Road, Whitefield, Greater Manchester M45 7TA. , If so required by notice from the Joint Liquidators, creditors must produce any document or other evidence which the Joint Liquidators consider is necessary to substantiate the whole or any part of a claim. , Creditors who have not yet done so must prove their debts by sending their full names and addresses, particulars of their debts or claims and the names and addresses of their solicitors (if any), to the Joint Liquidators at Leonard Curtis, Leonard Curtis House, Elms Square, Bury New Road, Whitefield, Greater Manchester M45 7TA by no later than 3 June 2022 (the last date for proving). , As the distribution will be a final distribution, it may be made without regard to the claim of any person in respect of a debt not proved. , Note: The Directors of the Company have made a declaration of solvency and it is expected that all creditors will be paid in full. , Date of Appointment: 20 December 2021, Office Holder Details: Steve Markey (IP No. 14912) and Mark Colman (IP No. 9721) both of Leonard Curtis, Leonard Curtis House, Elms Square, Bury New Road, Whitefield, Greater Manchester M45 7TA, For further details contact: The Joint Liquidators, Tel: 0161 413 0930. Alternative contact: Harvey Chaisty. , Ag QH20520"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euramka Promotions Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "01071572",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"The Company was placed into members’ voluntary liquidation on 15 December 2016 and on the same date, Mary Anne Currie-Smith and Louise Donna Baxer, both of Begbies Traynor (Central) LLP, 1st Floor, 24 High Street, Whittlesford, Cambridgeshire CB22 4LT were appointed as Joint Liquidators of the Company. Notice is hereby given that the Creditors of the Company are required on or before 31 January 2017 to send their names and addresses, particulars of their debts or claims and the names and addresses of their solicitors (if any) to the undersigned Mary Currie-Smith of Begbies Traynor (Central) LLP, 1st Floor, 24 High Street, Whittlesford, Cambridgeshire, CB22 4LT the Joint Liquidator of the Company and, if so required by notice in writing to prove their debts or claims at such time and place as shall be specified in such notice, or in default thereof shall be excluded from the benefit of any distribution made before such debts are proved. , This notice is purely formal. The Company is able to pay all its known creditors in full. , Office Holder details: Mary Anne Currie-Smith,(IP No. 008934) and Louise Donna Baxter,(IP No. 009123) both of Begbies Traynor (Central) LLP, 1st Floor, 24 High Street, Whittlesford, Cambridgeshire, CB22 4LT. , Any person who requires further information may contact the Joint Liquidator by telephone on 01223 495660. Alternatively enquiries can be made to Carol Wilson by e-mail at cambridge@begbies-traynor.com or by telephone on 01223 495660."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armaglaze Windows Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05477284",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given that the following resolutions were passed on 20 December 2021, as a special resolution and an ordinary resolution respectively: , \"That the Company be and is hereby wound up voluntarily and that Steve Markey (IP No. 14912) and Mark Colman (IP No. 9721) both of Leonard Curtis, Leonard Curtis House, Elms Square, Bury New Road, Whitefield, Manchester M45 7TA be and are hereby appointed Joint Liquidators of the Company for the purposes of the winding up of the Company and the Liquidators are authorised to act jointly and severally.\" , For further details contact: The Joint Liquidators, Tel: 0161 413 0930. Alternative contact: Harvey Chaisty , Ag LH92399"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Euramka Promotions Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "01071572",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General Meeting of the members of Euramka Promotions Limited held on 15 December 2016, the following resolutions were passed as a Special Resolution and as an Ordinary Resolution respectively: , “That the Company be wound up voluntarily and that Mary Anne Currie-Smith,(IP No. 008934) and Louise Donna Baxter,(IP No. 009123) both of Begbies Traynor (Central) LLP, 1st Floor, 24 High Street, Whittlesford, Cambridgeshire, CB22 4LT be and are hereby appointed as joint liquidators for the purposes of such winding up and that any power conferred on them by law or by this resolution, may be exercised and any act required or authorised under any enactment to be done by them, may be done by them jointly or by each of them alone. , Any person who requires further information may contact the Joint Liquidators by telephone on 01223 495660. Alternatively enquiries can be made to Carol Wilson by e-mail at cambridge@begbies-traynor.com or by telephone on 01223 495660."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armaglaze Windows Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05477284",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": ["Ag LH92399"]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Speed Irmgard Anna",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "3 The Lawns, Moss Drive, Bramcote, Nottingham NG9 3NF",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-08-07",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armec Services (Uk) Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "06567051",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given that Final Meetings of the Members and Creditors of the above-named Company have been summoned by the Liquidator under Section 106 of the Insolvency Act 1986. The Meetings will be held at the offices of Abbott Fielding Limited, 142-148 Main Road, Sidcup, Kent, DA14 6NZ on 18 July 2016 at 11.00 am and 11.30 am respectively, for the purposes of granting the Liquidator’s release and having a final account laid before them by the Liquidator showing the manner in which the winding-up of the said Company has been conducted, the property of the Company disposed of, and of hearing any explanation that may be given by the Liquidator. Proxies to be used at the Meeting must be lodged with the Liquidator at Abbott Fielding Limited, 142/148 Main Road, Sidcup, Kent, DA14 6NZ by no later than 12.00 noon on the business day before the Meeting. , Date of Appointment: 22 May 2014, Office Holder details: Nedim Ailyan,(IP No. 9072) of Abbott Fielding Limited, 142-148 Main Road, Sidcup, Kent, DA14 6NZ. , Further details contact: Nedim Ailyan, Email: info@abbottfielding.co.uk, Tel: 0208 302 4344."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mrs Irmgard Roberts",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "124 Croft Road Norwich NR7 7WD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2020-07-03",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armchair Answercall Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03989913",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": [],
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armchair Answercall Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03989913",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"The Members pass these as Resolutions of the CompanySpecial Resolution\"That it has been proved to the satisfaction of the Members that the Company cannot, by reason of its liabilities, continue its business, and that the Company be wound up voluntarily\". Ordinary Resolutions\"That Peter Hall , of Peter Hall Limited, 2 Venture Road, Science Park, Chilworth, Southampton, SO16 7NP, (IP No 3966) be and is hereby appointed Liquidator for the purposes of the voluntary winding up.” \"That the decisions and actions of the Officers of the Company, in instructing Peter Hall to assist in putting the Company into liquidation, and all matters connected with that be, and hereby are ratified.\""
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armchair Answercall Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03989913",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Section 98 of the Insolvency Act 1986 that a meeting of the creditors of the above named Company will be held at Peter Hall Ltd, 2 Venture Road, Science Park, Chilworth, Southampton, SO16 7NP on 26 April 2017 at 11.00 am: to receive a statement of affairs of the company; to hear a report on the company’s position; to nominate an insolvency practitioner as liquidator; if fit, to appoint a liquidation committee; and to pass any other resolution considered necessary. One other resolution to be considered at this meeting is the costs of preparing the statement of affairs and convening the meeting. Creditors wishing to vote at the Meeting (unless they are individual creditors attending in person) must lodge their proxy, together with a full statement of account at Peter Hall Limited, 2 Venture Road, Science Park, Chilworth, Southampton, SO16 7NP, not later than 12 noon on the business day before the meeting. A form of General and Special Proxy is available. , For the purposes of voting, a secured creditor is required (unless he surrenders his security) to lodge at Peter Hall Limited, 2 Venture Road, Science Park, Chilworth, Southampton, SO16 7NP before the meeting, a statement giving particulars of his security, the date when it was given and the value at which it is assessed. Notice is further given that a list of the names and addresses of the Company’s creditors may be inspected, free of charge, at Peter Hall Limited, 2 Venture Road, Science Park, Chilworth, Southampton, SO16 7NP between 10.00 am and 4.00 pm on the two business days preceding the date of the meeting stated above. , Details of the Insolvency Practitioner: Peter Hall (IP No. 3966) of Peter Hall Limited, 2 Venture Road, Science Park, Chilworth, Southampton, SO16 7NP. , For further details contact: Peter Hall, Email: peter@peterhall.org.uk, Tel: 02380 111366. Alternative contact: Kevin Beech, Email: kevin@peterhall.org.uk , Ag GF123362"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armchair Answercall Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "03989913",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Rule 14.28 of the Insolvency (England and Wales) Rules 2016, that the Liquidator intends to declare a first and final dividend to unsecured creditors of the Company within the period of two months from the last date for proving specified below. , Creditors who have not yet done so must prove their debts by delivering their proofs (in the format specified in Rule 14.4) to the Liquidator at Critchleys, Beaver House, 23-38 Hythe Bridge Street, Oxford, OX1 2EP by no later than 10 December 2018 (the last date for proving). , Creditors who have not proved their debt by the last date for proving may be excluded from the benefit of this dividend or any other dividend declared before their debt is proved. , Date of Appointment: 26 April 2017, Office Holder Details: Lawrence King (IP No. 10452) of Critchleys, Beaver House, 23-38 Hythe Bridge Street, Oxford, OX1 2EP, Further details contact: Lawrence King, Email: insolvency@critchleys.co.uk, Tel: 01865 261100. Alternative contact: Clive Jackson, email: CJackson@critchleys.co.uk , Ag AG80806"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Ring Irmgard Elenore",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "33 Hillingdon Avenue, \n Sevenoaks, Kent\n TN13 3RB",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2017-04-19",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mrs Irmgard Forester",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Rosen Bungalow WORCESTER Worcestershire WR1 1HD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2022-10-11",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Cocker Irmgard Maria Johanna",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "27 Belgrave Road Weston-Super-Mare Avon BS22 8AJ",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2018-12-17",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Owen Irmgard Johanna",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "10 Moorside Yatton BS49 4RL",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2019-02-01",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armech International Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "05575645",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given, pursuant to Section 106 of the Insolvency Act 1986, that final meetings of members and creditors of the above named Company will be held at White Maund, 44-46 Old Steine, Brighton BN1 1NH on 7 September 2016 at 10.30 am for Members and 10.45 am for Creditors, for the purpose of having an account laid before them showing how the winding-up has been conducted and the company's property disposed of and giving an explanation of it. , A member or creditor entitled to attend and vote is entitled to appoint a proxy to attend and vote instead of him and such proxy need not also be a member or creditor. Proxy forms must be returned to White Maund, 44-46 Old Steine, Brighton BN1 1NH, no later than 12 noon on the business day before the meeting. , Office Holder Details: Susan Maund and Christopher Latos (IP numbers 8923 and 9399) of White Maund, 44-46 Old Steine, Brighton BN1 1NH. Date of Appointment: 28 June 2012. Further information about this case is available from Neil Hoad at the offices of White Maund at info@whitemaund.co.uk. , Susan Maund and Christopher Latos , Joint Liquidators"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Mason Irmgard Johanna",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "12 Hamilton House, 35 Upperton Road, Eastbourne, East Sussex",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2015-03-04",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Aszkenasy Irmgard Erna Ottilie",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Washington Lodge Nursing Home The Avenue Washington Village Tyne and Wear NE38 7LE",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2020-01-11",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Colley Irmgard Ursula",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "89 Western Avenue, Peterborough PE1 4HU",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2015-11-24",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Weight Irmgard Ursula",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "37 Graylands, Horsell Park, Woking, Surrey GU21 4LS",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2015-09-16",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Horsley Irmgarde Anne",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "27 Kenton Road, Gosforth, Newcastle upon Tyne NE3 4NH",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2015-03-07",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armac Brassfounders Group Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00523440",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a Special General Meeting of the above-named Company, duly convened, and held at 160 Dollman Street, Duddeston, Birmingham, B7 4RS on 06 March 2015, the following resolutions were passed as a Special Resolution and as an Ordinary Resolution respectively: , “That the Company be wound up voluntarily, and that Timothy Frank Corfield, of Griffin & King, 26/28 Goodall Street, Walsall, West Midlands, WS1 1QL, (IP No: 8202) be and is hereby appointed Liquidator for the purposes of such winding-up.” , Further details are available from Timothy Frank Corfield, Email: enquiries@griffinandking.co.uk Tel: 01922 722205. Alternative contact: Richard Owen, Tel: 01922 722205."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Drivebuy Motors Armagh Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI651290",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"By Order dated 27/07/2023, the above-named company (registered office at 3 Portadown Road, Lurgan, Craigavon, BT66 8QY) was ordered to be wound up by the High Court of Justice in Northern Ireland. Commencement of winding up, 16/06/2023"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Hillyer Irmgard Florina",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "35 Woodside Avenue, Northampton NN3 6JL",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2015-04-09",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Orrmac Coatings Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "SC144560",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": ["Ag LH91866"]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Waring Michael Frederick",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "7 Wenlock Drive, Hucknall\n Nottingham, NG15 8HX",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-07-01",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armac Brassfounders Group Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00523440",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further details are available from Timothy Frank Corfield, Email: enquiries@griffinandking.co.uk Tel: 01922 722205. Alternative contact: Richard Owen, Tel: 01922 722205."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Rommler Irmgard Christel",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "The Wells Nursing Home, Henton, Wells, Somerset BA5 1PD",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2016-07-09",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Warmglow Home Improvements Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "10366317",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"At a General Meeting of the above-named Company, duly convened and held at Suite 5, 2nd Floor, Bulman House, Regent Centre, Gosforth, Newcastle upon Tyne, NE3 3LS on 17 August 2021 at 3.00 pm, the following resolutions were duly passed as a Special resolution and an Ordinary resolution: , \"That the Company be wound up voluntarily and that Andrew David Haslam (IP No. 9551) and Antonya Allison (IP No. 23270) both of FRP Advisory Trading Limited, Suite 5, 2nd Floor, Bulman House, Regent Centre, Gosforth, Newcastle upon Tyne, NE3 3LS be and are hereby appointed Joint Liquidators for the purposes of such winding up that anything required or authorised to be done by the Liquidators be done by both or either of them.\" , Further details contact: Andrew David Haslam, Email: Andrew.Haslam@frpadvisory.com Alternative contact: Tonya.Allison@frpadvisory.com , Ag HH51472"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Warmglow Home Improvements Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "10366317",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": ["Ag HH51472"]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Orrmac Coatings Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "SC144560",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"In order to rank for dividend and vote at meetings, creditors are required to complete a Proof of Debt (form 4.7 Scot). Any creditor who has not already done so should send the completed form, together with supporting documentation, to Nathan Jones at FRP Advisory Trading Limited, St Nicholas Court, 25-27 Castle Gate, Nottingham NG1 7AR. , Claims must be submitted no later than 8 weeks before the end of an accounting period in order to rank for any dividend declared for that accounting period. The first accounting period ends on 20 August 2023 and claims should be lodged by no later than 25 June 2023. , Once a claim has been submitted, it is deemed to be resubmitted for all subsequent accounting periods and meetings. Date of Appointment: 21 February 2023 Office Holder details: Nathan Jones (IP No: 9326) and John Lowe (IP No: 9513) both of FRP Advisory Trading Limited, St Nicholas Court, 25-27 Castle Gate, Nottingham NG1 7AR , Further details contact: The Joint Liquidators, Tel: 0116 303 3337, Email: cp.leicester@frpadvisory.com. Alternative contact: Mitchell Emery, Tel: 0115 704 3458, Email: Mitchell.Emery@frpadvisory.com , Ag ZH113065"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Orrmac Coatings Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "SC144560",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Further details contact: The Joint Liquidators, Tel: 0116 303 3337, Email: cp.leicester@frpadvisory.com. Alternative contact: Mitchell Emery, Tel: 0115 704 3458, Email: Mitchell.Emery@frpadvisory.com , Ag ZH113065"
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Armac Brassfounders Group Limited",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "00523440",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given that the Creditors of the above-named Company are required, on or before 19 May 2015, to send their names and addresses and the particulars of their debts or claims, and the names and addresses of their Solicitors (if any), to Timothy Frank Corfield, of Griffin and King, 26-28 Goodall Street, Walsall WS1 1QL, the Liquidator of the said Company and, if so required by notice in writing from the said Liquidator, by their Solicitor or personally, to come in and prove their debts or claims at such time and place as shall be specified in such notice, or in default thereof they will be excluded from the benefit of any distribution made before such debts are proved. , NOTE.This notice is purely formal. All known Creditors have been, or will be, paid in full. , Further details are available from Timothy Frank Corfield, Email: enquiries@griffinandking.co.uk Tel: 01922 722205. Alternative contact: Richard Owen, Tel: 01922 722205."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Stokes Irmgard Johanna",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "3 Holbeche Road, B75 7LL",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2023-01-06",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to section 27 (Deceased Estates) of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Geiger Irmgard",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Address": [
{
"value": "Flat 23, Bolebec House, 10 Lowndes Street, London SW1X 9EU",
"source": "",
"tag": "address"
}
],
"Date Of Death": [
{
"value": "2013-12-10",
"source": "",
"tag": "date_of_death"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"Notice is hereby given pursuant to s. 27 of the Trustee Act 1925, that any person having a claim against or an interest in the estate of any of the deceased persons whose names and addresses are set out above is hereby required to send particulars in writing of his claim or interest to the person or persons whose names and addresses are set out above, and to send such particulars before the date specified in relation to that deceased person displayed above, after which date the personal representatives will distribute the estate among the persons entitled thereto having regard only to the claims and interests of which they have had notice and will not, as respects the property so distributed, be liable to any person of whose claim they shall not then have had notice."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
},
{
"name": "Drivebuy Motors Armagh Ltd",
"entity_type": null,
"score": "",
"match_types": [
"category",
"country",
"entity_type",
"profile_name"
],
"alternative_names": [],
"assets": [],
"associates": [],
"fields": {
"Company Number": [
{
"value": "NI651290",
"source": "",
"tag": "company_number"
}
]
},
"media": [],
"source_notes": {
"legal_information": [
"A Petition to wind up the above-named company (Company Number: NI651290) whose registered office is situated at 23 Legar Hill Park, Armagh, County Armagh, BT60 4BX, presented by CONOR CRILLY, director of the above-named company, of 23 Legar Hill Park, Armagh, County Armagh, BT60 4BX will be heard at the Royal Courts of Justice, Chichester Street, Belfast, BT1 3JF on: Date: 27 July 2023Time: 10.00 am (or as soon thereafter as the Petition can be heard) Any person intending to appear on the hearing of the Petition (whether to support or oppose it) must give notice of intention to do so to the Petitioner or its solicitors in accordance with Rule 4.016 by 16.00 hours on 26 July 2023."
]
},
"sources": ["The Gazette", "Shufti Internal Database"],
"types": []
}
]
}
}
},
"verification_result": {
"aml_for_businesses": 0
},
"info": {
"agent": {
"is_desktop": false,
"is_phone": false,
"useragent": "PostmanRuntime/7.37.3",
"device_name": "0",
"browser_name": "",
"platform_name": ""
},
"geolocation": {
"host": "WGPON-39151-190.wateen.net",
"ip": "123.39.151.112",
"rdns": "123.39.151.112",
"asn": "64543",
"isp": "National Wimax/Ims Environment",
"country_name": "Germany",
"country_code": "DE",
"region_name": "",
"region_code": "",
"city": "",
"postal_code": "",
"continent_name": "Europe",
"continent_code": "EU",
"latitude": "",
"longitude": "",
"metro_code": "",
"timezone": "",
"ip_type": "ipv4",
"capital": "Berlin",
"currency": "EUR"
}
},
"warnings": {
"document": {
"png_format_detected": "The image is in PNG format, which limits the detection of compression artifacts and other tampering detection signs."
},
"address": {
"metadata_alteration_detected": "The image metadata is incomplete or altered, suggesting it may have been modified or processed, thereby raising concerns about image authenticity."
}
},
"declined_reason": "AML screening failed",
"declined_codes": ["SPDR34"],
"services_declined_codes": {
"aml_for_businesses": ["SPDR34"]
}
}
```
---
# Declined Reasons
Source: https://developers.shuftipro.com/docs/business_identification_risk/business_aml_screening/declined_reasons.md
When a verification request involving Business AML Screening is declined, the following reasons are presented to the end user or client.
Status Code
Description
Elevated AML Risk
SPDR129
Matched against a warnings and regulatory enforcement list: alerts to rule violations, or penalties for non-compliance.
SPDR182
Matched against a sanctions list: penalties or restrictions imposed by authorities for violating laws or international norms.
SPDR183
Matched against a warnings and regulatory enforcement list: alerts to rule violations, or penalties for non-compliance.
SPDR184
Matched against a fitness and probity list: concerns over the business's competence, integrity, or ethical conduct in financial services.
SPDR185
AML screening failed. Business found in PEP lists.
SPDR186
Matched in adverse media: negative or damaging coverage indicating potential risk.
SPDR316
Matched as a Special Interest Business: a business flagged for suspected or confirmed criminal involvement.
SPDR317
Matched as a Special Interest Entity (SIE): an entity flagged for suspected or confirmed criminal involvement.
SPDR318
Matched against an insolvency list: unable to pay debts owed, or declared bankrupt by a judicial process.
Incomplete Verification
SPDR241
The screening process was canceled by the user.
**Tip**
Each declined code maps to a data-source category described in [How It Works](/docs/business_identification_risk/business_aml_screening/how_it_works#data-sources-and-categories). Use the code to route the case to the right review queue, then inspect the matched records in the [response](/docs/business_identification_risk/business_aml_screening/responses).
---
# How It Works?
Source: https://developers.shuftipro.com/docs/business_identification_risk/investor_verification/how_it_works.md
Shufti aids clients in collecting vital investor information essential for onboarding and verification providing customised forms tailored to their unique business needs. Alternatively, clients can create their own forms for verification based on the required details. Whilst also giving clients the flexibility to integrate various KYC services to acquire diverse proofs as needed.
## Investor Verification by Using Existing Form
Clients can streamline their Know Your Investor (KYI) verification process with Shufti by utilizing existing KYI forms, choosing up to five forms simultaneously for targeted information gathering whilst also benefiting from the flexibility to integrate KYI with other KYC services such as document and face verification, opting for either pre or post-KYC sequences.
1. Navigate to the back office product demo section > [Know Your Investor](https://backoffice.shuftipro.com/kyi)
2. Click on the "Start Demo" button to initiate the use of an existing template for investor verification.
3. Choose your preferences for pre/post-KYC services and generate a one-time product demo verification link.
## Investor Verification by Creating New form
1. Navigate to the back office product demo section > Know Your Investor > [Create New](https://backoffice.shuftipro.com/kyi)
2. A new page will open, where you can set the title & description of the form.
3. Going forward, you have the flexibility to create multiple questions within a single form tailored to your specific needs.
4. Clients can implement page and question rules to direct users to specific questions and KYC flows according to their preferences.
5. Finally the form can be saved and used for collecting investor’s data.
**Caution**
Investor Verification Form can only be created through [Shufti's BackOffice](https://backoffice.shuftipro.com/kyi).
## Add Question
You can add as many questions as you need, depending on your business requirement.
**Info**
By default the question limit in each due diligence form is set to 20. This can be updated by contacting the Shufti’s support team at **tech@shuftipro.com**.
To add questions follow these steps:
1. **Default Question**: Upon form creation, a default question appears. Client can modify it, but keeping it is advised for saving progress if the end user leaves the form without submitting it.
2. **Add new Questions**: Click the plus sign next to the page title to add new questions.
3. **Question Title**: Write a title for each new question you add.
4. **Required Setting**: Choose if the question is 'required' or optional and add a description as needed.
5. **Answer Type**: Select the preferred answer format (e.g., Text, Float, Paragraph).
6. **Save Form**: Click 'Proceed' to save your custom due diligence form.
## Answer Types
Answer types allow you to collect the specific data to be collected from the end user according to your business requirements:
| Field | Description |
|-----------------|----------------------------------------------------------------|
| Text | Single-line input for brief text, like names. |
| Dropdown | Compact menu for choosing one from many options. |
| Radio Buttons | Select one option from multiple choices. |
| Email | Field for email addresses, with format validation. |
| Upload File | Allows file uploads, such as documents or images. |
| Integer | For whole number inputs only. |
| Float | Accepts numbers with decimals. |
| Linear Scale | Numeric scale for ratings or evaluations. |
| Date | Date selection, often with a calendar interface. |
| Paragraph | Multi-line text box for longer responses. |
| Countries List | Dropdown list of countries for geographic selection. |
## Add Rules
You can control the flow of due diligence form by adding rules on each question or page. In the Due Diligence Form, two types of rules are employed to achieve the desired workflow:
- **Question Rules**: Implement logic-driven visibility for questions or options based on end user responses. This feature enables you to tailor the form dynamically, showing or hiding additional elements according to the answers provided by the end user.
- **Page Rules**: Set up custom navigation within the form based on end user inputs. Page Rules allow you to direct end users to specific questions or sections of the form, ensuring a personalized and relevant experience tailored to their responses.
## MLRO Verification
After the form has completed and submitted by the end user, our MLRO verifies the gathered information, guaranteeing the precision and authenticity of the investor details.
Shufti provides clients the flexibility to choose between using their own MLROs or relying on Shufti's experienced and trained MLROs for the verification process.
**Tip**
Checkout all supported documents for **Investor Verification** service [here](/docs/coverage/documents#investor-verification).
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/business_identification_risk/investor_verification/onsite.md
In onsite verification, Shufti will directly interact with the end user to collect the required documents for verification purposes.
**Info**
The Investor Verification service is available for Onsite only and before passing the kyi object in the API, please make sure that you have copied the correct UUID from the KYI Section listed in Products Section and the KYI-Model must be active as well.
## Parameters and Description
| Parameters | Description |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| uuid | Required: **Yes** Type: **array** Example 1: ["example_uuid_1"] Example 2: ["example_uuid_1","example_uuid_2"] The **UUID** parameter is an array that takes one or multiple UUIDs (max five) in the array to execute the KYI service for your end users. |
| questionnaire_type | Required: **No** Type: **string** Accepted Values: **pre_kyc, post_kyc** Default-Value: **pre_kyc** The questionnaire type parameters tell whether you want to execute the KYI for your end-users before KYC ("pre_kyc") or after KYC ("post_kyc"). |
| kyi_request | Required: **No** Type: **Boolean** Accepted Values: **true, false** Default-Value: **false** The kyi request parameters represents whether you want to execute the KYI verification for your end-users or simple questionnaire. |
[](https://god.gw.postman.com/run-collection/9386910-7d6c101b-26fe-4ecc-9db0-154e4de5156f?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D9386910-7d6c101b-26fe-4ecc-9db0-154e4de5156f%26entityType%3Dcollection%26workspaceId%3Deb50a5eb-562c-457d-a548-eab92c57a49d)
```json title=kyi-sample-object
{
"kyi": {
"questionnaire_type": "pre_kyc",
"uuid": ["TZJAEG", "XYZABC"],
"kyi_request": true
}
}
```
---
# How It Works?
Source: https://developers.shuftipro.com/docs/electronic_signature/how_it_works.md
The Shufti e-Signature service allows you to instantly send documents to multiple recipients simultaneously, enabling them to sign from anywhere using their devices. By providing a secure and efficient way to obtain signatures, our service enhances flexibility and security while mitigating the risks associated with traditional paper-based signatures.
## Quick Document Signing
Clients can instantly send a document for signatures using these simple steps:
- **Navigate to e-Signature**: Go to Product Demo and select e-Signature.
- **Initiate New Contract**: Clients can start the contract creation process by selecting the option **Create New** from the contracts central.
- **Upload Document**: Shufti e-Signature supports a variety of file formats, including PDF, JPG, PNG, or JPEG. Upload files from your local device or select a ready-to-use template from the template library.
- **Add Recipient & Assign Action**: Specify who receives your document and what action you want them to take. [Need to Sign or Receive a Copy]
- **Write Email Message**: Compose a personalized email message for recipients to provide context for the document.
- **Add Drop Spaces**: For each recipient, add drop spaces to your documents to gather the desired electronic signatures and other information, such as name, date signed, email, and stamp.
- **Set Expiration Time**: Specify the expiration date for the signature request, after which the recipient will no longer have access to sign the contract.
- **Preview & Send**: Review your field setup and send the contract to your recipients.
## Creation of Reusable Template
Clients can create a customised reusable template by following these simple steps:
- **Navigate to e-Signature**: Go to Product Demo and select e-Signature > **Templates**.
- **Create New Template**: Clients can start the template creation process by selecting the option **Create New** from the templates section.
- **Upload Document**: Shufti e-Signature supports a variety of file formats, including PDF, DOCX, JPG, PNG, or JPEG. Upload files from your local device or select a ready-to-use template from the template library.
- **Add Role & Assign Action**: Specify the roles of the recipients and what action you want them to take. [Need to Sign or Receive a Copy]
- **Write Email Message**: Compose a personalized email message for recipients to provide context for the document.
- **Add Drop Spaces**: For each role, add fields to your documents to gather the desired electronic signatures and other information, such as name, date signed, email, and stamp.
- **Save Template**: Review your field setup and save the template for later use.
- **Use Template**: Choose your desired template, give it a title, provide recipient information (name & email), specify expiry details, and send it to the recipients.
## e-Signature with Signer IDV
Verify the identity of the signers by configuring e-Signature with identity verification services by following these simple steps:
- **Navigate to e-Signature**: Go to Product Demo > **Detailed KYC**.
- **Choose Services**: Clients are required to choose their preferred KYC services to pair with e-Signature from available options including Document Verification, Face Verification, AML, and Two-Factor Authentication (2FA) either separately or in combination.
- **Configure Verification Settings**: Clients can configure the verification settings for each selected service.
- **Select e-Signature Template**: Clients are required to select their preferred e-Signature Template, give it a title, provide recipient information (name & email), and set the document expiry date.
- **Send Identity Verification and Document Signing Link**: Once the verification settings are configured and document information is added, send the identity verification link to recipients. Upon successful verification, they will receive the document signing email.
## Recipient Flow
Recipients receive a secure invitation by email to review and sign documents electronically, ensuring a smooth and efficient signing experience. Here's how recipients sign the document:
- **Document Signing Invitation**: Shufti sends an invitation email to each recipient. This email typically includes a link to the document, and a summary of what action needs to be performed.
- **Signing Consent**: Recipients provide signing consent to access the document for signing.
- **Signing a Document**: The recipient locates the signing fields and electronically signs the document using various methods supported by our service. **Supported Signature Method**
- **Complete Signing**: Once all required fields are signed, the recipient submits the document. Shufti records the completion time and signature details for audit purposes.
- **Signing Notification**: A notification email will be sent to the sender informing them that the document has been signed by the recipient.
- **Signed Document Copy**: Upon completion of signing, recipients can obtain a copy of the signed document that contains the signatures of all recipients along with the Signature Certificate.
- **Signature Certificate**: The signature certificate contains sender, recipient, and document details, providing insights into all signing actions (sender initiation, recipient viewing, and completion) for your records and audit purposes.
## Supported Signature Method
Recipients can employ various methods to add their signatures to documents.
- **Pre-set fonts Signatures**: Recipients can choose from a library of pre-defined signatures . This option is ideal for frequently used or standardized signatures.
- **Uploaded Signature Image**: Recipients can upload an image of their wet signature (physical signature on paper) for electronic document signing. This image file should be in a commonly supported format (e.g., PNG, JPG).
- **Signature Draw Pad**: Recipients can sign directly on the document by drawing signature in the real-time. The e-Signature service will capture this drawn signature electronically.
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/electronic_signature/onsite.md
With On-site verification, Shufti directly interacts with the end-user, managing data collection to facilitate document signing. Document status updates are exclusively communicated to the Shufti customer via the dedicated Shufti Back Office.
**Info**
The e-Signature service is available for Onsite only and before passing the esign object in the API, please make sure that you have copied the correct template_hash_id from the **e-Signature Templates** listed in Products Section.
## Parameters and Descriptions
The parameters mentioned below apply to onsite verifications specifically for e-Signature payloads. Universal parameters integral to every verification request processed by Shufti are listed in the General Parameters section.
Parameters | Description
-------------- | --------------
contract_title | Required: **Yes** Type: **string** Maximum: **60** Example: (contract_title: Partnership Agreement) This parameter allows you to specify a suitable title for the e-Signature contract.
template_hash_id | Required: **Yes** Type: **string** Example: (template_hash_id: 1234abcd9iun) The Template Hash Id is a unique identifier assigned to each template within the e-Signature service. This parameter is used to reference the template for execution.
recipients_data | Required: **Yes** Type: **array** Maximum: **15** This parameter is an array containing an objects of recipient information. Each recipient object within the array specifies details about a single signer for the e-Signature contract. These recipient objects typically include: Role, Name, Email and Action.
role | Required: **No** Type: **string** Maximum: **25** Example: (role: Director) This optional parameter allows you to specify the recipient's role within the e-Signature contract.
name | Required: **Yes** Type: **string** Maximum: **50** Example: (name: John Doe) This parameter allows you to specify the recipient's full name for the e-Signature contract.
email | Required: **Yes** Type: **string** Maximum: **70** Allowed Characters: Kindly ensure that email addresses adhere to the standard conventions, including valid characters such as letters, numbers, and symbols like '@' and '.'. Example: (email: john.doe@example.com) This parameter specifies the email address of the recipient who will be signing the e-Signature contract.
action | Required: **Yes** Type: **string** Value: **needs_to_sign or receives_a_copy** This parameter allows you to specify a specific action for the recipient within the e-Signature contract. The action would be either **needs_to_sign** or **receives_a_copy**. **Needs to Sign**: This action indicates that the recipient needs to electronically sign the document. **Receives a Copy**: This action indicates that the recipient should only receive a copy of the signed document
expiry_days | Required: **Yes** Type: **number** Minimum: **1** (day) Maximum: **999** (days) Default: **7** (days) This parameter allows you to specify the number of days for which the e-Signature request will remain valid for recipients. After this period, the signing link will expire, and recipients will no longer be able to access and sign the document.
[](https://app.getpostman.com/run-collection/29345054-00761dac-23aa-4999-9aff-c231b139c51e?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D29345054-00761dac-23aa-4999-9aff-c231b139c51e%26entityType%3Dcollection%26workspaceId%3Db555a765-2e27-4372-b134-e1dc0a8c5a9a)
**http**
```json
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
// replace "Basic" with "Bearer in case of Access Token"
{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url": "http://www.example.com",
"ttl" : 60,
"verification_mode" : "any",
"esign" : {
"contract_title": "contract_title",
"template_hash_id": "12345678abcdefg12345678",
"recipients_data": [
{
"role": "role_title",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "needs_to_sign"
},
{
"role": "role_title_2",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "needs_to_sign"
},
{
"role": "role_title_3",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "receives_a_copy"
}
],
"expiry_days": 7,
}
}
```
**javascript**
```javascript
let payload = {
reference : \`SP_REQUEST_${Math.random()}\`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
redirect_url : "https://yourdomain.com/site/sp-redirect",
country : "GB",
language : "EN",
verification_mode : "any",
ttl : 60,
}
payload['esign']: {
contract_title: 'contract_title',
template_hash_id: '12345678abcdefg12345678',
recipients_data: [
{
role: 'role_title',
name: 'John Doe',
email: 'john.doe@email.com',
action: 'needs_to_sign',
},
{
role: 'role_title_2',
name: 'John Doe',
email: 'john.doe@email.com',
action: 'needs_to_sign',
},
{
role: 'role_title_3',
name: 'John Doe',
email: 'john.doe@email.com',
action: 'receives_a_copy',
},
],
"expiry_days": 7,
},
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY");
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'request.pending') {
createIframe(data.verification_url)
}
});
function createIframe(src) {
let iframe = document.createElement('iframe');
iframe.style.position = 'fixed';
iframe.id = 'shuftipro-iframe';
iframe.name = 'shuftipro-iframe';
iframe.allow = "camera";
iframe.src = src;
iframe.style.top = 0;
iframe.style.left = 0;
iframe.style.bottom = 0;
iframe.style.right = 0;
iframe.style.margin = 0;
iframe.style.padding = 0;
iframe.style.overflow = 'hidden';
iframe.style.border = "none";
iframe.style.zIndex = "2147483647";
iframe.width = "100%";
iframe.height = "100%";
iframe.dataset.removable = true;
document.body.appendChild(iframe);
}
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
'verification_mode' => 'any',
'ttl' => 60,
];
$verification_request['esign'] =[
'contract_title' => 'contract_title',
'template_hash_id' => '12345678abcdefg12345678',
'recipients_data' => array(
array(
'role' => 'role_title',
'name' => 'John Doe',
'email' => 'john.doe@email.com',
'action' => 'needs_to_sign',
),
array(
'role' => 'role_title_2',
'name' => 'John Doe',
'email' => 'john.doe@email.com',
'action' => 'needs_to_sign',
),
array(
'role' => 'role_title_3',
'name' => 'John Doe',
'email' => 'john.doe@email.com',
'action' => 'receives_a_copy',
),
),
"expiry_days": 7,
];
$verification_request['address'] = [
'proof' => '',
'name' => '',
'full_address' => '',
'address_fuzzy_match' => '1',
'issue_date' => '',
'supported_types' => ['utility_bill','passport','bank_statement']
];
$auth = $client_id.":".$secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($verification_request);
$response = send_curl($url, $post_data, $headers, $auth);
$response_data = $response['body'];
$exploded = explode("\n", $response['headers']);
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if($event_name == 'request.pending'){
if($sp_signature == $calculate_signature){
$verification_url = $decoded_response['verification_url'];
echo "Verification url :" . $verification_url;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**python**
```python
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
client_id = 'YOUR-CLIENT-ID'
secret_key = 'YOUR-SECRET-KEY'
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback',
'verification_mode' : 'any',
'ttl' : 60,
}
verification_request['esign'] = {
"contract_title": "contract_title",
"template_hash_id": "12345678abcdefg12345678",
"recipients_data": [
{
"role": "role_title",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "needs_to_sign"
},
{
"role": "role_title_2",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "needs_to_sign"
},
{
"role": "role_title_3",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "receives_a_copy"
},
"expiry_days": 7,
]
}
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
sp_signature = response.headers.get('Signature','')
json_response = json.loads(response.content)
event_name = json_response['event']
print (json_response)
if event_name == 'request.pending':
if sp_signature == calculated_signature:
verification_url = json_response['verification_url']
print ('Verification URL: {}'.format(verification_url))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```ruby
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
CLIENT_ID = "YOUR-CLIENT-ID"
SECRET_KEY = "YOUR-SECRET-KEY"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN",
redirect_url: "http://www.example.com",
verification_mode: "any",
ttl: 60,
esign: {
contract_title: 'contract_title',
template_hash_id: '12345678abcdefg12345678',
recipients_data: [
{
role: 'role_title',
name: 'John Doe',
email: 'john.doe@email.com',
action: 'needs_to_sign',
},
{
role: 'role_title_2',
name: 'John Doe',
email: 'john.doe@email.com',
action: 'needs_to_sign',
},
{
role: 'role_title_3',
name: 'John Doe',
email: 'john.doe@email.com',
action: 'receives_a_copy',
},
],
"expiry_days": 7,
},
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}"
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
calculated_signature = Digest::SHA256.hexdigest response_data + (Digest::SHA256.hexdigest SECRET_KEY)
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String requestBody = "{" +
"\"reference\": \"1234567\"," +
"\"callback_url\": \"http://www.example.com/\"," +
"\"email\": \"johndoe@example.com\"," +
"\"country\": \"GB\"," +
"\"language\": \"EN\"," +
"\"redirect_url\": \"http://www.example.com\"," +
"\"ttl\": 60," +
"\"verification_mode\": \"any\"," +
"\"esign\": {" +
"\"contract_title\": \"contract_title\"," +
"\"template_hash_id\": \"12345678abcdefg12345678\"," +
"\"recipients_data\": [" +
"{" +
"\"role\": \"role_title\"," +
"\"name\": \"John Doe\"," +
"\"email\": \"john.doe@email.com\"," +
"\"action\": \"needs_to_sign\"" +
"}," +
"{" +
"\"role\": \"role_title_2\"," +
"\"name\": \"John Doe\"," +
"\"email\": \"john.doe@email.com\"," +
"\"action\": \"needs_to_sign\"" +
"}," +
"{" +
"\"role\": \"role_title_3\"," +
"\"name\": \"John Doe\"," +
"\"email\": \"john.doe@email.com\"," +
"\"action\": \"receives_a_copy\"" +
"}" +
"]" +
"expiry_days": 7, +
"}" +
"}";
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
}
```
**c#**
```csharp
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body =
{
""reference"": ""1234567"",
""callback_url"": ""http://www.example.com/"",
""email"": ""johndoe@example.com"",
""country"": ""GB"",
""language"": ""EN"",
""redirect_url"": ""http://www.example.com"",
""ttl"": 60,
""verification_mode"": ""any"",
""esign"": {
""contract_title"": ""contract_title"",
""template_hash_id"": ""12345678abcdefg12345678"",
""recipients_data"": [
{
""role"": ""role_title"",
""name"": ""John Doe"",
""email"": ""john.doe@email.com"",
""action"": ""needs_to_sign""
},
{
""role"": ""role_title_2"",
""name"": ""John Doe"",
""email"": ""john.doe@email.com"",
""action"": ""needs_to_sign""
},
{
""role"": ""role_title_3"",
""name"": ""John Doe"",
""email"": ""john.doe@email.com"",
""action"": ""receives_a_copy""
}
],
""expiry_days"": 7
}
}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"redirect_url": "http://www.example.com",
"ttl": 60,
"verification_mode": "any",
"esign": {
"contract_title": "contract_title",
"template_hash_id": "12345678abcdefg12345678",
"recipients_data": [
{
"role": "role_title",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "needs_to_sign"
},
{
"role": "role_title_2",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "needs_to_sign"
},
{
"role": "role_title_3",
"name": "John Doe",
"email": "john.doe@email.com",
"action": "receives_a_copy"
}
],
"expiry_days": 7,
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
## e-Signature Single Recipient Sample Object
```json title=e-signature-single-recipient-sample-object
{
"esign": {
"contract_title": "unique_title",
"template_hash_id": "string_hashed_id",
"recipients_data": [
{
"role": "admin",
"action": "needs_to_sign",
"both": false,
"name": "John Doe",
"email": "email@test.com"
}
],
"expiry_days": 7,
}
}
```
## e-Signature Multiple Recipients Sample Object
```json title=e-signature-multiple-recipients-sample-object
{
"esign": {
"contract_title": "unique_title",
"template_hash_id": "string_hashed_id",
"recipients_data": [
{
"role": "admin",
"action": "needs_to_sign",
"both": false,
"name": "John Doe",
"email": "email@test.com"
},
{
"role": "employee",
"action": "needs_to_sign",
"both": false,
"name": "John Doe",
"email": "email@test.com"
},
{
"role": "HR",
"action": "receives_a_copy",
"both": false,
"name": "John Doe",
"email": "email@test.com"
}
],
"expiry_days": 7,
}
}
```
## e-Signature with Signer IDV Sample Object
```json title=e-signature-with-signer-idv-sample-object
{
"esign": {
"contract_title": "unique_title",
"template_hash_id": "string_hashed_id",
"recipients_data": [
{
"role": "admin",
"action": "needs_to_sign",
"both": false,
"name": "John Doe",
"email": "email@test.com"
},
{
"role": "HR",
"action": "receives_a_copy",
"both": false,
"name": "John Doe",
"email": "email@test.com"
}
],
"expiry_days": 7,
},
"face": {
"proof": "",
"check_duplicate_request": 0
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": ["id_card", "driving_license", "passport"],
"name": {
"first_name": "",
"last_name": ""
},
"dob": "",
"age": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"allow_offline": "1",
"fetch_enhanced_data": "1",
"backside_proof_required": "0",
"verification_mode": "any",
"gender": ""
},
"phone": {
"phone_number": "",
"random_code": null,
"text": "Hi, Your code for verification is"
},
"background_checks": {
"name": {
"fuzzy_match": "1"
},
"dob": "",
"ongoing": "0",
"filters": [
"sanction",
"warning",
"fitness-probity",
"pep",
"pep-class-1",
"pep-class-2",
"pep-class-3",
"pep-class-4"
]
}
}
```
**Info**
You can only use Face, Document, 2FA, and Background Screening services for identity verification with e-Signature, either separately or in combination.
---
# How It Works?
Source: https://developers.shuftipro.com/docs/business_identification_risk/qualified_electronic_signature/how_it_works.md
Overview
Shufti's Qualified Electronic Signature (QES) service enables businesses to collect legally binding electronic signatures from end users in compliance with the eIDAS Regulation (EU) 910/2014. QES is the highest legally recognised form of electronic signature under European law, equivalent to a handwritten signature in all EU member states.
Shufti orchestrates the full signing ceremony on behalf of the Merchant: identity proofing, qualified certificate issuance, document presentation, and signature collection. The service is powered by Evrotrust, an EU-regulated Qualified Trust Service Provider (QTSP), listed on the European Union Trusted List (EUTL).
Shufti supports two approaches to document signing:
- **Upload Document:** The Merchant uploads the document, and Shufti handles hash computation, signing, and embeds the signed hash into the PDF.
- **Provide Document Hash:** The Merchant computes the document hash and submits only the hash. Shufti returns a signed hash that the Merchant attaches to the document in their own environment. In this approach, the document never leaves the Merchant's environment.
## When to Use QES
QES is required or recommended for use cases that require a high-assurance, legally defensible signature. Common scenarios include:
- **Financial services:** Loan agreements, investment mandates, account opening documentation requiring LoA High identity proofing.
- **HR and employment:** Employment contracts, consent forms, and offer letters that must be legally binding across EU jurisdictions.
- **Real estate and legal:** Property contracts, notarial acts, and legal instruments that require an equivalent to a wet signature.
- **Healthcare:** Patient consent forms and clinical documentation where regulatory requirements mandate a qualified signature.
- **Regulated onboarding:** Any onboarding flow where national or EU regulation explicitly requires a QES rather than an Advanced Electronic Signature (AES).
## How It Works
Shufti's QES flow combines identity proofing, qualified certificate issuance, and signature collection into a single hosted end-to-end service. The Merchant triggers the flow via API; all subsequent steps are handled within Shufti's hosted verification environment.
**1: Merchant initiates a QES request**
The Merchant sends an API request to Shufti containing the document(s) to be signed or the hashes, the signatory's reference data, and a callback URL. Shufti validates the request and returns a hosted verification URL.
**2: Signatory is redirected to the Shufti-hosted flow**
The end user opens the hosted URL via iFrame, redirect, or in-app browser. The entire identity proofing and signing ceremony takes place within this environment.
**3: Identity proofing is performed**
Shufti verifies the signatory's identity using one of the supported verification methods: Document + Biometrics, NFC chip reading, or eID-based verification.
**4: QTSP issues a qualified certificate**
Once identity proofing is complete and confirmed, Evrotrust (the QTSP) issues a one-time qualified certificate bound to the verified signatory. This certificate is used exclusively for the current signing event.
**5: Signatory reviews and signs the document**
The document is presented to the signatory within the hosted flow. The signatory authenticates using the QTSP-issued certificate and applies the QES. All pages of the document are presented before signing can proceed.
**6: Signed document and evidence package are returned**
For document upload requests, Shufti delivers the signed document with an embedded QES. For hash submission requests, Shufti delivers a detached qualified signature for each submitted hash. In both cases, the qualified certificate, identity proofing evidence, and full audit trail are included alongside the signature(s), delivered to the Merchant's callback URL and available via the API response.
**Info**
QES supports **Onsite** verification only. There is no Offsite flow — the end user must complete the signing and identity steps through the Shufti hosted flow.
## Supported Identity Verification Methods
Shufti supports three identity proofing methods for QES. Each maps to a specific procedure under ETSI TS 119 461 v1 and satisfies the LoA requirement.
- **Document Verification + Facial Biometrics:** The signatory captures their government-issued ID (ID Card or Passport) and completes an active liveness check. Shufti's AI engine verifies document authenticity, extracts identity data via OCR, and performs a face match against the document photograph.
- **NFC Document Verification + Facial Biometrics:** Where the signatory's device supports NFC and the identity document contains an ICAO-compliant chip, Shufti reads identity data directly from the chip using BAC/PACE protocols. NFC reading eliminates optical capture limitations and provides a higher-fidelity proofing signal by reading data directly from the issuing authority's chip.
- **Active eID-Based Verification:** The signatory authenticates using an active eID scheme from a Shufti-supported eIDAS-notified scheme. Identity data is retrieved directly from the eID's secure element, bypassing manual document capture entirely. This is the preferred method in markets with mature eID infrastructure.
## Supported Identity Documents
The following identity documents are accepted for QES identity proofing. For NFC-based proofing, the document must contain an ICAO-compliant chip and the signatory's device must support NFC.
- National Identity Card
- Passport
- NFC-enabled ID cards and passports
## Supported eID Schemes
All schemes listed below are eIDAS-notified and carry a Level of Assurance of Substantial and High (LoA Substantial/High).
| Country | eID Scheme | Level of Assurance |
|---|---|---|
| Austria | ID Austria | High |
| Bulgaria | Evrotrust eID | Substantial & High |
| Czech Republic | MojeID | Substantial & High |
| Denmark | MitID | Substantial & High |
| Estonia | iD KAART | High |
| France | France Identité | High |
| Italy | SPID | Substantial & High |
| Latvia | eParaksts Smart Card | Substantial & High |
| Norway | BankID Norway | High |
| Sweden | Swedish BankID | Substantial & High |
**Note**
For country-wise coverage of supported document types and eID schemes available through the Identity Verification (IDV) methods within the QES solution, please refer to the [QES Coverage](/docs/coverage/countries?service=qes) section
## Verification Report
Every QES transaction generates a verification report accessible via the Shufti backoffice and the API response. The report contains the complete record of the identity proofing and signing session. Merchants should retain this report for audit and compliance purposes. The signed document can also be downloaded directly from the report, and a copy can be received via email.
The QES verification report contains the following information:
| Report Section | Contents |
|---|---|
| Verification Summary | Verification status (Accepted/Declined), Reference ID, Customer ID, email, timestamp, timezone, language, processing time, browser info (IP, location, device, browser version), use case, verification services used, achieved LoIP, Level of Assurance. |
| Device IP and Network Risks | IP address, geolocation (continent, country, city), IP timezone, coordinates, ASN number, ASN name, routing type, risk score, and individual checks: datacenter detection, proxy detection, tor detection, VPN detection, document and IP country match, IP and timezone match, emulated device detection, device jailbreak detection, frequent IP changes detection. Device fingerprint with Visitor/Fingerprint ID. |
| Browser Details | Browser timezone, current time, OS name, user agent, threat level. |
| Facial Biometrics Verification | Check results for: selfie capture, deepfake detection, document in hand verification, face liveness. Face image with metadata (size, device, capture mode, DPI, resolution, format, mimetype, created timestamp). |
| Document Verification | Individual check results for: Document Originality, Visual Integrity, Issue Date on Document Match, Security Features Detection, Expiry Date on Document Match, Document Sides Consistency, Document Type Consistency, Selfie and Face on Document Match, Name Match on Document, DOB on Document Match, Document Expiration, Document Issuing Country, Document Number Match. |
| Document Extracted Data | Full Name, Document Type, Country, Date of Birth, Age, Expiry Date, Issue Date, Document Number, etc. |
| Document Images | Front side and back side document images with metadata per image: size, device, capture mode, DPI, resolution, format, mimetype, created timestamp. |
| Email MFA Verification | Email address validation status, email OTP authentication status, email address. |
| Qualified Electronic Signature | Signer Name, Certificate Issuer (Evrotrust), Serial Number, Valid From, Valid To, Qualified Time-Stamped timestamp. Signed document file with status badge. For document upload requests: the signed PDF (PAdES signature with long-term validation data embedded, verifiable with any standard PDF signature validator) is available for download from the report and can be shared via email. For hash submission requests: the detached qualified signature (PKCS#7/CAdES) for each submitted hash is returned in the API response. |
| Video Recording | Full video recording of the verification journey with frame-by-frame thumbnails. |
| Face Match Score | Match score percentage between selfie and document photo, side-by-side comparison of face image and document front side with metadata. |
| Verification Timeline | Timestamped event log showing each step: Verification Initiated (with device, location, IP), Consent Accepted, Device Switched (if applicable, with new device details), Document Submission (document type, capture mode), Face Submission (capture mode), QES Submission (upload status), Ready for Processing, Approved (with total processing time). Each event includes a timestamp, device, location, and IP address. |
| General Data | Verification Mode, Verification Type (Onsite), etc. |
---
# Onsite Integration
Source: https://developers.shuftipro.com/docs/business_identification_risk/qualified_electronic_signature/onsite.md
The Onsite integration mode is the primary integration path for QES. In this mode, Shufti hosts the complete verification and signing journey. The Merchant initiates a session via the API and receives a hosted verification URL. The end user completes identity proofing and document signing within the Shufti-hosted flow, with no additional data collection required on the Merchant's side.
## Document Signing Approaches
Shufti supports two approaches for QES document signing. In both cases, the qualified signature is applied to a SHA-256 hash of the document. The difference is who computes the hash and where the document resides during signing.
- **Document Upload (Shufti computes the hash):** The Merchant provides the document as a PDF via `qes.proofs`. Shufti computes the SHA-256 hash, manages the signing process, and returns the signed document with an embedded QES. Use this method when the Merchant wants Shufti to handle the full signing lifecycle, including document custody, hash computation, and signed document return.
- **Hash Submission (Merchant computes the hash):** The Merchant computes the SHA-256 hash of each document and submits only the hashes via `qes.hashes`. No document content is uploaded to Shufti. A detached qualified signature (PKCS#7) is returned for each hash, which the Merchant attaches to the original document in their own environment. In this approach, the document never leaves the Merchant's environment. Use this method when the original documents must remain within the Merchant's environment due to data residency, confidentiality, or contractual requirements. Also use when document size or volume makes full document upload impractical.
**Note**
**Validation:** `qes.proofs` and `qes.hashes` are mutually exclusive. Submitting both in the same request returns a validation error. Each hash in `qes.hashes` must be a valid SHA-256 hex string (64 characters, lowercase).
Status updates are delivered to the Merchant's registered callback URL in real time as the session progresses through each stage.
| Attribute | Detail |
|---|---|
| Base URL | https://api.shuftipro.com/ |
| Method | POST |
| Content-Type | application/json |
| Authorization | Basic Auth (Base64-encoded Client ID: Secret Key) |
| Response format | JSON |
| Session delivery | Hosted URL returned on request creation |
| Status delivery | Callback (webhook) to Merchant-registered URL |
**Info**
QES does not support Offsite integration. Only the Onsite flow is available.
## Request Parameters
The parameters mentioned below are specific to the `qes` service and the top-level parameters that govern how the signatory's identity is proved. When the `qes` object is present, the signatory's identity must be verified through one of the supported flows — either the `document` and `face` services together, or the `ekyc` service.
Parameters | Description
-------------- | --------------
qes.proofs | Required: **Yes** (when `qes.hashes` is not provided) Type: **Array of objects** Minimum: **1 document** Maximum: **20 documents** Array of base64-encoded PDF documents to be signed. Each entry must include a `filename` and the base64-encoded `data`. Shufti computes the SHA-256 hash, manages the signing process, and returns the signed PDF with an embedded QES. Mutually exclusive with `qes.hashes`.
qes.proofs.*.filename | Required: **Yes** (within each `qes.proofs` entry) Type: **string** Maximum: **255 characters** Filename of the document. Surfaced to the signatory in the hosted flow and returned alongside the signed output.
qes.proofs.*.data | Required: **Yes** (within each `qes.proofs` entry) Type: **string** Format: **PDF only** Maximum: **14MB** Provide a valid BASE64-encoded PDF string. May be prefixed with the `data:application/pdf;base64,` data URI scheme.
qes.hashes | Required: **Yes** (when `qes.proofs` is not provided) Type: **Array of strings** Format: **SHA-256 hex (64 hex characters)** Minimum: **1 hash** Maximum: **20 hashes** Array of SHA-256 hex strings (64 characters each). Use this field for the hash approach, where the Merchant retains custody of the source documents and never uploads them to Shufti. The signatory signs the hash list directly and Shufti returns a detached CAdES (PKCS#7) qualified signature per hash. Mutually exclusive with `qes.proofs`.
qes.pdf_mode | Required: **No** Type: **string** Accepted values: **`0`, `1`** Default: **`0`** **Hash Submission only** — applies when the request carries `qes.hashes`. Set to `1` to declare that each submitted digest is the ByteRange digest of a PDF and that the Merchant holds that PDF. The CMS signature is then built to the PAdES profile: the signed attributes are exactly `content-type`, `message-digest` and `signing-certificate-v2`, with the `signing-time` attribute **excluded**. PAdES prohibits `signing-time` because a PDF already records the signing time natively in the signature dictionary's `/M` entry, and a duplicate inside the CMS causes strict validators to report the signature as the older PAdES-BES rather than a PAdES-BASELINE profile. Sent alongside `qes.proofs` (Document Upload) the flag is **ignored** — Shufti holds the PDF in that flow and its pipeline is unchanged. With `pdf_mode` set to `0` or omitted, `signing-time` is retained exactly as before, which is correct for CAdES signatures over non-PDF content.
qes.phone_number | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **64 characters** Format: **+[digits]** Phone number of the signatory, including the country code prefixed with `+`.
regulatory_compliance_methods | Required: **Yes** Type: **Object** Minimum keys: **2** Must contain at least 2 of the sub-fields below, and at least one of `nfc_service_requested`, `standered_face_service_requested`, or `eidv_service_requested` must be `1`.
regulatory_compliance_methods.standered_face_service_requested | Required: **No** Type: **string** Accepted Values: **0, 1** When set to `1`, the signatory is verified using the standard Document + Face flow. In this case the top-level `document` and `face` services are **required**.
regulatory_compliance_methods.nfc_service_requested | Required: **No** Type: **string** Accepted Values: **0, 1** When set to `1`, the signatory is verified by reading the NFC chip of their e-passport or eID document. In this case the top-level `document` and `face` services are **required**.
regulatory_compliance_methods.eidv_service_requested | Required: **No** Type: **string** Accepted Values: **0, 1** When set to `1` (and the other two methods are `0`), the signatory is verified through an electronic identity verification provider. In this case the top-level `ekyc` service is **required** and `document` / `face` are **prohibited**.
allow_retry | Required: **Yes** Type: **string** Accepted Values: **1** Must be set to `1` so the user can retry failed steps.
show_ocr_form | Required: **Yes** Type: **string** Accepted Values: **1** Must be set to `1` so the OCR form is displayed to the user.
allow_online | Required: **Yes** Type: **string** Accepted Values: **1** Must be set to `1`. The signatory completes the verification through the live Shufti-hosted journey.
allow_offline | Required: **Yes** Type: **string** Accepted Values: **0** Must be set to `0`. Offline submission is not supported in this flow.
verification_mode | Required: **No** Type: **string** Accepted Values: **any** When `regulatory_compliance_methods` is present, `verification_mode` is **restricted** to the value `any`. Other modes (`image_only`, `video_only`) are not allowed.
is_baseline_loip | Required: **Yes** Type: **string** Accepted Values: **1** Must be set to `1`. Performs the verification against the baseline level of identity proofing.
show_results | Required: **Yes** Type: **string** Accepted Values: **1** Must be set to `1`. Displays the verification result screen to the signatory at the end of the hosted flow.
decline_on_single_step | Required: **No** Type: **string** Accepted Values: **0, 1** When set to `1`, the verification is declined as soon as any single step fails instead of allowing the user to continue with the remaining steps.
email_verify | Required: **Yes** Type: **Object** The signatory's email is verified as part of the QES flow. Pass the signatory's email under `email_verify.email`.
face.document_in_hand_verification | Required: **Yes** (when `standered_face_service_requested` is `1`) Type: **string** Accepted Values: **1** Must be set to `1` for the Standard Document + Face flow so the signatory is prompted to hold the document in hand during the face capture.
document.supported_types | Required: **Yes** Type: **Array** Accepted Values (when `nfc_service_requested` or `standered_face_service_requested` is `1`): **id_card, passport** only. Other types (`driving_license`, `credit_or_debit_card`, etc.) are rejected in this flow.
document.name | Required: **Yes** (when `nfc_service_requested` or `standered_face_service_requested` is `1`) Type: **Object** The `name` object key must be present in the payload. Its values may be empty — the canonical values are extracted from the document during the hosted flow.
document.name.fuzzy_match | Required: **Yes** (when `nfc_service_requested` or `standered_face_service_requested` is `1`) Type: **string** Accepted Values: **1** Must be set to `1` in the NFC and Standard Document + Face flows.
document.document_number | Required: **Yes** (when `nfc_service_requested` or `standered_face_service_requested` is `1`) Type: **string** The `document_number` key must be present in the payload. Its value may be empty — the canonical document number is extracted from the document during the hosted flow.
document.dob | Required: **Yes** (when `nfc_service_requested` or `standered_face_service_requested` is `1`) Type: **string** The `dob` key must be present in the payload. Its value may be empty — the canonical date of birth is extracted from the document during the hosted flow.
document.issue_date | Required: **Yes** (when `nfc_service_requested` or `standered_face_service_requested` is `1`) Type: **string** The `issue_date` key must be present in the payload. Its value may be empty — the canonical issue date is extracted from the document during the hosted flow.
document.expiry_date | Required: **Yes** (when `nfc_service_requested` or `standered_face_service_requested` is `1`) Type: **string** The `expiry_date` key must be present in the payload. Its value may be empty — the canonical expiry date is extracted from the document during the hosted flow.
document.backside_proof_required | Required: **Yes** (when `nfc_service_requested` or `standered_face_service_requested` is `1`) Type: **string** Accepted Values: **1** Must be set to `1` so both sides of the document are captured during the hosted flow.
ekyc.eidv_countries | Required: **Yes** (when `eidv_service_requested` is `1`) Type: **Array of objects** One or more country entries. Each entry must include a `code` (ISO 3166-1 alpha-2) and a `verification_approach`. Multiple countries may be passed in a single request; the signatory selects from the offered list in the hosted flow.
ekyc.eidv_countries.*.code | Required: **Yes** (within each `eidv_countries` entry) Type: **string** Format: **ISO 3166-1 alpha-2** (e.g. `NO`, `GB`, `DE`). The country whose data source is used for eIDV.
ekyc.eidv_countries.*.verification_approach | Required: **Yes** (within each `eidv_countries` entry, when `eidv_service_requested` is `1`) Type: **string** Accepted Values: **active** The country's per-source verification approach. For the QES eIDV flow this is set to `active`.
ekyc.eidv_verification_type | Required: **Yes** (when `eidv_service_requested` is `1`) Type: **string** Accepted Values: **active** The eIDV verification type for the QES eIDV flow. Set to `active`.
**Caution**
When `nfc_service_requested` or `standered_face_service_requested` is `1`, the proof fields `face.proof`, `document.proof`, and `document.additional_proof` are **prohibited** — the signatory submits these proofs through the Shufti onsite flow rather than in the API payload.
**Info**
**Cross-service requirement:** When the `qes` object is present, both the `document` and `face` services are required — unless the `ekyc` service is also sent, in which case `ekyc` (eIDV) substitutes for `document` and `face`.
## QES with Standard Document and Face Verification
```json title=qes-service-sample-object-onsite-standard-face-document
{
"reference": "ABCDEF",
"allow_retry": "1",
"show_ocr_form": "1",
"allow_online": "1",
"allow_offline": "0",
"verification_mode": "any",
"is_baseline_loip": "1",
"show_results": "1",
"decline_on_single_step": "0",
"regulatory_compliance_methods": {
"standered_face_service_requested": "1",
"nfc_service_requested": "0",
"eidv_service_requested": "0"
},
"qes": {
"proofs": [
{
"filename": "agreement.pdf",
"data": "data:application/pdf;base64,JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI+PgplbmRvYmoKMiAwIG9iago8PC9UeXBlL1BhZ2VzL0NvdW50IDEvS2lkc1szIDAgUl0+PgplbmRvYmoKMyAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXT4+CmVuZG9iagolJUVPRgo="
}
],
"phone_number": "+123456789"
},
"email_verify": {
"email": "signatory@example.com"
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": ["id_card", "passport"],
"backside_proof_required": "1",
"name": {
"first_name": "",
"middle_name": "",
"last_name": "",
"fuzzy_match": "1"
},
"document_number": "",
"dob": "",
"issue_date": "",
"expiry_date": ""
},
"face": {
"proof": "",
"check_duplicate_request": "0",
"document_in_hand_verification": "1"
}
}
```
## QES with NFC Document and Face Verification
```json title=qes-service-sample-object-onsite-nfc
{
"reference": "ABCDEF",
"allow_retry": "1",
"show_ocr_form": "1",
"allow_online": "1",
"allow_offline": "0",
"verification_mode": "any",
"is_baseline_loip": "1",
"show_results": "1",
"decline_on_single_step": "0",
"regulatory_compliance_methods": {
"nfc_service_requested": "1",
"standered_face_service_requested": "0",
"eidv_service_requested": "0"
},
"qes": {
"proofs": [
{
"filename": "agreement.pdf",
"data": "data:application/pdf;base64,JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI+PgplbmRvYmoKMiAwIG9iago8PC9UeXBlL1BhZ2VzL0NvdW50IDEvS2lkc1szIDAgUl0+PgplbmRvYmoKMyAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXT4+CmVuZG9iagolJUVPRgo="
}
],
"phone_number": "+123456789"
},
"email_verify": {
"email": "signatory@example.com"
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": ["passport", "id_card"],
"backside_proof_required": "1",
"name": {
"first_name": "",
"middle_name": "",
"last_name": "",
"fuzzy_match": "1"
},
"document_number": "",
"dob": "",
"issue_date": "",
"expiry_date": ""
},
"face": {
"proof": "",
"check_duplicate_request": "0"
}
}
```
## QES with Active eID-Based Verification
```json title=qes-service-sample-object-onsite-eidv
{
"reference": "ABCDEF",
"allow_retry": "1",
"show_ocr_form": "1",
"allow_online": "1",
"allow_offline": "0",
"verification_mode": "any",
"is_baseline_loip": "1",
"show_results": "1",
"decline_on_single_step": "0",
"regulatory_compliance_methods": {
"eidv_service_requested": "1",
"standered_face_service_requested": "0",
"nfc_service_requested": "0"
},
"qes": {
"proofs": [
{
"filename": "agreement.pdf",
"data": "data:application/pdf;base64,JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI+PgplbmRvYmoKMiAwIG9iago8PC9UeXBlL1BhZ2VzL0NvdW50IDEvS2lkc1szIDAgUl0+PgplbmRvYmoKMyAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXT4+CmVuZG9iagolJUVPRgo="
}
],
"phone_number": "+123456789"
},
"email_verify": {
"email": "signatory@example.com"
},
"ekyc": {
"eidv_verification_type": "active",
"eidv_countries": [
{ "code": "NO", "verification_approach": "active" },
{ "code": "SE", "verification_approach": "active" },
{ "code": "DK", "verification_approach": "active" }
]
}
}
```
## Document Upload Status Response
For Document Upload requests across all three identity-proofing flows (Standard Document and Face, NFC, and Active eID), the `/status` response returns the signed PDF(s) under `proofs.qes[]` as `{name, url}` pairs, and the qualified certificate metadata under `verification_data.qes` (signer name, certificate issuer, serial number, validity window, and `aggregate_status` for the batch).
| Field | Type | Description |
|---|---|---|
| `proofs.qes[].name` | String | Original filename of the document submitted via `qes.proofs`. |
| `proofs.qes[].url` | String | URL to download the signed PDF with the embedded qualified signature (PAdES). |
| `verification_data.qes.signer_name` | String | Full name of the signatory as recorded on the qualified certificate. |
| `verification_data.qes.serial_number` | String | Serial number of the qualified certificate used for signing. |
| `verification_data.qes.issuer_cn` | String | Common name of the qualified certificate issuer (QTSP). |
| `verification_data.qes.valid_from` | String | Start of the certificate validity window. |
| `verification_data.qes.valid_to` | String | End of the certificate validity window. |
| `verification_data.qes.created_at` | String | Timestamp when the QES batch was created. |
| `verification_data.qes.aggregate_status` | String | Overall batch status across all submitted documents (e.g. `all_signed`). |
```json title=qes-status-response-document-upload
//Content-Type: application/json
//Signature: NmI4NmIyNzNmZjM0ZmNl
{
"reference": "17374217",
"event": "verification.accepted",
"country": "GB",
"proofs": {
"face": {
"proof": "https://ns.shuftipro.com/api/pea/15c1cf23bc0ed5a25613539f5cn3bebc0d566cda"
},
"document": {
"proof": "https://ns.shuftipro.com/api/pea/65c1df23bc0ed5a25613539f5cn3bebc0d566cac",
"additional_proof": "https://ns.shuftipro.com/api/pea/705b6ad48cc8ec08333d3e89653213302f71228f"
},
"qes": [
{
"name": "agreement.pdf",
"url": "https://ns.shuftipro.com/api/pea/df7272966d06183fb769aa8d4942464b06e2f93c"
}
],
"verification_video": "https://ns.shuftipro.com/api/pea/63c1cf23bc0ed5a21613539f5cn3bebc0d566cao",
"access_token": "generated_access_token",
"verification_report": "https://ns.shuftipro.com/api/pea/9ee426402e8633087b183c61ea5ac72acec5a728"
},
"verification_data": {
"document": {
"name": {
"first_name": "John",
"middle_name": "",
"last_name": "Doe",
"full_name": "John Doe"
},
"dob": "1990-01-01",
"issue_date": "2018-01-31",
"expiry_date": "2028-01-30",
"document_number": "GB1234567",
"country": "GB",
"selected_type": ["id_card"],
"supported_types": ["id_card", "passport"],
"face_match_confidence": 70
},
"email_verify": {
"email": "john.doe@example.com"
},
"qes": {
"signer_name": "John Doe",
"serial_number": "0123456789ABCDEF0123456789ABCDEF01234567",
"issuer_cn": "Sample QTSP Qualified CA 2026",
"valid_from": "2026-06-15 10:00:00",
"valid_to": "2026-06-15 12:00:00",
"created_at": "2026-06-15 10:05:00",
"aggregate_status": "all_signed"
}
},
"verification_result": {
"face": 1,
"document": {
"document": 1,
"document_visibility": 1,
"document_must_not_be_expired": 1,
"document_country": 1,
"selected_type": 1,
"name": 1,
"document_number": 1,
"dob": 1,
"issue_date": 1,
"expiry_date": 1
},
"email_verify": {
"validate_email": 1,
"verify_email": 1
}
},
"info": {
"agent": {
"is_desktop": true,
"is_phone": false,
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
"device_name": "Macintosh",
"browser_name": "",
"platform_name": "OS X - 10_14_0"
},
"geolocation": {
"host": "212.103.50.243",
"ip": "212.103.50.243",
"rdns": "212.103.50.243",
"asn": "9009",
"isp": "M247 Ltd",
"country_name": "Germany",
"country_code": "DE",
"region_name": "Hesse",
"region_code": "HE",
"city": "Frankfurt am Main",
"postal_code": "60326",
"continent_name": "Europe",
"continent_code": "EU",
"latitude": "50.1049",
"longitude": "8.6295",
"metro_code": "",
"timezone": "Europe/Berlin"
}
}
}
```
## QES with Hash Submission Approach
In Hash Submission, the Merchant computes the SHA-256 hash of each document locally and submits only the hashes via `qes.hashes`. Shufti returns a detached PKCS#7 qualified signature per hash, which the Merchant attaches to the original document in their own environment.
To compute the SHA-256 hash before submission:
```bash
sha256sum agreement.pdf | awk '{print $1}'
```
### PDF mode (PAdES)
`pdf_mode` applies to Hash Submission only. When the hashes are ByteRange digests of PDFs and the returned signature will be embedded back into a PDF, send `qes.pdf_mode` as `"1"`:
```json title=qes-hash-submission-pdf-mode
{
"qes": {
"hashes": [
"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
],
"pdf_mode": "1",
"phone_number": "+123456789"
}
}
```
This changes one thing about the container: the `signing-time` signed attribute is excluded, leaving exactly `content-type`, `message-digest` and `signing-certificate-v2`. PAdES prohibits `signing-time` in the CMS because the PDF already records it natively in the signature dictionary's `/M` entry; leaving both in place is what causes strict validators to classify the result as the older PAdES-BES instead of a PAdES-BASELINE profile.
Everything else is unchanged — the signature is still computed over the DER encoding of the signed attributes, and the response still returns one detached container per hash. The Merchant attaches the container to their PDF and applies the long-term validation timestamps and `/DSS` data in their own pipeline to reach PAdES-BASELINE-LT.
Omit `pdf_mode`, or send `"0"`, for non-PDF content: `signing-time` is then retained and the container is a CAdES signature exactly as before. The Document Upload approach (`qes.proofs`) is unaffected by this flag.
The following request payloads illustrate each identity proofing flow for Hash Submission. The structure mirrors the multi-document examples above — `qes.proofs` is replaced with `qes.hashes`.
### QES with Hash Submission - Standard Document and Face Verification
```json title=qes-hash-submission-onsite-standard-face-document
{
"reference": "sp-bc-prod-ABCDE1213",
"callback_url": "https://yourdomain.com/sp-callback",
"redirect_url": "https://yourdomain.com/sp-redirect",
"allow_retry": "1",
"show_ocr_form": "1",
"allow_online": "1",
"allow_offline": "0",
"verification_mode": "any",
"is_baseline_loip": "1",
"show_results": "1",
"decline_on_single_step": "0",
"regulatory_compliance_methods": {
"standered_face_service_requested": "1",
"nfc_service_requested": "0",
"eidv_service_requested": "0"
},
"qes": {
"hashes": [
"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
],
"phone_number": "+123456789"
},
"email_verify": {
"email": "signatory@example.com"
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": ["id_card", "passport"],
"backside_proof_required": "1",
"name": {
"first_name": "",
"middle_name": "",
"last_name": "",
"fuzzy_match": "1"
},
"document_number": "",
"dob": "",
"issue_date": "",
"expiry_date": ""
},
"face": {
"proof": "",
"check_duplicate_request": "0",
"document_in_hand_verification": "1"
}
}
```
### QES with Hash Submission - NFC Document and Face Verification
```json title=qes-hash-submission-onsite-nfc
{
"reference": "sp-bc-prod-ABCDE1213",
"callback_url": "https://yourdomain.com/sp-callback",
"redirect_url": "https://yourdomain.com/sp-redirect",
"allow_retry": "1",
"show_ocr_form": "1",
"allow_online": "1",
"allow_offline": "0",
"verification_mode": "any",
"is_baseline_loip": "1",
"show_results": "1",
"decline_on_single_step": "0",
"regulatory_compliance_methods": {
"nfc_service_requested": "1",
"standered_face_service_requested": "0",
"eidv_service_requested": "0"
},
"qes": {
"hashes": [
"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
],
"phone_number": "+123456789"
},
"email_verify": {
"email": "signatory@example.com"
},
"document": {
"proof": "",
"additional_proof": "",
"supported_types": ["passport", "id_card"],
"backside_proof_required": "1",
"name": {
"first_name": "",
"middle_name": "",
"last_name": "",
"fuzzy_match": "1"
},
"document_number": "",
"dob": "",
"issue_date": "",
"expiry_date": ""
},
"face": {
"proof": "",
"check_duplicate_request": "0"
}
}
```
### QES with Hash Submission - Active eID-Based Verification
```json title=qes-hash-submission-onsite-eidv
{
"reference": "sp-bc-prod-ABCDE1213",
"callback_url": "https://yourdomain.com/sp-callback",
"redirect_url": "https://yourdomain.com/sp-redirect",
"allow_retry": "1",
"show_ocr_form": "1",
"allow_online": "1",
"allow_offline": "0",
"verification_mode": "any",
"is_baseline_loip": "1",
"show_results": "1",
"decline_on_single_step": "0",
"regulatory_compliance_methods": {
"eidv_service_requested": "1",
"standered_face_service_requested": "0",
"nfc_service_requested": "0"
},
"qes": {
"hashes": [
"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
],
"phone_number": "+123456789"
},
"email_verify": {
"email": "signatory@example.com"
},
"ekyc": {
"eidv_verification_type": "active",
"eidv_countries": [
{ "code": "NO", "verification_approach": "active" },
{ "code": "SE", "verification_approach": "active" },
{ "code": "DK", "verification_approach": "active" }
]
}
}
```
### Hash Submission Status Response
For hash submission requests, the `/status` response does not include a signed document. Instead, the detached qualified signatures are returned under `verification_data.qes.documents[]`, alongside the qualified certificate details under `verification_data.qes` (signer name, certificate issuer, serial number, validity window, and `aggregate_status` for the batch). Each document entry contains the original `hash`, the base64-encoded PKCS#7 detached `signature`, the signing timestamp (`signed_at`), and the per-document `status`. The Merchant is responsible for attaching the detached signature to the original document using their own document processing pipeline.
| Field | Type | Description |
|---|---|---|
| `qes.signer_name` | String | Full name of the signatory as recorded on the qualified certificate. |
| `qes.serial_number` | String | Serial number of the qualified certificate used for signing. |
| `qes.issuer_cn` | String | Common name of the qualified certificate issuer (QTSP). |
| `qes.valid_from` | String | Start of the certificate validity window. |
| `qes.valid_to` | String | End of the certificate validity window. |
| `qes.created_at` | String | Timestamp when the QES batch was created. |
| `qes.aggregate_status` | String | Overall batch status across all submitted hashes (e.g. `all_signed`). |
| `qes.documents[].hash` | String | The original SHA-256 digest submitted by the Merchant. |
| `qes.documents[].signature` | String | Base64-encoded PKCS#7 detached qualified signature. |
| `qes.documents[].signed_at` | String | Timestamp of when the signature was applied. With `pdf_mode` set this is informational only — the signing time is not present in the CMS and belongs in the PDF's `/M` entry. |
| `qes.documents[].status` | String | Signature status: `signed`, `failed`, or `expired`. |
```json title=qes-status-response-hash-submission
//Content-Type: application/json
//Signature: NmI4NmIyNzNmZjM0ZmNl
{
"reference": "17374217",
"event": "verification.accepted",
"country": "GB",
"proofs": {
"face": {
"proof": "https://ns.shuftipro.com/api/pea/15c1cf23bc0ed5a25613539f5cn3bebc0d566cda"
},
"document": {
"proof": "https://ns.shuftipro.com/api/pea/65c1df23bc0ed5a25613539f5cn3bebc0d566cac",
"additional_proof": "https://ns.shuftipro.com/api/pea/705b6ad48cc8ec08333d3e89653213302f71228f"
},
"verification_video": "https://ns.shuftipro.com/api/pea/63c1cf23bc0ed5a21613539f5cn3bebc0d566cao",
"access_token": "generated_access_token",
"verification_report": "https://ns.shuftipro.com/api/pea/9ee426402e8633087b183c61ea5ac72acec5a728"
},
"verification_data": {
"document": {
"name": {
"first_name": "John",
"middle_name": "",
"last_name": "Doe",
"full_name": "John Doe"
},
"dob": "1990-01-01",
"issue_date": "2018-01-31",
"expiry_date": "2028-01-30",
"document_number": "GB1234567",
"country": "GB",
"selected_type": ["id_card"],
"supported_types": ["id_card", "passport"],
"face_match_confidence": 70
},
"email_verify": {
"email": "john.doe@example.com"
},
"qes": {
"signer_name": "John Doe",
"serial_number": "0123456789ABCDEF0123456789ABCDEF01234567",
"issuer_cn": "Sample QTSP Qualified CA 2026",
"valid_from": "2026-06-15 10:00:00",
"valid_to": "2026-06-15 12:00:00",
"created_at": "2026-06-15 10:05:00",
"aggregate_status": "all_signed",
"documents": [
{
"hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"signature": "MIIG...base64-encoded PKCS#7 detached signature...==",
"signed_at": "2026-06-15 10:06:00",
"status": "signed"
},
{
"hash": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad",
"signature": "MIIG...base64-encoded PKCS#7 detached signature...==",
"signed_at": "2026-06-15 10:06:00",
"status": "signed"
}
]
}
},
"verification_result": {
"face": 1,
"document": {
"document": 1,
"document_visibility": 1,
"document_must_not_be_expired": 1,
"document_country": 1,
"selected_type": 1,
"name": 1,
"document_number": 1,
"dob": 1,
"issue_date": 1,
"expiry_date": 1
},
"email_verify": {
"validate_email": 1,
"verify_email": 1
}
},
"info": {
"agent": {
"is_desktop": true,
"is_phone": false,
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
"device_name": "Macintosh",
"browser_name": "",
"platform_name": "OS X - 10_14_0"
},
"geolocation": {
"host": "212.103.50.243",
"ip": "212.103.50.243",
"rdns": "212.103.50.243",
"asn": "9009",
"isp": "M247 Ltd",
"country_name": "Germany",
"country_code": "DE",
"region_name": "Hesse",
"region_code": "HE",
"city": "Frankfurt am Main",
"postal_code": "60326",
"continent_name": "Europe",
"continent_code": "EU",
"latitude": "50.1049",
"longitude": "8.6295",
"metro_code": "",
"timezone": "Europe/Berlin"
}
}
}
```
---
# Requests
Source: https://developers.shuftipro.com/docs/verification_endpoints/requests.md
## Sample Verification Request
To initiate a verification request, you must access the base URL ```https://api.shuftipro.com/``` endpoint and provide the desired services within the verification request object. Attached is a sample object illustrating how to commence a verification service.
[](https://app.getpostman.com/run-collection/51aae5cc09c563cf1f76)
**http**
```json
//POST / HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
// replace "Basic" with "Bearer in case of Access Token"
{
"reference": "1234567",
"callback_url": "http://www.example.com/",
"email": "johndoe@example.com",
"country": "GB",
"language": "EN",
"redirect_url": "http://www.example.com",
"allow_warnings":"1",
"ttl": 60,
"verification_mode": "any",
"document": {
"proof": "",
"additional_proof": "",
"supported_types": ["id_card", "driving_license", "passport"],
"name": "",
"dob": "",
"age": "",
"issue_date": "",
"expiry_date": "",
"document_number": "",
"allow_offline": "1",
"allow_online": "1",
"gender": ""
},
"address": {
"proof": "",
"supported_types": ["id_card", "bank_statement"],
"name": "",
"issue_date": "",
"full_address": "",
"address_fuzzy_match": "1",
"document_number": ""
}
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
callback_url : "https://yourdomain.com/profile/sp-notify-callback",
redirect_url : "https://yourdomain.com/site/sp-redirect",
country : "GB",
language : "EN",
verification_mode : "any",
ttl : 60,
allow_warnings : "1",
}
//Use this key if you want to perform document verification with OCR
payload['document'] = {
proof : '',
additional_proof : '',
name : '',
dob : '',
age : '',
document_number : '',
expiry_date : '',
issue_date : '',
allow_offline : '1',
allow_online : '1',
supported_types : ['id_card','passport'],
gender : ""
}
//Use this key if you want to perform address verification with OCR
payload['address'] = {
name : '',
full_address : '',
address_fuzzy_match : '1',
issue_date : '',
supported_types : ['utility_bill','passport','bank_statement']
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'request.pending') {
createIframe(data.verification_url)
}
});
//Method used to create an Iframe
function createIframe(src) {
let iframe = document.createElement('iframe');
iframe.style.position = 'fixed';
iframe.id = 'shuftipro-iframe';
iframe.name = 'shuftipro-iframe';
iframe.allow = "camera";
iframe.src = src;
iframe.style.top = 0;
iframe.style.left = 0;
iframe.style.bottom = 0;
iframe.style.right = 0;
iframe.style.margin = 0;
iframe.style.padding = 0;
iframe.style.overflow = 'hidden';
iframe.style.border = "none";
iframe.style.zIndex = "2147483647";
iframe.width = "100%";
iframe.height = "100%";
iframe.dataset.removable = true;
document.body.appendChild(iframe);
}
```
**php**
```php
'ref-'.rand(4,444).rand(4,444),
'country' => 'GB',
'language' => 'EN',
'email' => 'example@email.com',
'callback_url' => 'https://yourdomain.com/profile/notifyCallback',
'verification_mode' => 'any',
'allow_warnings' => '1',
'ttl' => 60,
];
//Use this key if you want to perform document verification with OCR
$verification_request['document'] =[
'proof' => '',
'additional_proof' => '',
'name' => '',
'dob' => '',
'age' => '',
'document_number' => '',
'expiry_date' => '',
'issue_date' => '',
'allow_offline' => '1',
'allow_online' => '1',
'supported_types' => ['id_card','passport'],
'gender' => ''
];
//Use this key if you want to perform address verification with OCR
$verification_request['address'] = [
'proof' => '',
'name' => '',
'full_address' => '',
'address_fuzzy_match' => '1',
'issue_date' => '',
'supported_types' => ['utility_bill','passport','bank_statement']
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization: Bearer ' . $access_token);
$post_data = json_encode($verification_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
$decoded_response = json_decode($response_data,true);
$event_name = $decoded_response['event'];
if($event_name == 'request.pending'){
if($sp_signature == $calculate_signature){
$verification_url = $decoded_response['verification_url'];
echo "Verification url :" . $verification_url;
}else{
echo "Invalid signature :" . $response_data;
}
}else{
echo "Error :" . $response_data;
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
verification_request = {
'reference' : 'ref-{}{}'.format(randint(1000, 9999), randint(1000, 9999)),
'country' : 'GB',
'language' : 'EN',
'email' : 'test@test.com',
'callback_url' : 'https://yourdomain.com/profile/notifyCallback',
'verification_mode' : 'any',
'allow_warnings' : '1',
'ttl' : 60,
}
# Use this key if you want to perform document verification with OCR
verification_request['document'] = {
'proof' : '',
'additional_proof' : '',
'name' : '',
'dob' : '',
'age' : '',
'document_number' : '',
'expiry_date' : '',
'issue_date' : '',
'allow_offline' : '1',
'allow_online' : '1',
'supported_types' : ['id_card','passport'],
'gender' : ''
}
# Use this key want to perform address verification with OCR
verification_request['address'] = {
'proof' : '',
'name' : '',
'full_address' : '',
'address_fuzzy_match' : '1',
'issue_date' : '',
'supported_types' : ['utility_bill','passport','bank_statement']
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Get Shufti Signature
sp_signature = response.headers.get('Signature','')
# Convert json string to json object
json_response = json.loads(response.content)
# Get event returned
event_name = json_response['event']
print (json_response)
if event_name == 'request.pending':
if sp_signature == calculated_signature:
verification_url = json_response['verification_url']
print ('Verification URL: {}'.format(verification_url))
else:
print ('Invalid signature: {}'.format(response.content))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
callback_url: "https://yourdomain.com/profile/notifyCallback",
email: "johndoe@example.com",
country: "GB",
language: "EN",
redirect_url: "http://www.example.com",
verification_mode: "any",
allow_warnings: "1",
ttl: 60
}
# Use this key if you want to perform document verification with OCR
verification_request["document"] = {
supported_types: ["id_card","driving_license","passport"],
proof: "",
additional_proof: "",
name: "",
dob: "",
age: "",
issue_date: "",
expiry_date: "",
document_number: "",
allow_offline: "1",
allow_online: "1",
gender: ""
}
# Use this key if you want to perform address verification with OCR
verification_request["address"] = {
supported_types: ["id_card","bank_statement"],
name: "",
issue_date: "",
full_address: "",
address_fuzzy_match: "1"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = verification_request.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = response.read_body
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"reference\": \"1234567\",\n \"callback_url\": \"http://www.example.com/\",\n \"email\": \"johndoe@example.com\",\n \"country\": \"GB\",\n \"allow_warnings\": \"1\",\n \"language\": \"EN\",\n \"redirect_url\": \"http://www.example.com\",\n \"ttl\": 60,\n \"verification_mode\": \"any\",\n \"document\": {\n \"proof\": \"\",\n \"additional_proof\": \"\",\n \"supported_types\": [\n \"id_card\",\n \"driving_license\",\n \"passport\"\n ],\n \"name\": \"\",\n \"dob\": \"\",\n \"age\": \"\",\n \"issue_date\": \"\",\n \"expiry_date\": \"\",\n \"document_number\": \"\",\n \"allow_offline\": \"1\",\n \"allow_online\": \"1\",\n \"gender\": \"\"\n },\n \"address\": {\n \"proof\": \"\",\n \"supported_types\": [\n \"id_card\",\n \"bank_statement\"\n ],\n \"name\": \"\",\n \"issue_date\": \"\",\n \"full_address\": \"\",\n \"address_fuzzy_match\": \"1\",\n \"document_number\": \"\"\n }\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url": "http://www.example.com",
"ttl" : 60,
"allow_warnings" : "1",
"verification_mode" : "any",
"document" : {
"proof" : "",
"additional_proof" : "",
"supported_types" : ["id_card","driving_license","passport"],
"name" : "",
"dob" : "",
"age" : "",
"issue_date" : "",
"expiry_date" : "",
"document_number" : "",
"allow_offline" : "1",
"allow_online" : "1",
"gender" : ""
},
"address" : {
"proof" : "",
"supported_types" : ["id_card","bank_statement"],
"name" : "",
"issue_date" : "",
"full_address" : "",
"address_fuzzy_match":"1",
"document_number" : ""
}
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""reference"" : ""1234567""," + "\n" +
@" ""callback_url"" : ""http://www.example.com/""," + "\n" +
@" ""email"" : ""johndoe@example.com""," + "\n" +
@" ""country"" : ""GB""," + "\n" +
@" ""language"" : ""EN""," + "\n" +
@" ""redirect_url"": ""http://www.example.com""," + "\n" +
@" ""ttl"" : 60," + "\n" +
@" ""allow_warnings"" : "1"," + "\n" +
@" ""verification_mode"" : ""any""," + "\n" +
@" ""document"" : {" + "\n" +
@" ""proof"" : """"," + "\n" +
@" ""additional_proof"" : """"," + "\n" +
@" ""supported_types"" : [""id_card"",""driving_license"",""passport""]," + "\n" +
@" ""name"" : """"," + "\n" +
@" ""dob"" : """"," + "\n" +
@" ""age"" : """"," + "\n" +
@" ""issue_date"" : """", " + "\n" +
@" ""expiry_date"" : """"," + "\n" +
@" ""document_number"" : """"," + "\n" +
@" ""allow_offline"" : ""1""," + "\n" +
@" ""allow_online"" : ""1""," + "\n" +
@" ""gender"" : """"" + "\n" +
@" }," + "\n" +
@" " + "\n" +
@" ""address"" : {" + "\n" +
@" ""proof"" : """"," + "\n" +
@" ""supported_types"" : [""id_card"",""bank_statement""]," + "\n" +
@" ""name"" : """"," + "\n" +
@" ""issue_date"" : """"," + "\n" +
@" ""full_address"" : """"," + "\n" +
@" ""address_fuzzy_match"":""1""," + "\n" +
@" ""document_number"" : """"" + "\n" +
@" }" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"reference" : "1234567",
"callback_url" : "http://www.example.com/",
"email" : "johndoe@example.com",
"country" : "GB",
"language" : "EN",
"redirect_url": "http://www.example.com",
"ttl" : 60,
"allow_warnings" : "1",
"verification_mode" : "any",
"document" : {
"proof" : "",
"additional_proof" : "",
"supported_types" : ["id_card","driving_license","passport"],
"name" : "",
"dob" : "",
"age" : "",
"issue_date" : "",
"expiry_date" : "",
"document_number" : "",
"allow_offline" : "1",
"allow_online" : "1",
"gender" : ""
},
"address" : {
"proof" : "",
"supported_types" : ["id_card","bank_statement"],
"name" : "",
"issue_date" : "",
"full_address" : "",
"address_fuzzy_match":"1",
"document_number" : ""
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
## Status Request
Once a verification request is completed, you may request at the status endpoint to get the verification status. You’ll have to provide the reference ID for the status request and you will be promptly informed about the status of that verification.
[](https://app.getpostman.com/run-collection/0eaa68fff4972e778153)
Parameter | Description
-------------- | --------------
reference | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 characters** This is the unique reference ID of request, which we will send you back with each response, so you can verify the request.
**http**
```json
//POST /status HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference" : "17374217"
}
```
**javascript**
```javascript
var payload = {
reference : 'your_request_reference'
}
//Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/status',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
return data;
});
```
**php**
```php
"your_request_reference",
];
$auth = $client_id.":".$secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization : Bearer ' . $access_token);
$post_data = json_encode($status_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
if($sp_signature == $calculate_signature){
echo "Response : $response_data";
}else{
echo "Invalid signature : $response_data";
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$curl_info = curl_getinfo($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import requests, base64, json
payload = {
'reference': 'your_request_reference'
}
client_id = 'YOUR_CLIENT_ID'
secret_key = 'YOUR_SECRET_KEY'
token = base64.b64encode(f"{client_id}:{secret_key}".encode()).decode()
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': f'Basic {token}'
}
response = requests.post('https://api.shuftipro.com/status', headers=headers, data=json.dumps(payload))
data = response.json()
print(data)
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/status")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
post_data = {
reference: "your_request_reference"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = post_data.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = JSON.parse(response.read_body)
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/status";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{ \n \"reference\" : \"17374217\"\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/status' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "17374217"
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/status");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{ " + "\n" +
@" ""reference"" : ""17374217""" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/status"
method := "POST"
payload := strings.NewReader(`{
"reference" : "17374217"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
## Delete Request
Once a verification request is completed, you may request at the delete request endpoint to delete the verification data. You’ll have to provide the reference ID for that request and you will be promptly informed about the deletion of the request.
[](https://app.getpostman.com/run-collection/9fae689029d103f04cd7)
Parameter | Description
-------------- | --------------
reference | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 characters** This is the unique reference ID of request which needs to be deleted.
comment | Required: **Yes** Type: **string** Minimum: **5 characters** Maximum: **100 characters** Add a comment why the request is deleted for your future reference
**http**
```json
//POST /delete HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
//replace "Basic" with "Bearer in case of Access Token"
{
"reference" : "17374217",
"comment" : "Customer asked to delete his/her data"
}
```
**javascript**
```javascript
var payload = {
reference : 'your_request_reference',
comment : 'Customer asked to delete his/het data'
}
//Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/delete',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
return data;
});
```
**php**
```php
"your_request_reference",
"comment" => "Customer asked to delete his/her data"
];
$auth = $client_id . ":" . $secret_key; // remove this in case of Access Token
$headers = ['Content-Type: application/json'];
// if using Access Token then add it into headers as mentioned below otherwise remove access token
// array_push($headers, 'Authorization : Bearer ' . $access_token);
$post_data = json_encode($delete_request);
//Calling Shufti request API using curl
$response = send_curl($url, $post_data, $headers, $auth); // remove $auth in case of Access Token
//Get Shufti API Response
$response_data = $response['body'];
//Get Shufti Signature
$exploded = explode("\n", $response['headers']);
// Get Signature Key from Hearders
$sp_signature = null;
foreach ($exploded as $key => $value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
if($sp_signature == $calculate_signature){
echo "Response : $response_data";
}else{
echo "Invalid signature : $response_data";
}
function send_curl($url, $post_data, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$curl_info = curl_getinfo($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers, 'body' => $body];
}
?>
```
**py**
```py
import base64, requests, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/delete'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
delete_request = {
"reference" : "your_request_reference",
"comment" : "Customer asked to delete his/her data"
}
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(delete_request))
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Convert json string to json object
json_response = json.loads(response.content)
sp_signature = response.headers.get('Signature','')
if sp_signature == calculated_signature:
print ('Response : {}'.format(json_response))
else:
print ('Invalid Signature: {}'.format(json_response))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/delete")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
post_data = {
reference: "your_request_reference",
comment: "Customer asked to delete his/her data"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
request.body = post_data.to_json
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = JSON.parse(response.read_body)
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/delete";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{ \n \"reference\" : \"17374217\",\n \"comment\" : \"Customer asked to delete his/her data\"\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/delete' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"reference" : "17374217",
"comment" : "Customer asked to delete his/her data"
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/delete");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{ " + "\n" +
@" ""reference"" : ""17374217""," + "\n" +
@" ""comment"" : ""Customer asked to delete his/her data""" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/delete"
method := "POST"
payload := strings.NewReader(`{
"reference" : "17374217",
"comment" : "Customer asked to delete his/her data"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
## Account Info Request
This end-point provides account information to the customer such as account status, balance, and type (production mode or trial mode).
[](https://app.getpostman.com/run-collection/deed168d18f027eeb32a)
**Info**
If the type of account is production and customer signs up for a monthly subscription plan, the subscription plan details are available under the **subscription_plan_details** key. It contains plan details for current and upcoming months including the start and end dates, total_requests, used_requests and remaining_requests.
**Caution**
Account Info end-point can only be used with Authorization **Basic Auth**.
**http**
```json
//GET /account/info/ HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
```
**javascript**
```javascript
//Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/account/info/',
{
method : 'get',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
}
})
.then(function(response) {
return response.json();
}).then(function(data) {
return data;
});
```
**php**
```php
$value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
if($sp_signature == $calculate_signature){
echo "Response :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
function send_curl($url, $headers, $auth){ // remove $auth in case of Access Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth); // remove this in case of Access Token
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // remove this in case of Access Token
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers,'body' => $body];
}
?>
```
**py**
```py
import base64, requests, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/account/info/'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# OR Access Token
# access_token = 'YOUR-ACCESS-TOKEN';
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
# if access token
# b64Val = access_token
# replace "Basic with "Bearer" in case of Access Token
response = requests.get(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"})
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Convert json string to json object
json_response = json.loads(response.content)
sp_signature = response.headers.get('Signature','')
if sp_signature == calculated_signature:
print ('Response : {}'.format(json_response))
else:
print ('Invalid Signature: {}'.format(json_response))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/account/info/")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
# if access token
# ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
# if Access Token
# header_auth = ACCESS_TOKEN
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}" # replace "Basic" with "Bearer" in case of access token
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = JSON.parse(response.read_body)
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/account/info/";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("GET");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request GET 'https://api.shuftipro.com/account/info' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw ''
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/account/info");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/account/info"
method := "GET"
payload := strings.NewReader(``)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
```json title=sample-account-info-response
{
"account": {
"name": "your account name",
"status": "production",
"balance": {
"amount": "99.85",
"currency": "USD"
}
}
}
```
```json title=sample-account-info-response
{
"account": {
"name": "your account name",
"status": "production",
"balance": {
"amount": "99.85",
"currency": "USD"
},
"subscription_plan_details": {
"kyc": [
{
"total_requests": 100,
"used_requests": 0,
"remaining_requests": 100,
"start_date": "2020-05-03",
"end_date": "2020-05-18"
},
{
"total_requests": 100,
"used_requests": 0,
"remaining_requests": 100,
"start_date": "2020-05-18",
"end_date": "2020-05-30"
}
],
"aml": [
{
"total_requests": 500,
"used_requests": 0,
"remaining_requests": 500,
"start_date": "2020-05-01",
"end_date": "2020-05-30"
},
{
"total_requests": 200,
"used_requests": 0,
"remaining_requests": 200,
"start_date": "2020-05-30",
"end_date": "2020-06-27"
}
],
"kyb": [
{
"total_requests": 3000,
"used_requests": 0,
"remaining_requests": 3000,
"start_date": "2020-05-08",
"end_date": "2020-05-30"
}
]
}
}
}
```
```json title=sample-account-info-response
{
"account": {
"name": "your account name",
"status": "trial",
"balance": {
"amount": "99.85",
"currency": "USD"
}
}
}
```
## Access Token Request
This end-point is used to generate an **access_token** which is used to authorize API requests. The access token will be applicable only for **1 hour** per request to the API.
**http**
```json
//POST https://api.shuftipro.com/get/access/token HTTP/1.1
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
```
**javascript**
```javascript
//Use your Shufti account client id and secret key
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY"); //BASIC AUTH TOKEN
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/get/access/token',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token
}
})
.then(function(response) {
return response.json();
}).then(function(data) {
return data;
});
```
**php**
```php
$value) {
if (strpos($value, 'signature: ') !== false || strpos($value, 'Signature: ') !== false) {
$sp_signature=trim(explode(':', $exploded[$key])[1]);
break;
}
}
// Calculating signature for verification
// Clients registered with Shufti after March 15, 2023, must use secret key as follows
// $secret_key = hash('sha256', $secret_key)
// Calculated signature functionality cannot be implement in case of access token
$calculate_signature = hash('sha256',$response_data.$secret_key);
if($sp_signature == $calculate_signature){
echo "Response :" . $response_data;
}else{
echo "Invalid signature :" . $response_data;
}
function send_curl($url, $headers, $auth){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return ['headers' => $headers, 'body' => $body];
}
?>
```
**py**
```py
import base64, requests, json, hashlib
from random import randint
'''
Python 2
--------
import urllib2
Python 3
--------
import urllib.request
urllib.request.urlopen(url).read()
'''
url = 'https://api.shuftipro.com/get/access/token'
# Your Shufti account Client ID
client_id = 'YOUR-CLIENT-ID'
# Your Shufti account Secret Key
secret_key = 'YOUR-SECRET-KEY'
# Calling Shufti request API using python requests
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"})
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# secret_key = hashlib.sha256(secret_key.encode()).hexdigest()
# Calculated signature functionality cannot be implement in case of access token
calculated_signature = hashlib.sha256('{}{}'.format(response.content.decode(), secret_key).encode()).hexdigest()
# Convert json string to json object
json_response = json.loads(response.content)
sp_signature = response.headers.get('Signature','')
if sp_signature == calculated_signature:
print ('Response : {}'.format(json_response))
else:
print ('Invalid Signature: {}'.format(json_response))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
url = URI("https://api.shuftipro.com/get/access/token")
# Your Shufti account Client ID
CLIENT_ID = "YOUR-CLIENT-ID"
# Your Shufti account Secret Key
SECRET_KEY = "YOUR-SECRET-KEY"
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}"
response = http.request(request)
response_headers = response.instance_variable_get("@header")
response_data = JSON.parse(response.read_body)
sp_signature = !(response_headers['signature'].nil?) ? response_headers['signature'].join(',') : ""
# Calculating signature for verification
# Clients registered with Shufti after March 15, 2023, must use secret key as follows
# SECRET_KEY = Digest::SHA256.hexdigest SECRET_KEY
# calculated signature functionality cannot be implement in case of access token
calculated_signature = Digest::SHA256.hexdigest response_data + SECRET_KEY
if sp_signature == calculated_signature
puts response_data
else
puts "Invalid signature"
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com/get/access/token";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com/get/access/token' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw ''
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com/get/access/token");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com/get/access/token"
method := "POST"
payload := strings.NewReader(``)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
```json title=sample-access-token-response
{
"access_token": "generated_access_token"
}
```
## Proof Access Request
To access proofs, clients should send a **POST request** to a specific endpoint with their **access_token** included in the request payload. Please note that the access_token must be valid and the request method must be **POST**; otherwise, the server will return an error.
Additionally, the endpoint URL is only valid for **15 minutes**, after which the client will need to obtain a new access_token to access the proofs.
**Info**
The feature will be applicable only for clients onboarded after **7th April, 2023**.
**http**
```json
//POST https://ns.shuftipro.com/api/pea/a95aa76a9d8ecf8526dc82473ed5d0e963d110b4 HTTP/1.1
//Host: ns.shuftipro.com
//Content-Type: application/json
{
"access_token": "generated_access_token"
}
```
**html**
```html
```json title=additional-data-object
{
"additional_data": {
"document": {
"proof": {
"gender": "M",
"height": "183",
"country": "United Kingdom",
"authority": "HMPO",
"last_name": "Doe",
"first_name": "John",
"issue_date": "2018-01-31",
"expiry_date": "2028-01-30",
"nationality": "BRITSH CITIZEN",
"country_code": "GBR",
"document_type": "P",
"place_of_birth": "BRISTOL",
"document_number": "GB1234567",
"personal_number": "12345678910",
"dob": "1978-03-13",
"age": 18,
"issue_date": "2015-10-10",
"expiry_date": "2025-12-31",
"signature": "335,300,435,400"
}
}
}
}
```
---
# Countries
Source: https://developers.shuftipro.com/docs/coverage/countries.md
Shufti provides global identity verification with a vast presence in 240+ countries. The rendered docs page includes an interactive service selector; the tables below mirror that coverage data.
## Document Verification
Following countries are supported for Document Verification:
| | Country Name | Country Code |
| --- | --- | --- |
| 1 | Afghanistan | AF |
| 2 | Aland Islands | AX |
| 3 | Albania | AL |
| 4 | Algeria | DZ |
| 5 | American Samoa | AS |
| 6 | Andorra | AD |
| 7 | Angola | AO |
| 8 | Anguilla | AI |
| 9 | Antarctica | AQ |
| 10 | Antigua and Barbuda | AG |
| 11 | Argentina | AR |
| 12 | Armenia | AM |
| 13 | Aruba | AW |
| 14 | Australia | AU |
| 15 | Austria | AT |
| 16 | Azerbaijan | AZ |
| 17 | Bahamas | BS |
| 18 | Bahrain | BH |
| 19 | Bangladesh | BD |
| 20 | Barbados | BB |
| 21 | Belarus | BY |
| 22 | Belgium | BE |
| 23 | Belize | BZ |
| 24 | Benin | BJ |
| 25 | Bermuda | BM |
| 26 | Bhutan | BT |
| 27 | Bolivia | BO |
| 28 | Bosnia and Herzegovina | BA |
| 29 | Botswana | BW |
| 30 | Bouvet Island | BV |
| 31 | Brazil | BR |
| 32 | British Indian Ocean Territory | IO |
| 33 | Brunei | BN |
| 34 | Bulgaria | BG |
| 35 | Burkina Faso | BF |
| 36 | Burma (Myanmar) | MM |
| 37 | Burundi | BI |
| 38 | Cambodia | KH |
| 39 | Cameroon | CM |
| 40 | Canada | CA |
| 41 | Cape Verde | CV |
| 42 | Cayman Islands | KY |
| 43 | Central African Republic | CF |
| 44 | Chad | TD |
| 45 | Chile | CL |
| 46 | China | CN |
| 47 | Christmas Island | CX |
| 48 | Cocos (Keeling) Islands | CC |
| 49 | Colombia | CO |
| 50 | Comoros | KM |
| 51 | Congo, Dem. Republic | CD |
| 52 | Congo, Republic | CG |
| 53 | Cook Islands | CK |
| 54 | Costa Rica | CR |
| 55 | Croatia | HR |
| 56 | Cuba | CU |
| 57 | Cyprus | CY |
| 58 | Czech Republic | CZ |
| 59 | Denmark | DK |
| 60 | Djibouti | DJ |
| 61 | Dominica | DM |
| 62 | Dominican Republic | DO |
| 63 | East Timor | TL |
| 64 | Ecuador | EC |
| 65 | Egypt | EG |
| 66 | El Salvador | SV |
| 67 | Equatorial Guinea | GQ |
| 68 | Eritrea | ER |
| 69 | Estonia | EE |
| 70 | Ethiopia | ET |
| 71 | Falkland Islands | FK |
| 72 | Faroe Islands | FO |
| 73 | Fiji | FJ |
| 74 | Finland | FI |
| 75 | France | FR |
| 76 | French Guiana | GF |
| 77 | French Polynesia | PF |
| 78 | French Southern Territories | TF |
| 79 | Gabon | GA |
| 80 | Gambia | GM |
| 81 | Georgia | GE |
| 82 | Germany | DE |
| 83 | Ghana | GH |
| 84 | Gibraltar | GI |
| 85 | Greece | GR |
| 86 | Greenland | GL |
| 87 | Grenada | GD |
| 88 | Guadeloupe | GP |
| 89 | Guam | GU |
| 90 | Guatemala | GT |
| 91 | Guernsey | GG |
| 92 | Guinea | GN |
| 93 | Guinea-Bissau | GW |
| 94 | Guyana | GY |
| 95 | Haiti | HT |
| 96 | Heard Island and McDonald Islands | HM |
| 97 | Honduras | HN |
| 98 | HongKong | HK |
| 99 | Hungary | HU |
| 100 | Iceland | IS |
| 101 | India | IN |
| 102 | Indonesia | ID |
| 103 | Iran | IR |
| 104 | Iraq | IQ |
| 105 | Ireland | IE |
| 106 | Israel | IL |
| 107 | Italy | IT |
| 108 | Ivory Coast | CI |
| 109 | Jamaica | JM |
| 110 | Japan | JP |
| 111 | Jersey | JE |
| 112 | Jordan | JO |
| 113 | Kazakhstan | KZ |
| 114 | Kenya | KE |
| 115 | Kiribati | KI |
| 116 | Korea, Dem. Republic of | KP |
| 117 | Kuwait | KW |
| 118 | Kyrgyzstan | KG |
| 119 | Laos | LA |
| 120 | Latvia | LV |
| 121 | Lebanon | LB |
| 122 | Lesotho | LS |
| 123 | Liberia | LR |
| 124 | Libya | LY |
| 125 | Liechtenstein | LI |
| 126 | Lithuania | LT |
| 127 | Luxembourg | LU |
| 128 | Macau | MO |
| 129 | Macedonia | MK |
| 130 | Madagascar | MG |
| 131 | Malawi | MW |
| 132 | Malaysia | MY |
| 133 | Maldives | MV |
| 134 | Mali | ML |
| 135 | Malta | MT |
| 136 | Man Island | IM |
| 137 | Marshall Islands | MH |
| 138 | Martinique | MQ |
| 139 | Mauritania | MR |
| 140 | Mauritius | MU |
| 141 | Mayotte | YT |
| 142 | Mexico | MX |
| 143 | Micronesia | FM |
| 144 | Moldova | MD |
| 145 | Monaco | MC |
| 146 | Mongolia | MN |
| 147 | Montenegro | ME |
| 148 | Montserrat | MS |
| 149 | Morocco | MA |
| 150 | Mozambique | MZ |
| 151 | Namibia | NA |
| 152 | Nauru | NR |
| 153 | Nepal | NP |
| 154 | Netherlands | NL |
| 155 | Netherlands Antilles | AN |
| 156 | New Caledonia | NC |
| 157 | New Zealand | NZ |
| 158 | Nicaragua | NI |
| 159 | Niger | NE |
| 160 | Nigeria | NG |
| 161 | Niue | NU |
| 162 | Norfolk Island | NF |
| 163 | Northern Mariana Islands | MP |
| 164 | Norway | NO |
| 165 | Oman | OM |
| 166 | Pakistan | PK |
| 167 | Palau | PW |
| 168 | Palestinian Territories | PS |
| 169 | Panama | PA |
| 170 | Papua New Guinea | PG |
| 171 | Paraguay | PY |
| 172 | Peru | PE |
| 173 | Philippines | PH |
| 174 | Pitcairn | PN |
| 175 | Poland | PL |
| 176 | Portugal | PT |
| 177 | Puerto Rico | PR |
| 178 | Qatar | QA |
| 179 | Reunion Island | RE |
| 180 | Romania | RO |
| 181 | Russian Federation | RU |
| 182 | Rwanda | RW |
| 183 | Republic of Kosovo | XK |
| 184 | Saint Barthelemy | BL |
| 185 | Saint Kitts and Nevis | KN |
| 186 | Saint Lucia | LC |
| 187 | Saint Martin | MF |
| 188 | Saint Pierre and Miquelon | PM |
| 189 | Saint Vincent and the Grenadines | VC |
| 190 | Samoa | WS |
| 191 | San Marino | SM |
| 192 | Saudi Arabia | SA |
| 193 | Senegal | SN |
| 194 | Serbia | RS |
| 195 | Seychelles | SC |
| 196 | Sierra Leone | SL |
| 197 | Singapore | SG |
| 198 | Slovakia | SK |
| 199 | Slovenia | SI |
| 200 | Solomon Islands | SB |
| 201 | Somalia | SO |
| 202 | South Africa | ZA |
| 203 | South Georgia and the South Sandwich Islands | GS |
| 204 | South Korea | KR |
| 205 | Spain | ES |
| 206 | Sri Lanka | LK |
| 207 | Sudan | SD |
| 208 | Suriname | SR |
| 209 | Svalbard and Jan Mayen | SJ |
| 210 | Swaziland | SZ |
| 211 | Sweden | SE |
| 212 | Switzerland | CH |
| 213 | Syria | SY |
| 214 | São Tomé and Príncipe | ST |
| 215 | Taiwan | TW |
| 216 | Tajikistan | TJ |
| 217 | Tanzania | TZ |
| 218 | Thailand | TH |
| 219 | Togo | TG |
| 220 | Tokelau | TK |
| 221 | Tonga | TO |
| 222 | Trinidad and Tobago | TT |
| 223 | Tunisia | TN |
| 224 | Turkey | TR |
| 225 | Turkmenistan | TM |
| 226 | Turks and Caicos Islands | TC |
| 227 | Tuvalu | TV |
| 228 | Uganda | UG |
| 229 | Ukraine | UA |
| 230 | United Arab Emirates | AE |
| 231 | United Kingdom | GB |
| 232 | United States | US |
| 233 | United States Minor Outlying Islands | UM |
| 234 | Uruguay | UY |
| 235 | Uzbekistan | UZ |
| 236 | Vanuatu | VU |
| 237 | Vatican City State | VA |
| 238 | Venezuela | VE |
| 239 | Vietnam | VN |
| 240 | Virgin Islands (British) | VG |
| 241 | Virgin Islands (U.S.) | VI |
| 242 | Wallis and Futuna | WF |
| 243 | Western Sahara | EH |
| 244 | Yemen | YE |
| 245 | Zambia | ZM |
| 246 | Zimbabwe | ZW |
| 247 | South Sudan | SS |
## Address Verification
Following countries are supported for Standard Address Verification and Enhanced Address Verification:
| | Country Name | Country Code | Standard Address Verification | Enhanced Address Verification |
| --- | --- | --- | --- | --- |
| 1 | Afghanistan | AF | Yes | No |
| 2 | Aland Islands | AX | Yes | No |
| 3 | Albania | AL | Yes | No |
| 4 | Algeria | DZ | Yes | No |
| 5 | American Samoa | AS | Yes | No |
| 6 | Andorra | AD | Yes | No |
| 7 | Angola | AO | Yes | No |
| 8 | Anguilla | AI | Yes | No |
| 9 | Antarctica | AQ | Yes | No |
| 10 | Antigua and Barbuda | AG | Yes | No |
| 11 | Argentina | AR | Yes | Yes |
| 12 | Armenia | AM | Yes | No |
| 13 | Aruba | AW | Yes | No |
| 14 | Australia | AU | Yes | Yes |
| 15 | Austria | AT | Yes | Yes |
| 16 | Azerbaijan | AZ | Yes | No |
| 17 | Bahamas | BS | Yes | No |
| 18 | Bahrain | BH | Yes | No |
| 19 | Bangladesh | BD | Yes | No |
| 20 | Barbados | BB | Yes | No |
| 21 | Belarus | BY | Yes | No |
| 22 | Belgium | BE | Yes | Yes |
| 23 | Belize | BZ | Yes | No |
| 24 | Benin | BJ | Yes | No |
| 25 | Bermuda | BM | Yes | No |
| 26 | Bhutan | BT | Yes | No |
| 27 | Bolivia | BO | Yes | No |
| 28 | Bosnia and Herzegovina | BA | Yes | No |
| 29 | Botswana | BW | Yes | No |
| 30 | Bouvet Island | BV | Yes | No |
| 31 | Brazil | BR | Yes | Yes |
| 32 | British Indian Ocean Territory | IO | Yes | No |
| 33 | Brunei | BN | Yes | No |
| 34 | Bulgaria | BG | Yes | Yes |
| 35 | Burkina Faso | BF | Yes | No |
| 36 | Burma (Myanmar) | MM | Yes | No |
| 37 | Burundi | BI | Yes | No |
| 38 | Cambodia | KH | Yes | No |
| 39 | Cameroon | CM | Yes | No |
| 40 | Canada | CA | Yes | Yes |
| 41 | Cape Verde | CV | Yes | No |
| 42 | Cayman Islands | KY | Yes | No |
| 43 | Central African Republic | CF | Yes | No |
| 44 | Chad | TD | Yes | No |
| 45 | Chile | CL | Yes | Yes |
| 46 | China | CN | Yes | No |
| 47 | Christmas Island | CX | Yes | No |
| 48 | Cocos (Keeling) Islands | CC | Yes | No |
| 49 | Colombia | CO | Yes | Yes |
| 50 | Comoros | KM | Yes | No |
| 51 | Congo, Dem. Republic | CD | Yes | No |
| 52 | Congo, Republic | CG | Yes | No |
| 53 | Cook Islands | CK | Yes | No |
| 54 | Costa Rica | CR | Yes | No |
| 55 | Croatia | HR | Yes | Yes |
| 56 | Cuba | CU | Yes | No |
| 57 | Cyprus | CY | Yes | No |
| 58 | Czech Republic | CZ | Yes | Yes |
| 59 | Denmark | DK | Yes | Yes |
| 60 | Djibouti | DJ | Yes | No |
| 61 | Dominica | DM | Yes | No |
| 62 | Dominican Republic | DO | Yes | No |
| 63 | East Timor | TL | Yes | No |
| 64 | Ecuador | EC | Yes | No |
| 65 | Egypt | EG | Yes | No |
| 66 | El Salvador | SV | Yes | No |
| 67 | Equatorial Guinea | GQ | Yes | No |
| 68 | Eritrea | ER | Yes | No |
| 69 | Estonia | EE | Yes | Yes |
| 70 | Ethiopia | ET | Yes | No |
| 71 | Falkland Islands | FK | Yes | No |
| 72 | Faroe Islands | FO | Yes | No |
| 73 | Fiji | FJ | Yes | No |
| 74 | Finland | FI | Yes | Yes |
| 75 | France | FR | Yes | Yes |
| 76 | French Guiana | GF | Yes | No |
| 77 | French Polynesia | PF | Yes | No |
| 78 | French Southern Territories | TF | Yes | No |
| 79 | Gabon | GA | Yes | No |
| 80 | Gambia | GM | Yes | No |
| 81 | Georgia | GE | Yes | No |
| 82 | Germany | DE | Yes | Yes |
| 83 | Ghana | GH | Yes | No |
| 84 | Gibraltar | GI | Yes | No |
| 85 | Greece | GR | Yes | No |
| 86 | Greenland | GL | Yes | No |
| 87 | Grenada | GD | Yes | No |
| 88 | Guadeloupe | GP | Yes | No |
| 89 | Guam | GU | Yes | No |
| 90 | Guatemala | GT | Yes | No |
| 91 | Guernsey | GG | Yes | No |
| 92 | Guinea | GN | Yes | No |
| 93 | Guinea-Bissau | GW | Yes | No |
| 94 | Guyana | GY | Yes | No |
| 95 | Haiti | HT | Yes | No |
| 96 | Heard Island and McDonald Islands | HM | Yes | No |
| 97 | Honduras | HN | Yes | No |
| 98 | HongKong | HK | Yes | No |
| 99 | Hungary | HU | Yes | Yes |
| 100 | Iceland | IS | Yes | No |
| 101 | India | IN | Yes | No |
| 102 | Indonesia | ID | Yes | No |
| 103 | Iran | IR | Yes | No |
| 104 | Iraq | IQ | Yes | No |
| 105 | Ireland | IE | Yes | Yes |
| 106 | Israel | IL | Yes | No |
| 107 | Italy | IT | Yes | Yes |
| 108 | Ivory Coast | CI | Yes | No |
| 109 | Jamaica | JM | Yes | No |
| 110 | Japan | JP | Yes | No |
| 111 | Jersey | JE | Yes | No |
| 112 | Jordan | JO | Yes | No |
| 113 | Kazakhstan | KZ | Yes | No |
| 114 | Kenya | KE | Yes | No |
| 115 | Kiribati | KI | Yes | No |
| 116 | Korea, Dem. Republic of | KP | Yes | No |
| 117 | Kuwait | KW | Yes | No |
| 118 | Kyrgyzstan | KG | Yes | No |
| 119 | Laos | LA | Yes | No |
| 120 | Latvia | LV | Yes | Yes |
| 121 | Lebanon | LB | Yes | No |
| 122 | Lesotho | LS | Yes | No |
| 123 | Liberia | LR | Yes | No |
| 124 | Libya | LY | Yes | No |
| 125 | Liechtenstein | LI | Yes | No |
| 126 | Lithuania | LT | Yes | Yes |
| 127 | Luxembourg | LU | Yes | Yes |
| 128 | Macau | MO | Yes | No |
| 129 | Macedonia | MK | Yes | No |
| 130 | Madagascar | MG | Yes | No |
| 131 | Malawi | MW | Yes | No |
| 132 | Malaysia | MY | Yes | Yes |
| 133 | Maldives | MV | Yes | No |
| 134 | Mali | ML | Yes | No |
| 135 | Malta | MT | Yes | No |
| 136 | Man Island | IM | Yes | No |
| 137 | Marshall Islands | MH | Yes | No |
| 138 | Martinique | MQ | Yes | No |
| 139 | Mauritania | MR | Yes | No |
| 140 | Mauritius | MU | Yes | No |
| 141 | Mayotte | YT | Yes | No |
| 142 | Mexico | MX | Yes | Yes |
| 143 | Micronesia | FM | Yes | No |
| 144 | Moldova | MD | Yes | No |
| 145 | Monaco | MC | Yes | No |
| 146 | Mongolia | MN | Yes | No |
| 147 | Montenegro | ME | Yes | No |
| 148 | Montserrat | MS | Yes | No |
| 149 | Morocco | MA | Yes | No |
| 150 | Mozambique | MZ | Yes | No |
| 151 | Namibia | NA | Yes | No |
| 152 | Nauru | NR | Yes | No |
| 153 | Nepal | NP | Yes | No |
| 154 | Netherlands | NL | Yes | Yes |
| 155 | Netherlands Antilles | AN | Yes | No |
| 156 | New Caledonia | NC | Yes | No |
| 157 | New Zealand | NZ | Yes | Yes |
| 158 | Nicaragua | NI | Yes | No |
| 159 | Niger | NE | Yes | No |
| 160 | Nigeria | NG | Yes | No |
| 161 | Niue | NU | Yes | No |
| 162 | Norfolk Island | NF | Yes | No |
| 163 | Northern Mariana Islands | MP | Yes | No |
| 164 | Norway | NO | Yes | Yes |
| 165 | Oman | OM | Yes | No |
| 166 | Pakistan | PK | Yes | No |
| 167 | Palau | PW | Yes | No |
| 168 | Palestinian Territories | PS | Yes | No |
| 169 | Panama | PA | Yes | No |
| 170 | Papua New Guinea | PG | Yes | No |
| 171 | Paraguay | PY | Yes | No |
| 172 | Peru | PE | Yes | No |
| 173 | Philippines | PH | Yes | No |
| 174 | Pitcairn | PN | Yes | No |
| 175 | Poland | PL | Yes | Yes |
| 176 | Portugal | PT | Yes | Yes |
| 177 | Puerto Rico | PR | Yes | Yes |
| 178 | Qatar | QA | Yes | No |
| 179 | Reunion Island | RE | Yes | No |
| 180 | Romania | RO | Yes | No |
| 181 | Russian Federation | RU | Yes | No |
| 182 | Rwanda | RW | Yes | No |
| 183 | Republic of Kosovo | XK | Yes | No |
| 184 | Saint Barthelemy | BL | Yes | No |
| 185 | Saint Kitts and Nevis | KN | Yes | No |
| 186 | Saint Lucia | LC | Yes | No |
| 187 | Saint Martin | MF | Yes | No |
| 188 | Saint Pierre and Miquelon | PM | Yes | No |
| 189 | Saint Vincent and the Grenadines | VC | Yes | No |
| 190 | Samoa | WS | Yes | No |
| 191 | San Marino | SM | Yes | No |
| 192 | Saudi Arabia | SA | Yes | No |
| 193 | Senegal | SN | Yes | No |
| 194 | Serbia | RS | Yes | No |
| 195 | Seychelles | SC | Yes | No |
| 196 | Sierra Leone | SL | Yes | No |
| 197 | Singapore | SG | Yes | Yes |
| 198 | Slovakia | SK | Yes | Yes |
| 199 | Slovenia | SI | Yes | Yes |
| 200 | Solomon Islands | SB | Yes | No |
| 201 | Somalia | SO | Yes | No |
| 202 | South Africa | ZA | Yes | No |
| 203 | South Georgia and the South Sandwich Islands | GS | Yes | No |
| 204 | South Korea | KR | Yes | No |
| 205 | Spain | ES | Yes | Yes |
| 206 | Sri Lanka | LK | Yes | No |
| 207 | Sudan | SD | Yes | No |
| 208 | Suriname | SR | Yes | No |
| 209 | Svalbard and Jan Mayen | SJ | Yes | No |
| 210 | Swaziland | SZ | Yes | No |
| 211 | Sweden | SE | Yes | Yes |
| 212 | Switzerland | CH | Yes | Yes |
| 213 | Syria | SY | Yes | No |
| 214 | São Tomé and Príncipe | ST | Yes | No |
| 215 | Taiwan | TW | Yes | No |
| 216 | Tajikistan | TJ | Yes | No |
| 217 | Tanzania | TZ | Yes | No |
| 218 | Thailand | TH | Yes | No |
| 219 | Togo | TG | Yes | No |
| 220 | Tokelau | TK | Yes | No |
| 221 | Tonga | TO | Yes | No |
| 222 | Trinidad and Tobago | TT | Yes | No |
| 223 | Tunisia | TN | Yes | No |
| 224 | Turkey | TR | Yes | No |
| 225 | Turkmenistan | TM | Yes | No |
| 226 | Turks and Caicos Islands | TC | Yes | No |
| 227 | Tuvalu | TV | Yes | No |
| 228 | Uganda | UG | Yes | No |
| 229 | Ukraine | UA | Yes | No |
| 230 | United Arab Emirates | AE | Yes | No |
| 231 | United Kingdom | GB | Yes | Yes |
| 232 | United States | US | Yes | Yes |
| 233 | United States Minor Outlying Islands | UM | Yes | No |
| 234 | Uruguay | UY | Yes | No |
| 235 | Uzbekistan | UZ | Yes | No |
| 236 | Vanuatu | VU | Yes | No |
| 237 | Vatican City State | VA | Yes | No |
| 238 | Venezuela | VE | Yes | No |
| 239 | Vietnam | VN | Yes | No |
| 240 | Virgin Islands (British) | VG | Yes | No |
| 241 | Virgin Islands (U.S.) | VI | Yes | No |
| 242 | Wallis and Futuna | WF | Yes | No |
| 243 | Western Sahara | EH | Yes | No |
| 244 | Yemen | YE | Yes | No |
| 245 | Zambia | ZM | Yes | No |
| 246 | Zimbabwe | ZW | Yes | No |
| 247 | South Sudan | SS | Yes | No |
## e-IDV Pro
Following countries are supported for eIDV Pro:
Following are the country-wise coverage of supported document types and eID schemes available through the Identity Verification (IDV) methods within the QES solution.
Following are the country-wise coverage details for supported document types under the Document Verification + Facial Biometrics method within QES.
Following are the country-wise coverage details for supported NFC-enabled document types under the NFC Document Verification + Facial Biometrics method within QES.
Following are the country-wise coverage details for supported eID schemes under the Active eID-Based Verification method within QES.
### Table 1
| | Country Name | Country Code | Verification Approach | Request Field | Response Field | Data Source Type | |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | Angola | AO | PASSIVE | ▪ National ID Number | ▪ First Name▪ Last Name▪ National ID Number▪ Gender▪ Phone Number▪ Address | Government | 90% |
| 2 | Argentina | AR | PASSIVE | ▪ First Name▪ Last Name▪ National ID Number | ▪ First Name▪ Last Name▪ National ID Number | Government - GVT1 | 99% |
| Government - GVT2 | 65% |
| 3 | Australia | AU | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ Street Address▪ Postal Code | ▪ First Name▪ Last Name▪ Date Of Birth▪ Street Address▪ Postal Code | Government - GVT5 | 95% |
| Government - GVT6 | 95% |
| Commercial - CMM5 | 17% |
| Commercial - CMM7 | 65% |
| Consumer - CNS1 | 72% |
| Commercial - CMM4 | 6% |
| Credit - CRD1 | 15% |
| Credit - CRD2 | 65% |
| Credit - CRD3 | 15% |
| Government - GVT2 | 97% |
| Telco - TEL1 | 32% |
| Telco - TEL2 | 35% |
| Consumer - CNS9 | 92% |
| Commercial - CMM6 | 80% |
| Government - GVT1 | 99% |
| 4 | Austria | AT | ACTIVE | ▪ Authentication on handysignature Username/MobileNumber Signature Password | ▪ ID code▪ First name▪ Last name▪ Status▪ Country▪ Date Of Birth | Banking | 75% |
| ▪ Authentication from Handy-Signatur / ID Austria | ▪ First Name▪ Last Name | Government | 36% |
| 5 | Austria | AT | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ Address | ▪ First Name▪ Last Name▪ Date Of Birth▪ Address | Credit - BureauCREDIT | 80% |
| 6 | Belgium | BE | ACTIVE | ▪ Authentication from Belgian eID | ▪ First Name▪ Last Name▪ Date Of Birth▪ Gender | Government | 100% |
| ▪ Authentication from itsme® | ▪ First Name▪ Last Name▪ Date Of Birth▪ Nationality▪ Gender▪ Phone Number▪ Address Line 1▪ City▪ Postal Code▪ Country▪ Document Number▪ Expiration Date▪ Document Portrait | Banking | 33% |
| 6 | Belgium | BE | PASSIVE | ▪ First name▪ Last Name▪ Date Of Birth▪ Postal Code | ▪ First name▪ Last Name▪ Date Of Birth▪ Postal Code | Commercial - CMM2 | 43% |
| Commercial - CMM1 | 55% |
| Credit - CRD1 | 4% |
| Government - GVT1 | 20% |
| Telco - TEL1 | 60% |
| Commercial - CMM3 | 60% |
| Consumer - CNS1 | 70% |
| 7 | Bolivia | BO | PASSIVE | ▪ Document Number (CI)▪ Date Of Birth | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Document Type▪ Document Number▪ Issuing Country | Government | 100% |
| 8 | Brazil | BR | ACTIVE | ▪ Authentication from Digital CNH | ▪ Full Name▪ Date Of Birth▪ Document Type▪ Document Number▪ Issue Date▪ Expiration Date▪ Issuing Country▪ Issuing Authority▪ Document Front | Government | 42% |
| 8 | Brazil | BR | PASSIVE | ▪ CPF Number | ▪ CPF Number▪ Name▪ Date Of Birth | Government | 100% |
| ▪ CPF Number | ▪ CPF Number▪ Name▪ Vital Status▪ Active Benefits & Entitlements | Government | 100% |
| ▪ CPF Number | ▪ CPF Number▪ Social Benefits & Entitlements▪ CPF Status▪ Gender▪ Mother Name▪ PEP Response | Government | 100% |
| ▪ CPF Number | ▪ CPF Number▪ SIP Response▪ Data Source▪ Sanction Type | Government | 100% |
| ▪ CPF Number | ▪ CPF Number▪ Social Benefits & Entitlements▪ Gambling Barred Check Response▪ Betting Involvement▪ Sports Industry Involvement▪ Athlete Activity | Government | 100% |
| ▪ CPF Number | ▪ Full Name▪ Date Of Birth▪ Document Number | Government | 100% |
| 8 | Bulgaria | BG | PASSIVE | ▪ Full Name▪ Full Address | ▪ Full Name▪ Full Address | Proprietary - PRP1 | 55% |
| 9 | Canada | CA | PASSIVE | ▪ Full Name▪ Full Address | ▪ Full Name▪ Full Address | Telco - TEL1 | 78% |
| Credit - CRD1 | 95% |
| Postal - PST1 | 53% |
| 10 | Chile | CL | PASSIVE | ▪ Full Name▪ National ID Number▪ Date Of Birth | ▪ Full Name▪ National ID Number▪ Date Of Birth | Credit - CRD1 | 70% |
| Government - GVT1 | 45% |
| 11 | China | CN | PASSIVE | ▪ Full Name▪ National ID Number▪ Phone | ▪ Full Name▪ National ID Number▪ Phone | Telco - TEL1 | 80% |
| Government - GVT1 | 95% |
| 12 | Colombia | CO | PASSIVE | ▪ First Name▪ Last Name▪ National ID Number | ▪ First Name▪ Last Name▪ National ID Number | Government - GVT4 | 80% |
| Credit - CRD1 | 75% |
| Government - GVT1 | 30% |
| Commercial - CMM6 | 62% |
| 12 | Colombia | CO | PASSIVE | ▪ Document Number (CC)▪ Issue Date | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Gender▪ Document Type▪ Document Number▪ Issue Date▪ Issuing Country | Government | 82% |
| 13 | Costa Rica | CR | PASSIVE | ▪ Full Name▪ Date Of Birth▪ National ID Number | ▪ Full Name▪ Date Of Birth▪ National ID Number | Credit - CRD1 | 76% |
| Government - GVT2 | 99% |
| Government - GVT3 | 90% |
| 14 | Cote d'Ivoire | CI | PASSIVE | ▪ National ID Number | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Nationality▪ Gender▪ Full Address▪ Document Type▪ Document Number▪ Issuing Country | Government | 32% |
| 14 | Czech Republic | CZ | ACTIVE | ▪ Authentication from Czech BankID | ▪ First Name▪ Middle Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Nationality▪ Gender▪ Phone Number▪ Address Line 1▪ Address Line 2▪ City▪ Postal Code▪ Country▪ Document Type▪ Document Number▪ Issue Date▪ Expiration Date▪ Issuing Country▪ Issuing Authority | Banking | 57% |
| ▪ Authentication from mojeID | ▪ First Name▪ Last Name▪ Date Of Birth | Government | 13% |
| 14 | Czech Republic | CZ | PASSIVE | ▪ Last Name▪ City | ▪ Last Name▪ City | Credit - CRD2 | 100% |
| Credit - CRD1 | 42% |
| 15 | Denmark | DK | ACTIVE | ▪ User ID▪ Password | ▪ CPR Number Identifier▪ Name▪ Date Of Birth▪ Age▪ Country | Banking | 75% |
| 15 | Denmark | DK | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ National ID Number▪ Full Address▪ Phone Number | ▪ First Name▪ Last Name▪ Date Of Birth▪ National ID Number▪ Full Address▪ Phone Number | Consumer - CNS2 | 56% |
| Government - GVT4 | 90% |
| Consumer - CNS3 | 56% |
| Government - GVT1 | 90% |
| 16 | Ecuador | EC | PASSIVE | ▪ Full Name▪ National ID Number | ▪ Full Name▪ National ID Number | Proprietary - PRP1 | 55% |
| Government - GVT2 | 90% |
| 17 | El Salvador | SV | PASSIVE | ▪ Full Name▪ Date of Birth▪ Full Address | ▪ Full Name▪ Date of Birth▪ Full Address | Proprietary - PRP1 | 70% |
| ▪ Document Number (DUI)▪ Date Of Birth | ▪ Full Name▪ Date Of Birth▪ Document Type▪ Document Number▪ Issuing Country | Government | 96% |
| 18 | Estonia | EE | ACTIVE | ▪ Authentication through iD KAART | ▪ First Name▪ Family Name▪ Nationality▪ Date Of Birth▪ Gender | Scheme: iD KAART | 78% |
| 18 | Ethiopia | ET | ACTIVE | ▪ Authentication from Fayda app | ▪ First name▪ Unique Reference | Government | 37% |
| 19 | Finland | FI | ACTIVE | ▪ Authentication atselected finnish bank | ▪ Name▪ Given Name▪ Last Name▪ Date of birth▪ Gender▪ ID Number▪ Country | Banking | 75% |
| 19 | Finland | FI | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ National ID Number▪ Full Address▪ Phone Number | ▪ First Name▪ Last Name▪ Date Of Birth▪ National ID Number▪ Full Address▪ Phone Number | Consumer - CNS2 | 94% |
| Government - GVT1 | 90% |
| Proprietary - PRP1 | 70% |
| 20 | France | FR | ACTIVE | ▪ Authentication from France Identité | ▪ First Name▪ Last Name▪ Date Of Birth▪ Nationality▪ Gender▪ Phone Number▪ Address Line 1▪ City▪ Subdivision▪ Postal Code▪ Country▪ Document Number▪ Issue Date▪ Expiration Date▪ Issuing Country▪ Issuing Subdivision▪ Issuing Authority▪ Document Portrait | Government | 8% |
| 20 | France | FR | PASSIVE | ▪ First Name▪ Last Name▪ Full Address▪ Postal Code | ▪ First Name▪ Last Name▪ Full Address▪ Postal Code | Telco - TEL7 | 9% |
| Commercial - CMM4 | 20% |
| Commercial - CMM2 | 95% |
| Consumer - CNS2 | 5% |
| Consumer - CNS1 | 60% |
| Consumer - CNS5 | 40% |
| Commercial - CMM5 | 77% |
| Telco - TEL4 | 80% |
| Government - GVT1 | 85% |
| Commercial - CMM3 | 84% |
| Consumer - CNS3 | 60% |
| Telco - TEL1 | 65% |
| Commercial - CMM6 | 51% |
| 20 | Germany | DE | ACTIVE | ▪ Authentication from Verimi | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Nationality▪ Document Type▪ Document Number▪ Issue Date▪ Expiration Date▪ Issuing Country▪ Issuing Authority▪ Phone Number▪ Full Address▪ Address Line 1▪ City▪ Subdivision▪ Postal Code▪ Country | Commercial | 6% |
| 20 | Germany | DE | PASSIVE | ▪ First Name▪ Last Name▪ House Number▪ Postal Code▪ City | ▪ First Name▪ Last Name▪ House Number▪ Postal Code▪ City | Consumer - CNS1 | 75% |
| Credit - CRD2 | 85% |
| Credit - CRD1 | 80% |
| Commercial - CMM1 | 9% |
| Government - GVT1 | 70% |
| Government - GVT2 | 75% |
| Telco - TEL1 | 95% |
| Consumer - CNS2 | 92% |
| Commercial - CMM6 | 22% |
| Government - GVT3 | 90% |
| 21 | Ghana | GH | PASSIVE | ▪ SSNIT Number▪ Full Name▪ Date Of Birth | ▪ Full Name▪ SSNIT Number▪ Date Of Birth▪ Card Serial Number▪ Gender | Government | 90% |
| ▪ Driving Licence Number▪ Full Name▪ Date Of Birth | ▪ Full Name▪ Driving Licence Number▪ Date Of Birth▪ Issue Date▪ Expiration Date▪ Pin Number▪ Processing Center | Government | 90% |
| ▪ Voter ID Number▪ Full Name | ▪ Full Name▪ Voter ID Number▪ Date Of Birth▪ Gender▪ Registration Date▪ Polling Station | Government | 90% |
| 22 | Gibraltar | GI | PASSIVE | ▪ First Name▪ Last Names ▪ Full Address | ▪ First Name▪ Last Names ▪ Full Address | Telco - TEL2 | 33% |
| 23 | Greece | GR | PASSIVE | ▪ First Name▪ Last Names ▪ Full Address | ▪ First Name▪ Last Names ▪ Full Address | Consumer - CNS1 | 25% |
| 24 | Guatemala | GT | PASSIVE | ▪ Full Name▪ National ID Number | ▪ Full Name▪ National ID Number | Government - GVT2 | 90% |
| ▪ National ID Number (CUI) | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Gender▪ Document Type▪ Document Number▪ Issuing Country | Government | 100% |
| 25 | Honduras | HN | PASSIVE | ▪ Full Name▪ National ID Number | ▪ Full Name▪ National ID Number | Proprietary - PRP1 | 55% |
| Government - GVT1 | 90% |
| 26 | Hong Kong | HK | PASSIVE | ▪ First Name▪ Last Name▪ Full Address | ▪ First Name▪ Last Name▪ Full Address | Government - GVT2 | 92% |
| 27 | Hungary | HU | PASSIVE | ▪ Full Name▪ Full Address | ▪ Full Name▪ Full Address | Proprietary - PRP1 | 33% |
| 28 | India | IN | ACTIVE | ▪ Digilocker Fetch▪ Aadhaar Card Number▪ Authentication of OTP received to user | ▪ Full Name▪ Date Of Birth▪ Gender▪ City▪ State▪ Subdivision▪ Full Address▪ Document Portrait | Government | 59% |
| ACTIVE | ▪ Full Name▪ Date Of Birth▪ Digilocker Authentication of OTP received to user | ▪ Full Name Match▪ Date of Birth Match | Government | 64% |
| PASSIVE | ▪ Pan Number | ▪ Pan Number▪ Full Name▪ Category | Government | 95% |
| PASSIVE | ▪ PAN Number | ▪ First Name▪ Middle Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Document Type▪ Document Number▪ Issuing Country | Government | 70% |
| 29 | Indonesia | ID | ACTIVE | ▪ Authentication from Dukcapil (Third Party Wallet) | ▪ Full Name▪ Date Of Birth▪ Document Type▪ Document Number▪ National ID Number Match▪ Full Name Match▪ Date Of Birth Match▪ Face Match | Government | 99% |
| 29 | Indonesia | ID | PASSIVE | ▪ First Name▪ Last Name▪ National ID Number▪ Date Of Birth | ▪ First Name▪ Last Name▪ National ID Number▪ Date Of Birth | Commercial - CMM1 | 50% |
| Government - GVT1 | 80% |
| Telco - TEL1 | 75% |
| Commercial - CMM6 | 31% |
| ▪ Full Name▪ Date Of Birth▪ National ID Number (NIK) | ▪ Full Name▪ Date Of Birth▪ Document Type▪ Document Number▪ National ID Number Match▪ Full Name Match▪ Date Of Birth Match | Government | 99% |
| ▪ Full Name▪ Date Of Birth▪ Resident ID Number▪ Gender | ▪ Full Name▪ Date Of Birth▪ Resident ID Number▪ Gender▪ Address (Where Available) | Commercial | 50% |
| ▪ Plate Number | ▪ Plate Number▪ Province▪ Make▪ Model▪ Manufacture Year▪ Tax Status▪ Tax Due Date▪ Total Tax Payable | Government - DI Yogyakarta | 50% |
| ▪ Plate Number | ▪ Plate Number▪ Province▪ Registration Area▪ Make▪ Model▪ Vehicle Type▪ Manufacture Year▪ Colour▪ Engine Capacity▪ Fuel Type▪ Chassis Number▪ Owner Name▪ Owner Address▪ Tax Status▪ Tax Due Date▪ Registration Valid Until▪ Total Tax Payable | Government - Banten | 50% |
| ▪ Plate Number | ▪ Plate Number▪ Province▪ Make▪ Model▪ Vehicle Type▪ Manufacture Year▪ Colour▪ Plate Colour▪ Engine Capacity▪ Fuel Type▪ Chassis Number▪ Tax Status▪ Tax Due Date▪ Last Payment Date▪ Registration Valid Until▪ Years Overdue▪ Total Tax Payable | Government - Sulawesi Utara | 50% |
| 30 | Ireland | IE | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth | ▪ First Name▪ Last Name▪ Date Of Birth | Credit - CRD1 | 55% |
| Consumer - CNS1 | 24% |
| 31 | Italy | IT | ACTIVE | ▪ Authentication from SPID | ▪ First Name▪ Family Name▪ Date Of Birth▪ State▪ Subdivision▪ Gender▪ Postal Code▪ Country▪ City▪ Full Address | Government | 87% |
| 36 | Mexico | MX | ACTIVE | ▪ Mexico CURP Number | ▪ First Name▪ Family Name▪ Nationality▪ DOB▪ Gender | Government | 90% |
| 31 | Italy | IT | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ House Number▪ Street Address▪ City | ▪ First Name▪ Last Name▪ Date Of Birth▪ House Number▪ Street Address▪ City | Telco - TEL7 | 55% |
| Commercial - CMM1 | 30% |
| Credit - CRD1 | 90% |
| Credit - CRD3 | 63% |
| Commercial - CMM2 | 48% |
| Telco - TEL5 | 50% |
| Government - GVT2 | 70% |
| Government - GVT3 | 70% |
| Government - GVT4 | 70% |
| Telco - TEL1 | 50% |
| Utility - UTL1 | 60% |
| Utility - UTL2 | 60% |
| Utility - UTL3 | 60% |
| Utility - UTL4 | 60% |
| Commercial - CMM6 | 54% |
| Government - GVT1 | 85% |
| 32 | Japan | JP | PASSIVE | ▪ First Name▪ Last Name ▪ Full Address | ▪ First Name▪ Last Name ▪ Full Address | Telco - TEL2 | 11% |
| 33 | Kenya | KE | PASSIVE | ▪ National ID Number | ▪ First Name▪ Last Name▪ Middle Name▪ Date Of Birth▪ National ID Number▪ Gender ▪ Document Portrait | Government | 90% |
| ▪ First Name▪ Middle Name▪ Last Name▪ Date Of Birth▪ Gender▪ National ID Number | ▪ First Name▪ Middle Name▪ Last Name▪ Date Of Birth▪ Gender▪ Document Type▪ Document Number▪ National ID Number Match▪ First Name Match▪ Middle Name Match▪ Last Name Match▪ Gender Match▪ Date Of Birth Match | Government | 66% |
| 34 | Lithuania | LT | ACTIVE | ▪ Authentication from Mobile-ID | ▪ First Name▪ Last Name▪ Date Of Birth▪ Gender▪ Document Type▪ Issuing Country | Scheme: Mobile-ID | 21% |
| ▪ Authentication from LT ID | ▪ First Name▪ Last Name▪ Date Of Birth▪ Gender | Scheme: LT ID | 100% |
| 34 | Lithuania | LT | PASSIVE | ▪ Full Name▪ Full Address | ▪ First Name▪ Full Address | Proprietary - PRP1 | 43% |
| 34 | Latvia | LV | ACTIVE | ▪ Authentication through eParaksts | ▪ First Name▪ Family Name▪ Nationality▪ Date Of Birth▪ Gender | Scheme: eParaksts Smart Card | 76% |
| ▪ Authentication from eParaksts Mobile | ▪ First Name▪ Last Name▪ Date Of Birth | Scheme: eParaksts Mobile | 36% |
| ▪ Authentication from Smart-ID | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Gender▪ Document Type▪ Issuing Country | Scheme: Smart-ID | 20% |
| 35 | Malaysia | MY | PASSIVE | ▪ Full Name▪ National ID Number▪ Date Of Birth | ▪ Full Name▪ National ID Number▪ Date Of Birth | Government | 56% |
| ▪ Full Name▪ National ID Number▪ Date Of Birth▪ Street Address▪ City▪ State▪ Postal Code | ▪ Full Name▪ National ID Number▪ Date Of Birth▪ Street Address▪ City▪ State▪ Postal Code | Credit | 55% |
| ▪ Full Name▪ National ID Number▪ Date Of Birth▪ Gender▪ Street Address▪ City▪ State▪ Postal Code | ▪ Full Name▪ National ID Number▪ Date Of Birth▪ Gender▪ Street Address▪ City▪ State▪ Postal Code | Semi-Government | 75% |
| 36 | Mexico | MX | PASSIVE | ▪ First Name▪ Last Name▪ National ID Number▪ Postal Code | ▪ First Name▪ Last Name▪ National ID Number▪ Postal Code | Government - GVT2 | 90% |
| Government - GVT6 | 62% |
| Commercial - CMM1 | 30% |
| Government - GVT1 | 75% |
| Proprietary - PRP1 | 10% |
| Commercial - CMM2 | 65% |
| Commercial - CMM6 | 32% |
| 37 | Netherlands | NL | ACTIVE | ▪ Authentication from bank | ▪ National ID Number▪ First Name▪ Last Name▪ Date Of Birth▪ Status▪ Country▪ Current Login Method | Banking | 75% |
| ▪ Authentication from iDIN | ▪ Last Name▪ Date Of Birth▪ Gender▪ Phone Number▪ Address Line 1▪ Address Line 2▪ Address Line 3▪ City▪ Postal Code▪ Country | Banking | 98% |
| 37 | Netherlands | NL | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ Address | ▪ First Name▪ Last Name▪ Date Of Birth▪ Address | Commercial - COMM | 80% |
| Consumer - COMM | 20% |
| 38 | New Zealand | NZ | PASSIVE | ▪ First Name▪ Last Name▪ House Number▪ Street Address▪ City | ▪ First Name▪ Last Name▪ House Number▪ Street Address▪ City | Commercial - CMM1 | 5% |
| Credit - CRD1 | 70% |
| 39 | Nigeria | NG | PASSIVE |
| ▪ National ID Number | ▪ First Name▪ Last name▪ Middle Name▪ Date Of Birth▪ National ID Number▪ Gender▪ Document Portrait | Government | 90% |
| ▪ Bank Verification Number | ▪ First Name▪ Last name▪ Middle Name▪ Date Of Birth▪ Phone Number▪ Email▪ Gender▪ Bank Verification Number▪ LGA of residence▪ LGA of origin | Government | 90% |
| ▪ First Name▪ Middle Name▪ Last Name▪ Phone Number▪ Date Of Birth▪ Gender▪ National ID Number | ▪ First Name▪ Middle Name▪ Last Name▪ Date Of Birth▪ Gender▪ Phone Number▪ Document Type▪ Document Number▪ National ID Number Match▪ First Name Match▪ Middle Name Match▪ Last Name Match▪ Gender Match▪ Date Of Birth Match | Government | 70% |
| ▪ National ID Number | ▪ First Name▪ Middle Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Gender▪ Phone Number▪ Full Address▪ Document Type▪ Document Number▪ Issuing Country▪ Document Portrait | Government | 70% |
| ▪ National ID Number | ▪ First Name▪ Middle Name▪ Last Name▪ Date Of Birth▪ Gender▪ Phone Number▪ Full Address▪ Address Line 2▪ City▪ Subdivision▪ Document Type▪ Document Number▪ Issuing Country▪ Document Portrait | Government | 70% |
| ▪ National ID Number▪ First Name▪ Middle Name▪ Last Name▪ Date Of Birth▪ Gender▪ Phone Number | ▪ Document Type▪ Document Number▪ Issuing Country▪ National ID Number Match▪ Full Name Match▪ Gender Match▪ Date Of Birth Match▪ Phone Number Match | Government | 70% |
| 40 | Norway | NO | PASSIVE | ▪ First Name▪ Last name▪ Street Address▪ City | ▪ First Name▪ Last name▪ Street Address▪ City | Consumer - CNS2 | 85% |
| Telco - TEL1 | 60% |
| 41 | Pakistan | PK | PASSIVE | ▪ CNIC▪ Date Of Birth | ▪ Full Name▪ Father Name▪ Date Of Birth▪ Gender▪ CNIC▪ Driving Licence Number▪ Licence Type▪ Allowed Vehicles▪ Issue Date▪ Valid From▪ Valid Till▪ Licence Status▪ Issuing District▪ Description▪ Eligible▪ Full Address | CNIC Lookup | 90% |
| ▪ CNIC▪ Date Of Birth▪ Driving Licence Number | ▪ Full Name▪ Father Name▪ Date Of Birth▪ Gender▪ CNIC▪ Full Address | ePOA | 22% |
| 41 | Panama | PA | PASSIVE | ▪ Full Name▪ National ID Number▪ Date of Birth | ▪ Full Name▪ National ID Number▪ Date of Birth | Government - GVT1 | 95% |
| ▪ Document Number (Cédula)▪ Date Of Birth | ▪ First Name▪ Last Name▪ Full Name▪ Document Type▪ Document Number▪ Issuing Country | Government | 100% |
| 42 | Paraguay | PY | PASSIVE | ▪ Full Name▪ National ID Number | ▪ Full Name▪ National ID Number | Government - GVT2 | 90% |
| 43 | Peru | PE | PASSIVE | ▪ Full Name▪ National ID Number▪ Date of Birth▪ Full Address | ▪ Full Name▪ National ID Number▪ Date of Birth▪ Full Address | Credit - CRD1 | 40% |
| Government - GVT2 | 99% |
| Government - GVT4 | 90% |
| 43 | Peru | PE | PASSIVE | ▪ Document Number (DNI) | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Gender▪ Document Type▪ Document Number▪ Issue Date▪ Expiration Date▪ Issuing Country▪ Issuing Authority▪ Subdivision▪ Country▪ Document Portrait | Government | 100% |
| 44 | Philippines | PH | ACTIVE | ▪ Authentication from Digital National ID/ePhilID | ▪ First Name▪ Last Name▪ Middle Name▪ Gender▪ Date Of Birth▪ National ID▪ Place of Birth▪ Document Portrait | Government | 98% |
| PhilSys Biometrics▪ Given Name▪ Family Name▪ Middle Name▪ Suffix▪ Date Of Birth▪ Face Liveness Check | ▪ Given Name▪ Family Name▪ Middle Name▪ Suffix▪ Date Of Birth | Government | 99% |
| 44 | Philippines | PH | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ Phone | ▪ First Name▪ Last Name▪ Date Of Birth▪ Phone | Credit - CRD3 | 80% |
| Government - GVT1 | 65% |
| 45 | Poland | PL | ACTIVE | ▪ Authentication from eDO App | ▪ First Name▪ Last Name▪ Date Of Birth▪ Gender | Government | 4% |
| 45 | Poland | PL | PASSIVE | ▪ First Name▪ Last Name▪ National ID Number | ▪ First Name▪ Last Name▪ National ID Number | Government - GVT1 | 99% |
| Credit - CRD1 | 52% |
| Commercial - CMM1 | 4% |
| Commercial - CMM6 | 32% |
| 46 | Portugal | PT | ACTIVE | ▪ Authentication from Portuguese eID | ▪ First Name▪ Last Name▪ Date Of Birth | Government | 94% |
| 46 | Portugal | PT | PASSIVE | ▪ First Name▪ Last Name▪ Street Address▪ City▪ House Number▪ Postal Code | ▪ First Name▪ Last Name▪ Street Address▪ City▪ House Number▪ Postal Code | Consumer - CNS2 | 33% |
| Commercial - CMM2 | 22% |
| Consumer - CNS1 | 60% |
| Commercial - CMM6 | 36% |
| 47 | Romania | RO | PASSIVE | ▪ Full Name▪ National ID Number▪ Date of Birth▪ Full Address | ▪ Full Name▪ National ID Number▪ Date of Birth▪ Full Address | Proprietary - PRP2 | 25% |
| Government - GVT2 | 42% |
| Proprietary - PRP1 | 40% |
| 48 | Saudi Arabia | SA | PASSIVE | ▪ ID Number▪ Proof Number | ▪ Full Name▪ Full Address | Government | 95% |
| ▪ ID Number▪ Date of Birth | ▪ Full Name▪ License Class▪ License Status▪ Issue Date▪ Expiry Date▪ License Records | Government | 70% |
| 48 | Serbia | RS | ACTIVE | ▪ Authentication from Serbian eID | ▪ First Name▪ Last Name▪ Date Of Birth▪ Gender | Government | 9% |
| 48 | Singapore | SG | PASSIVE | ▪ Full Name▪ National ID Number▪ Date Of Birth▪ Full Address | ▪ Full Name▪ National ID Number▪ Date Of Birth▪ Full Address | Commercial - CMM6 | 20% |
| 49 | Slovakia | SK | PASSIVE | ▪ Last Name▪ City | ▪ Last Name▪ City | Credit - CRD1 | 30% |
| 50 | South Africa | ZA | ACTIVE | ▪ National ID Number from South Africa NID | ▪ Full Name▪ National ID Number▪ Date Of Birth▪ Phone Number▪ Issue Date▪ Gender▪ Document Portrait | Government | 90% |
| 50 | South Africa | ZA | PASSIVE | ▪ National ID Number | ▪ Full Name▪ National ID Number▪ Date Of Birth▪ Marital Status▪ Issue Date▪ Gender▪ Address ▪ Document Portrait | Government | 90% |
| ▪ Full Name▪ Date Of Birth▪ Gender▪ National ID Number | ▪ Full Name▪ Date Of Birth▪ Gender▪ Document Type▪ Document Number▪ National ID Number Match▪ Full Name Match▪ Gender Match▪ Date Of Birth Match | Government | 100% |
| 51 | South Korea | KR | PASSIVE | ▪ Phone Number▪ Full Name▪ Date Of Birth▪ Gender▪ Mobile Carrier▪ Operating System | ▪ Full Name▪ Date Of Birth▪ Gender▪ Phone Number | Telco | 92% |
| 51 | Spain | ES | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ Street Address | ▪ First Name▪ Last Name▪ Date Of Birth▪ Street Address | Commercial - CMM1 | 40% |
| Commercial - CMM5 | 35% |
| Government - GVT3 | 95% |
| Telco - TEL2 | 39% |
| Telco - TEL1 | 90% |
| Commercial - CMM3 | 53% |
| Commercial - CMM2 | 80% |
| Commercial - CMM6 | 74% |
| Government - GVT4 | 95% |
| 52 | Sweden | SE | ACTIVE | ▪ Authentication from Swedish Bank ID | ▪ National ID Number▪ Name▪ First Name▪ Last Name | Banking | 90% |
| ▪ Authentication from BankID (Third Party Wallet) | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Gender | Banking | 100% |
| ▪ Authentication from Freja | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Nationality▪ Phone Number▪ Full Address▪ Address Line 1▪ City▪ Postal Code▪ Country▪ Document Type▪ Document Number▪ Expiration Date▪ Issuing Country | Government | 20% |
| 52 | Sweden | SE | PASSIVE | ▪ First Name▪ Last Name▪ National ID Number▪ Date Of Birth▪ Address | ▪ First Name▪ Last Name▪ National ID Number▪ Date Of Birth▪ Address | Semi - Gov | 100% |
| Commercial - COMM | 100% |
| Consumer - COMM | 10% |
| 53 | Switzerland | CH | PASSIVE | ▪ First Name▪ Last Name▪ City▪ Street Address | ▪ First Name▪ Last Name▪ City▪ Street Address | Consumer - CNS1 | 60% |
| Commercial - CMM1 | 95% |
| Credit - CRD1 | 90% |
| 54 | Thailand | TH | PASSIVE | ▪ First Name▪ Last Name▪ Date Of Birth▪ National ID Number▪ Full Address | ▪ First Name▪ Last Name▪ Date Of Birth▪ National ID Number▪ Full Address | Government - GVT1 | 90% |
| 54 | Taiwan | TW | PASSIVE | ▪ Full Name▪ Date of Birth▪ Full Address | ▪ Full Name▪ Date of Birth▪ Full Address | Commercial - CMM6 | 36% |
| 55 | Turkey | TR | PASSIVE | ▪ First Name▪ Last Name▪ National ID Number▪ Date Of Birth | ▪ First Name▪ Last Name▪ Date Of Birth▪ National ID Number | Government - GVT1 | 95% |
| Commercial - CMM2 | 8% |
| Government - GVT5 | 70% |
| Government - GVT4 | 95% |
| 56 | Uganda | UG | PASSIVE | ▪ First Name▪ Last Name▪ National ID Number | ▪ First Name▪ Last Name▪ Gender▪ National ID Number▪ Village▪ District▪ Polling Station | Government | 90% |
| ▪ National ID Number▪ Card Number▪ Date Of Birth | ▪ Document Type▪ Document Number▪ Issuing Country▪ National ID Number Match▪ Card Number Match▪ Date Of Birth Match | Government | 92% |
| 57 | United Arab Emirates | AE | PASSIVE | ▪ Date of Birth▪ Emirates ID Number▪ Nationality | ▪ Date of Birth▪ Emirates ID Number▪ Nationality | Government | 95% |
| 58 | United Kingdom | GB | ACTIVE | ▪ Authentication from Yoti | ▪ Gender▪ Full Name▪ Date Of Birth▪ City▪ Country▪ Full Address▪ State▪ Postal Code▪ Subdivision▪ National ID▪ Expiration Date▪ Selfie | Government | 13% |
| ACTIVE | ▪ Authentication from One ID | ▪ Name▪ First Name▪ Family Name▪ Phone Number▪ Date Of Birth▪ Address▪ Street Address▪ City▪ Region▪ Postal Code | Banking | 80% |
| ACTIVE | ▪ Authentication from Post Office EasyID | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Gender▪ Nationality▪ Phone Number▪ Full Address▪ Address Line 1▪ Address Line 2▪ Address Line 3▪ City▪ Subdivision▪ Postal Code▪ Country▪ Document Type▪ Document Number▪ Expiration Date▪ Issuing Country▪ Issuing Authority▪ Selfie▪ Document Front▪ Document Back | Postal | 1% |
| ACTIVE | ▪ Authentication from Lloyds Smart ID | ▪ First Name▪ Last Name▪ Full Name▪ Date Of Birth▪ Gender▪ Nationality▪ Phone Number▪ Full Address▪ Address Line 1▪ Address Line 2▪ Address Line 3▪ City▪ Subdivision▪ Postal Code▪ Country▪ Document Type▪ Document Number▪ Expiration Date▪ Issuing Country▪ Issuing Authority▪ Selfie▪ Document Front▪ Document Back | Banking | 0% |
| 58 | United Kingdom | GB | PASSIVE | ▪ First Name▪ Last Name▪ Postal Code▪ Full Address | ▪ First Name▪ Last Name▪ Postal Code▪ Full Address | Telco - TEL8 | 87% |
| Government - GVT1 | 28% |
| Postal - PST1 | 47% |
| Consumer - CNS1 | 70% |
| Commercial - CMM5 | 20% |
| Commercial - CMM1 | 75% |
| Commercial - CMM2 | 75% |
| Commercial - CMM3 | 70% |
| Commercial - CMM4 | 80% |
| Credit - CRD1 | 85% |
| Credit - CRD2 | 80% |
| Credit - CRD4 | 80% |
| Credit - CRD5 | 80% |
| Government - GVT3 | 70% |
| Government - GVT4 | 15% |
| Government - GVT5 | 75% |
| Telco - TEL2 | 80% |
| Telco - TEL1 | 70% |
| Telco - TEL8 | 95% |
| Commercial - CMM6 | 30% |
| 58 | United Kingdom | GB | PASSIVE | ▪ Share Code▪ Date Of Birth | ▪ First Name▪ Last Name▪ Date Of Birth▪ Nationality▪ Document Type▪ Document Number▪ Issue Date▪ Expiration Date▪ Issuing Country▪ Issuing Authority▪ Document Portrait | Government (UK eVisa) | 7% |
| 59 | United States | US | PASSIVE | ▪ First Name▪ Last Name▪ Social Security Number (optional)▪ Date Of Birth▪ Zip Code▪ Full Address | ▪ First Name▪ Last Name▪ Social Security Number (optional)▪ Date Of Birth▪ Zip Code▪ Full Address | Telco - TEL1 | 95% |
| Commercial - CMM2 | 90% |
| Proprietary - PRP1 | 90% |
| Commercial - CMM1 | 50% |
| Postal - PST1 | 99% |
| Telco - TEL2 | 90% |
| 100 | United States | US | ACTIVE | ▪ Authentication from CA DMV | ▪ Full Name▪ Gender▪ Date Of Birth▪ City▪ State▪ Subdivision▪ Postal Code▪ Country▪ Full Address▪ Document Portrait | Government | 1% |
| ▪ Authentication from LA Wallet | ▪ First Name▪ Family Name▪ Middle Name▪ Gender▪ Date Of Birth▪ City▪ State▪ Subdivision▪ Postal Code▪ Country▪ Full Address▪ Document Portrait | Government | 1% |
| ▪ Authentication from CLEAR | ▪ First Name▪ Family Name▪ Middle Name▪ Gender▪ Nationality▪ Date Of Birth▪ Driving ID▪ Expiry Date▪ Document Portrait | Government | 13% |
| ▪ Authentication from Samsung Wallet | ▪ First Name▪ Gender▪ Date Of Birth▪ City▪ State▪ Subdivision▪ Document Portrait | Government | 2% |
| ▪ Authentication from New York Mobile ID | ▪ First Name▪ Last Name▪ Full Name▪ Suffix▪ Date Of Birth▪ Gender▪ Address Line 1▪ City▪ Subdivision▪ Postal Code▪ Country▪ Document Type▪ Document Number▪ Issue Date▪ Expiration Date▪ Issuing Country▪ Issuing Subdivision▪ Issuing Authority▪ Document Portrait | Government | 0% |
| 60 | Uruguay | UY | PASSIVE | ▪ Full Name▪ National ID Number▪ Date of Birth | ▪ Full Name▪ National ID Number▪ Date of Birth | Government - GVT2 | 95% |
| 61 | Venezuela | VE | PASSIVE | ▪ Full Name▪ National ID Number | ▪ Full Name▪ National ID Number | Government - GVT2 | 90% |
| 62 | Vietnam | VN | PASSIVE | ▪ Full Name▪ Date Of Birth▪ Phone Number | ▪ Full Name▪ Date Of Birth▪ Phone Number | Consumer - CNS1 | 50% |
| ▪ Plate Number▪ Chassis Number▪ Vehicle Type | ▪ Make▪ Model▪ Chassis Number▪ Engine Number▪ Certificate Number▪ Certificate Expiry▪ Inspection Unit | Government | 50% |
| ▪ Plate Number▪ Inspection Stamp / Certificate Number | ▪ Make▪ Vehicle Type▪ Chassis Number▪ Engine Number▪ Dimensions▪ Kerb Weight▪ Gross Vehicle Weight▪ Seating Capacity▪ Axles / Wheelbase▪ Inspection Date▪ Inspection Centre▪ Certificate Number▪ Certificate Expiry▪ Road Fee Paid Date▪ Road Fee Receipt No.▪ Road Fee Paid Through | Government | |
| 63 | Zimbabwe | ZW | PASSIVE | ▪ National ID Number | ▪ First Name▪ Last Name▪ National ID Number▪ Date of Birth▪ Gender | Government | 90% |
| ▪ National ID Number | ▪ Full Name▪ Given Name▪ Family Name▪ Sex▪ Document Type▪ ID Number▪ Issuing Country▪ Birth Date | Government | 61% |
| 64 | Ukraine | UA | ACTIVE | ▪ Authentication from Ukraine's Diia state app | ▪ ID code▪ First name▪ Last name▪ Status▪ Country▪ Date Of Birth | Government | 74% |
### Table 2
| | Country Name |
| --- | --- |
| 1 | Afghanistan |
| 2 | Aland Islands |
| 3 | Albania |
| 4 | Algeria |
| 5 | Andorra |
| 6 | Angola |
| 7 | Anguilla |
| 8 | Antigua and Barbuda |
| 9 | Argentina |
| 10 | Armenia |
| 11 | Aruba |
| 12 | Australia |
| 13 | Austria |
| 14 | Azerbaijan |
| 15 | Bahamas |
| 16 | Bahrain |
| 17 | Bangladesh |
| 18 | Barbados |
| 19 | Belarus |
| 20 | Belgium |
| 21 | Belize |
| 22 | Benin |
| 23 | Bermuda |
| 24 | Bhutan |
| 25 | Bolivia |
| 26 | Bonaire |
| 27 | Bosnia and Herzegovina |
| 28 | Botswana |
| 29 | Brazil |
| 30 | Brunei |
| 31 | Bulgaria |
| 32 | Burkina Faso |
| 33 | Burundi |
| 34 | Cambodia |
| 35 | Cameroon |
| 36 | Canada |
| 37 | Cayman Islands |
| 38 | Central African Republic |
| 39 | Chad |
| 40 | Channel Islands |
| 41 | Chile |
| 42 | China |
| 43 | Christmas Island |
| 44 | Colombia |
| 45 | Comoros |
| 46 | Congo |
| 47 | Cook Islands |
| 48 | Costa Rica |
| 49 | Côte d'Ivoire |
| 50 | Croatia |
| 51 | Cuba |
| 52 | Curaçao |
| 53 | Cyprus |
| 54 | Czech Republic |
| 55 | Democratic Republic of the Congo |
| 56 | Denmark |
| 57 | Dominica |
| 58 | Dominican Republic |
| 59 | East Timor |
| 60 | Ecuador |
| 61 | Egypt |
| 62 | Equatorial Guinea |
| 63 | Eritrea |
| 64 | Estonia |
| 65 | Ethiopia |
| 66 | Falkland Islands |
| 67 | Faroe Islands |
| 68 | Fiji Islands |
| 69 | Finland |
| 70 | France |
| 71 | French Guiana |
| 72 | Gabon |
| 73 | Gambia |
| 74 | Georgia |
| 75 | Germany |
| 76 | Ghana |
| 77 | Gibraltar |
| 78 | Greece |
| 79 | Greenland |
| 80 | Grenada |
| 81 | Guadeloupe |
| 82 | Guatemala |
| 83 | Guernsey |
| 84 | Guernsey and Alderney |
| 85 | Guinea |
| 86 | Guinea-Bissau |
| 87 | Guyana |
| 88 | Haiti |
| 89 | Honduras |
| 90 | Hong Kong |
| 91 | Hungary |
| 92 | Iceland |
| 93 | India |
| 94 | Indonesia |
| 95 | Iran |
| 96 | Iraq |
| 97 | Ireland |
| 98 | Isle of Man |
| 99 | Israel |
| 100 | Italy |
| 101 | Jamaica |
| 102 | Japan |
| 103 | Jersey |
| 104 | Jordan |
| 105 | Kazakhstan |
| 106 | Kenya |
| 107 | Kiribati |
| 108 | Kosovo |
| 109 | Kuwait |
| 110 | Kyrgyzstan |
| 111 | Laos |
| 112 | Latvia |
| 113 | Lebanon |
| 114 | Lesotho |
| 115 | Liberia |
| 116 | Liechtenstein |
| 117 | Lithuania |
| 118 | Luxembourg |
| 119 | Macau |
| 120 | Madagascar |
| 121 | Malawi |
| 122 | Malaysia |
| 123 | Maldives |
| 124 | Mali |
| 125 | Malta |
| 126 | Marshall Islands |
| 127 | Martinique |
| 128 | Mauritius |
| 129 | Mayotte |
| 130 | Mexico |
| 131 | Micronesia |
| 132 | Moldova |
| 133 | Monaco |
| 134 | Mongolia |
| 135 | Montenegro |
| 136 | Morocco |
| 137 | Mozambique |
| 138 | Myanmar |
| 139 | Namibia |
| 140 | Nepal |
| 141 | Netherlands |
| 142 | New Zealand |
| 143 | Nicaragua |
| 144 | Niger |
| 145 | Nigeria |
| 146 | Niue |
| 147 | North Korea |
| 148 | North Macedonia |
| 149 | Northern Mariana Islands |
| 150 | Norway |
| 151 | Oman |
| 152 | Pakistan |
| 153 | Panama |
| 154 | Papua New Guinea |
| 155 | Paraguay |
| 156 | Peru |
| 157 | Philippines |
| 158 | Poland |
| 159 | Portugal |
| 160 | Puerto Rico |
| 161 | Qatar |
| 162 | Réunion |
| 163 | Romania |
| 164 | Russia |
| 165 | Rwanda |
| 166 | Saint Barthélemy |
| 167 | Saint Helena |
| 168 | Saint Kitts and Nevis |
| 169 | Saint Lucia |
| 170 | Saint Martin (French part) |
| 171 | Saint Pierre and Miquelon |
| 172 | Saint Vincent and the Grenadines |
| 173 | Samoa |
| 174 | San Marino |
| 175 | Sao Tomé and Príncipe |
| 176 | Saudi Arabia |
| 177 | Senegal |
| 178 | Serbia |
| 179 | Seychelles |
| 180 | Sierra Leone |
| 181 | Singapore |
| 182 | Sint Maarten |
| 183 | Slovakia |
| 184 | Slovenia |
| 185 | Solomon Islands |
| 186 | Somalia |
| 187 | South Africa |
| 188 | South Korea |
| 189 | South Sudan |
| 190 | Spain |
| 191 | Sri Lanka |
| 192 | St Eustatius and Saba |
| 193 | Sudan |
| 194 | Suriname |
| 195 | Svalbard and Jan Mayen Island |
| 196 | Swaziland |
| 197 | Sweden |
| 198 | Switzerland |
| 199 | Taiwan |
| 200 | Tajikistan |
| 201 | Tanzania |
| 202 | Thailand |
| 203 | Togo |
| 204 | Tonga |
| 205 | Trinidad and Tobago |
| 206 | Tunisia |
| 207 | Turkey |
| 208 | Turkmenistan |
| 209 | Turks and Caicos Islands |
| 210 | Uganda |
| 211 | Ukraine |
| 212 | United Arab Emirates |
| 213 | United Kingdom |
| 214 | Uruguay |
| 215 | Uzbekistan |
| 216 | Vanuatu |
| 217 | Venezuela |
| 218 | Vietnam |
| 219 | Virgin Island (US) |
| 220 | Virgin Islands (British) |
| 221 | Yemen |
| 222 | Zambia |
| 223 | Zimbabwe |
### Table 3
| | States of US |
| --- | --- |
| 1 | united_states.alabama |
| 2 | united_states.alaska |
| 3 | united_states.arizona |
| 4 | united_states.arkansas |
| 5 | united_states.california |
| 6 | united_states.colorado |
| 7 | united_states.connecticut |
| 8 | united_states.delaware |
| 9 | united_states.district_of_columbia |
| 10 | united_states.florida |
| 11 | united_states.georgia |
| 12 | united_states.hawaii |
| 13 | united_states.idaho |
| 14 | united_states.illinois |
| 15 | united_states.indiana |
| 16 | united_states.iowa |
| 17 | united_states.kansas |
| 18 | united_states.kentucky |
| 19 | united_states.louisiana |
| 20 | united_states.maine |
| 21 | united_states.maryland |
| 22 | united_states.massachusetts |
| 23 | united_states.michigan |
| 24 | united_states.minnesota |
| 25 | united_states.mississippi |
| 26 | united_states.missouri |
| 27 | united_states.montana |
| 28 | united_states.nebraska |
| 29 | united_states.nevada |
| 30 | united_states.new_hampshire |
| 31 | united_states.new_jersey |
| 32 | united_states.new_mexico |
| 33 | united_states.new_york |
| 34 | united_states.north_carolina |
| 35 | united_states.north_dakota |
| 36 | united_states.ohio |
| 37 | united_states.oklahoma |
| 38 | united_states.oregon |
| 39 | united_states.pennsylvania |
| 40 | united_states.rhode_island |
| 41 | united_states.south_carolina |
| 42 | united_states.south_dakota |
| 43 | united_states.tennessee |
| 44 | united_states.texas |
| 45 | united_states.utah |
| 46 | united_states.vermont |
| 47 | united_states.virginia |
| 48 | united_states.washington |
| 49 | united_states.west_virginia |
| 50 | united_states.wisconsin |
| 51 | united_states.wyoming |
### Table 4
| | Jurisdiction Name | Code |
| --- | --- | --- |
| 1 | Abu Dhabi (UAE) | ae_az |
| 2 | Alabama (US) | us_al |
| 3 | Alaska (US) | us_ak |
| 4 | Albania | al |
| 5 | Arizona (US) | us_az |
| 6 | Arkansas (US) | us_ar |
| 7 | Aruba | aw |
| 8 | Australia | au |
| 9 | Bahamas | bs |
| 10 | Bahrain | bh |
| 11 | Bangladesh | bd |
| 12 | Barbados | bb |
| 13 | Belarus | by |
| 14 | Belgium | be |
| 15 | Belize | bz |
| 16 | Bermuda | bm |
| 17 | Bolivia | bo |
| 18 | Brazil | br |
| 19 | Bulgaria | bg |
| 20 | California (US) | us_ca |
| 21 | Cambodia | kh |
| 22 | Canada | ca |
| 23 | Colorado (US) | us_co |
| 24 | Connecticut (US) | us_ct |
| 25 | Croatia | hr |
| 26 | Curaçao | cw |
| 27 | Cyprus | cy |
| 28 | Delaware (US) | us_de |
| 29 | Denmark | dk |
| 30 | District of Columbia (US) | us_dc |
| 31 | Dominican Republic | do |
| 32 | Dubai (UAE) | ae_du |
| 33 | Finland | fi |
| 34 | Florida (US) | us_fl |
| 35 | France | fr |
| 36 | French Guiana | gf |
| 37 | Georgia (US) | us_ga |
| 38 | Germany | de |
| 39 | Gibraltar | gi |
| 40 | Greece | gr |
| 41 | Greenland | gl |
| 42 | Guadeloupe | gp |
| 43 | Guernsey | gg |
| 44 | Hawaii (US) | us_hi |
| 45 | Hong Kong | hk |
| 46 | Iceland | is |
| 47 | Idaho (US) | us_id |
| 48 | India | in |
| 49 | Indiana (US) | us_in |
| 50 | Iowa (US) | us_ia |
| 51 | Iran | ir |
| 52 | Ireland | ie |
| 53 | Isle of Man | im |
| 54 | Israel | il |
| 55 | Jamaica | jm |
| 56 | Japan | jp |
| 57 | Jersey | je |
| 58 | Kansas (US) | us_ks |
| 59 | Kentucky (US) | us_ky |
| 60 | Latvia | lv |
| 61 | Liechtenstein | li |
| 62 | Louisiana (US) | us_la |
| 63 | Luxembourg | lu |
| 64 | Maine (US) | us_me |
| 65 | Malaysia | my |
| 66 | Malta | mt |
| 67 | Martinique | mq |
| 68 | Maryland (US) | us_md |
| 69 | Massachusetts (US) | us_ma |
| 70 | Mauritius | mu |
| 71 | Mayotte | yt |
| 72 | Mexico | mx |
| 73 | Michigan (US) | us_mi |
| 74 | Minnesota (US) | us_mn |
| 75 | Mississippi (US) | us_ms |
| 76 | Missouri (US) | us_mo |
| 77 | Moldova | md |
| 78 | Montana (US) | us_mt |
| 79 | Montenegro | me |
| 80 | Myanmar | mm |
| 81 | Nebraska (US) | us_ne |
| 82 | Netherlands | nl |
| 83 | Nevada (US) | us_nv |
| 84 | New Brunswick (Canada) | ca_nb |
| 85 | New Hampshire (US) | us_nh |
| 86 | New Jersey (US) | us_nj |
| 87 | New Mexico (US) | us_nm |
| 88 | New York (US) | us_ny |
| 89 | New Zealand | nz |
| 90 | Newfoundland and Labrador (Canada) | ca_nl |
| 91 | North Carolina (US) | us_nc |
| 92 | North Dakota | us_nd |
| 93 | Norway | no |
| 94 | Nova Scotia (Canada) | ca_ns |
| 95 | Ohio (US) | us_oh |
| 96 | Oklahoma (US) | us_ok |
| 97 | Oregon (US) | us_or |
| 98 | Pakistan | pk |
| 99 | Panama | pa |
| 100 | Pennsylvania (US) | us_pa |
| 101 | Poland | pl |
| 102 | Prince Edward Island (Canada) | ca_pe |
| 103 | Puerto Rico | pr |
| 104 | Quebec (Canada) | ca_qc |
| 105 | Rhode Island (US) | us_ri |
| 106 | Romania | ro |
| 107 | Rwanda | rw |
| 108 | Réunion | re |
| 109 | Saint Barthélemy | bl |
| 110 | Saint Martin (French part) | mf |
| 111 | Saint Pierre and Miquelon | pm |
| 112 | Singapore | sg |
| 113 | Slovakia | sk |
| 114 | Slovenia | si |
| 115 | South Africa | za |
| 116 | South Carolina (US) | us_sc |
| 117 | South Dakota (US) | us_sd |
| 118 | Spain | es |
| 119 | Sweden | se |
| 120 | Switzerland | ch |
| 121 | Tajikistan | tj |
| 122 | Tanzania | tz |
| 123 | Tennessee (US) | us_tn |
| 124 | Texas | us_tx |
| 125 | Thailand | th |
| 126 | Tonga | to |
| 127 | Tunisia | tn |
| 128 | Uganda | ug |
| 129 | Ukraine | ua |
| 130 | United Kingdom | gb |
| 131 | Utah (US) | us_ut |
| 132 | Vanuatu | vu |
| 133 | Vermont (US) | us_vt |
| 134 | Viet Nam | vn |
| 135 | Virginia (US) | us_va |
| 136 | Washington (US) | us_wa |
| 137 | West Virginia (US) | us_wv |
| 138 | Wisconsin (US) | us_wi |
| 139 | Wyoming (US) | us_wy |
### Table 5
| ISO Code | KYB Country State |
| --- | --- |
| AF | afghanistan |
| AX | aland_island |
| AD | andorra |
| AO | angola |
| AI | anguilla |
| AG | antigua_and_barbuda |
| AR | argentina |
| AM | armenia |
| AW | aruba |
| AU | australia |
| BH | bahrain |
| BD | bangladesh |
| BB | barbados |
| BZ | belize |
| BJ | benin |
| BT | bhutan |
| BO | bolivia |
| BW | botswana |
| KH | cambodia |
| CL | chile |
| CO | colombia |
| CK | cook_islands |
| CW | curaçao |
| CY | cyprus |
| DK | denmark |
| DM | dominica |
| EC | ecuador |
| EG | egypt |
| FK | falkland_islands |
| FO | faroe_islands |
| FJ | fiji_islands |
| FI | finland |
| FR | france |
| DE | germany |
| GI | gibraltar |
| GR | greece |
| GL | greenland |
| GG | guernsey_and_alderney |
| HK | hong_kong |
| IS | iceland |
| IN | india |
| ID | indonesia |
| IR | iran |
| IE | ireland |
| IL | israel |
| IT | italy |
| JM | jamaica |
| JP | japan |
| JE | jersey |
| JO | jordan |
| KZ | kazakhstan |
| XK | kosovo |
| KW | kuwait |
| KG | kyrgyzstan |
| LA | laos |
| LV | latvia |
| LS | lesotho |
| LI | liechtenstein |
| LT | lithuania |
| MG | madagascar |
| MY | malaysia |
| MV | maldives |
| MT | malta |
| IM | isle_of_man |
| MH | marshall_islands |
| MU | mauritius |
| MX | mexico |
| MC | monaco |
| MM | myanmar |
| NA | namibia |
| NP | nepal |
| NZ | new_zealand |
| NG | nigeria |
| NU | niue |
| NO | norway |
| OM | oman |
| PK | pakistan |
| PA | panama |
| PG | papua_new_guinea |
| PY | paraguay |
| PE | peru |
| PL | poland |
| PT | portugal |
| QA | qatar |
| RU | russia |
| PM | saint_pierre_and_miquelon |
| SA | saudi_arabia |
| SC | seychelles |
| SG | singapore |
| SK | slovakia |
| SI | slovenia |
| SB | solomon_island |
| ZA | south_africa |
| KR | south_korea |
| ES | spain |
| LK | sri_lanka |
| SE | sweden |
| CH | switzerland |
| TW | taiwan |
| TZ | tanzania |
| BS | bahamas |
| TT | trinidad_and_tobago |
| TR | turkey |
| UG | uganda |
| UA | ukraine |
| AE | united_arab_emirates |
| GB | united_kingdom |
| UY | uruguay |
| UZ | uzbekistan |
| ZM | zambia |
| EE | estonia |
### Table 6
| No. | Country | Code |
| --- | --- | --- |
| 1 | Afghanistan | AF |
| 2 | Albania | AL |
| 3 | Algeria | DZ |
| 4 | American Samoa | AS |
| 5 | Andorra | AD |
| 6 | Angola | AO |
| 7 | Anguilla | AI |
| 8 | Antigua and Barbuda | AG |
| 9 | Argentina | AR |
| 10 | Armenia | AM |
| 11 | Aruba | AW |
| 12 | Australia | AU |
| 13 | Austria | AT |
| 14 | Azerbaijan | AZ |
| 15 | Bahrain | BH |
| 16 | Bangladesh | BD |
| 17 | Barbados | BB |
| 18 | Belarus | BY |
| 19 | Belgium | BE |
| 20 | Belize | BZ |
| 21 | Benin | BJ |
| 22 | Bermuda | BM |
| 23 | Bhutan | BT |
| 24 | Bolivia | BO |
| 25 | Bosnia and Herzegovina | BA |
| 26 | Botswana | BW |
| 27 | Brazil | BR |
| 28 | British Virgin Islands | VG |
| 29 | Brunei | BN |
| 30 | Bulgaria | BG |
| 31 | Burkina Faso | BF |
| 32 | Burundi | BI |
| 33 | Cambodia | KH |
| 34 | Cameroon | CM |
| 35 | Canada | CA |
| 36 | Cape Verde | CV |
| 37 | Caribbean Netherlands | BQ |
| 38 | Cayman Islands | KY |
| 39 | Central African Republic | CF |
| 40 | Chad | TD |
| 41 | Channel Islands | JE |
| 42 | Chile | CL |
| 43 | China | CN |
| 44 | Cocos (Keeling) Islands | CC |
| 45 | Colombia | CO |
| 46 | Comoros | KM |
| 47 | Congo | CG |
| 48 | Cook Islands | CK |
| 49 | Costa Rica | CR |
| 50 | Cote D'Ivoire (Ivory Coast) | CI |
| 51 | Croatia | HR |
| 52 | Cuba | CU |
| 53 | Curacao | CW |
| 54 | Cyprus | CY |
| 55 | Czech Republic | CZ |
| 56 | Democratic Republic of the Congo | CD |
| 57 | Denmark | DK |
| 58 | Djibouti | DJ |
| 59 | Dominica | DM |
| 60 | Dominican Republic | DO |
| 61 | East Timor | TL |
| 62 | Ecuador | EC |
| 63 | Egypt | EG |
| 64 | El Salvador | SV |
| 65 | Equatorial Guinea | GQ |
| 66 | Eritrea | ER |
| 67 | Estonia | EE |
| 68 | Eswatini | SZ |
| 69 | Ethiopia | ET |
| 70 | Falkland Islands (Islas Malvinas) | FK |
| 71 | Faroe Islands | FO |
| 72 | Fiji | FJ |
| 73 | Finland | FI |
| 74 | France | FR |
| 75 | French Guiana | GF |
| 76 | French Polynesia | PF |
| 77 | Gabon | GA |
| 78 | Gambia | GM |
| 79 | Georgia | GE |
| 80 | Germany | DE |
| 81 | Ghana | GH |
| 82 | Gibraltar | GI |
| 83 | Greece | GR |
| 84 | Greenland | GL |
| 85 | Grenada | GD |
| 86 | Guadeloupe | GP |
| 87 | Guam | GU |
| 88 | Guatemala | GT |
| 89 | Guinea | GN |
| 90 | Guinea-Bissau | GW |
| 91 | Guyana | GY |
| 92 | Haiti | HT |
| 93 | Honduras | HN |
| 94 | Hong Kong | HK |
| 95 | Hungary | HU |
| 96 | Iceland | IS |
| 97 | India | IN |
| 98 | Indonesia | ID |
| 99 | Iran | IR |
| 100 | Iraq | IQ |
| 101 | Ireland | IE |
| 102 | Isle of Man | IM |
| 103 | Israel | IL |
| 104 | Italy | IT |
| 105 | Jamaica | JM |
| 106 | Japan | JP |
| 107 | Jordan | JO |
| 108 | Kazakhstan | KZ |
| 109 | Kenya | KE |
| 110 | Kiribati | KI |
| 111 | Kosovo | XK |
| 112 | Kuwait | KW |
| 113 | Kyrgyzstan | KG |
| 114 | Laos | LA |
| 115 | Latvia | LV |
| 116 | Lebanon | LB |
| 117 | Lesotho | LS |
| 118 | Liberia | LR |
| 119 | Libya | LY |
| 120 | Liechtenstein | LI |
| 121 | Lithuania | LT |
| 122 | Luxembourg | LU |
| 123 | Macau | MO |
| 124 | Macedonia | MK |
| 125 | Madagascar | MG |
| 126 | Malawi | MW |
| 127 | Malaysia | MY |
| 128 | Maldives | MV |
| 129 | Mali | ML |
| 130 | Malta | MT |
| 131 | Marshall Islands | MH |
| 132 | Martinique | MQ |
| 133 | Mauritania | MR |
| 134 | Mauritius | MU |
| 135 | Mayotte | YT |
| 136 | Mexico | MX |
| 137 | Micronesia | FM |
| 138 | Moldova | MD |
| 139 | Monaco | MC |
| 140 | Mongolia | MN |
| 141 | Montenegro | ME |
| 142 | Montserrat | MS |
| 143 | Morocco | MA |
| 144 | Mozambique | MZ |
| 145 | Myanmar (Burma) | MM |
| 146 | Namibia | NA |
| 147 | Nauru | NR |
| 148 | Nepal | NP |
| 149 | Netherlands | NL |
| 150 | New Caledonia | NC |
| 151 | New Zealand | NZ |
| 152 | Nicaragua | NI |
| 153 | Niger | NE |
| 154 | Nigeria | NG |
| 155 | North Korea | KP |
| 156 | Northern Mariana Islands | MP |
| 157 | Norway | NO |
| 158 | Oman | OM |
| 159 | Pakistan | PK |
| 160 | Palau | PW |
| 161 | Palestine | PS |
| 162 | Panama | PA |
| 163 | Papua New Guinea | PG |
| 164 | Paraguay | PY |
| 165 | Peru | PE |
| 166 | Philippines | PH |
| 167 | Poland | PL |
| 168 | Portugal | PT |
| 169 | Puerto Rico | PR |
| 170 | Qatar | QA |
| 171 | Reunion | RE |
| 172 | Romania | RO |
| 173 | Russia | RU |
| 174 | Rwanda | RW |
| 175 | Saint Kitts and Nevis | KN |
| 176 | Saint Lucia | LC |
| 177 | Saint Vincent and the Grenadines | VC |
| 178 | Samoa | WS |
| 179 | San Marino | SM |
| 180 | Sao Tome and Principe | ST |
| 181 | Saudi Arabia | SA |
| 182 | Senegal | SN |
| 183 | Serbia | RS |
| 184 | Seychelles | SC |
| 185 | Sierra Leone | SL |
| 186 | Singapore | SG |
| 187 | Slovakia | SK |
| 188 | Slovenia | SI |
| 189 | Solomon Islands | SB |
| 190 | Somalia | SO |
| 191 | South Africa | ZA |
| 192 | South Korea | KR |
| 193 | South Sudan | SS |
| 194 | Spain | ES |
| 195 | Sri Lanka | LK |
| 196 | Sudan | SD |
| 197 | Suriname | SR |
| 198 | Sweden | SE |
| 199 | Switzerland | CH |
| 200 | Syria | SY |
| 201 | Taiwan | TW |
| 202 | Tajikistan | TJ |
| 203 | Tanzania | TZ |
| 204 | Thailand | TH |
| 205 | The Bahamas | BS |
| 206 | The Gambia | GM |
| 207 | Togo | TG |
| 208 | Tonga | TO |
| 209 | Trinidad and Tobago | TT |
| 210 | Tunisia | TN |
| 211 | Turkey | TR |
| 212 | Turkmenistan | TM |
| 213 | Turks and Caicos Islands | TC |
| 214 | Tuvalu | TV |
| 215 | Uganda | UG |
| 216 | Ukraine | UA |
| 217 | United Arab Emirates | AE |
| 218 | United Kingdom | GB |
| 219 | United States | US |
| 220 | Uruguay | UY |
| 221 | Uzbekistan | UZ |
| 222 | Vanuatu | VU |
| 223 | Vatican City | VA |
| 224 | Venezuela | VE |
| 225 | Vietnam | VN |
| 226 | Wallis and Futuna | WF |
| 227 | Yemen | YE |
| 228 | Zambia | ZM |
| 229 | Zimbabwe | ZW |
### Table 7
| Country Name | Document Type |
| --- | --- |
| Austria | ID CardPassport |
| Belgium | ID CardPassport |
| Bulgaria | ID CardPassport |
| Croatia | ID CardPassport |
| Cyprus | ID CardPassport |
| Czech Republic | ID CardPassport |
| Denmark | ID CardPassport |
| Estonia | ID CardPassport |
| Finland | ID CardPassport |
| France | ID Card |
| Germany | PassportID Card |
| Greece | ID CardPassport |
| Hungary | ID CardPassport |
| Italy | ID Card |
| Ireland | ID CardPassport |
| Luxembourg | ID CardPassport |
| Lithuania | ID CardPassport |
| Latvia | ID CardPassport |
| Malta | ID CardPassport |
| Netherlands | ID CardPassport |
| Sweden | ID CardPassport |
| Spain | ID CardPassport |
| Slovenia | ID CardPassport |
| Slovakia | ID CardPassport |
| Romania | ID CardPassport |
| Portugal | ID CardPassport |
| Poland | ID CardPassport |
### Table 8
| Country Name | Document Type |
| --- | --- |
| Austria | PassportID Card |
| Belgium | PassportID Card |
| Bulgaria | PassportID Card |
| Croatia | PassportID Card |
| Cyprus | PassportID Card |
| Czech Republic | ID CardPassport |
| Denmark | Passport |
| Estonia | ID CardPassport |
| Finland | ID CardPassport |
| France | ID CardPassport |
| Germany | ID CardPassport |
| Greece | ID CardPassport |
| Hungary | ID CardPassport |
| Ireland | ID CardPassport |
| Italy | ID CardPassport |
| Latvia | ID CardPassport |
| Lithuania | ID CardPassport |
| Luxembourg | ID CardPassport |
| Malta | ID CardPassport |
| Netherlands | ID CardPassport |
| Poland | ID CardPassport |
| Portugal | ID CardPassport |
| Romania | ID CardPassport |
| Slovakia | ID CardPassport |
| Slovenia | ID CardPassport |
| Spain | ID CardPassport |
| Sweden | ID CardPassport |
### Table 9
| Country | eID Scheme | Level Of Assurance |
| --- | --- | --- |
| Austria | ID Austria | High |
| Bulgaria | Evrotrust eID | Substantial & High |
| Czech Republic | MojeID | Substantial & High |
| Denmark | MitID | Substantial & High |
| Estonia | iD KAART | High |
| France | France Identité | High |
| Italy | SPID | Substantial & High |
| Latvia | eParaksts Smart Card | Substantial & High |
| Norway | BankID Norway | High |
| Sweden | Swedish BankID | Substantial & High |
## Know Your Business (KYB)
### Table 1
| | Country Name |
| --- | --- |
| 1 | Afghanistan |
| 2 | Aland Islands |
| 3 | Albania |
| 4 | Algeria |
| 5 | Andorra |
| 6 | Angola |
| 7 | Anguilla |
| 8 | Antigua and Barbuda |
| 9 | Argentina |
| 10 | Armenia |
| 11 | Aruba |
| 12 | Australia |
| 13 | Austria |
| 14 | Azerbaijan |
| 15 | Bahamas |
| 16 | Bahrain |
| 17 | Bangladesh |
| 18 | Barbados |
| 19 | Belarus |
| 20 | Belgium |
| 21 | Belize |
| 22 | Benin |
| 23 | Bermuda |
| 24 | Bhutan |
| 25 | Bolivia |
| 26 | Bonaire |
| 27 | Bosnia and Herzegovina |
| 28 | Botswana |
| 29 | Brazil |
| 30 | Brunei |
| 31 | Bulgaria |
| 32 | Burkina Faso |
| 33 | Burundi |
| 34 | Cambodia |
| 35 | Cameroon |
| 36 | Canada |
| 37 | Cayman Islands |
| 38 | Central African Republic |
| 39 | Chad |
| 40 | Channel Islands |
| 41 | Chile |
| 42 | China |
| 43 | Christmas Island |
| 44 | Colombia |
| 45 | Comoros |
| 46 | Congo |
| 47 | Cook Islands |
| 48 | Costa Rica |
| 49 | Côte d'Ivoire |
| 50 | Croatia |
| 51 | Cuba |
| 52 | Curaçao |
| 53 | Cyprus |
| 54 | Czech Republic |
| 55 | Democratic Republic of the Congo |
| 56 | Denmark |
| 57 | Dominica |
| 58 | Dominican Republic |
| 59 | East Timor |
| 60 | Ecuador |
| 61 | Egypt |
| 62 | Equatorial Guinea |
| 63 | Eritrea |
| 64 | Estonia |
| 65 | Ethiopia |
| 66 | Falkland Islands |
| 67 | Faroe Islands |
| 68 | Fiji Islands |
| 69 | Finland |
| 70 | France |
| 71 | French Guiana |
| 72 | Gabon |
| 73 | Gambia |
| 74 | Georgia |
| 75 | Germany |
| 76 | Ghana |
| 77 | Gibraltar |
| 78 | Greece |
| 79 | Greenland |
| 80 | Grenada |
| 81 | Guadeloupe |
| 82 | Guatemala |
| 83 | Guernsey |
| 84 | Guernsey and Alderney |
| 85 | Guinea |
| 86 | Guinea-Bissau |
| 87 | Guyana |
| 88 | Haiti |
| 89 | Honduras |
| 90 | Hong Kong |
| 91 | Hungary |
| 92 | Iceland |
| 93 | India |
| 94 | Indonesia |
| 95 | Iran |
| 96 | Iraq |
| 97 | Ireland |
| 98 | Isle of Man |
| 99 | Israel |
| 100 | Italy |
| 101 | Jamaica |
| 102 | Japan |
| 103 | Jersey |
| 104 | Jordan |
| 105 | Kazakhstan |
| 106 | Kenya |
| 107 | Kiribati |
| 108 | Kosovo |
| 109 | Kuwait |
| 110 | Kyrgyzstan |
| 111 | Laos |
| 112 | Latvia |
| 113 | Lebanon |
| 114 | Lesotho |
| 115 | Liberia |
| 116 | Liechtenstein |
| 117 | Lithuania |
| 118 | Luxembourg |
| 119 | Macau |
| 120 | Madagascar |
| 121 | Malawi |
| 122 | Malaysia |
| 123 | Maldives |
| 124 | Mali |
| 125 | Malta |
| 126 | Marshall Islands |
| 127 | Martinique |
| 128 | Mauritius |
| 129 | Mayotte |
| 130 | Mexico |
| 131 | Micronesia |
| 132 | Moldova |
| 133 | Monaco |
| 134 | Mongolia |
| 135 | Montenegro |
| 136 | Morocco |
| 137 | Mozambique |
| 138 | Myanmar |
| 139 | Namibia |
| 140 | Nepal |
| 141 | Netherlands |
| 142 | New Zealand |
| 143 | Nicaragua |
| 144 | Niger |
| 145 | Nigeria |
| 146 | Niue |
| 147 | North Korea |
| 148 | North Macedonia |
| 149 | Northern Mariana Islands |
| 150 | Norway |
| 151 | Oman |
| 152 | Pakistan |
| 153 | Panama |
| 154 | Papua New Guinea |
| 155 | Paraguay |
| 156 | Peru |
| 157 | Philippines |
| 158 | Poland |
| 159 | Portugal |
| 160 | Puerto Rico |
| 161 | Qatar |
| 162 | Réunion |
| 163 | Romania |
| 164 | Russia |
| 165 | Rwanda |
| 166 | Saint Barthélemy |
| 167 | Saint Helena |
| 168 | Saint Kitts and Nevis |
| 169 | Saint Lucia |
| 170 | Saint Martin (French part) |
| 171 | Saint Pierre and Miquelon |
| 172 | Saint Vincent and the Grenadines |
| 173 | Samoa |
| 174 | San Marino |
| 175 | Sao Tomé and Príncipe |
| 176 | Saudi Arabia |
| 177 | Senegal |
| 178 | Serbia |
| 179 | Seychelles |
| 180 | Sierra Leone |
| 181 | Singapore |
| 182 | Sint Maarten |
| 183 | Slovakia |
| 184 | Slovenia |
| 185 | Solomon Islands |
| 186 | Somalia |
| 187 | South Africa |
| 188 | South Korea |
| 189 | South Sudan |
| 190 | Spain |
| 191 | Sri Lanka |
| 192 | St Eustatius and Saba |
| 193 | Sudan |
| 194 | Suriname |
| 195 | Svalbard and Jan Mayen Island |
| 196 | Swaziland |
| 197 | Sweden |
| 198 | Switzerland |
| 199 | Taiwan |
| 200 | Tajikistan |
| 201 | Tanzania |
| 202 | Thailand |
| 203 | Togo |
| 204 | Tonga |
| 205 | Trinidad and Tobago |
| 206 | Tunisia |
| 207 | Turkey |
| 208 | Turkmenistan |
| 209 | Turks and Caicos Islands |
| 210 | Uganda |
| 211 | Ukraine |
| 212 | United Arab Emirates |
| 213 | United Kingdom |
| 214 | Uruguay |
| 215 | Uzbekistan |
| 216 | Vanuatu |
| 217 | Venezuela |
| 218 | Vietnam |
| 219 | Virgin Island (US) |
| 220 | Virgin Islands (British) |
| 221 | Yemen |
| 222 | Zambia |
| 223 | Zimbabwe |
### Table 2
| | States of US |
| --- | --- |
| 1 | united_states.alabama |
| 2 | united_states.alaska |
| 3 | united_states.arizona |
| 4 | united_states.arkansas |
| 5 | united_states.california |
| 6 | united_states.colorado |
| 7 | united_states.connecticut |
| 8 | united_states.delaware |
| 9 | united_states.district_of_columbia |
| 10 | united_states.florida |
| 11 | united_states.georgia |
| 12 | united_states.hawaii |
| 13 | united_states.idaho |
| 14 | united_states.illinois |
| 15 | united_states.indiana |
| 16 | united_states.iowa |
| 17 | united_states.kansas |
| 18 | united_states.kentucky |
| 19 | united_states.louisiana |
| 20 | united_states.maine |
| 21 | united_states.maryland |
| 22 | united_states.massachusetts |
| 23 | united_states.michigan |
| 24 | united_states.minnesota |
| 25 | united_states.mississippi |
| 26 | united_states.missouri |
| 27 | united_states.montana |
| 28 | united_states.nebraska |
| 29 | united_states.nevada |
| 30 | united_states.new_hampshire |
| 31 | united_states.new_jersey |
| 32 | united_states.new_mexico |
| 33 | united_states.new_york |
| 34 | united_states.north_carolina |
| 35 | united_states.north_dakota |
| 36 | united_states.ohio |
| 37 | united_states.oklahoma |
| 38 | united_states.oregon |
| 39 | united_states.pennsylvania |
| 40 | united_states.rhode_island |
| 41 | united_states.south_carolina |
| 42 | united_states.south_dakota |
| 43 | united_states.tennessee |
| 44 | united_states.texas |
| 45 | united_states.utah |
| 46 | united_states.vermont |
| 47 | united_states.virginia |
| 48 | united_states.washington |
| 49 | united_states.west_virginia |
| 50 | united_states.wisconsin |
| 51 | united_states.wyoming |
### Table 3
| | Jurisdiction Name | Code |
| --- | --- | --- |
| 1 | Abu Dhabi (UAE) | ae_az |
| 2 | Alabama (US) | us_al |
| 3 | Alaska (US) | us_ak |
| 4 | Albania | al |
| 5 | Arizona (US) | us_az |
| 6 | Arkansas (US) | us_ar |
| 7 | Aruba | aw |
| 8 | Australia | au |
| 9 | Bahamas | bs |
| 10 | Bahrain | bh |
| 11 | Bangladesh | bd |
| 12 | Barbados | bb |
| 13 | Belarus | by |
| 14 | Belgium | be |
| 15 | Belize | bz |
| 16 | Bermuda | bm |
| 17 | Bolivia | bo |
| 18 | Brazil | br |
| 19 | Bulgaria | bg |
| 20 | California (US) | us_ca |
| 21 | Cambodia | kh |
| 22 | Canada | ca |
| 23 | Colorado (US) | us_co |
| 24 | Connecticut (US) | us_ct |
| 25 | Croatia | hr |
| 26 | Curaçao | cw |
| 27 | Cyprus | cy |
| 28 | Delaware (US) | us_de |
| 29 | Denmark | dk |
| 30 | District of Columbia (US) | us_dc |
| 31 | Dominican Republic | do |
| 32 | Dubai (UAE) | ae_du |
| 33 | Finland | fi |
| 34 | Florida (US) | us_fl |
| 35 | France | fr |
| 36 | French Guiana | gf |
| 37 | Georgia (US) | us_ga |
| 38 | Germany | de |
| 39 | Gibraltar | gi |
| 40 | Greece | gr |
| 41 | Greenland | gl |
| 42 | Guadeloupe | gp |
| 43 | Guernsey | gg |
| 44 | Hawaii (US) | us_hi |
| 45 | Hong Kong | hk |
| 46 | Iceland | is |
| 47 | Idaho (US) | us_id |
| 48 | India | in |
| 49 | Indiana (US) | us_in |
| 50 | Iowa (US) | us_ia |
| 51 | Iran | ir |
| 52 | Ireland | ie |
| 53 | Isle of Man | im |
| 54 | Israel | il |
| 55 | Jamaica | jm |
| 56 | Japan | jp |
| 57 | Jersey | je |
| 58 | Kansas (US) | us_ks |
| 59 | Kentucky (US) | us_ky |
| 60 | Latvia | lv |
| 61 | Liechtenstein | li |
| 62 | Louisiana (US) | us_la |
| 63 | Luxembourg | lu |
| 64 | Maine (US) | us_me |
| 65 | Malaysia | my |
| 66 | Malta | mt |
| 67 | Martinique | mq |
| 68 | Maryland (US) | us_md |
| 69 | Massachusetts (US) | us_ma |
| 70 | Mauritius | mu |
| 71 | Mayotte | yt |
| 72 | Mexico | mx |
| 73 | Michigan (US) | us_mi |
| 74 | Minnesota (US) | us_mn |
| 75 | Mississippi (US) | us_ms |
| 76 | Missouri (US) | us_mo |
| 77 | Moldova | md |
| 78 | Montana (US) | us_mt |
| 79 | Montenegro | me |
| 80 | Myanmar | mm |
| 81 | Nebraska (US) | us_ne |
| 82 | Netherlands | nl |
| 83 | Nevada (US) | us_nv |
| 84 | New Brunswick (Canada) | ca_nb |
| 85 | New Hampshire (US) | us_nh |
| 86 | New Jersey (US) | us_nj |
| 87 | New Mexico (US) | us_nm |
| 88 | New York (US) | us_ny |
| 89 | New Zealand | nz |
| 90 | Newfoundland and Labrador (Canada) | ca_nl |
| 91 | North Carolina (US) | us_nc |
| 92 | North Dakota | us_nd |
| 93 | Norway | no |
| 94 | Nova Scotia (Canada) | ca_ns |
| 95 | Ohio (US) | us_oh |
| 96 | Oklahoma (US) | us_ok |
| 97 | Oregon (US) | us_or |
| 98 | Pakistan | pk |
| 99 | Panama | pa |
| 100 | Pennsylvania (US) | us_pa |
| 101 | Poland | pl |
| 102 | Prince Edward Island (Canada) | ca_pe |
| 103 | Puerto Rico | pr |
| 104 | Quebec (Canada) | ca_qc |
| 105 | Rhode Island (US) | us_ri |
| 106 | Romania | ro |
| 107 | Rwanda | rw |
| 108 | Réunion | re |
| 109 | Saint Barthélemy | bl |
| 110 | Saint Martin (French part) | mf |
| 111 | Saint Pierre and Miquelon | pm |
| 112 | Singapore | sg |
| 113 | Slovakia | sk |
| 114 | Slovenia | si |
| 115 | South Africa | za |
| 116 | South Carolina (US) | us_sc |
| 117 | South Dakota (US) | us_sd |
| 118 | Spain | es |
| 119 | Sweden | se |
| 120 | Switzerland | ch |
| 121 | Tajikistan | tj |
| 122 | Tanzania | tz |
| 123 | Tennessee (US) | us_tn |
| 124 | Texas | us_tx |
| 125 | Thailand | th |
| 126 | Tonga | to |
| 127 | Tunisia | tn |
| 128 | Uganda | ug |
| 129 | Ukraine | ua |
| 130 | United Kingdom | gb |
| 131 | Utah (US) | us_ut |
| 132 | Vanuatu | vu |
| 133 | Vermont (US) | us_vt |
| 134 | Viet Nam | vn |
| 135 | Virginia (US) | us_va |
| 136 | Washington (US) | us_wa |
| 137 | West Virginia (US) | us_wv |
| 138 | Wisconsin (US) | us_wi |
| 139 | Wyoming (US) | us_wy |
### Table 4
| ISO Code | KYB Country State |
| --- | --- |
| AF | afghanistan |
| AX | aland_island |
| AD | andorra |
| AO | angola |
| AI | anguilla |
| AG | antigua_and_barbuda |
| AR | argentina |
| AM | armenia |
| AW | aruba |
| AU | australia |
| BH | bahrain |
| BD | bangladesh |
| BB | barbados |
| BZ | belize |
| BJ | benin |
| BT | bhutan |
| BO | bolivia |
| BW | botswana |
| KH | cambodia |
| CL | chile |
| CO | colombia |
| CK | cook_islands |
| CW | curaçao |
| CY | cyprus |
| DK | denmark |
| DM | dominica |
| EC | ecuador |
| EG | egypt |
| FK | falkland_islands |
| FO | faroe_islands |
| FJ | fiji_islands |
| FI | finland |
| FR | france |
| DE | germany |
| GI | gibraltar |
| GR | greece |
| GL | greenland |
| GG | guernsey_and_alderney |
| HK | hong_kong |
| IS | iceland |
| IN | india |
| ID | indonesia |
| IR | iran |
| IE | ireland |
| IL | israel |
| IT | italy |
| JM | jamaica |
| JP | japan |
| JE | jersey |
| JO | jordan |
| KZ | kazakhstan |
| XK | kosovo |
| KW | kuwait |
| KG | kyrgyzstan |
| LA | laos |
| LV | latvia |
| LS | lesotho |
| LI | liechtenstein |
| LT | lithuania |
| MG | madagascar |
| MY | malaysia |
| MV | maldives |
| MT | malta |
| IM | isle_of_man |
| MH | marshall_islands |
| MU | mauritius |
| MX | mexico |
| MC | monaco |
| MM | myanmar |
| NA | namibia |
| NP | nepal |
| NZ | new_zealand |
| NG | nigeria |
| NU | niue |
| NO | norway |
| OM | oman |
| PK | pakistan |
| PA | panama |
| PG | papua_new_guinea |
| PY | paraguay |
| PE | peru |
| PL | poland |
| PT | portugal |
| QA | qatar |
| RU | russia |
| PM | saint_pierre_and_miquelon |
| SA | saudi_arabia |
| SC | seychelles |
| SG | singapore |
| SK | slovakia |
| SI | slovenia |
| SB | solomon_island |
| ZA | south_africa |
| KR | south_korea |
| ES | spain |
| LK | sri_lanka |
| SE | sweden |
| CH | switzerland |
| TW | taiwan |
| TZ | tanzania |
| BS | bahamas |
| TT | trinidad_and_tobago |
| TR | turkey |
| UG | uganda |
| UA | ukraine |
| AE | united_arab_emirates |
| GB | united_kingdom |
| UY | uruguay |
| UZ | uzbekistan |
| ZM | zambia |
| EE | estonia |
## AML for Users | AML for Businesses
| No. | Country | Code |
| --- | --- | --- |
| 1 | Afghanistan | AF |
| 2 | Albania | AL |
| 3 | Algeria | DZ |
| 4 | American Samoa | AS |
| 5 | Andorra | AD |
| 6 | Angola | AO |
| 7 | Anguilla | AI |
| 8 | Antigua and Barbuda | AG |
| 9 | Argentina | AR |
| 10 | Armenia | AM |
| 11 | Aruba | AW |
| 12 | Australia | AU |
| 13 | Austria | AT |
| 14 | Azerbaijan | AZ |
| 15 | Bahrain | BH |
| 16 | Bangladesh | BD |
| 17 | Barbados | BB |
| 18 | Belarus | BY |
| 19 | Belgium | BE |
| 20 | Belize | BZ |
| 21 | Benin | BJ |
| 22 | Bermuda | BM |
| 23 | Bhutan | BT |
| 24 | Bolivia | BO |
| 25 | Bosnia and Herzegovina | BA |
| 26 | Botswana | BW |
| 27 | Brazil | BR |
| 28 | British Virgin Islands | VG |
| 29 | Brunei | BN |
| 30 | Bulgaria | BG |
| 31 | Burkina Faso | BF |
| 32 | Burundi | BI |
| 33 | Cambodia | KH |
| 34 | Cameroon | CM |
| 35 | Canada | CA |
| 36 | Cape Verde | CV |
| 37 | Caribbean Netherlands | BQ |
| 38 | Cayman Islands | KY |
| 39 | Central African Republic | CF |
| 40 | Chad | TD |
| 41 | Channel Islands | JE |
| 42 | Chile | CL |
| 43 | China | CN |
| 44 | Cocos (Keeling) Islands | CC |
| 45 | Colombia | CO |
| 46 | Comoros | KM |
| 47 | Congo | CG |
| 48 | Cook Islands | CK |
| 49 | Costa Rica | CR |
| 50 | Cote D'Ivoire (Ivory Coast) | CI |
| 51 | Croatia | HR |
| 52 | Cuba | CU |
| 53 | Curacao | CW |
| 54 | Cyprus | CY |
| 55 | Czech Republic | CZ |
| 56 | Democratic Republic of the Congo | CD |
| 57 | Denmark | DK |
| 58 | Djibouti | DJ |
| 59 | Dominica | DM |
| 60 | Dominican Republic | DO |
| 61 | East Timor | TL |
| 62 | Ecuador | EC |
| 63 | Egypt | EG |
| 64 | El Salvador | SV |
| 65 | Equatorial Guinea | GQ |
| 66 | Eritrea | ER |
| 67 | Estonia | EE |
| 68 | Eswatini | SZ |
| 69 | Ethiopia | ET |
| 70 | Falkland Islands (Islas Malvinas) | FK |
| 71 | Faroe Islands | FO |
| 72 | Fiji | FJ |
| 73 | Finland | FI |
| 74 | France | FR |
| 75 | French Guiana | GF |
| 76 | French Polynesia | PF |
| 77 | Gabon | GA |
| 78 | Gambia | GM |
| 79 | Georgia | GE |
| 80 | Germany | DE |
| 81 | Ghana | GH |
| 82 | Gibraltar | GI |
| 83 | Greece | GR |
| 84 | Greenland | GL |
| 85 | Grenada | GD |
| 86 | Guadeloupe | GP |
| 87 | Guam | GU |
| 88 | Guatemala | GT |
| 89 | Guinea | GN |
| 90 | Guinea-Bissau | GW |
| 91 | Guyana | GY |
| 92 | Haiti | HT |
| 93 | Honduras | HN |
| 94 | Hong Kong | HK |
| 95 | Hungary | HU |
| 96 | Iceland | IS |
| 97 | India | IN |
| 98 | Indonesia | ID |
| 99 | Iran | IR |
| 100 | Iraq | IQ |
| 101 | Ireland | IE |
| 102 | Isle of Man | IM |
| 103 | Israel | IL |
| 104 | Italy | IT |
| 105 | Jamaica | JM |
| 106 | Japan | JP |
| 107 | Jordan | JO |
| 108 | Kazakhstan | KZ |
| 109 | Kenya | KE |
| 110 | Kiribati | KI |
| 111 | Kosovo | XK |
| 112 | Kuwait | KW |
| 113 | Kyrgyzstan | KG |
| 114 | Laos | LA |
| 115 | Latvia | LV |
| 116 | Lebanon | LB |
| 117 | Lesotho | LS |
| 118 | Liberia | LR |
| 119 | Libya | LY |
| 120 | Liechtenstein | LI |
| 121 | Lithuania | LT |
| 122 | Luxembourg | LU |
| 123 | Macau | MO |
| 124 | Macedonia | MK |
| 125 | Madagascar | MG |
| 126 | Malawi | MW |
| 127 | Malaysia | MY |
| 128 | Maldives | MV |
| 129 | Mali | ML |
| 130 | Malta | MT |
| 131 | Marshall Islands | MH |
| 132 | Martinique | MQ |
| 133 | Mauritania | MR |
| 134 | Mauritius | MU |
| 135 | Mayotte | YT |
| 136 | Mexico | MX |
| 137 | Micronesia | FM |
| 138 | Moldova | MD |
| 139 | Monaco | MC |
| 140 | Mongolia | MN |
| 141 | Montenegro | ME |
| 142 | Montserrat | MS |
| 143 | Morocco | MA |
| 144 | Mozambique | MZ |
| 145 | Myanmar (Burma) | MM |
| 146 | Namibia | NA |
| 147 | Nauru | NR |
| 148 | Nepal | NP |
| 149 | Netherlands | NL |
| 150 | New Caledonia | NC |
| 151 | New Zealand | NZ |
| 152 | Nicaragua | NI |
| 153 | Niger | NE |
| 154 | Nigeria | NG |
| 155 | North Korea | KP |
| 156 | Northern Mariana Islands | MP |
| 157 | Norway | NO |
| 158 | Oman | OM |
| 159 | Pakistan | PK |
| 160 | Palau | PW |
| 161 | Palestine | PS |
| 162 | Panama | PA |
| 163 | Papua New Guinea | PG |
| 164 | Paraguay | PY |
| 165 | Peru | PE |
| 166 | Philippines | PH |
| 167 | Poland | PL |
| 168 | Portugal | PT |
| 169 | Puerto Rico | PR |
| 170 | Qatar | QA |
| 171 | Reunion | RE |
| 172 | Romania | RO |
| 173 | Russia | RU |
| 174 | Rwanda | RW |
| 175 | Saint Kitts and Nevis | KN |
| 176 | Saint Lucia | LC |
| 177 | Saint Vincent and the Grenadines | VC |
| 178 | Samoa | WS |
| 179 | San Marino | SM |
| 180 | Sao Tome and Principe | ST |
| 181 | Saudi Arabia | SA |
| 182 | Senegal | SN |
| 183 | Serbia | RS |
| 184 | Seychelles | SC |
| 185 | Sierra Leone | SL |
| 186 | Singapore | SG |
| 187 | Slovakia | SK |
| 188 | Slovenia | SI |
| 189 | Solomon Islands | SB |
| 190 | Somalia | SO |
| 191 | South Africa | ZA |
| 192 | South Korea | KR |
| 193 | South Sudan | SS |
| 194 | Spain | ES |
| 195 | Sri Lanka | LK |
| 196 | Sudan | SD |
| 197 | Suriname | SR |
| 198 | Sweden | SE |
| 199 | Switzerland | CH |
| 200 | Syria | SY |
| 201 | Taiwan | TW |
| 202 | Tajikistan | TJ |
| 203 | Tanzania | TZ |
| 204 | Thailand | TH |
| 205 | The Bahamas | BS |
| 206 | The Gambia | GM |
| 207 | Togo | TG |
| 208 | Tonga | TO |
| 209 | Trinidad and Tobago | TT |
| 210 | Tunisia | TN |
| 211 | Turkey | TR |
| 212 | Turkmenistan | TM |
| 213 | Turks and Caicos Islands | TC |
| 214 | Tuvalu | TV |
| 215 | Uganda | UG |
| 216 | Ukraine | UA |
| 217 | United Arab Emirates | AE |
| 218 | United Kingdom | GB |
| 219 | United States | US |
| 220 | Uruguay | UY |
| 221 | Uzbekistan | UZ |
| 222 | Vanuatu | VU |
| 223 | Vatican City | VA |
| 224 | Venezuela | VE |
| 225 | Vietnam | VN |
| 226 | Wallis and Futuna | WF |
| 227 | Yemen | YE |
| 228 | Zambia | ZM |
| 229 | Zimbabwe | ZW |
## Qualified Electronic Signature (QES)
Following are the country-wise coverage of supported document types and eID schemes available through the Identity Verification (IDV) methods within the QES solution.
Following are the country-wise coverage details for supported document types under the Document Verification + Facial Biometrics method within QES.
Following are the country-wise coverage details for supported NFC-enabled document types under the NFC Document Verification + Facial Biometrics method within QES.
Following are the country-wise coverage details for supported eID schemes under the Active eID-Based Verification method within QES.
### Table 1
| Country Name | Document Type |
| --- | --- |
| Austria | ID CardPassport |
| Belgium | ID CardPassport |
| Bulgaria | ID CardPassport |
| Croatia | ID CardPassport |
| Cyprus | ID CardPassport |
| Czech Republic | ID CardPassport |
| Denmark | ID CardPassport |
| Estonia | ID CardPassport |
| Finland | ID CardPassport |
| France | ID Card |
| Germany | PassportID Card |
| Greece | ID CardPassport |
| Hungary | ID CardPassport |
| Italy | ID Card |
| Ireland | ID CardPassport |
| Luxembourg | ID CardPassport |
| Lithuania | ID CardPassport |
| Latvia | ID CardPassport |
| Malta | ID CardPassport |
| Netherlands | ID CardPassport |
| Sweden | ID CardPassport |
| Spain | ID CardPassport |
| Slovenia | ID CardPassport |
| Slovakia | ID CardPassport |
| Romania | ID CardPassport |
| Portugal | ID CardPassport |
| Poland | ID CardPassport |
### Table 2
| Country Name | Document Type |
| --- | --- |
| Austria | PassportID Card |
| Belgium | PassportID Card |
| Bulgaria | PassportID Card |
| Croatia | PassportID Card |
| Cyprus | PassportID Card |
| Czech Republic | ID CardPassport |
| Denmark | Passport |
| Estonia | ID CardPassport |
| Finland | ID CardPassport |
| France | ID CardPassport |
| Germany | ID CardPassport |
| Greece | ID CardPassport |
| Hungary | ID CardPassport |
| Ireland | ID CardPassport |
| Italy | ID CardPassport |
| Latvia | ID CardPassport |
| Lithuania | ID CardPassport |
| Luxembourg | ID CardPassport |
| Malta | ID CardPassport |
| Netherlands | ID CardPassport |
| Poland | ID CardPassport |
| Portugal | ID CardPassport |
| Romania | ID CardPassport |
| Slovakia | ID CardPassport |
| Slovenia | ID CardPassport |
| Spain | ID CardPassport |
| Sweden | ID CardPassport |
### Table 3
| Country | eID Scheme | Level Of Assurance |
| --- | --- | --- |
| Austria | ID Austria | High |
| Bulgaria | Evrotrust eID | Substantial & High |
| Czech Republic | MojeID | Substantial & High |
| Denmark | MitID | Substantial & High |
| Estonia | iD KAART | High |
| France | France Identité | High |
| Italy | SPID | Substantial & High |
| Latvia | eParaksts Smart Card | Substantial & High |
| Norway | BankID Norway | High |
| Sweden | Swedish BankID | Substantial & High |
---
# Documents
Source: https://developers.shuftipro.com/docs/coverage/documents.md
# Supported Documents
Shufti's KYC services offer extensive global coverage, accommodating a wide range of major documents for user verification. This includes not only standard documents like ID cards and driving licenses but also extends to bank statements and more, ensuring robust and inclusive user verification globally.
## Document Verification
Following documents are supported in Document Verification:
| | Supported Types |
| --- | -------------------- |
| 1 | passport |
| 2 | id_card |
| 3 | driving_license |
| 4 | credit_or_debit_card |
## Address Verification & Validation
Following documents are supported in Address Verification & Validation:
| | Supported Types |
| --- | -------------------------- |
| 1 | id_card |
| 2 | passport |
| 3 | driving_license |
| 4 | utility_bill |
| 5 | bank_statement |
| 6 | rent_agreement |
| 7 | employer_letter |
| 8 | insurance_agreement |
| 9 | tax_bill |
| 10 | envelope |
| 11 | cpr_smart_card_reader_copy |
| 12 | property_tax |
| 13 | lease_agreement |
| 14 | insurance_card |
| 15 | permanent_residence_permit |
| 16 | credit_card_statement |
| 17 | insurance_policy |
| 18 | e_commerce_receipt |
| 19 | bank_letter_receipt |
| 20 | birth_certificate |
| 21 | salary_slip |
| 22 | any |
## Consent Verification
Following documents are supported in Consent Verification:
| | Supported Types |
| --- | --------------- |
| 1 | handwritten |
| 2 | printed |
## Enhanced KYB
### Supported Countries with Search Identifiers
| Country | Search Identifiers |
|-------------------------|---------------------------------------------------------------------------------------------------|
| Albania | company_name registration_number |
| Afghanistan | company_name |
| Aland Island | company_name registration_number |
| Algeria | company_name registration_number |
| Andorra | company_name registration_number |
| Angola | company_name |
| Anguilla | company_name registration_number |
| Antigua and Barbuda | company_name registration_number |
| Argentina | company_name tax_identification_number |
| Armenia | company_name registration_number |
| Aruba | company_name registration_number |
| Australia | company_name registration_number vat_number freelance_number |
| Austria | company_name registration_number |
| Bahamas | company_name registration_number |
| Bahrain | company_name registration_number vat_number commercial_registration_number |
| Bangladesh | company_name registration_number |
| Barbados | company_name registration_number |
| Belarus | company_name registration_number |
| Belgium | company_name registration_number |
| Belize | company_name registration_number |
| Benin | company_name registration_number |
| Bermuda | company_name registration_number |
| Bhutan | company_name registration_number |
| Bolivia | company_name registration_number |
| Bosnia and Herzegovina | company_name registration_number |
| Botswana | company_name registration_number |
| Brazil | company_name registration_number cnpj_number |
| Brunei | company_name registration_number |
| Bulgaria | company_name registration_number |
| Cambodia | company_name registration_number |
| Canada | company_name registration_number |
| Cayman Islands | company_name registration_number |
| Central African Republic | company_name registration_number |
| Chile | company_name registration_number |
| Channel Islands | company_name registration_number |
| China | company_name registration_number |
| Christmas Island | company_name registration_number |
| Colombia | company_name registration_number |
| Cook Islands | company_name registration_number |
| Croatia | company_name registration_number tax_identification_number |
| Cuba | company_name |
| Cyprus | company_name registration_number |
| Czech Republic | company_name registration_number |
| Denmark | company_name registration_number |
| Dominica | company_name registration_number |
| Dominican Republic | company_name registration_number |
| Ecuador | company_name registration_number |
| Egypt | company_name |
| Estonia | company_name registration_number |
| Ethiopia | company_name |
| Falkland Islands | company_name |
| Faroe Islands | company_name registration_number |
| Fiji Islands | company_name registration_number |
| Finland | company_name registration_number |
| France | company_name registration_number |
| Georgia | company_name registration_number |
| Germany | company_name registration_number |
| Ghana | company_name |
| Greece | company_name registration_number |
| Hungary | company_name registration_number |
| United States (Hawaii) | company_name registration_number |
| Grenada | company_name |
| Guatemala | company_name |
| Guernsey | company_name registration_number |
| Guernsey and Alderney | company_name registration_number |
| Guinea | company_name |
| Guyana | company_name |
| Honduras | company_name registration_number |
| United States (Louisiana) | company_name registration_number |
| United States (Indiana) | company_name registration_number |
| Iceland | company_name registration_number |
| India | company_name registration_number |
| Indonesia | company_name |
| Isle of Man | company_name registration_number |
| Italy | company_name registration_number |
| Jamaica | company_name registration_number |
| Japan | company_name registration_number |
| Jersey | company_name registration_number |
| Jordan | registration_number |
| Kosovo | company_name registration_number |
| Kuwait | company_name registration_number |
| Kazakhstan | company_name registration_number |
| Kyrgyzstan | company_name registration_number |
| Laos | company_name registration_number |
| Latvia | company_name registration_number |
| Lesotho | company_name registration_number |
| Liechtenstein | company_name registration_number |
| Lithuania | company_name registration_number |
| Luxembourg | company_name registration_number |
| Madagascar | company_name registration_number |
| Maldives | company_name registration_number |
| Malaysia | company_name registration_number |
| Malta | company_name registration_number |
| Mauritius | company_name registration_number |
| Marshall Islands | company_name registration_number |
| Mexico | company_name registration_number |
| Micronesia | company_name |
| Monaco | company_name registration_number vat_number |
| Morocco | company_name registration_number tax_identification_number |
| Namibia | company_name |
| Nepal | company_name |
| Netherlands | company_name registration_number |
| New Zealand | company_name registration_number |
| Nicaragua | company_name registration_number |
| Nigeria | company_name registration_number |
| Niue | company_name registration_number |
| Northern Mariana Islands | company_name |
| Norway | company_name registration_number |
| Oman | company_name registration_number vat_number |
| Pakistan | company_name registration_number |
| Palestine | company_name |
| Papua New Guinea | company_name registration_number |
| Paraguay | company_name registration_number |
| Peru | company_name |
| Poland | company_name registration_number |
| Portugal | company_name |
| Puerto Rico | company_name registration_number |
| Qatar | company_name registration_number |
| Romania | company_name registration_number |
| Saint Lucia | company_name registration_number |
| Russia | company_name registration_number |
| Saint Vincent and the Grenadines | company_name registration_number |
| Samoa | company_name registration_number |
| San Marino | company_name registration_number |
| Sao Tome and Principe | company_name |
| Saudi Arabia | company_name registration_number vat_number freelance_number iban_number commercial_registration_number vat_certificate_number |
| Singapore | company_name registration_number |
| Seychelles | company_name registration_number |
| Sierra Leone | company_name |
| Sint Maarten | company_name registration_number |
| Slovakia | company_name registration_number |
| Solomon Island | company_name registration_number |
| Somalia | company_name registration_number |
| Slovenia | company_name registration_number |
| South Africa | company_name registration_number |
| South Korea | company_name registration_number |
| South Sudan | company_name registration_number |
| Spain | company_name registration_number |
| Sri Lanka | company_name registration_number |
| Svalbard and Jan Mayen Island | company_name registration_number |
| Swaziland | company_name |
| Sweden | company_name registration_number |
| United States (South Dakota) | company_name registration_number |
| Switzerland | company_name registration_number |
| Taiwan | company_name registration_number |
| Tajikistan | company_name registration_number |
| Tanzania | company_name registration_number |
| Thailand | company_name registration_number |
| Tonga | company_name registration_number |
| Trinidad and Tobago | company_name registration_number |
| Tunisia | company_name registration_number |
| Turkey | company_name registration_number |
| Turkmenistan | company_name |
| Turks and Caicos | company_name registration_number |
| United Arab Emirates | company_name registration_number trn_number iban_number license_number |
| United Kingdom | company_name registration_number |
| Uganda | company_name registration_number |
| United States (Alabama) | company_name registration_number |
| United States (Alaska) | company_name registration_number |
| United States (Arizona) | company_name registration_number |
| United States (Arkansas) | company_name registration_number |
| United States (California) | company_name registration_number |
| United States (Colorado) | company_name registration_number |
| United States (Connecticut) | company_name registration_number |
| United States (District of Columbia) | company_name registration_number |
| United States (Delaware) | company_name registration_number |
| United States (Florida) | company_name registration_number |
| United States (Idaho) | company_name registration_number |
| United States (Iowa) | company_name registration_number |
| United States (Kansas) | company_name registration_number |
| United States (Kentucky) | company_name registration_number |
| United States (Maryland) | company_name registration_number |
| United States (Massachusetts) | company_name registration_number |
| United States (Michigan) | company_name registration_number |
| United States (Minnesota) | company_name registration_number |
| United States (Mississippi) | company_name registration_number |
| United States (Montana) | company_name registration_number |
| United States (New Jersey) | company_name registration_number |
| United States (New Mexico) | company_name registration_number |
| United States (New York) | company_name registration_number |
| United States (New Hampshire) | company_name registration_number |
| United States (North Carolina) | company_name registration_number |
| United States (North Dakota) | company_name registration_number |
| United States (Nebraska) | company_name registration_number |
| United States (Ohio) | company_name registration_number |
| United States (Oregon) | company_name registration_number |
| United States (Oklahoma) | company_name registration_number |
| United States (Pennsylvania) | company_name registration_number |
| United States (Rhode Island) | company_name registration_number |
| United States (South Carolina) | company_name registration_number |
| United States (Texas) | company_name registration_number |
| United States (Tennessee) | company_name registration_number |
| United States (Washington) | company_name registration_number |
| United States (West Virginia) | company_name registration_number |
| Vanuatu | company_name registration_number |
| Venezuela | company_name registration_number |
| Vietnam | company_name registration_number |
| United States (Vermont) | company_name registration_number |
| Uzbekistan | company_name registration_number |
| United States (Virgin Islands) | company_name registration_number |
| Yemen | company_name |
| Zambia | company_name |
| United States (Wyoming) | company_name registration_number |
| United States (Wisconsin) | company_name registration_number |
| United States (Virginia) | company_name registration_number |
| United States (Utah) | company_name registration_number |
| United States (Georgia) | company_name registration_number |
| United States (Illinois) | company_name registration_number |
| United States (Maine) | company_name registration_number |
| United States (Nevada) | company_name registration_number |
| United States (Missouri) | company_name registration_number |
| Ukraine | company_name registration_number |
| Saint Pierre and Miquelon | company_name registration_number |
| Saint Martin (French part) | company_name registration_number |
| Saint Barthélemy | company_name registration_number |
| Réunion | company_name registration_number |
| Rwanda | company_name registration_number |
| Montenegro | company_name registration_number |
| Mayotte | company_name registration_number |
| Martinique | company_name registration_number |
| Guadeloupe | company_name registration_number |
| Greenland | company_name registration_number |
| Gibraltar | company_name registration_number |
| French Guiana | company_name registration_number |
| British Columbia | company_name registration_number |
| Panama | company_name registration_number |
| Canada (Federal Companies) | company_name registration_number |
| Myanmar | company_name registration_number |
| Hong Kong | company_name registration_number |
| Iran | company_name registration_number |
| Ireland | company_name registration_number |
| Moldova | company_name registration_number |
| Israel | company_name registration_number |
| Macau | company_name |
| St. Eustatius and Saba | company_name registration_number |
| Saint Kitts and Nevis | company_name |
| Mongolia | company_name |
| Uruguay | company_name |
| Philippines | company_name |
| Curaçao | company_name registration_number |
### Document Based KYB
Here is a list of documents supported by the Document KYB process, categorized by each respective country.
| ISO Code | KYB Country State | Supported Documents |
| -------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| AF | Afghanistan | certificate_of_incorporation business_license |
| AX | Aland Island | trade_registry_extract |
| US_AK | United States (Alaska) | certificate_of_compliance business_licence
| US_AS | United States (American Samoa) | certificate_of_incorporation verify_an_apostile
| AD | Andorra | trademark_registration_certificate |
| AO | Angola | nif_number_verification |
| AI | Anguilla | tax_registration_certificate business_registration_certificate |
| AG | Antigua and Barbuda | certificate_of_incorporation |
| AR | Argentina | trademark_registration_certificate |
| US_AZ | United States (Arizona) | articles_of_organization business_license
| US_AR | United States (Arkansas) | certificate_of_good_standing apostile
| AM | Armenia | registration_certificate tax_certificate |
| AW | Aruba | chamber_of_commerce_registration |
| AU | Australia | australian\_business\_number\_(abn) certificate_of_registration |
| BH | Bahrain | commercial_registration_number_verification |
| BD | Bangladesh | trade_license tax\_identification\_number\_(tin)\_certificate vat_registration_certificate |
| BB | Barbados | articles_of_incorporation |
| BZ | Belize | registration_certificate_of_the_company business_name_registration_form license_verification |
| BJ | Benin | ifu_number_verification |
| BT | Bhutan | tax_clearance_certificate business_license_certificate business_verification |
| BO | Bolivia | registro_de_comercio |
| BW | Botswana | tax_clearance_certificate business_registration_verification company_extract certificate_of_incorporation
| BR | Brazil | certificate_of_incorporation certificate_of_registry\_(directors_and_shareholder) |
| US_CA | United States (California) | federal\_tax\_id\_(ein) certificate_of_status |
| KH | Cambodia | business_registration cambodian\_tax\_identification\_(tin)\_certificate
| CD | Democratic Republic of the Congo | company_registry_extract article_of_association |
| CM | Cameroon | tax_identification_number company_verification tax_clearance_certificate
| CN | China | article_of_association business_liscence |
| KY | Cayman Islands | certificate_verification certificate_of_existence |
| CL | Chile | rut_certificate apostile_verification nit_verification_number
| US_CO | United States (Colorado) | document_verification certificate_of_good_standing |
| US_CT | United States (Connecticut) | license_verification certificate_of_good_standing
| CK | Cook Islands | certificate_of_incorporation |
| CW | Curaçao | chamber_of_commerce_registration |
| CY | Cyprus | certificate_of_incorporation memorandum_and_articles_of_association |
| US_DE | United States (Delaware) | certificate_of_incorporation license_verification |
| DK | Denmark | cvr\_registration\_certificate\_(cvr_registreringsbevis) |
| US_DC | United States (District of Columbia) | certificate_of_incorporation_or_certificate_of_organization business_license_or_certificate_of_occupancy
| DJ | Djibouti | carte\_nationale\_d\_identit\_(cni)
| DM | Dominica | certificate_of_incorporation |
| TL | East Timor | tin_certificate_from_ministry_of_finance |
| EC | Ecuador | ruc\_(registro_nico_de_contribuyentes)\_certificate |
| EG | Egypt | tax_card_certificate certificate_of_incorporation article_of_association |
| ET | Ethiopia | company_name_search |
| FK | Falkland Islands | certificate_of_incorporation |
| FO | Faroe Islands | registration_certificate |
| FJ | Fiji Islands | certificate_of_registration |
| FI | Finland | extracts_certificates_and_organisation_rules |
| US_FL | United States (Florida) | certificate_of_status employer\_identification\_number\_(ein)
| FR | France | extrait_k_bis siren_or_siret_registration_certificate certificate_of_registration | |
| US_GA | United States (Georgia) | certificate_of_existence |
| DE | Germany | company_name_search |
| GH | Ghana | business_name_verification tin_number_verification |
| GI | Gibraltar | company_register |
| GR | Greece | certificate_of_registration |
| GL | Greenland | cvr_certificate |
| GU | Guam | tax\_identification\_number\_(tin)\_certificate |
| GG | Guernsey and Alderney | certificate_of_incorporation_or_bussiness_registration_number |
| HT | Haiti | tax_certificate |
| US_HI | United States (Hawaii) | certificate_of_good_standing |
| HK | Hong Kong | business_registration_certificate_or_company_name_search |
| HU | Hungary | company_registration_number |
| IS | Iceland | company_name_and_registration_verification |
| US_ID | United States (Idaho) | business_name_search federal_employer_identification_number\_(ein) |
| US_IL | United States (Illinois) | certificate_of_incorporation_or_entity_search business_tax_registration employer_identification_number\_(ein)_from_the_irs |
| IN | India | trademark_registration_certificate pan_card company_name gst_registration |
| US_IN | United States (Indiana) | business_name_search |
| ID | Indonesia | taxpayer_identification_number\_(npwp) company_registration_certificate\_(siup)_or_number |
| US_IA | United States (Iowa) | business_entity_search_or_bussiness_number |
| IR | Iran | business_registration_certificate_or_company_name |
| IQ | Iraq | tax_identification_number_certificate commercial_registration_certificate_or_company_name_search |
| IE | Ireland | company_search |
| IL | Israel | certificate_of_incorporation_or_company_number |
| IT | Italy | vat_registration_or_tax_id |
| JM | Jamaica | business_name_registration_certificate_or_bussiness_name_search letter_of_good_standing tax_compliance_certificate |
| JP | Japan | company_name_or_corporate_number |
| JE | Jersey | certificate_of_incorporation certificate_of_good_standing |
| JO | Jordan | tax_certificate commercial_registration_certificate_or_company_name_search |
| US_KS | United States (Kansas) | business_entity_verification |
| KZ | Kazakhstan | certificate_of_state_registration certificate_of_origin |
| US_KY | United States (Kentucky) | registration_number company_assumed_name company_renewed_name |
| KE | Kenya | kra_pin_certificate |
| XK | Kosovo | registration_certificate tax_registration_certificate |
| KW | Kuwait | commercial_license_or_company_name |
| KG | Kyrgyzstan | certificate_of_registration taxpayer_registration_certificate_or_tin |
| LA | Laos | business_registration_certificate |
| LV | Latvia | business_registration_certificate tax_registration_certificate |
| LB | Lebanon | commercial_register_certificate_or_number |
| LS | Lesotho | vat_registration_certificate company_name_search |
| LY | Libya | commercial_registry_of_bussiness |
| LI | Liechtenstein | liechtenstein_commercial_registration_number |
| LT | Lithuania | vat_registration_certificate |
| US_LA | United States (Louisiana) | business_registration_application_or_entity_name |
| MK | Macedonia | business_registration_certificate |
| MG | Madagascar | business_registration_certificate |
| US_ME | United States (Maine) | maine_business_name_search |
| MW | Malawi | tax_identification_number\_(tin) certificate_of_incorporation certificate_of_registry\_(directors_and_shareholder) |
| MY | Malaysia | business_registration_certificate_or_bussiness_name_search company_registration_number |
| MV | Maldives | business_registration_certificate tax_registration_certificate_or_tin profile_sheet_verification |
| ML | Mali | business_registration_certificate |
| MT | Malta | identity_documents_of_directors_and_shareholders company_registration_number |
| MZ | Mozambique | certificate_of_registry\_(directors_and_shareholder) certificate_of_incorporation |
| IM | Isle of Man | registration_number_of_companies certificate_of_registration |
| MH | Marshall Islands | business_entity_number |
| US_MD | United States (Maryland) | certificate_of_formation bussiness_name_search |
| US_MA | United States (Massachusetts) | certificate_of_formation bussiness_identification_number |
| MU | Mauritius | certificate_of_incorporation_or_business_name_search |
| MX | Mexico | federal_taxpayer_registry\_(rfc) |
| US_MI | United States (Michigan) | certificate_of_good_standing "employer_identification_number\_(ein)_from_the_irs certificate_of_incorporation |
| US_MN | United States (Minnesota) | certificate_of_good_standing |
| US_MS | United States (Mississippi) | name_reservation_document_or_articles_of_incorporation |
| US_MO | United States (Missouri) | certificate_of_good_standing certified_abstract_of_business_record |
| MC | Monaco | dematerialized_rci_extract |
| MN | Mongolia | business_registration_number_verification |
| US_MT | United States (Montana) | business_certificate |
| MM | Myanmar | company_registration_certificate |
| NA | Namibia | certificate_of_good_standing certificate_of_incorporation certificate_of_registry\_(director) |
| US_NE | United States (Nebraska) | certificate_of_organization certificate_of_good_standing_and_business_license |
| NP | Nepal | pan_certificate business_registration_certificate tax_clearance_certificate |
| US_NV | United States (Nevada) | business_registration_form |
| US_NH | United States (New Hampshire) | bussiness_name_search |
| US_NJ | United States (New Jersey) | business_registration_certificate |
| US_NM | United States (New Mexico) | crs_identification |
| US_NY | United States (New York) | certificate_of_existence business_license |
| NZ | New Zealand | business_name_registration new_zealand_bussiness_number certificate_of_incorporation company_extract |
| NG | Nigeria | tax_identification_number_certificate value_added_tax_registration_certificate |
| NU | Niue | certificate_of_incorporation |
| US_NC | United States (North Carolina) | certificate_of_business_registration business_license |
| US_ND | United States (North Dakota) | certificate_of_good_standing |
| NO | Norway | business_registration_certificate |
| US_OH | United States (Ohio) | license_lookup certificates_of_good_standing |
| OM | Oman | commercial_registration |
| PK | Pakistan | national_tax_number |
| PA | Panama | company_history commercial_mandate_certificate company_registration_certificate |
| PG | Papua New Guinea | certificate_of_good_standing certificate_of_registration_of_business_name |
| PY | Paraguay | ruc_data_certificate |
| US_PA | United States (Pennsylvania) | certificate_of_good_standing |
| PE | Peru | ruc_number |
| PH | Philippines | tin_verification
| PL | Poland | ceidg_certificate information_about_the_representative |
| PT | Portugal | permanent_certificate_of_registration |
| PR | Puerto Rico | name_reservation_certificate |
| QA | Qatar | commercial_registration_number_verification qcci_certificate_verification |
| US_RI | United States (Rhode Island) | certificate_of_good_standing |
| RU | Russia | tin_verification |
| PM | Saint Pierre and Miquelon | siren_or_siret_registration_certificate |
| RW | Rwanda | certificate_of_incorporation certificate_of_registry\_(directors_and_shareholder) |
| SA | Saudi Arabia | commercial_registration zakat_certificate commercial_license |
| RS | Serbia | tax_identification_number\_(pib) business_register_extract |
| SC | Seychelles | business_license |
| SG | Singapore | business_registration_certificate certificate_of_good_standing certificate_of_confirmation_of_amalgation |
| SX | Sint Maarten | chamber_of_commerce_registration |
| SK | Slovakia | registration_of_business |
| SI | Slovenia | registration_certificate |
| SB | Solomon Islands | business_name_reservation |
| ZA | South Africa | value_added_tax cipc_disclosure_certificates |
| US_SC | United States (South Carolina) | federal_employer_identification_number |
| US_SD | United States (South Dakota) | employer_identification_number\_(ein)_from_the_irs |
| KR | South Korea | business_registration_certificate |
| ES | Spain | company_name_reservation_certificate_or_company_name_search |
| LK | Sri Lanka | telecommunications_license |
| SE | Sweden | registration_certificate |
| CH | Switzerland | business_identification_number_uid |
| TW | Taiwan | company_registration_certificate foreign_company_registration product_certification certificate_of_origin |
| TZ | Tanzania | certificate_of_incorporation business_name_registration_certificate company_registration\_(directors) |
| US_TN | United States (Tennessee) | federal_employer_identification_number\_(ein)_from_the_irs sales_and_use_tax_certificate |
| US_TX | United States (Texas) | certificate_of_formation employer_identification_number\_(ein) |
| BS | Bahamas | company_s_tax_identification_number\_(tin) |
| TT | Trinidad and Tobago | taxpayer_identification_number\_(tin)_certificate |
| TR | Turkey | chamber_of_commerce_registration |
| TM | Turkmenistan | certificate_of_registration_of_legal_entity |
| TC | Turks and Caicos | document_verification |
| UG | Uganda | incorporation_cert_from_uganda_services_bureau tax_identification_number\_(tin)_from_uganda_revenue_authority certificate_of_incorporation company_registration\_(directors) |
| UA | Ukraine | certificate_of_registration |
| AE | United Arab Emirates | vat_certificate\_(vc) commercial_registry_certificate |
| GB | United Kingdom | certificate_of_incorporation |
| UY | Uruguay | tax_identification_number\_(rut) |
| US_UT | United States (Utah) | federal_employer_identification_number\_(fein) business_license certificate_of_existence |
| UZ | Uzbekistan | taxpayer_identification_number\_(tin)_certificate |
| US_VT | United States (Vermont) | certificate_of_incorporation certificate_of_good_standing business_license |
| VG | Virgin Islands | business_registration_certificate |
| US_VI | United States (Virgin Islands) | us_virgin_islands_business_license |
| US_VA | United States (Virginia) | federal_employer_identification_number\_(ein) |
| US_WA | United States (Washington) | certificate_of_formation federal_employer_identification_number\_(ein) |
| US_WV | United States (West Virginia) | business_registration_certificate federal_employer_identification_number\_(ein) |
| US_WI | United States (Wisconsin) | federal_employer_identification_number\_(ein) business_license_and_permits |
| US_WY | United States (Wyoming) | business_name_filing federal_employer_identification_number\_(ein) |
| ZM | Zambia | certificate_of_existence certificate_of_incorporation certificate_of_Registry\_(director_and_shareholders) |
| ZW | Zimbabwe | tax_clearance_certificate certificate_of_incorporation certificate_of_registry\_(director)
### Document Purchase KYB
Document availability varies by jurisdiction. Here is a list of documents that Shufti currently supports as a part of its document purchase feature, categorized by each respective country.
| Country Name | Country Code | Name of Document | Authority Name | Payload Name |
| --- | --- | --- | --- | --- |
| Brazil | br | Proof of Registration And Registration Status Document | Ministry of Finance - Government of Brazil | proof_of_registration_and_registration_status_document |
| Czech Republic | cz | Founding Documents | Public Register - Ministry of Justice | founding_documents |
| Czech Republic | cz | Articles of Association | Public Register - Ministry of Justice | articles_of_association |
| Czech Republic | cz | Share Transfer Agreement | Public Register - Ministry of Justice | share_transfer_agreement |
| Estonia | ee | List of shareholders | E-Business Register-Estonia | list_of_shareholders |
| Estonia | ee | List of the members of the management board | E-Business Register-Estonia | list_of_the_members_of_the_management_board |
| Estonia | ee | Memorandum of Association | E-Business Register-Estonia | memorandum_of_association |
| Estonia | ee | Certificate of registration | E-Business Register-Estonia | certificate_of_registration |
| France | fr | Justificatif d'immatriculation (Proof of registration) | Business Directory - French Republic | justificatif_d_immatriculation_proof_of_registration |
| Germany | de | Commercial Information | Common Register Portal | commercial_information |
| Hong Kong | hk | Memorandum and Articles of Association and Amendments | Hong Kong Monetary Authority - Authorized Institutions and Local Representative Offices | memorandum_and_articles_of_association_and_amendments |
| Israel | il | Confirmation of company status in Hebrew | Israeli Corporation Authority - Ministry of Justice | confirmation_of_company_status_in_hebrew |
| Israel | il | Certificate of Status of a Company | Israeli Corporation Authority - Ministry of Justice | certificate_of_status_of_a_company |
| Marshall Islands | mh | Company Report | International Registries, Inc. | company_report |
| Poland | pl | KRS Extract | Portal Rejestrów Sądowych | krs_extract |
| Ukraine | ua | Ownership Structure | National Securities and Stock Market Commission | ownership_structure |
| Vanuatu | vu | Certificate of Registration | Vanuatu Financial Services Commission | certificate_of_registration |
| Vanuatu | vu | Certificate of Incorporation | Vanuatu Financial Services Commission | certificate_of_incorporation |
| Vanuatu | vu | Notice of Change of Directors and Particulars of Directors | Vanuatu Financial Services Commission | notice_of_change_of_directors_and_particulars_of_directors |
| Vanuatu | vu | Notice of Transfer of Shares in Company | Vanuatu Financial Services Commission | notice_of_transfer_of_shares_in_company |
| Vanuatu | vu | Business Extract | Vanuatu Financial Services Commission | business_extract |
| UAE | ae | Article of Association Amendment | Abu Dhabi Securities Exchange | article_of_association_amendment |
| UAE | ae | Summary of Financial Statements | Abu Dhabi Securities Exchange | summary_of_financial_statements |
| UAE | ae | Financial Report - Abu Dhabi Securities Exchange | Abu Dhabi Securities Exchange | financial_report_abu_dhabi_securities_exchange |
| Indonesia | id | Limited Liability Company Full Profile Document | Directorate General of General Legal Administration, Ministry of Law and Human Rights - Companies Search | limited_liability_company_full_profile_document |
| Indonesia | id | Limited Liability Company - Latest Profile Document | Directorate General of General Legal Administration, Ministry of Law and Human Rights - Companies Search | limited_liability_company_latest_profile_document |
| Indonesia | id | Individual Company Full Profile Document | Directorate General of General Legal Administration, Ministry of Law and Human Rights - Sole Proprietorship/Individual Companies | individual_company_full_profile_document |
| Indonesia | id | Individual Company - Latest Profile Document | Directorate General of General Legal Administration, Ministry of Law and Human Rights - Sole Proprietorship/Individual Companies | individual_company_latest_profile_document |
| Indonesia | id | Foundation - Full Profile Document/Profil Terakhir | Directorate General of General Legal Administration, Ministry of Law and Human Rights - Foundation Search | foundation_full_profile_document_profil_terakhir |
| Indonesia | id | Foundation - Latest Profile Document/Profil Terakhir | Directorate General of General Legal Administration, Ministry of Law and Human Rights - Foundation Search | foundation_latest_profile_document_profil_terakhir |
**Tip**
If the document you require is not listed above, please contact Shufti's support team at **tech@shuftipro.com**. Additional documents may be available upon request depending on the jurisdiction.
## Investor Verification
Usually following documents are collected to perform investor verification
| | Document |
| --- | ---------------------------- |
| 1 | Article of Association |
| 2 | Credit Reports |
| 3 | ID documents |
| 4 | Bank Statements |
| 5 | Certificate of Incorporation |
| 6 | Source of Funds/Wealth |
| 7 | Proof of Address |
| 8 | Ownership structure |
| 9 | Registers of Directors |
| 10 | Registers of Shareholders |
| 11 | Bank Details |
| 12 | Professional Certificate |
Shufti remains flexible to accommodate various other documents. The acceptance of these documents is entirely contingent on client requirements and jurisdictional regulations.
**Tip**
To know more about the supported documents for Investor Verification, contact us at tech@shuftipro.com.
---
# Supported Languages
Source: https://developers.shuftipro.com/docs/coverage/languages.md
Shufti offers multilingual support across various features to enhance user experience and ensure accurate verification processes. Below are the specific language sets supported in different parts of our verification ecosystem.
## OCR Extraction
Following is a list of supported languages for OCR data extraction from identity documents.
| | Language | Code |
|----|-------------------------------|-------------|
| 1 | Afrikaans | af |
| 2 | Albanian | sq |
| 3 | Amharic | am |
| 4 | Ancient Greek | grc |
| 5 | Arabic | ar |
| 6 | Armenian | hy |
| 7 | Assamese | as |
| 8 | Azerbaijani | az |
| 9 | Azerbaijani (Old Orthography) | az-Cyrl |
| 10 | Basque | eu |
| 11 | Belarusian | be |
| 12 | Bengali | bn |
| 13 | Bosnian | bs |
| 14 | Bulgarian | bg |
| 15 | Burmese | my |
| 16 | Catalan | ca |
| 17 | Cebuano | ceb |
| 18 | Cherokee | chr |
| 19 | Chinese | zh |
| 20 | Croatian | hr |
| 21 | Czech | cs |
| 22 | Danish | da |
| 23 | Dhivehi | dv |
| 24 | Dutch | nl |
| 25 | Dzongkha | dz |
| 26 | English | en |
| 27 | Esperanto | eo |
| 28 | Estonian | et |
| 29 | Filipino | fil |
| 30 | Finnish | fi |
| 31 | French | fr |
| 32 | Galician | gl |
| 33 | Georgian | ka |
| 34 | German | de |
| 35 | Greek | el |
| 36 | Gujarati | gu |
| 37 | Haitian Creole | ht |
| 38 | Hebrew | iw |
| 39 | Hindi | hi |
| 40 | Hungarian | hu |
| 41 | Icelandic | is |
| 42 | Indonesian | id |
| 43 | Irish | ga |
| 44 | Italian | it |
| 45 | Japanese | ja |
| 46 | Javanese | jv |
| 47 | Kannada | kn |
| 48 | Kazakh | kk |
| 49 | Khmer | km |
| 50 | Korean | ko |
| 51 | Kyrgyz | ky |
| 52 | Lao | lo |
| 53 | Latin | la |
| 54 | Latvian | lv |
| 55 | Lithuanian | lt |
| 56 | Macedonian | mk |
| 57 | Malay | ms |
| 58 | Malayalam | ml |
| 59 | Maltese | mt |
| 60 | Marathi | mr |
| 61 | Mongolian | mn |
| 62 | Nepali | ne |
| 63 | Norwegian | no |
| 64 | Oriya | or |
| 65 | Pashto | ps |
| 66 | Persian | fa |
| 67 | Polish | pl |
| 68 | Portuguese | pt |
| 69 | Punjabi | pa |
| 70 | Romanian | ro |
| 71 | Russian | ru |
| 72 | Russian (Old Orthography) | ru-PETR1708 |
| 73 | Sanskrit | sa |
| 74 | Serbian | sr |
| 75 | Serbian (Latin) | sr-Latn |
| 76 | Sinhala | si |
| 77 | Slovak | sk |
| 78 | Slovenian | sl |
| 79 | Spanish | es |
| 80 | Swahili | sw |
| 81 | Swedish | sv |
| 82 | Syriac | syr |
| 83 | Tagalog | tl |
| 84 | Tamil | ta |
| 85 | Telugu | te |
| 86 | Thai | th |
| 87 | Tibetan | bo |
| 88 | Tigrinya | ti |
| 89 | Turkish | tr |
| 90 | Ukrainian | uk |
| 91 | Urdu | ur |
| 92 | Uzbek (Cyrillic) | uz-Cyrl |
| 93 | Uzbek (Latin) | uz |
| 94 | Vietnamese | vi |
| 95 | Welsh | cy |
| 96 | Yiddish | yi |
| 97 | Zulu | zu |
## End user Verification Flow
Following is a list of supported languages for end-users to select during the verification process.
| | Languages | Language Code |
| --- | ----------------------------- | ------------- |
| 1 | Afrikaans | AF |
| 2 | Albanian | SQ |
| 3 | Amharic | AM |
| 4 | Arabic | AR |
| 5 | Armenian | HY |
| 6 | Azerbaijani | AZ |
| 7 | Basque | EU |
| 8 | Belarusian | BE |
| 9 | Bengali | BN |
| 10 | Bosnian | BS |
| 11 | Bulgarian | BG |
| 12 | Burmese | MY |
| 13 | Catalan | CA |
| 14 | Chichewa | NY |
| 15 | Chinese | ZH |
| 16 | Corsican | CO |
| 17 | Croatian | HR |
| 18 | Czech | CS |
| 19 | Danish | DA |
| 20 | Dutch | NL |
| 21 | English | EN |
| 22 | Esperanto | EO |
| 23 | Estonian | ET |
| 24 | Filipino | TL |
| 25 | Finnish | FI |
| 26 | French | FR |
| 27 | Frisian | FY |
| 28 | Galician | GL |
| 29 | Georgian | KA |
| 30 | German | DE |
| 31 | Greek (modern) | EL |
| 32 | Gujarati | GU |
| 33 | Haitian, Haitian Creole | HT |
| 34 | Hausa | HA |
| 35 | Hebrew (modern) | HE |
| 36 | Hindi | HI |
| 37 | Hungarian | HU |
| 38 | Indonesian | ID |
| 39 | Irish | GA |
| 40 | Igbo | IG |
| 41 | Icelandic | IS |
| 42 | Italian | IT |
| 43 | Japanese | JA |
| 44 | Javanese | JV |
| 45 | Kannada | KN |
| 46 | Kazakh | KK |
| 47 | Khmer | KM |
| 48 | Kirghiz, Kyrgyz | KY |
| 49 | Korean | KO |
| 50 | Kurdish | KU |
| 51 | Latin | LA |
| 52 | Luxembourgish, Letzebuergesch | LB |
| 53 | Lao | LO |
| 54 | Lithuanian | LT |
| 55 | Latvian | LV |
| 56 | Macedonian | MK |
| 57 | Malagasy | MG |
| 58 | Malay | MS |
| 59 | Malayalam | ML |
| 60 | Maltese | MT |
| 61 | Maori | MI |
| 62 | Marathi | MR |
| 63 | Mongolian | MN |
| 64 | Nepali | NE |
| 65 | Norwegian | NO |
| 66 | Punjabi | PA |
| 67 | Persian | FA |
| 68 | Polish | PL |
| 69 | Pashto | PS |
| 70 | Portuguese | PT |
| 71 | Romanian | RO |
| 72 | Russian | RU |
| 73 | Sindhi | SD |
| 74 | Samoan | SM |
| 75 | Serbian | SR |
| 76 | Scottish Gaelic | GD |
| 77 | Shona | SN |
| 78 | Sinhala | SI |
| 79 | Slovak | SK |
| 80 | Slovenian | SL |
| 81 | Somali | SO |
| 82 | Sesotho | ST |
| 83 | Spanish | ES |
| 84 | Sundanese | SU |
| 85 | Swahili | SW |
| 86 | Swedish | SV |
| 87 | Tamil | TA |
| 88 | Telugu | TE |
| 89 | Tajik | TG |
| 90 | Thai | TH |
| 91 | Turkish | TR |
| 92 | Ukrainian | UK |
| 93 | Urdu | UR |
| 94 | Uzbek | UZ |
| 95 | Vietnamese | VI |
| 96 | Welsh | CY |
| 97 | Xhosa | XH |
| 98 | Yiddish | YI |
| 99 | Yoruba | YO |
| 100 | Zulu | ZU |
| 101 | Chinese Traditional | zh |
| 102 | Kurdish Sorani | ku |
## AML Supported Languages
The following is a list of supported languages for AML Screening during the verification process.
| # | Language |
|----|---------------------------|
| 1 | Afrikaans |
| 2 | Albanian |
| 3 | Amharic |
| 4 | Arabic |
| 5 | Armenian |
| 6 | Azerbaijani |
| 7 | Basque |
| 8 | Belarusian |
| 9 | Bengali |
| 10 | Bosnian |
| 11 | Bulgarian |
| 12 | Burmese (Myanmar) |
| 13 | Catalan |
| 14 | Chinese (Simplified) |
| 15 | Chinese (Traditional) |
| 16 | Croatian |
| 17 | Czech |
| 18 | Danish |
| 19 | Dutch |
| 20 | English |
| 21 | Estonian |
| 22 | Finnish |
| 23 | French |
| 24 | Georgian |
| 25 | German |
| 26 | Greek |
| 27 | Hebrew |
| 28 | Hindi |
| 29 | Hungarian |
| 30 | Icelandic |
| 31 | Indonesian |
| 32 | Italian |
| 33 | Japanese |
| 34 | Kannada |
| 35 | Kazakh |
| 36 | Khmer |
| 37 | Kinyarwanda |
| 38 | Korean |
| 39 | Kurdish (Kurmanji) |
| 40 | Kyrgyz |
| 41 | Lao |
| 42 | Latvian |
| 43 | Lithuanian |
| 44 | Macedonian |
| 45 | Maithili |
| 46 | Malay |
| 47 | Malayalam |
| 48 | Maldivian (Dhivehi) |
| 49 | Maltese |
| 50 | Marathi |
| 51 | Mongolian |
| 52 | Nepali |
| 53 | Norwegian (Bokmål) |
| 54 | Oromo |
| 55 | Pashto |
| 56 | Persian |
| 57 | Polish |
| 58 | Portuguese |
| 59 | Romanian |
| 60 | Russian |
| 61 | Samoan |
| 62 | Serbian |
| 63 | Sinhala |
| 64 | Slovak |
| 65 | Slovenian |
| 66 | Somali |
| 67 | Spanish |
| 68 | Swahili |
| 69 | Swedish |
| 70 | Tagalog (Filipino) |
| 71 | Tajik |
| 72 | Tamil |
| 73 | Thai |
| 74 | Turkish |
| 75 | Turkmen |
| 76 | Twi |
| 77 | Ukrainian |
| 78 | Urdu |
| 79 | Uzbek |
| 80 | Vietnamese |
---
# User Agent & Geolocation
Source: https://developers.shuftipro.com/docs/kyc/system_insights_and_request_limits/user_agent_and_geolocation.md
Upon the acceptance or decline of a verification request, the system returns an **info** object containing two additional sub-objects: **Agent** and **Geolocation** which provides essential details about user's device and geolocation.
## Device & Browser Details
The "Agent" object provides comprehensive insights into the merchant/end-user's device and browser. It contains the following parameters
Parameters | Description
-------------- | --------------
is_desktop | Type: **Boolean** Example: **true** **Shows empty string “” if not detected.**
is_phone | Type: **Boolean** Example: **false** **Shows empty string “” if not detected.**
useragent | Type: **string** Example: **Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36** **Shows empty string “” if not detected.**
device_name | Type: **string** Example: **Macintosh** **Shows empty string “” if not detected.**
browser_name | Type: **string** Example: **Chrome - 70.0.3538.80** **Shows empty string “” if not detected.**
platform_name | Type: **string** Example: **OS X - 10_14_0** **Shows empty string “” if not detected.**
```json title=agent-sample-object
{
"agent": {
"is_desktop": true,
"is_phone": false,
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
"device_name": "Macintosh",
"browser_name": "",
"platform_name": "OS X - 10_14_0"
}
}
```
## Location Details
The "Geolocation" object offers geographical information of the merchant/end-user. It contains the following parameters
Parameters | Description
-------------- | --------------
host | Type: **string** Example: **212.103.50.243** **Shows empty string “” if not detected.**
ip | Type: **string** Example: **212.103.50.243** **Shows empty string “” if not detected.**
rdns | Type: **string** Example: **212.103.50.243** **Shows empty string “” if not detected.**
asn | Type: **string** Example: **9009** **Shows empty string “” if not detected.**
isp | Type: **string** Example: **M247 Ltd** **Shows empty string “” if not detected.**
country_name | Type: **string** Example: **Germany** **Shows empty string “” if not detected.**
country_code | Type: **string** Example: **DE** **Shows empty string “” if not detected.**
region_name | Type: **string** Example: **Hesse** **Shows empty string “” if not detected.**
region_code | Type: **string** Example: **HE** **Shows empty string “” if not detected.**
city | Type: **string** Example: **Frankfurt am Main** **Shows empty string “” if not detected.**
postal_code | Type: **string** Example: **60326** **Shows empty string “” if not detected.**
continent_name | Type: **string** Example: **Europe** **Shows empty string “” if not detected.**
continent_code | Type: **string** Example: **EU** **Shows empty string “” if not detected.**
latitude | Type: **string** Example: **50.1049** **Shows empty string “” if not detected.**
longitude | Type: **string** Example: **50.1049** **Shows empty string “” if not detected.**
metro_code | Type: **string** Example: **501** **Shows empty string “” if not detected.**
timezone | Type: **string** Example: **Europe/Berlin** **Shows empty string “” if not detected.**
```json title=geolocation-sample-object
{
"geolocation": {
"host": "212.103.50.243",
"ip": "212.103.50.243",
"rdns": "212.103.50.243",
"asn": "9009",
"isp": "M247 Ltd",
"country_name": "Germany",
"country_code": "DE",
"region_name": "Hesse",
"region_code": "HE",
"city": "Frankfurt am Main",
"postal_code": "60326",
"continent_name": "Europe",
"continent_code": "EU",
"latitude": "50.1049",
"longitude": "8.6295",
"metro_code": "",
"timezone": "Europe/Berlin"
}
}
```
---
# Supported Browsers and Devices
Source: https://developers.shuftipro.com/docs/kyc/system_insights_and_request_limits/supported_browsers_and_devices.md
## Browser
For seamless verification experiences, our verification iframe is designed to be compatible with a range of modern web browsers. Whether your users prefer any of the listed browser, they can access and complete the verification process effortlessly. Below is a list of supported browsers along with their minimum recommended versions or SDK requirements. Ensure your users have a smooth verification journey by ensuring they are using one of these compatible browsers.
| | Browsers | Minimum Version/SDK |
| --- | --------------------- | ------------------- |
| 1 | Chrome (Recommended) | 65 |
| 2 | Firefox (Recommended) | 58 |
| 3 | Safari | 8 |
| 4 | Opera | 52 |
| 5 | Internet Explorer | 11 |
| 6 | Edge | 16 |
| 7 | Brave | Latest |
| 8 | DuckDuckGo | Latest |
## Devices
Shufti solutions are optimized to provide a seamless experience across different operating systems. Below is a list of supported mobile operating systems along with their minimum recommended versions or SDK requirements. Empower your users to verify their identities effortlessly on their smartphones or tablets with our comprehensive device support.
| | Mobile OS | Minimum Version/SDK |
| --- | --------- | ------------------- |
| 1 | Android | 6.0 (Marshmallow) |
| 2 | iOS | 10 |
---
# Rate Limiting & Webhook IPs
Source: https://developers.shuftipro.com/docs/kyc/system_insights_and_request_limits/rate_limiting_and_webhook_ips.md
## Rate Limiting
Shufti imposes request limits for both Production and Trial accounts to ensure smooth operation and fair usage of the service. Below are the specified limits for each type of account:
- **Production Account**
For Production accounts, Shufti allows a maximum of 60 requests per minute. This limit applies per IP address, enabling efficient verification processes while maintaining system stability.
- **Trial Account**
For Trial accounts, Shufti permits a maximum of 20 requests per minute. Similar to Production accounts, this limit is enforced only on trial accounts.
**Info**
Please note that the rate limit mentioned is subject to change. If you require a different rate limit or have specific needs, please contact our Tech Support Team at tech@shuftipro.com to discuss the possibility of adjusting the rate limit for your account.
## Webhook IPs
To receive real-time notifications and updates, you should utilize the following IPs. These IPs represent the servers used by Shufti for webhook requests, ensuring seamless integration and timely access to essential information.
- Europe:
- 142.132.144.101
- 65.108.103.45
- United States:
- 5.161.114.110
- 5.161.87.219
- 5.78.56.7
- 5.78.58.196
**Info**
It is essential to configure your system's security settings to allow access from the specified IP addresses mentioned above. By whitelisting these IPs, you enable your system to receive real-time updates and notifications seamlessly.
---
# Account Settings
Source: https://developers.shuftipro.com/docs/backoffice/account_settings.md
In the Account Settings section, Shufti offers a comprehensive suite of features to fortify your experience. From ensuring a robust Two-Factor Authentication (2FA) setup and facilitating secure password resets to providing control over Personally Identifiable Information (PII) data visibility, our platform empowers you with advanced session security settings. Dive into effortless billing details review, monitor active sessions, and seamlessly configure callback and redirect URLs. Shufti's Account Settings provides a centralized hub for optimizing security, managing sessions, and tailoring your verification processes with precision.
## Two Factor Authentication
Elevate the security of your Shufti account by implementing 2-Factor Authentication (2FA). Choose the authentication method that suits you best:
1. **Email-based 2FA:**
- Navigate to BackOffice Settings > Security > [2FA configuration.](https://backoffice.shuftipro.com/settings/security?gfa=true)
- Select Email based 2FA.
- Enter the authentication code sent on the registered email.
2. **Google Authenticator:**
- Navigate to BackOffice Settings > Security > [2FA configuration.](https://backoffice.shuftipro.com/settings/security?gfa=true)
- Select Google Authenticator.
- Scans the QR code by Google Authenticator app and enter the generated code.
## Password Reset
Shufti provides clients with the option to either manually reset their password or opt for a system-generated password by selecting "Auto Generate Password." Passwords must include the following:
- Navigate to BackOffice Settings > [Security.](https://backoffice.shuftipro.com/settings/user-profile)
- Select Reset Password option.
- Update Password.
#### Rules
- 1 upper case character
- 1 lower case character
- 1 number
- 1 symbol (#?!@$%^&*-)
- Be at least 12 characters long
## Personally Identifiable Information (PII Data)
Shufti grants clients control over the visibility of Personally Identifiable Information (PII) of end users, encompassing details such as Name, Date of Birth (DOB), and address. Clients can choose to hide or display their end user's information across the back office, based on their individual preferences.
End user PII Data is hidden by default to change this follow the given steps
1. Navigate to > Settings > [Security.](https://backoffice.shuftipro.com/settings/security)
2. Here you can see the PII Data option which can be enable or disable.
## Advanced Session Security
The Advanced Security Session feature allows including or excluding IP addresses from session validation fingerprints. This option empowers clients to activate an additional layer of protection. Once enabled, our system vigilantly monitors for any changes in the client's IP address during a session. If a change is detected, the system automatically logs out the client, thereby providing an extra safeguard against unauthorized access. When disabled, the system allows continuous session access, even if the client's IP address changes, offering uninterrupted usage tailored to your preferences.
1. Navigate to > Settings > [Security.](https://backoffice.shuftipro.com/settings/security)
2. Here you can see the Advance Session Security option which can be enable or disable.
## Secondary Users
Shufti empowers primary account holders with the capability to extend their administrative privileges. As an admin user (Shufti client), you can effortlessly add 'Secondary Users' to your account, delegating the responsibility of managing and operating the back office according to their respective roles.
1. Navigate to > Settings > [Secondary Users.](https://backoffice.shuftipro.com/settings/secondary-users)
2. In the secondary user tab you can see a list of already present secondary users if there are any or add secondary users through the Add User button.
3. A form will appear where you will fill in the required fields and set the permissions you want to give to the secondary users.
#### Permissions:
- **Dashboard**: Give secondary user permissions to view the dashboard and stats present on it like decline rates.
- **General**: Give secondary user permissions to change general settings like account environment.
- **Settings**: Give secondary user permissions to change the back office settings like password, add secondary users and much more.
- **Product**: Give secondary user permission to only specific products allowing them to perform different CRUD operations.
- **Customers**: Give secondary user permission to view customer details.
- **Billing**: Allow the secondary user to view or change the billing information.
- **Batch Processing**: Permit to use the batch processing feature to the secondary user.
- **Verification/Reports**: Permit to view or update the verification results.
- **Integration**: Permit the secondary user to create or change the verification journey.
## Billing
Seamlessly manage your finances by adding balance to your verification account or effortlessly adjusting your billing settings through the Shufti back office.
Clients can perform the following actions in the billing section:
- See Billing Details.
- Add Balance.
### How to add balance and see billing details?
1. Navigate to > [Billing section.](https://backoffice.shuftipro.com/billing)
2. Here you can see the billing details history or Add balance.
3. See Billing Details.
### See Billing Details
- **Billing Information:** Shufti empowers clients to effortlessly review their verification billing details. The comprehensive billing information includes data, reference ID, email, used services, amount, status, and decline reasons for verifications. For convenience, these details can also be downloaded in CSV format.
- **Customise Date Range:** Shufti allows clients to view and manage billing details by selecting a date range from the top right corner.
### Add Balance
In the "Add Balance" section, Shufti clients can perform the following actions:
- **Auto Renewal:** Enable auto-renewal for a seamless experience. Clients automatically receive a renewal invoice before their plan expires, ensuring continuous service without interruptions.
- **Payment Method:** Choose your preferred payment method. Clients can make payments using their credit card securely. Opt for the Stripe option, select "Add Amount," and enter card details including the card number, CVC, and expiry date to complete the payment.
- **Save Payment Method:** Clients can effortlessly add and save card details for future transactions, streamlining the payment process for added convenience.
## Active Sessions
Enhance your security vigilance with Shufti's advanced back office settings. Our system meticulously tracks active users’ sessions, enabling you to monitor account access with precision.
1. Navigate to > Settings > [Login History](https://backoffice.shuftipro.com/settings/login-history)
2. Here you can view details of all the users who logged into your back office.
The following information is tracked in the Active Session tab:
- Logged in user email address.
- Date and Time user login.
- Browser info through which the user login.
- Device name through which the user login.
- IP address of the account user.
## Callback & Redirect URLs
Effortlessly manage the secure flow of control and data between various services and applications with our platform. We understand the importance of seamless integration and robust security in today’s digital landscape.
To cater to this, our clients have the flexibility to customise their experience by adding their preferred Callback and Redirect URLs.
Follow these steps to add Callback or Redirect URLs:
1. Navigate to BackOffice Settings > [Callback & Redirect URLs](https://backoffice.shuftipro.com/settings/callback-urls).
2. Click on the Add domain button on the top right & add your preferred Callback or Redirect URL.
3. Client can also see the list of all the URLs and have access to edit or delete the existing callbacks/redirect URLs.
## Single Sign-On (SSO)
Shufti enables secure authentication for clients across multiple applications and websites using a single set of credentials.
1. Navigate to BackOffice Settings > Security > [SAML Authentication](https://backoffice.shuftipro.com/settings/security)
2. Here you can configure Single Sign-On (SSO) settings by adding your SSO URL, Identity Provider URL, and Public certificate.
3. Gain control over SSO functionality with the option to enable or disable it according to your preferences.
Single Sign-On (SSO) is an authentication method designed to streamline sign-in requirements and team member access to the back office. Shufti's SSO service seamlessly integrates with leading providers such as:
- Google
- OKTA
- OneLogin
- Azure
Leveraging Shufti's SSO service allows organisations to elevate the efficiency and security of their authentication processes, providing an improved user experience for employees.
### SSO Login Configuration Settings:
Fill in the following required fields
- SSO URL
- Identity Provider URL
- Public Certificate
- Identifier (Entity ID)
- Assertion Consumer Service URL
- Sign-on URL
**Info**
### Secondary Users SSO Settings:
Shufti empowers clients to efficiently manage Single Sign-On (SSO) for their secondary users. By enabling the checkbox, clients can implement restrictions to prevent secondary users from logging in using their individual credentials when SSO is enabled.
---
# Role-Based Access Control (RBAC)
Source: https://developers.shuftipro.com/docs/backoffice/features/rbac.md
## Overview
The Role-Based Access Control (RBAC) feature allows administrators to manage user roles and permissions effectively within the back office. This ensures that team members have the appropriate access levels for their tasks, promoting security and collaboration.
## Features
- **Pre-defined Roles:** Five pre-configured roles are available for immediate use.
- **Custom Roles:** Administrators can create roles that are tailored to specific organizational needs.
- **Permissions Management:** Permissions are assigned to each role, controlling access to various sections of the back office.
- **Centralized Role Management:** All user roles and permissions can be managed from one central location, simplifying access control.
- **Customizable Access Control:** Roles can be tailored to match the unique requirements of your team and organization, providing granular control over user permissions.
## Configuration Process
Follow the steps below to configure RBAC in the back office:
### 1. Access Roles & Permissions
1. Navigate to the **Settings** section from the back office dashboard.
2. In the settings menu, select **Roles & Permissions**.
### 2. Review Pre-defined Roles
Upon accessing the Roles & Permissions section, you will see five pre-defined roles available for immediate use:
- **Admin**
- **Super User**
- **Manager**
- **Review Agent**
- **Advanced Agent**
These roles can be assigned directly to users without any additional configuration.
### 3. Create Custom Roles (If Needed)
To create a custom role:
1. Click on the **"New Role"** button.
2. In the pop-up window, provide the following details:
- **Role Name:** Choose a descriptive name for the role.
- **Role Description:** Provide a brief description outlining the role's responsibilities and permissions.
3. Select the appropriate permissions for the role. Permissions control access to various sections of the back office, ensuring that users with this role can access only the relevant features.
4. Click **"Add"** to save the new role.
Once created, the custom role will be available for assignment to users, providing tailored access control based on your organization's specific requirements.
---
# Customer ID
Source: https://developers.shuftipro.com/docs/backoffice/features/customer_id.md
## Overview
The Customer ID feature enables merchants to maintain a consistent reference for individual end users across multiple verification requests. By linking all verifications to a unique customer profile, merchants can track verification history, streamline repeat verifications, and improve data management across their backoffice.
## What is a Customer ID?
A Customer ID is a unique, persistent identifier that represents an individual customer profile within Shufti's system. Once generated, this identifier can be used across all future verification requests for the same customer, ensuring that:
- All verifications are linked to a single customer profile.
- Verification history is maintained and easily accessible.
- Customer data remains organized and trackable.
## Key Benefits
### Consistent User Reference
Maintain a single identifier for returning customers across multiple verification sessions, eliminating confusion and data fragmentation.
### Enhanced Verification Tracking
Associate all verification requests with the same customer profile, making it easier to review verification history and patterns.
### Improved Data Management
Easily reference, retrieve, and manage customer profiles using their unique Customer ID, streamlining your operational workflows.
### Fraud Prevention
Track and identify repeat verification attempts and patterns associated with the same customer, helping you detect and prevent fraudulent activities.
## How It Works
### First-Time Verification
When a customer undergoes verification for the first time, there are two ways the Customer ID can be assigned.
#### Without a Customer ID in the request
1. Send a verification request without including a `customer_unique_id` parameter.
2. Shufti automatically generates a unique `customer_unique_id`.
3. The generated `customer_unique_id` is returned in the API response.
4. Store this `customer_unique_id` in your system for future use.
#### With a Customer ID in the request
1. Send a verification request including your own `customer_unique_id` parameter.
2. Shufti creates a new customer profile with the provided `customer_unique_id`.
3. The same `customer_unique_id` is returned in the API response.
### Repeat Verifications
For subsequent verification requests for the same customer:
1. Include the previously obtained `customer_unique_id` in the request payload.
2. Shufti automatically associates the new verification with the existing customer profile.
3. All verification data is linked to the same customer record.
4. The same `customer_unique_id` is returned in the response.
## Customer ID Management for Existing Users
Shufti provides a dedicated API endpoint for managing Customer IDs, allowing you to generate or associate Customer IDs with existing verification records.
### Endpoint
`POST https://api.shuftipro.com/customer/details`
### Authentication
Use Basic Authentication with your Client ID and Secret Key from your Shufti back office.
### Use Cases
- **Generate a Customer ID for existing users:** Send a reference ID from a previous verification. Shufti generates and returns a new `customer_unique_id` for that verification.
- **Associate your Customer ID with existing users:** Send both a reference ID and your own `customer_unique_id`. Shufti stores your `customer_unique_id` and associates it with the verification record.
### Request Payload
```json
{
"reference": "{{reference_id}}",
"customer_unique_id": "{{alphanumeric_string}}"
}
```
### Parameters
| Parameter | Required | Type | Description |
| :--- | :--- | :--- | :--- |
| reference | Yes | String | The reference ID from a previous verification request. |
| customer_unique_id | No | String | Your own unique customer identifier (6 to 64 alphanumeric characters). If not provided, Shufti generates a new Customer ID. |
---
## Managing Customers in the Backoffice
Beyond the API, every Customer ID has a customer profile in the backoffice where you can review verification history, manage the customer's status, control which data is used for future verifications, and collaborate with your team. This section covers the actions available on a customer profile.
### Backoffice actions at a glance
| Action | What it does | Reversible |
| :--- | :--- | :--- |
| Blocklist a customer | Declines future verifications matching the blocklisted Customer ID or data. | Yes, by removing the customer from the blocklist. |
| Whitelist a customer | Accepts all future verifications for that Customer ID. | Yes, by removing the customer from the whitelist. |
| Reset a customer profile | Moves the profile to Verification Pending and deactivates past proofs so they are not used as context. | Past proofs can be reactivated. |
| Mark a customer as Inactive | Adds an INACTIVE label to the profile and to the Customer ID in related verifications. | Yes, by marking the customer active again. |
| Mark a document as Inactive | Excludes a specific document from comparison in future verifications. | Yes, by marking the document active again. |
### Customer Status
Every customer profile carries a status that is derived from the customer's verification results. There are three possible statuses.
| Status | Meaning | Can transition to |
| :--- | :--- | :--- |
| Verification Pending | Default state. The profile exists but no verification has been completed yet. Also set after a profile reset. | Approved, Rejected |
| Approved | The customer has at least one accepted verification result and no active blocklist flag. | Verification Pending (after a reset) |
| Rejected | All completed verification attempts have failed and no accepted result exists. | Approved (if a new attempt passes), Verification Pending (after a reset) |
How the status behaves:
- When a customer's verification is accepted, the status changes to **Approved**, meaning the customer is accepted and onboarded. Once a profile is Approved, the status does not change to Rejected even if later verifications fail.
- If all of the customer's verifications are declined, the status is set to **Rejected**. A Rejected profile can move to Approved if a future verification passes.
- A profile is set to **Verification Pending** when it is first created and the user has not completed verification yet. It is also set to Verification Pending whenever the profile is reset. After the next verification completes, the status updates according to the result.
### Initiating a Verification for a Customer
You can create a new verification for a customer directly from their profile in the backoffice. Because the Customer ID is sent with the request, the resulting verification is tied to that specific customer.
There are two ways to start a verification from the profile:
1. **Create New Verification** CTA.
2. **Initiate Re-verification** CTA on a verification in the Verification History.
**Using Create New Verification**
When you choose this option, you can set up the verification in one of two ways:
- **Verification Journey Builder:** Select the journey you want the customer to verify through.
- **Products:** Go to the product tab, select the services you need, and configure the verification workflow.
With either method, the verification is created specifically for that customer because the Customer ID is included in the verification request.
**Using Initiate Re-verification**
When you click the **Initiate Re-verification** CTA on a verification in the Verification History, a verification request is initiated using the exact configuration of that earlier verification, and you receive a verification link for the customer.
### Blocklisting a Customer
A customer can be added to the blocklist, or removed from it, manually from the backoffice. When you blocklist a customer, both the Customer ID and the data submitted by the user on their customer profile are blocklisted. As a result, any subsequent verification from the blocklisted Customer ID, or any verification that submits the blocklisted data, is declined.
The data that can be blocklisted includes:
- Customer ID
- Face image
- Document number
- Name and date of birth (as a combination)
- IP address and device fingerprint (as a combination)
- Email
- Phone number
**Note**
If you remove the customer from the blocklist, their verifications are performed normally again.
### Whitelisting a Customer
A customer can be added to, or removed from, the whitelist manually from the backoffice. When you add a customer to the whitelist from their profile, their Customer ID is whitelisted and all subsequent verifications from that Customer ID are accepted. Whitelisting is based on the Customer ID only.
**Caution**
A whitelisted Customer ID has all of its subsequent verifications accepted. Apply the whitelist deliberately and only to customers you have already established trust in.
**Note**
If you remove the customer from the whitelist, their verifications are performed normally again.
### Resetting a Customer Profile
You can reset a customer profile from the backoffice. When a profile is reset, the proofs and data submitted in the customer's past verifications become inactive and are no longer used as context in future verifications. You can reactivate these past proofs later if you want them used for context again.
Resetting a profile also changes the customer status to **Verification Pending**. The status then updates according to the result of the next verification.
### Marking a Customer as Inactive
Marking a customer profile as Inactive adds an **INACTIVE** label to the customer profile and to the Customer ID shown in the verifications related to that Customer ID.
An Inactive status can mean, for example, that the customer is no longer active on your platform, that the Customer ID was a test, or that the user has deleted their account.
You can mark an inactive Customer ID as active again at any time from the backoffice.
### Managing Verification Documents
The **Verifications** tab of the customer profile contains a **Documents** section that gathers every document the customer has submitted throughout their verification history, so you can review and analyze them in one place.
If there is a document you do not want used for comparison or context in future verifications, you can mark it as inactive. Inactive documents can be marked as active again whenever needed.
### Duplicate Records
The Duplicate Records section of the customer profile lists linked records, that is, other records in which a user submitted the same data that appears in this customer profile. This helps you detect duplicate accounts in your system.
### Comments
Shufti provides a comments feature so you can leave notes, communicate with team members, and upload attachments on a customer profile. If any anomaly is detected on a profile, you can use comments to raise it with your team, record your notes, and attach supporting files.
### Activity Logs
Whenever an action is performed on a customer profile, an entry is created in the profile's activity logs. Logged actions include:
- Creating a verification for the customer, and the resulting verification status.
- Adding the customer to, or removing them from, the blocklist.
- Adding the customer to, or removing them from, the whitelist.
- Resetting the customer profile.
- Marking the customer as Inactive, and marking the customer as active.
Each log entry records the action along with the date and time it occurred and the person who performed it, giving you a complete audit trail for every profile.
---
## Best Practices
- **Always store Customer IDs:** Implement persistent storage for Customer IDs in your database so they are available for future verification requests.
- **Include Customer IDs in repeat verifications:** Always include the `customer_unique_id` parameter when initiating verifications for returning customers to maintain data consistency.
- **Monitor verification patterns:** Use linked customer profiles to identify unusual verification patterns that may indicate fraudulent activity.
- **Validate the Customer ID format:** Before sending requests, validate that Customer IDs meet the format requirements (6 to 64 alphanumeric characters).
- **Maintain a Customer ID mapping:** Keep a mapping between your internal customer identifiers and Shufti Customer IDs for easy reference and troubleshooting.
---
# Callback Logs
Source: https://developers.shuftipro.com/docs/backoffice/features/callback_logs.md
Shufti's Callback Logs feature provides Merchants with a complete delivery history of every callback sent from Shufti to their configured callback URL. Each entry records the event that triggered the callback, the server response, the exact payload that was sent, and the delivery status. Merchants can use the logs to monitor delivery health, investigate failed callbacks, and resend deliveries directly from the Backoffice.
**Info**
Callback Logs are available under **Backoffice Settings > API Configurations > Callback Logs**.
## How It Works
Whenever a callback event is triggered for a verification request, Shufti attempts to deliver it to the configured URL. The outcome of every delivery attempt, whether successful or failed, is recorded as a Callback Log entry. Each entry includes:
- **Reference ID** and **Customer ID** of the associated verification
- **Event** that triggered the callback (e.g. `verification.accepted`, `request.pending`, `verification.declined`)
- **HTTP Code** returned by the Merchant's server
- **Status** of the delivery (Delivered, Failed, Permanent Failed)
- **First Attempt** and **Last Attempt** timestamps
- **Next Retry** time, if the callback is scheduled for a retry
## Delivery Statuses
Status | Description
------------------|-------------
Delivered | The callback was successfully received by the Merchant's server (2xx response).
Failed | The delivery attempt failed. Shufti will automatically retry.
Permanent Failed | All automatic retry attempts have been exhausted. The callback will not be retried automatically.
## Investigating a Callback
Selecting any log entry opens the **Callback Details** popup, which displays:
- The **Callback URL** that the callback was sent to
- The **Server Response** returned by the Merchant's endpoint
- The full **Payload Sent**, which mirrors the verification response payload structure
The Server Response section shows the exact error returned by the Merchant's server, and the Payload Sent section shows the data Shufti dispatched.
## Resending a Callback
Merchants can manually resend any callback, including those that were delivered successfully, in case the event needs to be re-processed on the Merchant's side.
1. Navigate to **API Configurations > Callback Logs**.
2. Open the callback entry you wish to resend.
3. Click **Resend Callback** in the Callback Details popup.
4. On a successful delivery, a confirmation is shown.
## Cooldown Period
To prevent duplicate deliveries and protect Merchant systems from unintended traffic spikes, each callback can only be resent **once per hour**.
### Behavior During Cooldown
- If a callback has not been resent in the last hour, the resend is processed immediately.
- If a callback was resent within the last hour, the next resend is **scheduled** for the time at which the one-hour cooldown ends. The callback will be delivered automatically at that time.
- While a cooldown is active, the **Resend Callback** button in the Callback Details popup is disabled. Hovering over the button displays the scheduled delivery time.
---
# Business Keys
Source: https://developers.shuftipro.com/docs/backoffice/features/business_keys.md
Business Keys allow Merchants to group customers and verifications by their source, brand, business line, or any other dimension that matters to operations. Each Business Key carries its own configuration, so a single Shufti account can apply distinct rules and settings to different customer groups without operating in isolated environments.
This documentation explains how to create and manage Business Keys in the BackOffice, how to configure duplicate account detection per key, and how Business Keys behave across the rest of the BackOffice.
## Where to find Business Keys
Business Keys are managed from:
**Settings → General Settings → Business Keys**
From this page, Merchants can view existing Business Keys, create new ones, edit their configurations, or delete keys that are no longer in use.
## Creating a Business Key
On the Business Keys page, click **Create Business Key**. The creation form contains the following fields.
- **Name (required):** The unique label that identifies this Business Key across the BackOffice, Reports, and API responses. The name is case-sensitive, must be unique within the account, and becomes immutable after creation. Plan the name carefully, as it cannot be changed later.
- **Description (optional):** A short note explaining the purpose of this key. Useful for teams managing multiple keys. This field can be edited at any time.
- **Duplicate Account Detection (required):** Controls how Shufti detects and handles duplicate applicants for customers tagged with this Business Key. See [Duplicate Account Detection settings](#duplicate-account-detection-settings).
When the form is submitted, the new Business Key becomes immediately available across Verification Settings, the Journey Builder, Reports, Customer Profiles, and the API.
## Duplicate Account Detection settings
Duplicate Detection determines whether Shufti should treat a new applicant as a duplicate of an existing customer, and what action to take when a match is found. Each Business Key carries its own Duplicate Account Detection block, so different customer groups can be treated differently within the same account.
A returning customer who verifies again using the same customer ID is recognised as the same person and is not treated as a duplicate, regardless of the configured scope or matching criteria.
Each Business Key configuration consists of two parts:
- **Scope:** The set of existing customers Shufti checks against when looking for duplicates.
- **Matching criteria:** The attributes Shufti compares, and the action taken when a match is found.
### Scope
Merchants can pick one of the following scopes:
- **Within this Business Key:** The new applicant is compared only against existing customers carrying the same Business Key. Recommended when Merchants do not want to allow duplicate accounts for customers within the same Business Key.
- **Across all Business Keys:** The new applicant is compared against every customer in the account, regardless of Business Key. Recommended when the same person should not be allowed to onboard twice anywhere in the account.
- **Across selected Business Keys:** The new applicant is compared against customers in a chosen subset of Business Keys. When this option is selected, a Business Key selector appears for choosing which keys to include in the comparison.
The **Across selected Business Keys** option becomes available once more than one Business Key has been created.
### Matching criteria
Matching criteria define which attributes Shufti compares between the new applicant and existing customers, and what action to take when one or more criteria match. Each criterion has:
- A checkbox to enable the criterion, which controls whether Shufti evaluates it.
- An action that determines what happens when the criterion matches an existing customer.
Two actions are available per criterion:
- **Decline:** The new verification is automatically declined and the applicant cannot complete onboarding for this Business Key.
- **Flag in Report:** The verification is allowed to proceed, but the resulting report carries a duplicate flag so reviewers can investigate before final approval.
| Criterion | What it compares | Default state | Default action |
| :--- | :--- | :--- | :--- |
| Full Name + Date of Birth | The applicant's full name and date of birth as extracted from the verification document. | Enabled | Decline |
| Document Number | The document number, compared against existing documents of the same document type (passport against passport, ID against ID, and so on). | Enabled | Decline |
| Face | The applicant's selfie or document portrait matched against existing face records. | Enabled | Decline |
| Email | The email address associated with the applicant. | Disabled | Flag in Report |
| Phone | The phone number associated with the applicant. | Disabled | Flag in Report |
| Device Fingerprint | A fingerprint derived from the device used to complete verification. The same fingerprint across two applicants suggests the same device, regardless of the document or details submitted. | Disabled | Flag in Report |
Document Number is intentionally scoped to the same document type so that a passport number which happens to overlap with an ID card number is not treated as a match.
### How criteria are combined
Criteria are evaluated independently. If any enabled criterion matches an existing customer, the configured action for that criterion applies.
If more than one enabled criterion matches with different actions, **Decline** takes precedence over **Flag in Report**. For example, if an applicant matches an existing customer on Face (Decline) and on Email (Flag in Report), the verification is declined because Decline is the stricter action.
### Overriding Duplicate Account Detection at creation time
When a Merchant creates a verification from the Products tab or configures a Verification Journey, and selects a Business Key that has Duplicate Account Detection enabled, a **Duplicate Account Detection** checkbox appears next to the Business Key selector. The checkbox is enabled by default. Unchecking it disables Duplicate Account Detection for that specific verification or Journey only.
This override is local to the verification or Journey being created. The Business Key's own settings are not changed, and other verifications or Journeys that use the same Business Key continue to follow its configured Duplicate Account Detection behavior.
If the selected Business Key has Duplicate Account Detection disabled, the override checkbox is not shown.
## Editing a Business Key
Open any Business Key from the list to edit. The following fields are editable:
- Description
- Duplicate Account Detection scope
- Matching criteria toggles and actions
The **Name** field is read-only after creation. To rename a Business Key, create a new one and migrate verifications going forward.
Changes to Duplicate Account Detection apply to new verifications from the moment the change is saved. Historical reports retain the configuration that was in effect when they were created.
## Deleting a Business Key
Deleting a Business Key is destructive. From the Business Keys list, hover over the Business Key row to reveal the action icons, then click the delete icon. A confirmation dialog explains the consequences:
- The Business Key is removed from selectors in Verification Settings, the Journey Builder, and the API.
- New verifications can no longer be tagged with the deleted key.
- Existing verifications and customer profiles that already carry the key continue to display the original key name. Past verifications and reports created under this Business Key remain accessible.
Before confirming deletion, ensure no verification journey depends on the key.
## How Business Keys appear across the BackOffice
Once a Business Key is created, it surfaces wherever a verification or customer is displayed.
- **Customer Profile:** Each profile displays the Business Key (or keys) the customer is associated with. When a customer has verifications across multiple Business Keys, all of them appear on the profile.
- **Verification Settings:** A single Business Key can be assigned to a verification created from the Products tab. The verification then inherits the assigned key automatically.
- **Verification Journey Builder:** A single Business Key can be assigned to each Journey. Verifications running through the Journey inherit the key automatically.
- **Reports:** The Reports list supports Business Key as a filter. When a criterion is configured with the Flag in Report action and a match is detected, the resulting report displays a duplicate flag. Reviewers can click **View Duplicate Accounts** on the report to see details of the matched customer(s).
## Constraints
- Business Key names must be unique within the account.
- Business Key names are immutable after creation.
- A single verification or verification journey can carry one Business Key.
- A customer can appear under multiple Business Keys if they verify via multiple verifications or verification journeys in which duplicate account detection was disabled.
- Duplicate Account Detection rules apply only to verifications created after the change is saved. Historical reports retain the rules in effect at the time of verification.
## Using Business Keys with the API
To assign a Business Key to a verification created via the API, include the `business_key` parameter in the verification request payload. The value must match the name of an existing Business Key in the BackOffice. The same value is echoed back in the verification response and in every webhook event for that verification. Supplying a `business_key` is optional; if omitted, the verification is processed without a Business Key tag.
### Request
```json
{
"reference": "17374217-ae26-4c8f-94c0-b3f6a99b1c2e",
"callback_url": "https://yourdomain.com/shufti/callback",
"email": "applicant@example.com",
"country": "GB",
"language": "EN",
"verification_mode": "any",
"business_key": "Premium Onboarding",
"document": {
"supported_types": ["passport", "id_card", "driving_license"],
"name": { "first_name": "", "last_name": "" },
"dob": "",
"document_number": ""
},
"face": {}
}
```
### Response
```json
{
"reference": "17374217-ae26-4c8f-94c0-b3f6a99b1c2e",
"event": "request.pending",
"email": "applicant@example.com",
"country": "GB",
"business_key": "Premium Onboarding",
"verification_url": "https://app.shuftipro.com/process/
### Document Properties Settings
Shufti allows its client to make customised decisions on verifications with inconsistent creation/modification dates in document properties (metadata)
Follow these steps to make customised decisions on verifications:
1. Navigate to > back office settings > [IDV Settings.](https://backoffice.shuftipro.com/settings/verification-settings) > Document Metadata Settings
Clients can choose from the following options:
- **No change:** Choose not to modify the verification process based on the metadata inconsistency.
- **Decline:** Decline the verifications with different Creation and Modification dates extracted from the proof/document's property (metadata).
- **Manual Review:** Take manual decisions on the verifications with different Creation and Modification dates extracted from the proof/document's property (metadata).
---
# Verification Report Warnings
Source: https://developers.shuftipro.com/docs/backoffice/features/allow_warnings.md
# Verification Report Warnings
Shufti uses advanced image analysis techniques to detect inconsistencies, tampering, and suspicious activities during the verification process. If any anomalies are found, they are flagged in the verification report. These warnings help businesses identify potential fraud and take necessary actions to ensure the authenticity of user submissions.
Based on the warnings triggered, businesses can determine the outcome of the verification report—whether to accept, decline, or send the verification for manual review.
## Warnings & Descriptions
Here are the key warnings flagged during verification and their descriptions.
### Image Structure Inconsistency Detected
This warning is triggered when inconsistencies are detected in the image’s internal encoding structure. These inconsistencies are uncommon in photos taken directly from a camera and may indicate that the image has been edited or altered before submission.
### Suspicious Camera Interaction
This warning appears when unusual activity is detected during the user's interaction with the camera screen. It can indicate potential fraud attempts, such as presenting a still image instead of a live capture, manipulating the camera feed, or using external software to interfere with the verification process. These anomalies raise concerns about the legitimacy of the captured image.
### PNG Format Detected
This warning is shown when the submitted image is in PNG format instead of JPEG. PNG images do not contain compression artifacts, which are critical for forensic analysis. Because of this limitation, certain tampering detection techniques cannot be applied, reducing the ability to verify the image's authenticity. To improve accuracy, users are encouraged to submit images in JPEG format.
### Cracked Document Detected
This warning is triggered when visible cracks or breakage are detected on the surface of the submitted document. These cracks may indicate that the document has been physically tampered with, damaged, or compromised prior to submission. Such anomalies can affect the reliability of the document and may suggest an attempt to manipulate or obscure its authenticity.
### Manipulation Detection
This warning indicates that artifacts caused by image compression suggest potential tampering. When an image is edited and saved multiple times, it can introduce inconsistencies in compression patterns that do not align with a natural camera-captured image. This warning helps identify images that may have been altered to misrepresent information.
### Metadata Alteration Detection
This warning is triggered when the image's metadata has been modified, is incomplete, or is missing key attributes. Metadata, such as camera model, timestamp, and geolocation, is typically embedded in images at the time of capture. If any of this information is altered or removed, it raises concerns that the image has been processed through editing software before submission.
### Creation & Modification Date Inconsistencies
This warning detects discrepancies between the creation date and the modification date of a submitted document. If a document claims to be issued on a certain date but has a more recent modification timestamp, it suggests that the document may have been altered or tampered with after its original creation. This is particularly relevant for identity documents, contracts, and other critical paperwork.
### JPEG Document Proof Modification
This warning identifies whether a JPEG document proof has been altered using an image editing tool. If a document has been modified digitally, forensic analysis can detect changes in pixel structure, encoding properties, and compression signatures. This helps ensure that submitted documents are authentic and have not been manipulated.
### Document Detail Mismatch
This warning is triggered when a submitted document matches a previously submitted document image, but the extracted details or fields are different. This indicates that the document may have been altered or manipulated after the initial submission.
### Template-Based Document
This warning is triggered when the submitted document shows structural similarities with a known document template. This includes consistent background patterns, element positions, and formatting, suggesting that the document may have been generated or manipulated using a template.
### Potential Fake Card Detected :
This warning is triggered when the document exhibits characteristics commonly associated with non-genuine high-grade plastic cards. Such features may indicate forgery or artificial creation, raising concerns about the authenticity of the document.
### Screen Replay Detection
This warning is triggered when the image exhibits the Misoure Effect, suggesting it may be a screen capture rather than a genuine camera photo. Such characteristics are commonly associated with screen replay attacks, where an image is captured from a screen and replayed, potentially compromising the authenticity and integrity of the image.
### AI-Generated Content Detection
This warning is triggered when the submitted address document contains characteristics commonly associated with AI-generated content. These may include synthetic text, unnatural layout, or visual patterns not typically present in authentic proofs of address. Such anomalies suggest that the document may have been digitally generated rather than derived from a genuine and legitimate document.
## Parameter and Description
The parameter listed below displays warnings detected during the verification process in the verification report. Universal parameters integral to every verification request processed by Shufti are listed in the [General Parameters](/docs/general_parameters) section.
Parameters | Description
-------------- | --------------
allow_warnings | Required: **No** Type: **string** Accepted Values: **0, 1** default value: **0** If the value is set to **1**, the system will return any detected anomalies in the response, including metadata alterations, image manipulation, suspicious camera interactions, and format-related issues.If the value is set to **0**, the detected anomalies will not be returned in the response.
```json title=general-request-parameters
{
"reference": "",
"decline_on_single_step": "1",
"show_results": "1",
"allow_warnings":"1",
//other general parameters like show_feedback_form,allow_retry,ttl....
{
//services like face, document, ...
}
}
```
**Info**
View the response for the above request object by clicking [Verification Response](/docs/verification_endpoints/responses/#verification-response).
---
# Device Risk Signals
Source: https://developers.shuftipro.com/docs/backoffice/features/device_risk_signals.md
# Device Risk Signals
Shufti leverages advanced analysis to detect suspicious device and network behaviors, anomalies, and potential fraud during the verification process. If any irregularities are identified, they are flagged in the verification report, enabling businesses to detect patterns of suspicious activity, such as the use of proxies, VPNs, or automated systems. These warnings enable businesses to assess the authenticity of a user's device, location, and actions, providing a clearer picture of potential fraud risks.
Based on the warnings triggered, businesses can take informed actions, such as blocking access, requiring additional verification steps, or escalating the case for manual review to ensure the legitimacy of the user's activity and prevent fraudulent actions.
## Warnings & Descriptions
### 1. Geolocation & Identity Mismatch
This warning is shown when discrepancies between the user's geolocation and the information on their submitted document are detected. Geolocation mismatches may indicate that the user is attempting to conceal their location or use false identification.
#### a) Country Mismatch
This warning appears when the country listed on the submitted document does not align with the user’s real-time geolocation. A mismatch could indicate that the user is attempting to spoof their location to bypass regional restrictions or fraud detection mechanisms.
#### b) IP/Timezone Mismatch
This warning appears when the user’s IP geolocation does not match the timezone settings on their device. A mismatch may indicate that the user’s device is configured to appear in a different timezone than where they are physically located, which could raise concerns about their intent or authenticity.
#### c) Geo-Spoofing Detected
This warning appears when the user is suspected of using software to fake their geolocation, such as GPS spoofing applications. Geo-spoofing may be used to disguise the user’s true location or identity, a tactic often employed in fraudulent activities.
### 2. Anonymity & Masking Risks
This section identifies attempts by users to mask their true identity and location, potentially to conceal malicious intent or bypass identity verification checks.
#### a) VPN Detected
This alert is triggered when a VPN is detected, which may be masking the user’s true IP address and location. VPN usage can indicate an attempt to conceal the user’s actual geolocation, often used to bypass restrictions or fraud prevention mechanisms.
#### b) Proxy Server Detected
This alert is triggered when the user is detected to be using a proxy server to hide their real IP address. Using a proxy can obscure the user’s location and identity, often a tactic used by fraudsters or malicious users to evade detection.
#### c) Cloud Hosting Provider Detected
This warning is triggered when access is detected from a cloud hosting provider. Such IPs often indicate automated or bot-driven traffic rather than legitimate users, especially when the access pattern deviates from typical human behavior.
### 3. Suspicious Network Behavior
This category flags unusual network activity, such as rapid IP changes or usage from multiple users, which may indicate fraud or unauthorized access attempts.
#### a) Frequent IP Changes
This warning appears when the user's IP address changes rapidly within a short period. Frequent IP address changes can indicate bot-driven activity or the use of proxies/VPNs to conceal a user’s true identity.
#### b) IP Associated With Multiple Users
This warning is triggered when multiple users are detected accessing from the same IP address. It may indicate shared usage, coordinated activity, or a potential account takeover if different users are connecting from the same IP address.
### 4. Device & Browser Anomalies
This category highlights potential issues with the user's device or browser environment, which could indicate the use of automated systems or suspicious activity.
#### a) Emulated Device Detected
This warning appears when the user is detected using an emulated or virtual device rather than a physical one. Emulators can mask the true device being used, often to bypass security or fraud detection mechanisms.
#### b) Jailbroken or Rooted Device
This warning is triggered when the user is detected using a jailbroken (iOS) or rooted (Android) device. Jailbroken or rooted devices can bypass security restrictions, allowing malicious software or actions to compromise the verification process.
#### c) Multiple Individuals on Same Device
This warning is triggered when a single device is used to access multiple different user accounts. While this may sometimes result from legitimate scenarios (such as family members or colleagues sharing the same device), it can also be a strong indicator of suspicious behavior. In many cases, fraudulent actors attempt to create and manage several accounts from one device to exploit the system, manipulate activity, or bypass security measures. Therefore, device sharing is considered a high-risk pattern and warrants closer monitoring to distinguish between normal shared usage and potentially fraudulent activity.
---
# IDV Modes
Source: https://developers.shuftipro.com/docs/backoffice/features/idv_modes.md
IDV modes are designed to provide merchants with flexibility in choosing the most suitable verification approach based on their specific needs. These modes offer varying levels of speed and accuracy, enabling merchants to tailor the verification process to align with the region, industry, and nature of the transaction. Through these modes, merchants can achieve excellence in high-risk verifications and increase accuracy.
Merchants can choose or switch an IDV mode by following these simple steps:
Navigate to Backoffice > Settings > IDV Settings > IDV Modes
The following are the verification modes offered by Shufti:
**1.** Shufti Rapid
**2.** Shufti Smart Hybrid
**3.** Shufti Rapid Plus
**4.** Shufti Live Guard
### 1. Shufti Rapid
In this mode, Shufti provides fully automated AI verification, delivering results in just 10-15 seconds. It is designed to prioritize speed, making it ideal for low-risk verifications where quick processing is essential and regulatory requirements are minimal.
**Note**
Accuracy may be compromised in this mode due to the focus on speed.
### 2. Shufti Smart Hybrid
In this mode, Shufti combines the speed of AI with the accuracy of human expertise to deliver highly reliable results within 60 seconds. The AI handles the initial verification, and for certain steps where AI confidence is low, human experts step in to verify the results. This mode is designed to provide a balance between speed and accuracy, making it ideal for verifications that require both efficiency and a higher level of compliance.
### 3. Shufti Rapid Plus
In this mode, Shufti performs AI verifications in 10-15 seconds, followed by a human review within 24 hours to ensure maximum reliability and trust. This mode is ideal for use cases where quick results are needed, but more detailed analysis can follow afterward to ensure the verifications are correctly processed and accurate.
### 4. Shufti Live Guard
In this mode, Shufti ensures high accuracy by having human experts conduct real-time verifications, with a processing time of one to three minutes. It is designed for high-risk transactions and situations that require strict regulatory compliance. The involvement of human experts during the entire verification process ensures that every detail is carefully reviewed, making it the ideal choice for scenarios where precision and compliance are paramount.
## Summary
Mode
Speed
Human Involvement
Ideal for
Shufti Rapid
10-15 sec
None
Swift and low-risk onboarding
Shufti Smart Hybrid
Up to 60 sec
Conditional (threshold-based)
Both accuracy and compliance
Shufti Rapid Plus
10-15 sec (AI) + up to 24 hours (review)
Post AI, human review
Trust sensitive scenarios
Shufti Live Guard
1-3 minutes
Full real-time review by human agents
High fraud risk scenarios
**Note**
Once one IDV mode is selected, the option to switch mode remains disabled for 48 hours. Changing/switching the IDV mode applies to new verification requests only.
---
# Shufti AI
Source: https://developers.shuftipro.com/docs/backoffice/features/shufti_ai.md
Shufti AI is an AI-powered assistant built into the Shufti Backoffice that gives clients a single, conversational way to reach both their own verification data and the full depth of Shufti's product and compliance knowledge. Instead of navigating multiple dashboards, reports, and documentation pages, users ask a plain-language question and get an accurate, contextual answer.
Shufti AI's knowledge spans two areas. On one side is an account's own data: verification activity, customer records, and billing history. On the other is Shufti's complete body of product and compliance expertise: every product and service Shufti offers, the regulatory frameworks and requirements they address, including AML, KYC, KYB, and Travel Rule, supported country and document coverage, and Shufti's integration and configuration guides. Shufti AI draws on both, so responses are grounded in an account's actual data as well as Shufti's official product and regulatory documentation, rather than general knowledge.
## At a Glance
| Detail | |
| --- | --- |
| **Where** | Integrated within the Shufti Backoffice |
| **Input** | Plain-language questions, no special syntax required |
| **Grounded in** | An account's live verification, customer, and billing data, plus Shufti's product, compliance, and developer documentation |
| **Output** | Data tables, trend summaries, or explanatory answers with supporting context |
## Overview
Shufti AI can explain how Shufti's products work, walk a user through activating or configuring a verification journey, compare multiple services side by side, or clarify a compliance requirement, without the user needing to know where that information normally lives. Rather than manually pulling verification records, checking service settings, or searching documentation, users simply describe what they need in plain language, and Shufti AI returns the relevant data, explanation, or guidance.
## How It Works
Each interaction follows the same three-step flow:
1. **Request submission** - The user submits a question in plain language. No special syntax, query language, or predefined format is required.
2. **AI processing** - Shufti AI interprets the intent behind the question and determines what kind of response is needed: a data lookup, a documentation-based explanation, compliance guidance, or a combination of these.
3. **Response generation** - Shufti AI returns a response suited to the question, such as a table of records, a summary of trends, or an explanatory answer with supporting context.
## Features and Capabilities
| Feature | Description |
| --- | --- |
| **Live Data Analytics** | Retrieves verification counts, and individual verification, customer, or billing records, as structured tables. |
| **Custom Analytics** | Produces metrics, trends, and breakdowns, such as acceptance rates, decline trends, or verification volume over time, instead of single-record lookups, and surfaces usage patterns and frequently asked questions across an account. |
| **Product Guidance** | Explains how Shufti's products and features work, how to activate or configure a service, and how different products compare to one another. |
| **Documentation Search** | Searches Shufti's official developer documentation and returns a synthesized answer inline, for questions such as activating a provider or comparing two products. |
| **Compliance and Regulatory Guidance** | Provides guidance on AML, KYC, KYB, and Travel Rule requirements, including how Shufti's own products map onto specific regulatory obligations. |
| **Smart Filters** | Lets users find and segment verification records, customers, and transactions by criteria such as status, date range, or product, improving the relevance and accuracy of responses. |
| **Workflow Assistance** | Helps users navigate multi-step processes, such as setting up a verification flow or understanding what happens at each stage of an onboarding journey. |
| **Knowledge-Based Responses** | Draws on Shufti's official product documentation to answer how-to and troubleshooting questions with an explanation, not just a link. |
| **Customer 360 Profile** | Builds a composite view of a customer's verification history and account details from a single query. |
| **Chat History** | Retains previous conversations, so users can revisit past questions and answers, or ask follow-up questions with earlier context carried forward. |
## Example Questions
The examples below illustrate the types of questions Shufti AI can answer. Users are not limited to these; any question phrased in plain language within these categories is supported.
**analytics**
- Can you analyze the trend in decline reasons and provide a summary?
- Can you share the coverage details for our active eID sources?
- What are the dropout rate trends over the last quarter?
- What is our verification acceptance rate for the last three months?
- How many eIDV Pro verifications did we process this month?
- How many Travel Rule transactions did we process this month?
- Which customers were verified in the last 30 days with a pending status?
- What does my vendor comparison summary look like?
**product**
- How does a KYB check work?
- How does Shufti reduce false positives in its AML screening solution?
- What authentication solutions does Shufti provide?
- What checks are performed to validate a document's authenticity?
- What are the KYC requirements for onboarding a UK business customer?
- How does Shufti support ongoing AML monitoring?
- What is the difference between eIDV Pro and eSignature?
- Which countries and documents are supported under the KYB solution?
**backoffice**
- How does the iframe brand personalization feature work?
- What features does Shufti offer for case management?
- How do I create a UBO verification KYC journey?
- Can you design a KYC flow that includes AML screening and address verification?
- What is the self-service portal in Shufti, and what can I configure through it?
- Can you design an onboarding flow that uses 1:1 authentication?
---
# Journey Builder
Source: https://developers.shuftipro.com/docs/backoffice/plug_and_play_integration/journey_builder.md
Shufti provides a user-friendly, no-code solution for creating custom verification journeys for clients. The journey builder allows for easy customisation of verification services through a smooth drag-and-drop interface. Additionally, clients can set up and preview the end user experience in real time by selecting from a variety of available KYC options, ensuring a seamless and flawless verification process for the end users.
The KYC Journey Builder consists of two parts:
- **Creation of a No-Code KYC Journey.**
- **Generation of Verification URL and verifying your customer.**
1. **Create a No-Code KYC journey:**
- Log in to the Shufti back office > Integration > [Journey Builder.](https://backoffice.shuftipro.com/integration/verification-journey/listing)
- Click the Create New button located in the top right corner of the listing.
- Provide a unique name for the journey.
- Drag and drop the desired verification services into the builder.
- Configure the settings for each service by selecting from the available options, and previewing the journey behavior in real-time.
- Save the KYC journey template once it is set up to your satisfaction.
2. **Generation of URL link and Verifying user:**
Upon saving the KYC journey, clients can initiate user verification by:
- Selecting the "Start Demo" option. This triggers the start of the verification process, and clients can share the verification link with the end user. The end user then proceeds to complete the verification according to the predefined journey set by the client.
For clients desiring to host a verification page, a convenient option is available by clicking the support button. This action redirects them to the "Contact Us" section, allowing them to communicate their specific requirements to our team.
Additionally, clients have the capability to generate an auto code for the verification journey, in multiple [supported languages](/docs/coverage/languages) for seamless integration.
## Calling a KYC journey via API
To use the KYC journey and verify the end-users, clients need to send an API Request with the following parameters:
Parameters | Description
-------------- | --------------
journey_id | Required: **Yes** Type: **string** The unique ID for each KYC Journey Template.
reference | Required: **Yes** Type: **string** Minimum: **6 characters** Maximum: **250 characters** Each request has a unique Reference ID which is sent back to Client against each response. The Client can use the Reference ID to check status of each verification.
email | Required: **No** Type: **string** Minimum: **6 characters** Maximum: **128 characters** This field represents the email address of the end-user.
**Info**
Please ensure that you have properly copied the correct journey_id from the KYC journey listed on the KYC Journey Builder Listing Page before passing the KYC Journey object in the API. Additionally, the KYC Journey must be saved with all necessary settings.
**http**
```json
//POST / HTTP/1.1 basic auth
//Host: api.shuftipro.com
//Content-Type: application/json
//Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==
{
"journey_id": "q9pDvvCx1669874968",
"reference": "1234567",
"email": "jhondeo@shufti.com"
}
```
**javascript**
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
journey_id : "q9pDvvCx1669874968",
email : "jhondeo@shufti.com"
}
//BASIC AUTH TOKEN
//Use your Shufti account client id and secret key
var token = btoa("YOUR-CLIENT-ID:YOUR-SECRET-KEY"); //BASIC AUTH TOKEN
// if Access Token
//var token = "YOUR_ACCESS_TOKEN";
//Dispatch request via fetch API or with whatever else which best suits for you
fetch('https://api.shuftipro.com/',
{
method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token // if access token then replace "Basic" with "Bearer"
},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.json();
}).then(function(data) {
if (data.event && data.event === 'verification.accepted') {
console.log(data);
}
});
```
**php**
```php
"ref-".rand(4,444).rand(4,444),
"journey_id"=> "q9pDvvCx1669874968",
"email"=> "jhondeo@shufti.com"
];
$auth = $client_id.":".$secret_key;
$headers = ['Content-Type: application/json'];
$post_data = json_encode($verification_request);
$response = send_curl($url, $post_data, $headers, $auth);
function send_curl($url, $post_data, $headers, $auth){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$html_response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($html_response, 0, $header_size);
$body = substr($html_response, $header_size);
curl_close($ch);
return json_decode($body,true);
}
echo $response['verification_url'];
```
```javascript
let payload = {
reference : `SP_REQUEST_${Math.random()}`,
journey_id : "q9pDvvCx1669874968",
email : "johndoe@example.com"
}
var token = btoa("YOUR_CLIENT_ID:YOUR_SECRET_KEY");
fetch('https://api.shuftipro.com/', { method : 'post',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Basic ' +token
},
body: JSON.stringify(payload)}).then(function(response) {
return response.json();
}).then(function(data) { return data; });
```
**py**
```py
import requests, base64, json, hashlib
from random import randint
url = 'https://api.shuftipro.com/'
client_id = 'YOUR-CLIENT-ID'
secret_key = 'YOUR-SECRET-KEY'
verification_request = {
"reference" : "ref-{}{}".format(randint(1000, 9999), randint(1000, 9999)),
"journey_id" : "q9pDvvCx1669874968",
"email" : "johndoe@example.com"
}
auth = '{}:{}'.format(client_id, secret_key)
b64Val = base64.b64encode(auth.encode()).decode()
response = requests.post(url,
headers={"Authorization": "Basic %s" % b64Val, "Content-Type": "application/json"},
data=json.dumps(verification_request))
json_response = json.loads(response.content)
print('Verification URL: {}'.format(json_response))
```
**ruby**
```rb
require 'uri'
require 'net/http'
require 'base64'
require 'json'
require 'open-uri'
url = URI("https://api.shuftipro.com/")
CLIENT_ID = "YOUR-CLIENT-ID"
SECRET_KEY = "YOUR-SECRET-KEY"
verification_request = {
reference: "Ref-"+ (0...8).map { (65 + rand(26)).chr }.join,
journey_id: "q9pDvvCx1669874968",
email: "johndoe@example.com",
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
header_auth = Base64.strict_encode64("#{CLIENT_ID}:#{SECRET_KEY}")
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic #{header_auth}"
request.body = verification_request.to_json
response = http.request(request)
puts response.read_body
end
```
**java**
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.net.ssl.HttpsURLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.shuftipro.com";
String CLIENT_ID = "CLIENT_ID";
String SECRET_KEY = "SECRET_KEY";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// Add request header
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((CLIENT_ID + ":" + SECRET_KEY).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", basicAuth);
String payload = "{\n \"journey_id\": \"q9pDvvCx1669874968\",\n \"reference\": \"1234567\",\n \"email\": \"jhondeo@shufti.com\"\n}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Payload : " + payload);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
System.out.println(in.toString());
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Print the response
System.out.println(response.toString());
}
}
```
**cURL**
```cURL
curl --location --request POST 'https://api.shuftipro.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==' \
--data-raw '{
"journey_id": "q9pDvvCx1669874968",
"reference": "1234567",
"email": "jhondeo@shufti.com"
}'
```
**c#**
```c
var client = new RestClient("https://api.shuftipro.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==");
var body = @"{" + "\n" +
@" ""journey_id"": ""q9pDvvCx1669874968""," + "\n" +
@" ""reference"": ""1234567""," + "\n" +
@" ""email"": ""jhondeo@shufti.com""" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```
**go**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.shuftipro.com"
method := "POST"
payload := strings.NewReader(`{
"journey_id": "q9pDvvCx1669874968",
"reference": "1234567",
"email": "jhondeo@shufti.com"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Basic NmI4NmIyNzNmZjM0ZmNlMTlkNmI4WJRTUxINTJHUw==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
## Services in Journey Builder
- Face
- Document
- Document two
- Address
- Consent
- 2-Factor Authentication
- AML
- Enhanced Due Diligence
- Electronic Identity Verification
- Email Verification
**Info**
## Auto Code Generator
The Auto Code Generator allows users to automatically generate sample code for all available services, streamlining the integration process for merchants. This tool provides the necessary resources to seamlessly incorporate Shufti into various operations, whether for onsite or offsite verification requests.
The generated code supports multiple programming languages, including HTTP, Python, PHP, Ruby, and JavaScript, enabling flexibility and ease of integration across different platforms.
Please note that the Journey Builder feature is exclusively available for Onsite mode. For both onsite & offsite verification requests, you can utilize the [Auto Code Generator](https://backoffice.shuftipro.com/backoffice/api/generate-sample-code) tool available in backoffice.
---
# iFrame Design
Source: https://developers.shuftipro.com/docs/backoffice/plug_and_play_integration/iframe_branding.md
Customise the verification user interface to align with your organisation's branding guidelines.
Clients have the ability to customise the appearance of the Shufti verification iframe for end users via settings in the back office.
The iFrame design can be modified for both mobile and desktop views.
1. Navigate to > Settings > [iframe Design.](https://backoffice.shuftipro.com/settings/iframe-customization)
2. Configure the following customisations without the need for any coding.
### Buttons
You can change the following parameters in the buttons sections:
- Color of the font used in buttons.
- Background color of the buttons.
- Border color of the buttons.
### Loader
You can change the following parameters in the buttons sections:
- Color of the Shufti loader.
- Font color of the text used in loader.
- Font size of the text used in loader.
### Font
You can change the following parameters in the font sections:
- Title color and font size.
- Subtitle color and font size.
- Text color and font size of the consent.
### Logo
Add your logo in the footer of the Shufti’s iFrame:
- Upload or Drag & Drop the desired logo in the given field.
### Background
You can change the following parameters in the background sections:
- Color of the iFrame body background.
- Color and stroke (partition) of the header.
- Color and stroke (partition) of the footer.
---
# What Is Shufti MCP?
Source: https://developers.shuftipro.com/docs/mcp/intro.md
Shufti MCP is a Model Context Protocol server that connects the AI agents your team already uses, such as Claude and ChatGPT, directly to your Shufti account. It allows merchants to interact with Shufti's identity verification and compliance services in plain language.
Instead of building custom API integrations for every AI workflow, developers can connect compatible AI agents such as **Claude Desktop**, **Claude Code**, **ChatGPT**, **Cursor**, and **OpenAI Codex** with Shufti MCP. Once connected, the AI agent can call the required Shufti tools to perform verification checks, retrieve verification results, run compliance checks, and answer product-related queries with referenced information.
**Info**
**Base URL:** `https://ai.shuftipro.com/mcp`
## At a Glance
| Detail | |
| --- | --- |
| **Tools available** | 27 (7 knowledge, 20 verification) |
| **Works with** | Claude, ChatGPT, Claude Code, Cursor, OpenAI Codex, and other MCP clients |
| **Authentication** | Your Shufti Client ID and Secret Key |
| **Setup time** | A few minutes — see [Connect Your Agent](/docs/mcp/connecting) |
## Key Capabilities
You connect once with your Shufti Client ID and Secret Key, and the agent gets access to every tool in one go:
- **Product knowledge** - Product Q&A, FAQs, and the capability matrix, answered from Shufti's knowledge base and official documentation.
- **Verification and compliance** - Document, face, address, AML, KYB, e-signature, and the rest of the verification checks.
See the [Tool Reference](/docs/mcp/tools) for the full list.
## Common Use Cases
- **User onboarding and identity verification** - users can initiate document verification directly through an AI assistant; the agent calls `initiate_document_verification` and generates a **verification URL** that can be shared with the user to complete the process in their browser.
- **AML screening and compliance checks** - compliance teams can perform AML screening through a conversational interface; the agent calls `initiate_aml_screening` and retrieves the result either instantly or after polling for completion.
- **Verification status tracking** - users can retrieve the latest status of an ongoing verification without accessing separate dashboards or systems; the agent calls `get_verification_status` using the reference ID and returns the current status and outcome.
See [Worked examples](/docs/mcp/tools#worked-examples) for the actual request and response shape behind the first two.
## Requirements
- An active Shufti Backoffice account with access to required services.
- API credentials generated from **Settings → API Configuration → API Keys** in Backoffice.
- An MCP-compatible AI client configured to connect with Shufti MCP. Refer to the [Connect Your Agent](/docs/mcp/connecting) guide for setup instructions.
## Privacy
The [Privacy Notice](/docs/mcp/privacy-notice) explains what the connector stores, what it does not, and what reaches the AI platform you connect from. It supplements the [Shufti Services Privacy Notice](https://shuftipro.com/services-privacy-notice/).
---
# Connect Your Agent
Source: https://developers.shuftipro.com/docs/mcp/connecting.md
**Info**
**Base URL:** `https://ai.shuftipro.com/mcp`
Pick your client below and follow its steps to connect.
**claude**
1. Go to **Settings → Connectors → Add custom connector**.
2. Enter the base URL above.
3. Claude registers itself automatically and opens the connection flow in your browser.
4. Claude redirects you to the Shufti MCP login page. Enter the Client ID and Secret Key from your Backoffice, then authenticate. That's it, you're connected.
5. Claude now has access to every tool, using your account for every verification call.
**Tip**
If your access expires, disconnect and reconnect the connector, then re-enter your credentials from step 4.
**chatgpt**
1. Go to **Settings → Security & Login**, scroll down to **Developer mode**, and enable it. This unlocks support for unverified connectors, so only enable it if you're comfortable with that.
2. Go to **Plugins**, click **+ Add**, and enter a name along with the base URL above.
3. Authenticate the same way as in Claude, and ChatGPT will connect to your MCP server.
**claude-code**
1. Open Terminal.
2. Add the Shufti MCP server:
```bash
claude mcp add --transport http shufti https://ai.shuftipro.com/mcp
```
3. Run Claude Code.
4. Run `/mcp` inside Claude Code and follow the authentication prompt.
5. Enter the Client ID and Secret Key from your Backoffice when asked, the same as in Claude.
**cursor**
1. Open (or create) `.cursor/mcp.json`.
2. Add a `shufti` entry:
```json title=.cursor/mcp.json
{
"mcpServers": {
"shufti": {
"command": "npx",
"args": [
"mcp-remote",
"https://ai.shuftipro.com/mcp"
]
}
}
}
```
3. Restart Cursor. It will prompt you to authenticate, the same as in Claude.
**codex**
1. Open Terminal.
2. Add the Shufti MCP server:
```bash
codex mcp add shufti --url https://ai.shuftipro.com/mcp
```
3. Log in:
```bash
codex mcp login shufti
```
4. Enter the Client ID and Secret Key from your Backoffice when prompted, the same as in Claude.
**other**
Any client supporting MCP's Streamable HTTP transport and OAuth 2.1 with PKCE can connect the same way. Point it at the base URL above and follow that client's own setup.
---
# Available Tools
Source: https://developers.shuftipro.com/docs/mcp/tools.md
**Info**
All 27 tools below are available as soon as you connect with your Shufti Client ID and Secret Key. See [Connect Your Agent](/docs/mcp/connecting).
**knowledge**
**7 tools** for product Q&A and FAQs.
| Tool | Purpose |
| --- | --- |
| `ask_shufti_expert` | Product Q&A with citations |
| `get_shufti_faq` | Curated FAQ lookup by industry/persona |
| `search_shufti_knowledge` | Full-text search with source citations |
| `compare_with_competitor` | Searches the knowledge base for content relevant to a named competitor |
| `list_shufti_capabilities` | Full product matrix |
| `get_vendor_selection_guide` | Industry onboarding checklist |
| `explain_shufti_mcp` | Explains this connector itself |
**verification**
**20 tools** to run and manage identity, business, and document verifications.
| Tool | Purpose |
| --- | --- |
| `initiate_document_verification` | Passport, national ID, driving licence, or card verification |
| `initiate_face_verification` | Facial biometrics, liveness, and 1:1 authentication |
| `initiate_address_verification` | Utility bill, bank statement, or ID-based address check |
| `initiate_aml_screening` | Individual AML/sanctions screening |
| `initiate_business_aml_screening` | Business/entity AML screening |
| `initiate_kyb_verification` | Know Your Business, registry lookup or document upload |
| `initiate_eidv_verification` | Electronic ID / government database verification |
| `initiate_consent_verification` | Handwritten or printed consent capture |
| `initiate_phone_verification` | OTP-based phone ownership check |
| `initiate_email_verification` | OTP-based email ownership check |
| `initiate_questionnaire_verification` | Runs a Due Diligence form built in Backoffice |
| `initiate_risk_assessment` | Score-based risk analysis |
| `initiate_videoident_verification` | Agent-led live video KYC |
| `initiate_esignature_verification` | Electronic document signing |
| `initiate_investor_verification` | Accredited-investor checks |
| `initiate_combined_verification` | Runs several services in one call |
| `get_verification_status` | Poll a verification by reference |
| `delete_verification_record` | Delete a verification record |
| `get_access_token` | Get a short-lived token for viewing proof URLs |
| `validate_webhook_signature` | Verify a webhook's signature |
All verification tools accept a common set of optional parameters, such as `reference`, `callback_url`, `country`, `language`, and `journey_mode` (`onsite` or `offsite`). These are documented per service in the [REST API docs](/docs/get_started).
## Worked Examples
**doc**
Call `initiate_document_verification` with just a country:
```json title=request
{ "country": "GB" }
```
Response:
```json title=response
{
"success": true,
"service": "document",
"reference": "mcp-20260717123310-16ac6edf",
"event": "request.pending",
"verification_url": "https://app.shuftipro.com/verification/process/...",
"next_step": "Open verification_url for onsite journey: https://app.shuftipro.com/verification/process/..."
}
```
Send the user that `verification_url`. Once they've completed it, poll with the `reference`:
```json title=request
{ "reference": "mcp-20260717123310-16ac6edf" }
```
```json title=response
{
"success": true,
"reference": "mcp-20260717123310-16ac6edf",
"event": "request.pending",
"verification_result": {},
"country": "GB"
}
```
`event` stays `request.pending` until the end user actually completes the `verification_url`. That's expected, not an error.
**aml**
Call `initiate_aml_screening` with a name:
```json title=request
{ "full_name": "Test Person" }
```
Response:
```json title=response
{
"success": true,
"service": "aml",
"reference": "aml-20260717123312-c0c54d52",
"event": "verification.accepted",
"verification_result": {
"background_checks": 1
},
"next_step": "Poll get_verification_status or wait for callback_url webhook."
}
```
`verification_result.background_checks` reflects the screening outcome. Read it directly, or poll `get_verification_status` with the `reference` for the full breakdown.
**Caution**
**Known limitations:** Products without a public Shufti developer API today aren't exposed here, including Behavioral Biometrics, Travel Rule, standalone Crypto Wallet Screening, and the Deepfake Detector. Questionnaire and Investor Verification forms must also be built in Backoffice first, since these tools only run a form that already exists.
---
# Troubleshooting & Fixes
Source: https://developers.shuftipro.com/docs/mcp/troubleshooting.md
**Info**
Most connection issues come down to one thing: reconnect the connector and re-enter your Client ID and Secret Key. Try that first if you're in a hurry.
| Symptom | Cause | Fix |
| --- | --- | --- |
| Connector won't register or reach the server | Wrong or mistyped base URL | Confirm the URL is exactly `https://ai.shuftipro.com/mcp` |
| `401` on a tool call | Access token expired | Reconnect the connector to refresh it |
| `tool_not_permitted` | Connection wasn't authenticated with a valid Client ID and Secret Key | Reconnect and complete the sign-in step with your API keys |
| `text_confirmation_required` from `initiate_consent_verification` | No `text` given and the default wasn't confirmed | Pass `text`, or resend with `confirm_use_default_text="1"` |
| `callback_url_not_registered` on a verification call | The callback domain isn't registered in your account. Shufti whitelists callback domains per account, so the connector's default isn't automatically allowed on yours | Register `https://backoffice.shuftipro.com` in Backoffice callback settings, or pass your own `callback_url` on a domain you've already registered. You can also skip webhooks entirely and poll `get_verification_status` instead |
| Verification calls fail after connecting | Stale or incorrect API keys | Go to Backoffice → Settings → API Configuration → API Keys, re-copy your Client ID, generate a fresh Secret Key if needed, and reconnect |
| `429` while connecting | Rate limited | Wait briefly and retry |
| Timeout on an offsite call | Large base64 proof upload | Retry with a smaller file, or use the onsite journey instead |
| Knowledge tools return nothing useful | Query too narrow, or content gap | Rephrase, or try `search_shufti_knowledge` with broader terms |
| `Shufti API error` | Shufti API rejected the request | Check the `details` field against the [relevant service docs](/docs/get_started) |
**Tip**
**Still stuck?**
- Double-check your Client ID and Secret Key match what's in Backoffice → Settings → API Configuration → API Keys.
- If tools are missing, confirm you completed the sign-in step and entered valid API keys when connecting.
- Try disconnecting and reconnecting the connector, since this resolves most token and permission issues.
---
# Privacy Notice
Source: https://developers.shuftipro.com/docs/mcp/privacy-notice.md
This notice explains what the Shufti MCP connector does with data when you connect it to an AI agent. It is written for **Shufti customers and their authorized users**, not for individuals being verified.
**Info**
**Effective date:** 28 August 2026 · **Version:** 1.1
This supplements the [Shufti Services Privacy Notice](https://shuftipro.com/services-privacy-notice/), which still governs all verification, biometric, AML, and document processing. Where this notice is silent, that one applies.
## Our Role
| Data | Our role |
| --- | --- |
| Your API credentials and connector usage records | **Controller** — we decide how this is processed, for authentication, security, and support |
| Verification data passing through the connector | **Processor**, on your instructions. You remain the controller of your end users' data |
## What We Process
| What | Details | Legal basis |
| --- | --- | --- |
| **Your API credentials** | Your Secret Key is **encrypted at rest** and validated before being stored. Your Client ID is stored alongside it. Your account identifier is a one-way hash of your Client ID, not your name or email | Contract — UK GDPR Art. 6(1)(b) |
| **Verification data** | Document images, faces, names, dates of birth, addresses, phone numbers, and company details are passed to the Shufti API and **not stored by the connector** — they are held in memory only for the duration of the request | Determined by you as controller |
| **Usage records** | Tool name, scopes, response status, your account identifier, a hashed IP, and your user agent. Request contents are redacted: we record field *names* and a flag that a sensitive field was present, never the values | Legitimate interests — Art. 6(1)(f) |
Your Secret Key is never shown back to you, returned to the AI agent, or written to logs.
**Caution**
The `reference`, `country`, and `language` values on a call **are** recorded in full. The reference is yours to choose — **do not put personal data in it**.
Hashed IP addresses are treated as **pseudonymized, not anonymized**. The IPv4 space is small enough to enumerate, so a hashed address can still be linked back to a real one.
## Who Receives Your Data
Data reaches the AI agent's operator in both directions. Document images and selfies are uploaded into the agent's conversation before the connector calls Shufti. The limits below apply only to what we return.
Verification results are delivered into your AI agent's conversation, so its operator — Anthropic for Claude, OpenAI for ChatGPT — processes them. Those responses can include verification status, decline reasons, AML matches, and data extracted from documents.
**Caution**
**That platform is not our sub-processor.** You choose which agent to connect, and its operator processes that data under your own relationship with them. Any transfer outside the UK and EEA that the operator makes is governed by that arrangement, not by us.
Where Shufti itself transfers personal data outside the UK and EEA, that transfer is appropriately supported by relevant safeguards, including but not limited to adequacy decisions, Standard Contractual Clauses (SCCs) or the UK International Data Transfer Agreement (IDTA) backed by transfer risk assessments (TRAs), and Binding Corporate Rules (BCRs).
If sending data to the agent operator is not acceptable for a workflow, use the [REST API](/docs/get_started) directly instead.
Where we can, we limit what is returned: status responses are summarized by default, truncated if oversized, and have image payloads replaced with a placeholder.
## Retention
| Data | Retained |
| --- | --- |
| Access tokens | Expire after 24 hours; the record is deleted 7 days after expiry |
| Refresh tokens | Rotated on each use; the superseded token is deleted at that point |
| Authorization codes | Minutes — single use |
| Your encrypted Secret Key | Held in the token record and deleted with it |
| Usage records | Reviewed every 24 months from the date of the call |
| Verification data | Not retained |
**Caution**
**Disconnecting does not delete the stored record.** It stops your agent making calls, but the token and encrypted Secret Key are removed on the schedule above. To make stored credentials unusable immediately, **rotate your keys** in Backoffice → Settings → API Configuration → API Keys.
## Security
- OAuth 2.1 with PKCE over HTTPS; unauthenticated requests to `/mcp` are rejected.
- Access and refresh tokens are stored only as hashes — we cannot recover the original.
- Your Secret Key is encrypted at rest.
- Scopes are enforced twice: when the tool list is issued, and again on every call. A knowledge-only connection cannot reach a verification tool.
- Rate limiting on the authorization and token endpoints.
**Tip**
**Connecting with "Explore Shufti" processes no verification data at all** — no account, no API keys, and no calls to the Shufti API. Only the knowledge tools are available, answered from Shufti's own published product material.
## Your Rights
- **Rotate your credentials** in Backoffice — the immediate control.
- **Disconnect** from your agent's connector settings at any time.
- **Choose a narrower mode** — connect with "Explore Shufti" if you only need product information.
- **Control the callback destination** with `callback_url`; only domains registered in your Backoffice are accepted.
- **Raise a complaint** — you can complain to the Information Commissioner's Office at [ico.org.uk](https://ico.org.uk).
Your rights of access, rectification, erasure, restriction, portability, and objection are described in the [Services Privacy Notice](https://shuftipro.com/services-privacy-notice/) and exercised through the same contacts. They apply to the data described here.
## Contact
**Shufti Pro Limited**, Office 408 Coppergate House, 10 Whites Row, London E1 7NF, United Kingdom, is the controller for credentials and usage records, and processor for verification data, as set out above.
For privacy questions or to reach our Data Protection Officer, use the contacts in the [Services Privacy Notice](https://shuftipro.com/services-privacy-notice/). We update this notice when the connector changes in a way that affects it; the effective date above records the current version.
---
# Introduction
Source: https://developers.shuftipro.com/docs/mobile/intro.md
# Introduction
Benefits of using Shufti mobile SDK:
A user-friendly interface with a straightforward API integration procedure enables businesses to onboard legit customers seamlessly and helps to develop trustworthy B2B relationships. Shufti’s ID verification services are fit for all industries, including FinTechs, Virtual asset service providers, banks and much more. Choosing Shufti can fight crimes, increase productivity, and enhance conversion rate in less than a second.
User-Friendly Interface:
Shufti's Mobile SDK offers an intuitive interface that guides users effortlessly through the process of capturing photos and videos, ensuring a seamless experience.
Flexible Integration:
The SDK is designed with a modular architecture, enabling easy integration of the photo and video capture functionality into your application's workflow.
Superior Image Analysis:
Shufti's Mobile SDK utilizes sophisticated image analysis technology to verify that the captured images meet the high standards required for Shufti's identity verification process, ensuring optimal success rates.
Effortless Image Transmission:
The SDK facilitates direct transmission of images to the Shufti service, streamlining the integration process and making the verification procedure more efficient.
Instantaneous Feedback Mechanism:
Shufti's Mobile SDK provides immediate feedback during the image capture process, allowing users to address any issues in real-time and ensuring the submission of high-quality images for verification.
SDK Platforms
Explore versatile platform compatibility for seamless integration and deployment.
[](/docs/mobile/platforms/android-sdk)
[](/docs/mobile/platforms/ios-sdk)
[](/docs/mobile/platforms/flutter-sdk)
[](/docs/mobile/platforms/react-sdk)
[](/docs/mobile/platforms/cordova-sdk)
SDK Theme
You can customize the SDK theme to match your application, choosing from Light (default), Dark, or a fully customized theme.
Light Theme
Dark Theme
Custom Theme
Demo Application
You can install the Shufti's demo application for Android and iOS platforms to see the basic verification flow using Shufti.
Getting started
To use Shufti's mobile SDKs, you must make some preparations
Obtain authorization keys
Choose required platform
Authorization Keys
To generate requests using mobile SDKs, you need to obtain the authorization keys by following the given steps
here.
Permissions
Shufti's mobile SDKs require few in-app permissions to function correctly.
**Caution: Note**
All the permissions are already handled in SDKs
---
# Android SDK
Source: https://developers.shuftipro.com/docs/mobile/platforms/android-sdk.md
# Android SDK
## Getting Started
#### Latest Version:  (Changelog)
### Requirements
#### Device Requirement
#### Project Requirement
AndroidX Support
Shufti SDK requires AndroidX 1.0.0 or later. If you haven't switched to AndroidX in your app yet then follow thisguide
Enable Java 8
Shufti SDK requires Java 8 language features to be enabled in your project. If it is not already enabled, add this to your app/build.gradle file under the android section
```js
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
```
### Resources
## Integration
### SDK Integration Guide
**Tip: Tip**
It’s always recommended to use the updated version
Step 1
Go to root-level setting.gradle in your project and add the following:
```js {6} title="setting.gradle"
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' } // Add this line
}
}
```
OR
Go to
project
>
android
>
build.gradle
file and add the following
```js {5} title="build.gradle"
allprojects {
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' } // add this line
}
}
```
Step 2
In build.gradle(Module) enable dataBinding true.
```js title="app/build.gradle"
android {
//Rest of your code
dataBinding {
enabled = true
}
}
```
Step 3
In build.gradle(Module) add the following implementation
```js title="app/build.gradle"
implementation 'com.github.shuftipro:android-onsite-sdk:+'
```
You can find latest version from
here
## Basic Usage
The following objects are necessary to initialise the SDK:
**Caution: Note**
Make sure you have obtained authorization credentials before proceeding. You can get client id or secret key and generate access token like **[this.](/docs/get_started/#authentication)**
### 1. Authorization
The following code snippet shows how to use the access token in auth object.
**Java**
```jsx
JSONObject AuthKeys = new JSONObject();
try{
AuthKeys.put("auth_type","access_token");
AuthKeys.put("access_token","sp-accessToken");
} catch (JSONException e) {
e.printStackTrace();
}
```
**Kotlin**
```jsx
val AuthKeys = JSONObject().apply {
put("auth_type", "access_token")
put("access_token", "sp-accessToken")
}
```
Or
#### Encrypted ID
If you do not want to use the access token, you can pass an empty auth object and use the encrypted ID instead.
Make an empty auth object
**Java**
```jsx
JSONObject AuthKeys = new JSONObject();
try{
AuthKeys.put("auth_type","");
AuthKeys.put("access_token","");
} catch (JSONException e) {
e.printStackTrace();
}
```
**Kotlin**
```jsx
val AuthKeys = JSONObject().apply {
put("auth_type", "")
put("access_token", "")
}
```
Then add the encrypted_id in the Request Object.
**Java**
```jsx
JSONObject requestObject = new JSONObject();
try{
requestObject.put("encrypted_id", "LNXqWIXXXXXXXXXXXXXXXXXXXCrJKf");
} catch (JSONException e) {
e.printStackTrace();
}
```
**Kotlin**
```jsx
val requestObject = JSONObject().apply {
put("encrypted_id", "LNXqWIXXXXXXXXXXXXXXXXXXXCrJKf")
}
```
The encrypted_id is generated from the verification_url returned by the Shufti API response.
```js
{
"reference": "XXXXx",
"event": "request.pending",
"verification_url": "https://app.shuftipro.com/verification/process/LNXqWIXXXXXXXXXXXXXXXXXXXCrJKf"
}
```
In the above example, the encrypted ID is the value after /process/ in the verification_url.
The encrypted_id value is of type String.
### 2. Configuration
The Shufti’s mobile SDKs can be configured on the basis of parameters provided in the config object. The details of parameters can be found here
**Java**
```jsx
JSONObject Config=new JSONObject();
try{
Config.put("base_url", "api.shuftipro.com");
Config.put("consent_age", 16);
Config.put("active_liveness", true);
} catch (JSONException e) {
e.printStackTrace();
}
```
**Kotlin**
```jsx
val Config = JSONObject().apply{
put("show_requirement_page", false)
put("base_url", "api.shuftipro.com")
put("consent_age", 16)
put("active_liveness", true);
}
```
### 3. Request Object
This object contains the service objects and their settings through which the merchant wants to verify end users.
Complete details of service objects and their parameters can be found here
**Java**
```js
JSONObject requestObject = new JSONObject();
try{
requestObject.put("reference", "Unique-Reference");
requestObject.put("country", "");
requestObject.put("language", "");
requestObject.put("email", "");
requestObject.put("callback_url", "");
requestObject.put("verification_mode", "image_only");
requestObject.put("show_results", "1");
requestObject.put("allow_retry", "0");
requestObject.put("show_ocr_form", "0");
requestObject.put("allow_warnings", "1");
//Creating Face object
JSONObject faceObject = new JSONObject();
faceObject.put("proof", "");
requestObject.put("face", faceObject);
//Creating Document object
JSONObject documentObject = new JSONObject();
ArrayList