Skip to main content

Request Parameters

info

Shufti Pro uses the following BASE URL for Video KYC: https://api.shuftipro.com/service/real_time/verification

The parameters mentioned below are applicable for Onsite which is either with OCR or without OCR.

ParametersDescription
referenceRequired: Yes
Type: string
Minimum: 6 characters
Maximum: 250 characters
Each request is issued a unique reference ID which is sent back to Shufti Pro’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.
countryRequired: 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 for country codes.
languageRequired: No
Type: string
Length: 2 characters
If the Shufti Pro 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.
emailRequired: No
Type: string
Minimum: 6 characters
Maximum: 128 characters
This field represents email of the end-user.
callback_urlRequired: No
Type: string
Minimum: 6 characters
Maximum: 250 characters
A number of server-to-server calls are made to Shufti Pro’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_urlRequired: 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_formRequired: 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_reviewRequired: 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 Pro has completed. Once the user submits any/all required documents, Shufti Pro returns a status of review.pending. The client can then review the verification details and Accept OR Decline the verifications from the back-office.
faceRequired: 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.
documentRequired: 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.
addressRequired: 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.
consentRequired: 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.
phoneRequired: No
Type: object
This service key corresponds to Phone Verification service of Shufti Pro. 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.
background_checksRequired: No
Type: object
This service key corresponds to AML Screening service offered by Shufti Pro. An AML background check is performed for every end-user in this service against a financial risk database compiled by Shufti Pro
Example 1: {"name" : "", "dob" : "" }
For more details Background Check Service.

Face Service

The face verification of end-users is the simplest to perform. Shufti Pro authenticates the liveness of the face image of the user.


face-service-sample-object
{
"face" : {}
}

Document Service

Shufti Pro 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 Pro will give an option to end-users to verify their data from any of the given document types.


ParametersDescription
supported_typesRequired: 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"]
dobRequired: No
Type: string
Format: yyyy-mm-dd
Provide a valid date.
Example: 1990-12-31
ageRequired: 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_numberRequired: No
Type: string
Maximum: 100 characters
Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores and commas.
Example: 35201-0000000-0, ABC1234XYZ098
issue_dateRequired: No
Type: string
Format: yyyy-mm-dd
Provide a valid date.
Example: 2015-12-31
expiry_dateRequired: No
Type: string
Format: yyyy-mm-dd
Provide a valid date.
Example: 2025-12-31
genderRequired: 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_dataRequired: No
Type: string
Value Accepted: 1
Provide 1 for enabling enhanced data extraction for the document. Shufti Pro provides its customers with the facility of extracting enhanced data features using OCR technology. Now, instead of extracting just personal information input fields, Shufti Pro 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.
nameRequired: 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_instructionsRequired: 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_formRequired: 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.

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 Pro will give an option to end-users to verify their data from any of the given document types.


ParametersDescription
supported_typesRequired: 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"]
dobRequired: No
Type: string
Format: yyyy-mm-dd
Provide a valid date.
Example: 1990-12-31
ageRequired: 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_numberRequired: No
Type: string
Maximum: 100 characters
Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores and commas.
Example: 35201-0000000-0, ABC1234XYZ098
issue_dateRequired: No
Type: string
Format: yyyy-mm-dd
Provide a valid date.
Example: 2015-12-31
expiry_dateRequired: No
Type: string
Format: yyyy-mm-dd
Provide a valid date.
Example: 2025-12-31
genderRequired: 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_dataRequired: No
Type: string
Value Accepted: 1
Provide 1 for enabling enhanced data extraction for the document. Shufti Pro provides its customers with the facility of extracting enhanced data features using OCR technology. Now, instead of extracting just personal information input fields, Shufti Pro 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.
nameRequired: 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_instructionsRequired: 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_formRequired: 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.

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.


ParametersDescription
supported_typesRequired: 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_addressRequired: No
Type: string
Minimum: 6 characters
Maximum: 250 characters
Allowed Characters are numbers, alphabets, dots, dashes, spaces, underscores, hashes and commas.
address_fuzzy_matchRequired: 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_dateRequired: No
Type: string
Format: yyyy-mm-dd
Provide a valid date.
Example: 2015-12-31
nameRequired: 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_instructionsRequired: 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_formRequired: 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.

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"
}
}

Customised documents/notes can also be verified by Shufti Pro. 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.


ParametersDescription
supported_typesRequired: 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"]
textRequired: Yes
Type: string
Minimum: 2 characters
Maximum: 100 characters
Provide text in the string format which will be verified from a given proof.
with_faceRequired: 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.

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 Pro. 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 Pro 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).


ParametersDescription
phone_numberRequired: 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 Pro will directly ask the end-user for phone number if this field is missing or empty.
random_codeRequired: No
Type: string
Minimum: 2 characters
Maximum: 10 characters
Provide a random code. If this field is missing or empty. Shufti Pro will generate a random code.
textRequired: 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 Pro will generate a random code and append the code with this message at the end.

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 Pro 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.


Ongoing_request_for_AML_checks
ParametersDescription
dobRequired: 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.
nameRequired: 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.
ongoingRequired: No
Accepted values: 0, 1
Default: 0
This Parameter is used for Ongoing AML Screening, and is allowed only on Production Accounts. If Shufti Pro 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.
filtersRequired: 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.

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"]
}
}

background_checks-service-sample-object
{
"background_checks" : {
"name" : {
"full_name" : "John Carter Doe"
},
"dob" : "1995-10-10",
"filters" : ["sanction", "fitness-probity", "warning", "pep"]
}
}

background_checks-service-sample-object
{
"background_checks" : {
"name" : {
"first_name" : "John",
"middle_name" : "Carter",
"last_name" : "Doe"
},
"filters" : ["sanction", "fitness-probity", "warning", "pep"]
}
}