Malaysian Cards
Currently Supported Malaysian Cards include:
📝 Note: Currently, forgery detection models are only available for MyKad cards. As a result: Only MyKad will include forgery check results. Other card types — such as MyTentera, MyKas, and MyPR — will not have forgery checks performed on them.
MyKad
Request
{
"operations": ["idVerification"],
"payload": {
"partnerTrxId": "random-uuid",
"groupId": "random-uuid",
"idType": "ID_CARD",
"country": "MYS",
"idSubtype": "MyKad",
"idFrontSideImage": "Base64 encoded image of ID front side"
},
"userConsent": {
"userIP": "0.0.0.0",
"country": "MYS",
"obtained": true,
"obtainedAt": "1680700959"
}
}Success Response
HTTP Status Code: 200
Success JSON Response
{
"transactionId": "unique transaction id generated to identify this transaction",
"partnerTrxId": "partner transaction id submitted by customer in request",
"groupId": "partner group id submitted by customer in request",
"imageQualityResult": {
"glare": {
"score": 0,
"threshold": 0.95
},
"blurriness": {
"score": 0.000001,
"threshold": 0.95
},
"lowLight": {
"score": 0.045506,
"threshold": 0.95
}
},
"card":{
"country": "MALAYSIA",
"type": "MyKad",
"isoAlpha3CountryCode": "MYS",
"isoAlpha2CountryCode": "MY"
},
"idVerificationResult": {
"spoofingResult": {
"message": "Success",
"code": 5000,
"recapScore": {
"score": 0.17639,
"threshold": 0.95
},
"blackWhite": {
"score": 0.003555,
"threshold": 0.95
}
},
"landmarkResult": {
"code": 5000,
"message": "Success",
"threshold": 0.95,
"containerResult": [
{
"position": {
"x": 508,
"y": 875,
"width": 336,
"height": 280
},
"name": "ghost",
"score": 0.9931
},
{
"position": {
"x": 885,
"y": 1069,
"width": 234,
"height": 249
},
"name": "card_logo",
"score": 0.9851
},
{
"position": {
"x": 195,
"y": 1172,
"width": 677,
"height": 522
},
"name": "portrait",
"score": 0.9779
},
{
"position": {
"x": 513,
"y": 196,
"width": 251,
"height": 273
},
"name": "chip",
"score": 0.9774
},
{
"position": {
"x": 17,
"y": 814,
"width": 315,
"height": 552
},
"name": "hibiscus_logo",
"score": 0.9828
},
{
"position": {
"x": 890,
"y": 1356,
"width": 197,
"height": 353
},
"name": "malaysia_flag",
"score": 0.9818
},
{
"position": {
"x": 621,
"y": 591,
"width": 222,
"height": 423
},
"name": "msc_logo",
"score": 0.9791
},
{
"position": {
"x": 903,
"y": 104,
"width": 196,
"height": 936
},
"name": "kad_pengenalan_header",
"score": 0.9828
},
{
"position": {
"x": 304,
"y": 99,
"width": 45,
"height": 408
},
"name": "name",
"score": 0.9907
},
{
"position": {
"x": 809,
"y": 83,
"width": 62,
"height": 570
},
"name": "id_number",
"score": 0.9923
}
]
},
"forgeryResult": {
"code": 5000,
"message": "Success",
"summary": {
"score": 0.257148,
"threshold": 0.95
}
}
}
}Forged Card Response
HTTP Status Code: 400
Landmark Warning Response
HTTP Status Code: 200
Spoof Warning Response
Note: This happens when exactly 1 spoof check fails.
HTTP Status Code: 200
Spoof Error Response
Note: This happens when more than 1 spoof check fails.
HTTP Status Code: 400
MyTentera
📝 Note: There are two versions of MyTentera cards: - An old version (without a ghost image) - A new version (with a ghost image)
The ghost image is treated as an optional landmark:
If detected, it will be included in the response.
If not detected, it will be silently omitted — no warning will be triggered.
Success Response
HTTP Status Code: 200
Landmark Warning Response
HTTP Status Code: 200
Spoof Warning Response
Note: This happens when 1 spoof check fails.
HTTP Status Code: 200
Spoof Error Response
Note: This happens when more than 1 spoof check fails.
HTTP Status Code: 400
MyKas
Success Response
HTTP Status Code: 200
Landmark Warning Response
HTTP Status Code: 200
Spoof Warning Response
Note: This happens when 1 spoof check fails.
HTTP Status Code: 200
Spoof Error Response
Note: This happens when more than 1 spoof check fails.
HTTP Status Code: 400
MyPR
Success Response
HTTP Status Code: 200
Landmark Warning Response
HTTP Status Code: 200
Spoof Warning Response
Note: This happens when 1 spoof check fails.
HTTP Status Code: 200
Spoof Error Response
Note: This happens when more than 1 spoof check fails.
HTTP Status Code: 400
Last updated
