Skip to content

Error Codes ​

Error code reference for the eKYC. Covers every code returned by the API. Codes raised by the Mobile SDK or Web SDK are out of scope for this page.

How to Read an Error ​

Every endpoint returns HTTP 200 once the request is processed, even when the business check fails. Always read in this order:

text
1. success        → false means the request failed
2. code           → numeric error code (0 = success)
3. data.status    → "success" or "failure"
4. errors[].code  → string error code describing the cause
json
{
  "success": false,
  "code": 4001000,
  "message": "Input parameter violates a constraint.",
  "data": { "request_id": "f48085e4-3ae4-40bb-b0e1-9b2c72575bc1" },
  "errors": [
    {
      "code": "invalid_parameter_exception",
      "message": "Input parameter violates a constraint.",
      "detail": { "field": "card_type" }
    }
  ]
}

Always include request_id when reporting an error to CAKE Support — it is the key for looking up the server-side log.

Numeric Error Codes ​

Shared across CAKE's identity platform.

CodeMessage
401100Unauthorized action. You do not have permission to perform this action.
2001000Face data constraint violation.
2001001Embedding data violates a constraint.
2001002Unexpected error occurred while processing the external request.
2001003No faces detected in the selfie or original image.
2001005Unexpected error occurred while processing the request.
2001006Selfie and front NID do not match.
2001007Client not found in the system.
2001008Face is already registered in the system.
2001009Multiple faces detected in the selfie or original image.
2001010Access ID not found in the system.
2001011Liveness check failed.
2001012Sanity check failed.
2001014Registration rate limit exceeded. Too many registration attempts.
2001015Registration brute force limit exceeded.
2001016Face authentication rate limit exceeded. Too many attempts.
2001017Face authentication brute force limit exceeded.
2001019Transaction not found in the system.
2001020Transaction lock failed.
2001021Invalid transaction request.
2001022Transaction has already been verified.
2001023Invalid transaction key.
2001024Authentication lock failed.
2001025Invalid selfie image provided.
2001026Duplicated image detected.
2001027Invalid token provided.
2001031Upload rate limit exceeded.
2002100Transaction already expired.
2002101Transaction challenge invalid.
2002200Selfie image has expired.
2002202Invalid selfie image provided.
2002203User profile is already locked.
2002204User profile is not active.
4001000Input parameter violates a constraint.
4001001The X-TV-Timestamp header is expired. Please provide a newer timestamp.
4001002Selfie or original image contains more than one face.
4001005Ref ID is invalid.
4041000The image ID is not found in DB.
4041001The face of user not found.
4041002The profile of user not found.
4041003The request ID is not found when polling result by id.
4041004The file ID is not found in DB.
4041005The collection is not found in DB.
4091000The cus_user_id has been registered.
4131000The input image size exceeds the allowed limit (15MB).
4131001The input file size exceeds the allowed limit (15MB).
4151000The provided image format is not supported (JPG/PNG).
4151001The provided file format is not supported (PDF).
4291000The number of requests exceeded your throughput limit.
5001000Some unexpected error occurs while processing the request.

eKYC-Specific Codes ​

Raised by Parse QR Info when the QR string is invalid.

CodeMessage
2007001Invalid QR identity number.
2007002Invalid QR old identity number.
2007003Invalid QR date of birth.
2007004Invalid QR gender value.
2007005Invalid QR issue date.
2002206User profile is locked.

String Error Codes ​

Returned in the errors[].code array.

CodeDescription
access_id_not_foundAccess ID not found.
access_denied_exceptionYou are not authorized to perform the action.
invalid_parameter_exceptionInput parameter violates a constraint.
request_time_too_skewedThe X-TV-Timestamp header is expired, need a newer one.
image_not_found_exceptionThe image ID is not found in DB.
image_too_large_exceptionThe input image size exceeds the allowed limit (15MB).
invalid_image_format_exceptionThe provided image format is not supported (JPG/PNG).
duplicated_imageImages sent to server are duplicated.
image_has_no_facesImage sent to the server has no faces.
image_has_multiple_facesImage sent to the server has multiple faces.
request_not_found_exceptionThe request ID is not found when polling result by id.
request_timeout_exceptionRequest takes too long to process.
rate_limit_exceptionThe number of requests exceeded your throughput limit.
internal_server_errorSome unexpected error occurs while processing the request.
transaction_lock_failedTransaction lock failed.
transaction_invalid_requestInvalid transaction request.
user_profile_not_found_exceptionThe profile of user not found.
user_profile_lockedUser profile has been locked.
user_not_found_exceptionUser not found.

Parse QR Info Only ​

CodeDescription
invalid_qr_identity_numberIdentity number must be exactly 12 digits.
invalid_qr_old_identity_numberOld identity number must be empty or exactly 9 digits.
invalid_qr_date_of_birthDate of birth format is invalid or the date does not exist. Expected DDMMYYYY.
invalid_qr_gender_valueGender must be either Nam (male) or Nữ (female).
invalid_qr_issue_dateIssue date format is invalid or the date does not exist. Expected DDMMYYYY.

Next Steps ​

Developers