Service API · API Docs · eKYC Platform

eKYC full checks (Deprecated)

POST/portal/ekyc/full_checks

Deprecated — runs OCR, face compare, liveness, sanity and tampering checks over an ID card and a set of selfies in one request, and returns each check's result.

Request

MethodPOST
Path/portal/ekyc/full_checks
Content-Typeapplication/json
Auth requiredYes — JWT access token

Send the JWT access token in the Authorization header.

NameTypeRequiredDescription
card_typestringRequiredCard type of the image as described at Card types table
image1ImageDataRequiredImage of the identity card's front side
image2ImageDataOptionalImage of the identity card's back side
selfies[]ImageDataOptionalList of selfie images of the customer. Max 3 images.
metadatajsonRequiredMore information of the identity, e.g. client_uid, phone_number, dob, name. client_uid must not be empty
JSON
{
  "card_type": string,
  "image1": {
    "base64": string,
    "label": string,
    "metadata": JSON
  },
  "image2": {
    "base64": string,
    "label": string,
    "metadata": JSON
  },
  "selfies": [
    {
      "base64": string,
      "label": string,
      "metadata": JSON
    },
    ...
    {
      "base64": string,
      "label": string,
      "metadata": JSON
    }
  ]
  "metadata": JSON
}

The ImageData object

image1, image2 and each element of selfies accept:

NameTypeRequiredDescription
base64stringRequiredBase64 encoded text of image data
labelstringOptionalLabel of the image as described at Label table
metadatajsonOptionalKey-value string; keys must be strings, values may be string, int, float, or bool. Example "{\"id\":\"123456789\",\"type\":1}"

Response

On success case: 200 OK

JSON
{
  "data": {
    "request_id": "538cdfe9-7009-4bcf-b514-6faf8904e82c",
    "card_information": [
      {
        "field": "id",
        "value": "123456789012",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "name",
        "value": "FULL NAME",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "date_of_birth",
        "value": "2005/03/02",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "gender",
        "value": "F",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "address",
        "value": "RD 1000 NDC COMPOUND,, SITH DISTRICT",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "last_name",
        "value": "LAST NAME",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "first_name",
        "value": "FIRST NAME",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "middle_name",
        "value": "MIDDLE NAME",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "card_type",
        "value": "ph.philhealth",
        "confidence_verdict": "",
        "confidence_score": 0
      },
      {
        "field": "card_label",
        "value": "ph.philhealth.qr.front",
        "confidence_verdict": "",
        "confidence_score": 0
      }
    ],
    "compare_faces": [
      {
        "face1_id": "7d71e6e2-a6bb-4ea6-8826-be0947afd6f4",
        "face2_id": "1647fae2-7ff2-4500-89cc-4196e42512ce",
        "result": "matched",
        "score": 0.8136464
      }
    ],
    "liveness_check": {
      "is_live": true,
      "score": 0.99999917
    },
    "portrait_sanity": {
      "verdict": "good",
      "score": 1
    },
    "card_sanity": {
      "verdict": "photo_not_qualified",
      "score": 0.8199463,
      "score_details": [
        {
          "verdict": "good",
          "score": 1
        },
        {
          "verdict": "photo_not_qualified",
          "score": 0.8199463
        }
      ],
      "verdict_details": {}
    },
    "card_tampering": {
      "verdict": "alert",
      "score": 1,
      "details": [
        {
          "verdict": "non_liveness",
          "score": 0.99,
          "name": "alert_1",
          "info": "image1"
        }
      ]
    }
  },
  "message": "fully check eKYC successfully",
  "time": "2026-01-27T18:03:56+07:00",
  "verdict": "success"
}

The top-level verdict maps as follows:

verdictDescription
successProcess the request successfully.
failureProcess the request failure.

Failure codes

Parameter, auth, method, rate-limit and server errors are the same on every JWT-authenticated call — see Common objects & errors.