> For the complete documentation index, see [llms.txt](https://docs.faceki.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.faceki.com/api-integration/verification-apis/perform-kyc-verification.md).

# Perform KYC Verification

<figure><img src="/files/BKk6zHhndLjW5hw4Cy8m" alt=""><figcaption><p>Flow Digram of verification process</p></figcaption></figure>

### Base URL

```
sdk.faceki.com
```

### KYC Verification End Point API

```
https://sdk.faceki.com/api/v3/kyc_verification
```

To verify national identity, passport, driving license, and other legal documents, simply call the API endpoint. Our API can perform various security checks and face-matching to ensure the authenticity of the document and its holder.

Our API supports more than 35+ languages and uses an advanced OCR engine to extract all data from the documents. With this level of support, you can confidently verify customer identities from all around the world.

{% hint style="info" %}
Method: **POST**

`Authorization: Bearer Token`

**Parameter**: &#x20;

`selfie (mandatary)`

`workflowId (mandatary)`

`document_1_front (mandatary)`

`document_1_back (mandatory except passport)`

`document_2_front (mandatary if workflow require 2 documents)`

`document_2_back (mandatary except passport)`

`document_3_front (mandatary if workflow require 3 documents)`

`document_3_back (mandatary except passport)`

`record_identifier (optional)`
{% endhint %}

To get started with this API, please follow the steps below:

1. Make a POST request to the URL mentioned above.
2. Set the Authorization type to "Bearer Token" in the request header. You can check [here](/api-integration/verification-apis/authentication.md)&#x20;
3. In the body of your request, include the following parameters:

* `selfie` (Mandatory which contain the user selfie captured live according to the Image guidelines [here](/quick-guides/image-guidelines.md))
* `workflowId` (Mandatory, you can generate a workflow through the portal and copy the ID to use in the API)
* `document_1_front` (Mandatory for all the document types (ID, DL, Passport) )
* `document_1_back` (Optional only for Passport)
* `document_2_front` (Mandatory for all the document types (ID, DL, Passport)  if the workflow assigned has 2 documents)
* `document_2_back` (Optional only for Passport)
* `document_3_front` (Mandatory for all the document types (ID, DL, Passport)  if the workflow assigned has 3 documents)
* `document_3_back` (Optional only for Passport)
* `record_identifier` (Optional field, you will receive the same on webhook to identify the record on your end)

**NOTE: Make sure the document field contains the same document image of the front and back.**&#x20;

<figure><img src="/files/LkNuccZ46nVjFPjgtt4g" alt=""><figcaption></figcaption></figure>

## FACEKI KYC Verification Request

<mark style="color:green;">`POST`</mark> `https://sdk.faceki.com/api/v3/kyc_verification`

#### Headers

| Name                                            | Type   | Description         |
| ----------------------------------------------- | ------ | ------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | \[token]            |
| Content-Type<mark style="color:red;">\*</mark>  | String | multipart/form-data |

#### Request Body

| Name                                                 | Type   | Description                                                                                                                       |
| ---------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------- |
| workflowId<mark style="color:red;">\*</mark>         | String | Mandatory, you can generate a workflow through the portal and copy the ID to use in the API                                       |
| selfie<mark style="color:red;">\*</mark>             | File   | Mandatory which contain the user selfie captured live according to the Image guidelines [here](/quick-guides/image-guidelines.md) |
| document\_1\_front<mark style="color:red;">\*</mark> | File   | Mandatory for all the document types (ID, DL, Passport)                                                                           |
| document\_1\_back                                    | String | Optional only for Passport                                                                                                        |
| document\_2\_front                                   | String | Mandatory for all the document types (ID, DL, Passport)  if the workflow assigned has 2 documents                                 |
| document\_2\_back                                    | String | Optional only for Passport                                                                                                        |
| document\_3\_front                                   | String | Mandatory for all the document types (ID, DL, Passport)  if the workflow assigned has 3 documents                                 |
| document\_3\_back                                    | String | Optional only for Passport                                                                                                        |
| record\_identifier                                   | String | Optional, you will receive the same on webhook to identify the record on your end                                                 |

{% tabs %}
{% tab title="200: OK KYC Request Response" %}

```json

{
    "status": true,
    "code": 200,
    "message": "OK",
    "appVersion": "v3.0.0",
    "result": {
        "requestId": "fca3fe38-9182-XXXX-XXXX-97b58ce27703",
        "document_data": [
            {
                "reference": "97XXXXXXX9",
                "full_name": "MXXXXXXXXXXXXXT",
                "first_name": "MUHAMMAD XXXXXX",
                "local_name": "ا",
                "last_name": "TXXXXXXR",
                "middle_name": "",
                "nationality": "BAHRAINI",
                "nationality_iso": "BH",
                "nationality_iso2": "BHR",
                "issuer": "Bahrain",
                "issuer_iso": "BH",
                "issuer_iso2": "BHR",
                "gender": "M",
                "dob": "XX",
                "age": "XX",
                "expiry": "XXXX-XXX-XX",
                "expiryDay": "XX",
                "expiryMonth": "XX",
                "expiryYear": "XXXX",
                "issued": "",
                "issuedDay": "",
                "issuedMonth": "",
                "issuedYear": "",
                "documentAdditionalNumber": "",
                "document_number": "9XXXXXX09",
                "document_type": "I",
                "document_type_full": "Identity Card",
                "mrz": "IDBHR9XXXXXXXX95<<<<<<<<<<<<<<<^XXXXXXXXXXXXXXXXXX<<<<<<<<<<<4^XXXX<<MUXXXXD<XXXXQ<<<<<<<",
                "document_face_match": {
                    "similarity": 99.98751831054688,
                    "confidence": 99.99876403808594
                },
                "passed": true,
                "date_of_birth": "XXXX-XX-XX",
                "date_of_birth_day": "XX",
                "date_of_birth_month": "XX",
                "date_of_birth_year": "XXXX"
            }
        ],
        "selfie_data": {
            "liveness_pass": true
        },
        "verification_summary": {
            "face_verified": true,
            "selfie_liveness_verified": true,
            "document_verified": true,
            "verification_rules_passed": true,
            "document_liveness_verified": true,
            "image_quality": true
        },
        "warnings": [],
        "aml": [],
        "errorCodes": [],
        "document_data_confidence": [
            {
                "reference": "9XXXXXXX9",
                "full_name": 0.9,
                "first_name": 0,
                "local_name": 0.9,
                "last_name": 0,
                "middle_name": 0,
                "nationality": 0.97,
                "nationality_iso": 0.97,
                "nationality_iso2": 0.97,
                "issuer": 0,
                "issuer_iso": 0,
                "issuer_iso2": 0,
                "gender": 0.99,
                "dob": 0.9,
                "age": 0,
                "expiry": 1,
                "expiryDay": 1,
                "expiryMonth": 1,
                "expiryYear": 1,
                "issued": 0,
                "issuedDay": 0,
                "issuedMonth": 0,
                "issuedYear": 0,
                "documentAdditionalNumber": 0,
                "placeOfBirth": 0,
                "document_number": 1,
                "personal_number": 0,
                "document_type": 0.8977721333503723,
                "document_type_full": 0.8977721333503723,
                "mrz": 0.44,
                "date_of_birth": 0.9,
                "date_of_birth_day": 0.9,
                "date_of_birth_month": 0.9,
                "date_of_birth_year": 0.9
            }
        ],
        "decision": "ACCEPTED",
        "companyId": "4XXXX8-XXXX-4748-XXXX-cd5aa892b4f0",
        "workflowId": "e67dcb8f-XXXX-4c5e-XXXX-f9373XXXX0cf6",
        "branchId": "XXX99e557XXXXXX58d08XXX",
        "deviceDetails": {
            "useragent": "PostmanRuntime/7.36.1",
            "detectResult": {
                "os": {},
                "client": {
                    "type": "library",
                    "name": "Postman Desktop",
                    "version": "7.36.1"
                },
                "device": {
                    "id": "",
                    "type": "",
                    "brand": "",
                    "model": ""
                }
            },
            "ip": "XXXX.71.XXX.1XX"
        }
    }
}

```

{% endtab %}

{% tab title="401: Unauthorized Unauthorized Request" %}
Kindly check the Token is not expired, find more about the token [here](/api-integration/verification-apis/authentication.md)
{% endtab %}

{% tab title="413: Payload Too Large Entity Too Large" %}
If your overall request size exceeds 10 MB (Combination of Front & Selfie). Kindly make sure to use images less than 3 MB each
{% endtab %}
{% endtabs %}

### Need Support?&#x20;

Contact us on WhatsApp [Click here ](https://wa.me/+13026131330)
