Platform API · API Docs · eKYC Platform

Verify ID

POST/ekyc/platform/verify_id

Uploads ID card images (and optional QR images), runs OCR and tampering checks, and returns the final verification result synchronously.

Request

MethodPOST
Path/ekyc/platform/verify_id
Content-Typeapplication/json
Auth requiredYes — Bearer access_token
NameTypeRequiredDescription
card_typestringRequiredCard type to verify (e.g. vn.national_id, vn.passport, ph.philhealth)
imageobjectRequiredFront side image: { "base64": "<base64_string>", "metadata": "<string>", "qr_code": [{"result": "...", "from_image_type": "..."}] }
image2objectOptionalBack side image: same structure as image
qrsarrayOptionalQR code images: [{ "base64": "<base64_string>", "metadata": "<string>" }]

Response

data.status carries the verification result, and data.label names the image that was processed.

FieldTypeDescription
statusstringVerification result: success, failure, partial_success, etc.
error_codestringError code when status is failure (omitted on success)
error_messageobjectHuman-readable error details (omitted on success)
labelstringImage label that was processed (e.g. vn.national_id.front)
next_actionstringAction the client should take next (e.g. process_qr_code) — if applicable
application_statestringUpdated application state after verification

A completed verification of the front of a Vietnamese national ID:

JSON
{
  "data": {
    "status": "success",
    "error_code": "",
    "error_message": {},
    "label": "vn.national_id.front",
    "next_action": "",
    "application_state": ""
  },
  "message": "verify id card completed",
  "time": "2026-01-01T00:00:00Z",
  "verdict": "success"
}

Failure codes

The top-level verdict names the outcome, alongside the HTTP status code:

verdictStatus codeDescription
success200Verification completed (check data.status for result).
invalid_parameters400Missing or invalid card_type, image, or base64 data.
missing_authorization401Bearer access_token is missing.
expired_token401Access token expired — call Initialize again.
record_not_found404Session referenced by the access token no longer exists (expired or reset).
limit_exceeded429A verification is already in progress for this session.
failure500Internal server error or verification timeout.