Skip to content

Verifications

A verification is a check of an applicant against a set of verification types, for example, DOCUMENT, FACIAL or AML. Each verification belongs to one applicant and uses the configuration of one form.

How it works

  1. Create an applicant and add the applicant data: profile, documents with files, addresses.
  2. Create a verification. Our system checks that the applicant has the data the selected verification types require, charges your balance and starts processing.
  3. Our system sends the VERIFICATION_STATUS_CHANGED callback when the verification status changes, and the VERIFICATION_COMPLETED callback when the result is ready.
  4. Get the verification to check the result of each verification type and its decline reasons.

Verification statuses

StatusDescription
unusedThe verification ID is reserved, but the applicant has not submitted the form yet
pendingOur system is processing the verification
completedThe verification is complete. The verified parameter shows the result: true — approved, false — declined

What you can do

  • Create a verification for an existing applicant.
  • Get a verification and its result.
  • Change the status of a verification, for example, after a manual review on your side.
  • Get a PDF report of a verification.
  • Get the list of verifications created on a specific date.

Create verification

Request

Create a verification for an existing applicant. Our system checks the applicant data against the selected verification types, charges your balance and starts processing. When processing is complete, our system sends the VERIFICATION_COMPLETED callback to your callback URL.

Before you create a verification, add the applicant data that the selected verification types require: profile data, documents with files, addresses, affiliated persons. See Required applicant data below.

Form configuration

A verification always uses a form. Parameters that you do not send — types, callback_url, return_applicant, age_restriction, applicant_email_notification — are taken from the configuration of the form specified in form_id. The form also defines the retry blocks and the limit of verification attempts.

Required applicant data

Verification typeRequired applicant data
PROFILENo data is checked before the verification is created
DOCUMENTAn identity document (PASSPORT, DOMESTIC_PASSPORT, GOVERNMENT_ID, PERMANENT_RESIDENCE_PERMIT, REFUGEE_CARD, FOREIGN_CITIZEN_PASSPORT, DRIVERS_LICENSE, DIPLOMATIC_PASSPORT, VISA, VOTING_CARD, VEHICLE_PASSPORT or OTHER) with at least one file
FACIALAn identity document with at least one file, and a SELFIE_IMAGE, SELFIE_WITH_DOCUMENT or SELFIE_WITH_CREDIT_CARD document with front_side_id
ADDRESSA DOCUMENT verification in the same request or in a previous verification of the applicant. An identity document with at least one file, and an ADDRESS_DOCUMENT document with front_side_id
TAX_IDA DOCUMENT verification in the same request or in a previous verification of the applicant. An identity document with at least one file, and a TAX_ID_NUMBER document with front_side_id or document_number
AMLA DOCUMENT verification in the same request or in a previous verification of the applicant. An identity document with at least one file, and a FINANCIAL_DOCUMENT document
FINANCIALAn identity document with at least one file, and a FINANCIAL_DOCUMENT document with front_side_id
PAYMENT_METHODA CREDIT_CARD or BANK_STATEMENT document with front_side_id or back_side_id. For a new BANK_STATEMENT document without a DOCUMENT verification, the applicant profile with first_name and last_name
VIDEOA VIDEO document
DATABASE_SCREENINGOne of: the applicant profile with first_name and last_name, an identity document with at least one file, or a TAX_ID_NUMBER document with front_side_id
QUESTIONNAIREA questionnaire of the applicant
COMPANYA COMPANY applicant. Affiliated persons with the AUTHORISED and BENEFICIAL types, a REGISTRATION_COMPANY, COMPANY_LEGAL_ADDRESS, AUTHORISED_PERSON or COMPANY_OWNERSHIP document, and a REGISTERED or BUSINESS address
BIOMETRIC_AUTHENTICATION, LIVE_VIDEO, ADVERSE_MEDIA_CHECK, QESNo data is checked before the verification is created

The form configuration can relax some of these checks. For example, a form can disable the address document upload or skip the Tax ID page.

Compatibility of types

  • A PERSON applicant can not have the COMPANY type.
  • A COMPANY applicant must have the COMPANY type. You can combine COMPANY only with QUESTIONNAIRE.
Verification limits
  • Live mode: maximum 35 verifications for one applicant.
  • Test mode: maximum 3 verifications for one applicant, 3 verifications per minute and 20 verifications per 24 hours.
  • The form can set its own limit of verification attempts for one applicant.
Security
API-Key
Bodyapplication/json
applicant_idstring, = 36 charactersrequired

A unique identifier of an applicant, that is assigned by our system after an applicant object was created with a “Create an applicant” request

Example:"27c5caea93ee4656881ef9a30fadd21a3768"
form_idstring or null, = 36 charactersrequired

A unique identifier of a form, assigned by our system after it is created in the Dashboard

Example:"27c5caea93ee4656881ef9a30fadd21a3768"
typesArray of strings, non-empty, unique

A list of verification types to run for the applicant. Values are case-insensitive.

If you do not send this parameter, our system uses the verification types configured in the form specified in form_id. If you send it, our system uses your list instead of the form configuration.

Items Enum:"PROFILE""DOCUMENT""FACIAL""BIOMETRIC_AUTHENTICATION""ADDRESS""AML""ADVERSE_MEDIA_CHECK""DATABASE_SCREENING""FINANCIAL""VIDEO"
Example:
[ "DOCUMENT", "FACIAL" ]
callback_urlstring, (uri), <= 2048 characters

The HTTPS endpoint URL where our system sends callbacks for this verification. Your server should respond with a 200 OK status to acknowledge receipt.

If you do not send this parameter, our system uses the callback URL configured in the form specified in form_id.

Example:"https://example.com/kycaid/callbacks"
language_codestring

The applicant's language. Our system uses it for applicant communication, for example, verification result emails. Values are case-insensitive. To get the list of supported languages, use the "Get languages" request.

If you do not send this parameter, our system detects the language from the Accept-Language request header.

Example:"EN"
return_applicantboolean

Defines whether our system includes the applicant object in the VERIFICATION_COMPLETED callback.

If you do not send this parameter, our system uses the value configured in the form specified in form_id.

Example:true
age_restrictioninteger, [ 1 .. 99 ]

The minimum allowed age of the applicant, in years.

If you do not send this parameter, our system uses the age restriction configured in the form specified in form_id.

Example:18
applicant_email_notificationboolean

Defines whether our system sends the verification result email to the applicant.

If you do not send this parameter, our system uses the value configured in the form specified in form_id.

Example:false
{ "applicant_id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6", "form_id": "f1e2d3c4b5a6f1e2d3c4b5a6f1e2d3c4b5a6" }

Responses

OK

The request was successful, and our system created the verification.

Bodyapplication/json
verification_idstring or null, = 36 characters

A unique identifier for a verification, assigned by our system after a verification is created using the “Create a verification" request

Example:"27c5caea93ee4656881ef9a30fadd21a3768"
applicant_idstring, = 36 characters

A unique identifier of an applicant, that is assigned by our system after an applicant object was created with a “Create an applicant” request

Example:"27c5caea93ee4656881ef9a30fadd21a3768"
Response
{ "verification_id": "27c5caea93ee4656881ef9a30fadd21a3768", "applicant_id": "27c5caea93ee4656881ef9a30fadd21a3768" }