# Single KYC Verification

<figure><img src="/files/BKk6zHhndLjW5hw4Cy8m" alt=""><figcaption><p>Diagram flow e-KYC faceki</p></figcaption></figure>

### Base URL

```
sdk.faceki.com
```

### KYC Verification End Point API

```
https://sdk.faceki.com/kycverify/api/kycverify/kyc-verification
```

Welcome to the developer hub for the FACEKI KYCVerify API. Our API is designed to provide secure and accurate identity verification for your customers. This API call uses the POST method and requires Authorization: Bearer Token for authentication.

To verify national identity, passport, driving license, and other legal documents, simply call the API endpoint at <https://sdk.faceki.com/kycverify/api/kycverify/kyc-verification>. 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 200+ 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.

Once you get access to the user dashboard for clientId and clientSecret, the user also has to setup [KYC workflow and SDK settings](/quick-guides/sdk-settings.md).

Please note that three images are required for verification:&#x20;

* Document Front image (\*Mandatory)
* Document Back image (\*Mandatory)
* Face image (\*Mandatory)

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

`Authorization: Bearer Token`

**Parameter**: &#x20;

`selfie_image (mandatary)`

`doc_front_image (mandatary)`

`doc_back_image (mandatary)`
{% endhint %}

<figure><img src="/files/eWOlIr4DHmsCviLcLlOh" alt=""><figcaption><p>Diagram Steps</p></figcaption></figure>

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

1. Make a POST request to the URL <https://sdk.faceki.com/kycverify/api/kycverify/kyc-verification>.
2. Set the Authorization type to "Bearer Token" in the request header. You will need to generate a bearer token from /[getToken](/api-integration/verification-apis/generate-token.md) API.
3. In the body of your request, include the following parameters:

* selfie\_image (mandatory): This parameter should contain the image of the individual's face to be verified.
* doc\_front\_image (mandatory): This parameter should contain the image of the front of the identity document to be verified.
* doc\_back\_image (mandatory): This parameter should contain the image of the back of the identity document to be verified.

4. Send the request to receive a JSON response in the application/JSON format.

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

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

<mark style="color:green;">`POST`</mark> `https://sdk.faceki.com/kycverify/api/kycverify/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    |
| --------------------------------------------------- | ---- | -------------- |
| selfie\_image<mark style="color:red;">\*</mark>     | File | <p></p><p></p> |
| doc\_front\_image<mark style="color:red;">\*</mark> | File |                |
| doc\_back\_image<mark style="color:red;">\*</mark>  | File |                |

{% tabs %}
{% tab title="200: OK " %}

```json
{
    "responseCode": 0,
    "data": {
        "verification": {
            "passed": true,
            "result": {
                "face": true,
                "notexpired": true
            }
        },
        "face": {
            "isIdentical": true,
            "confidence": 0.9999440002441407
        },
        "confidence": {
            "backSideId": 1,
            "issuerOrg_full": 1,
            "issuerOrg_iso2": 1,
            "issuerOrg_iso3": 1,
            "document": 0.9222802519798279,
            "documentName": 1,
            "documentNumber": 0.992,
            "documentSide": 1,
            "documentType": 1,
            "face": 0.9468276304459636,
            "face0": 190.1085205078125,
            "firstName": 0.959,
            "fullName": 0.959,
            "internalId": 1,
            "lastName": 0.968,
            "middleName": 0.985,
            "nationality_full": 0.991,
            "reverseId": 1,
            "signature": 0.2879074811935425,
            "signature0": 0.2879074811935425
        },
        "result": {
            "backSideId": "8886",
            "issuerOrg_full": "Bahrain",
            "issuerOrg_iso2": "BH",
            "issuerOrg_iso3": "BHR",
            "document": "",
            "documentName": "Identity Card",
            "documentNumber": "987654321",
            "documentSide": "FRONT",
            "documentType": "I",
            "face": "",
            "face0": "",
            "firstName": "JOHN",
            "fullName": "JOHN DOE",
            "internalId": "437",
            "lastName": "DOE",
            "middleName": "JAMES",
            "nationality_full": "AMERICAN",
            "reverseId": "8886",
            "signature": "",
            "signature0": ""
        },
        "authentication": {
            "breakdown": {
                "recapture_check": {
                    "passed": true
                },
                "data_visibility": {
                    "passed": true
                },
                "image_quality": {
                    "passed": true
                },
                "feature_referencing": {
                    "passed": true
                },
                "exif_check": {
                    "passed": true
                },
                "publicity_check": {
                    "passed": true
                },
                "text_analysis": {
                    "passed": true
                },
                "biometric_analysis": {
                    "passed": true
                },
                "security_feature_check": {
                    "passed": true
                }
            },
            "warning": []
        },
        "aml": [],
        "responseID": "6e9fde27009444d59ce8e4d2e6d5d659",
        "images": {
            "doc_front_image": "imagelink",
            "doc_back_image": "imagelink",
            "selfie_image": "imagelink"
        },
        "link": "client",
        "requestId": "8b62fa2f-9e04-4036-82d5-154c513a5d47"
    }
}

```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="500: Internal Server Error " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

```
// Content-Type: application/json
```

Responses return JSON with a consistent structure, except downloads.

You must make all your requests to the API over HTTPS and TLS 1.2, with Server Name Indication enabled. Any requests made over HTTP will fail.

## Error Code

```
    INTERNAL_SYSTEM_ERROR = 1000,
    SUCCESS = 0,
    NO_RULES_FOR_COMPANY = 7001,
    NEED_REQUIRED_IMAGES = 8001,
    DOCUMENT_VERIFY_FAILED = 8002,
    PLEASE_TRY_AGAIN = 8003,
    FACE_CROPPED = 8004,
    FACE_TOO_CLOSED = 8005,
    FACE_NOT_FOUND = 8006,
    FACE_CLOSED_TO_BORDER = 8007,
    FACE_TOO_SMALL = 8008,
    POOR_LIGHT = 8009,
    ID_VERIFY_FAIL = 8010,
    DL_VERIFY_FAIL = 8011,
    PASSPORT_VERIFY_FAIL = 8012,
    DATA_NOT_FOUND = 8013,
    INVALID_VERIFICATION_LINK = 8014,
    VERIFICATION_LINK_EXPIRED = 8015,
    FAIL_TO_GENERATE_LINK = 8016,
    KYC_VERIFICATION_LIMIT_REACHED = 8017,
    SELFIE_MULTIPLE_FACES = 8018,
    FACE_BLURR = 8019
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kycdocv2.faceki.com/api-integration/verification-apis/single-kyc-verification.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
