API Reference
中文

ID Verification Dukcapil-Indonesia

ID verification Dukcapil is designed to verify the authenticity of user ID information by checking it against the government database, including name, birthdate, and face verification.

API Method

Base URL

Indonesia: https://id-credit.apitd.net/verification/kyc/idverifybiometric/v1

API

URLRequest MethodsContent-TypeOutput FormatCharacter Set
api-base-url?partner_code=xxx&partner_key=xxxPOSTapplication/jsonJSONUTF-8

Authentication

ParameterTypeDescriptionRequired/OptionalNotes
partner_codeStringPartner CodeRequiredAssigned by TD
partner_keyStringPartner KeyRequiredAssigned by TD

Request

ParameterTypeDescriptionRequired/OptionalNotes
id_numberStringNIK numberRequiredThe NIK number of the person; should be 16-digits number only; no negative number allowed; no float number allowed; cannot be empty; cannot start with 0
nameStringNameRequiredName is case-sensitive and must be in uppercase letters. Lowercase letters will not match.
birth_dateStringDate of birthRequired"YYYY-MM-DD" format
face_imageStringFace imageRequiredBase64 (NO WRAP) of face image in JPG, JPEG or PNG format, within 3M
countryStringCountryRequired2-letter country code according to ISO 3166
Support: ID(Indonesia)

Request Example

{
    "id_number":"5981314208283510000",
    "name":"Joe",
    "birth_date":"1997-01-01",
    "face_image":"/9j/4AAQSkZJRgABAQAAeAB4AAD/********XLiqqauzsw1J3sf/2Q==",
    "country":"ID"
}

Response Parameter

ParameterTypeDescriptionRequired/OptionalNotes
codeIntegerAPI Status CodeRequired
messageStringStatus MessageRequiredSpecific reasons will be provided if the API is abnormal
sequence_idStringUnique ID of ResponseRequiredA unique ID used to mark each request
resultStringVerification ResultRequiredEnumeration:

1. pass (name, birthdate match with database, and face_similarity ≥75)
2. fail (name, birthdate do not match with database, or face_similarity ≤75, any one condition not met)
id_name_matchStringWhether the ID number and name matchRequiredEnumeration:

1. pass
2. fail
3. no_record
id_birthdate_matchStringWhether the ID number and birthdate matchRequiredEnumeration:

1. pass
2. fail
3. no_record
face_similarityDoubleThe Similarity of Portrait ComparisonConditionally RequiredRange 0 - 100, can choose your own similarity threshold based on risk appetite regardless of above result value. TD recommends that a result of ≥75 indicates the same person.

API Status Code

codeMessageDescriptionCharged
200successSuccessYES
301Service not purchasedService not purchasedNO
302Service has been suspendTraffic blockedNO
303Not enough balanceTraffic insufficientNO
304Service expiredService expiredNO
305Daily maximum volume reachedDaily maximum volume reachedNO
600Service Temporarily UnavailableService reached limitNO
11301{parameter} empty{parameter} emptyNO
11304The country partner located is not openThe country partner located is not openNO
11340{parameter} error{parameter} errorNO
11350Internal errorInternal errorNO

Response Example

  • Success(result=pass)
{
    "code": 200,
    "message": "Success",
    "sequence_id": "170427842997****I3167369D6187177",
    "result": "pass",
    "id_name_match": "pass",
    "id_birthday_match": "pass",
    "face_similarity": 95.5
}
  • Success(result=fail, name fail to match)
{
    "code": 200,
    "message": "Success",
    "sequence_id": "170427842997****I3167369D6187177",
    "result": "fail",
    "id_name_match": "fail",
    "id_birthday_match": "pass",
    "face_similarity": 95.5
}
  • Success(result=fail, no ID number record in the database)
{
    "code": 200,
    "message": "Success",
    "sequence_id": "170427842997****I3167369D6187177",
    "result": "fail",
    "id_name_match": "no_record",
    "id_birthday_match": "no_record"
}
  • Failure
{
    "code": 11340,
    "sequence_id": "170427842997****I3167369D6187177",
    "message": "birth_date error"
}