Enhanced KYC

NOTE

Only available to licensed organisations. Please contact compliance@usesmileid.com if you need access to this product.

Overview

The Enhanced KYC API allows you to query the Identity Information for an individual using their ID number from one of our supported ID Types. This API will return the personal information of the individual found in the database of the ID authority.

Integration Options

Only available using Mobile, Server-to-Server and Rest APIs.

Asynchronous vs Synchronous

This API is available as both an Asynchronous API (recommended) which guarantees an eventual response regardless of ID authority availability and as a Synchronous API to be used in real time environments such as mobile applications which does not guarantee a response in the case that an ID authority is unavailable. For high volume applications the Asynchronous API is required. If you are using the Asynchronous API you must have a callback endpoint in your request where the response will be delivered. The urls for the endpoints are:

The size of the payload sent to your callback varies based on the size of image returned by the ID authority. We recommend your callback should accept payloads up to 1.5MB in size.

Asynchronous:

Synchronous:

Request Values

The Enhanced KYC API has the following input parameters which should be contained in a JSON body object submitted to the endpoint

Request Type: Post

Example JSON Body

{
    "callback_url": "example.webhook.com",
    "country": "NG",
    "dob": "2000-09-20",
    "first_name": "Leo",
    "gender": "M",
    "id_number": "ABC000000000",
    "id_type": "DRIVERS_LICENSE",
    "last_name": "Joe",
    "middle_name": "Doe",
    "partner_id": "023",
    "partner_params": {
        "job_id": "3ba0e15e-1a56-4799-a94d-b0e084f50256",
        "user_id": "4cb0f26-2b567-5800-b05e-c0f095g6036"
    },
    "phone_number": "1234567890",
    "signature": "...",
    "source_sdk": "rest_api",
    "source_sdk_version": "1.0.0",
    "timestamp": "2021-08-12T17:57:00.614879"
}

Return Values

The Enhanced KYC API returns a set of top level values as well as a detailed set of actions that can be used for a more granular evaluation of the individual fields.

Example JSON Response

Depending on the endpoint you hit (asynchronous or synchronous) the immediate response you get is different.

For the Asynchronous Endpoint

{
    "success": true
}

For the Synchronous Endpoint (this is the same response sent to the callback of the asynchronous endpoint)

{
    "Actions": {
        "Return_Personal_Info": "Returned",
        "Verify_ID_Number": "Verified"
    },
    "Country": "NG",
    "DOB": "2000-09-20",
    "ExpirationDate": "2021-08-15",
    "IssuanceDate": "2000-01-01"
    "FullName": "Leo Doe Joe",
    "IDNumber": "ABC000000000",
    "SecondaryIDNumber": "000000000",
    "IDType": "DRIVERS_LICENSE",
    "IsFinalResult": "true",
    "JSONVersion": "1.0.0",
    "PartnerParams": {
        "job_id": "FS1kd1dd15JUpd87gTBDapvFxv0",
        "job_type": 5,
        "user_id": "T6yzdOezucdsPrY0QG9LYNDGOrC"
    },
    "Photo": "<BASE64 STRING>",
    "ResultCode": "1012",
    "ResultText": "ID Number Validated",
    "ResultType": "ID Verification",
    "SmileJobID": "0000000001",
    "signature": "...",
    "timestamp": "2021-08-12T17:57:00.614879"
}

Evaluating the Results

The Enhanced KYC product returns the personal information of users stored in the ID authority database. Each ID authority stores these personal information with different keys causing discrepancies in names of keys containing similar information. For the identity lookup response, we have filtered and standardised the personal information returned to top-level keys to simplify the use of our JSON response across all our supported ID types.

Result Codes and Result Texts

Result codes details what the current (or final) result of a job is. Result Codes for all jobs fall into one of three categories:

  1. Approved (or Pass) This means that all applicable Actions passed and the overall job was approved.

  2. Provisionally Approved This means that the job is awaiting a human review, or that a human review was inconclusive or that part of a job passed but another part was unable to be completed. You can treat these jobs as Approved or you handle them based on the Result Code. Please note a Pure Provisional result is a provisionally approved job, but one in which the image comparison Action was provisionally approved but the identity validation Action failed or could not return data. Also note, a Pending Approval result is a custom Strict setting where the user cannot progress in the system without a human review being completed on the Pending job.

  3. Rejected (or Fail) This means that one or more of the applicable Actions for job failed, and thus, the overall job was rejected according to Smile ID standards.

General Failures Result Codes and Texts

This means no further processing is possible on the job. General failures occur when a job could not be submitted due to a logical/technical issue. These jobs do not show up in the portal and do not have a Smile Job ID.

* - read more on how to troubleshoot this error here ** - set Job Type to 5

Product Specific Result Codes and Texts

Last updated