> For the complete documentation index, see [llms.txt](https://docs.vida.id/identity-stack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vida.id/identity-stack/verify/document-ai/ocr-and-document-verification/ocr-and-document-verification-v1/full-details-endpoint/id-verification/malaysian-cards.md).

# Malaysian Cards

Currently Supported Malaysian Cards include:

1. [MyKad](#mykad)
2. [MyTentera](#mytentera)
3. [MyKas](#mykas)
4. [MyPR](#mypr)

{% hint style="info" %}
📝 **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.
{% endhint %}

## MyKad

<details>

<summary>Request</summary>

```json
{
  "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"
  }
}
```

</details>

### Success Response

HTTP Status Code: `200`

<details>

<summary>Success JSON Response</summary>

```json
{
  "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
        }
    }
  }
}
```

</details>

### Forged Card Response

HTTP Status Code: `400`

<details>

<summary>Forged card JSON Response</summary>

```json
{
  "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",
  "errors": [
        {
            "message": "The card appears to be forged.",
            "code": 5024,
            "operations": [
                "idVerification"
            ]
        }
    ],
    "imageQualityResult": {
        "glare": {
            "score": 0,
            "threshold": 0.95
        },
        "blurriness": {
            "score": 0.000003,
            "threshold": 0.95
        },
        "lowLight": {
            "score": 0.045506,
            "threshold": 0.95
        }
    }
}
```

</details>

### Landmark Warning Response

HTTP Status Code: `200`

<details>

<summary>Landmark Warning JSON Response</summary>

```json
{
  "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",
  "warnings": [
       {
           "message": "Image has Occlusion, please check [portrait] from landmarkResult for more details",
           "code": 10021,
           "operations": [
               "idVerification"
           ]
       },
       {
           "message": "Image has Occlusion, please check [chip] from landmarkResult for more details",
           "code": 10015,
           "operations": [
               "idVerification"
           ]
       }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
  "card":{
    ----[TRUNCATED]-----
  },
  "idVerificationResult": {
    "spoofingResult": {
      ----[TRUNCATED]-----
    },
    "landmarkResult": {
        "code": 5000,
        "message": "Success",
        "threshold": 0.95,
        "containerResult": [
            ----[TRUNCATED]-----
            {
                "position": {
                    "x": 195,
                    "y": 1172,
                    "width": 677,
                    "height": 522
                },
                "name": "portrait",
                "score": 0.12 // Low Confidence Score
            },
            {
                "position": {
                    "x": null,
                    "y": null,
                    "width": null,
                    "height": null
                },
                "name": "chip",
                "score": 0 // Low Confidence Score
            },
            ----[TRUNCATED]-----
        ]
    },
    "forgeryResult": {
        ----[TRUNCATED]-----
    }
  }
}
```

</details>

### Spoof Warning Response

{% hint style="info" %}
Note: This happens when **exactly 1** spoof check fails.
{% endhint %}

HTTP Status Code: `200`

<details>

<summary>Spoof Warning JSON Response</summary>

```json
{
  "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",
  "warnings": [
        {
            "message": "Image submitted is Recaptured",
            "code": 10008,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
  "card":{
    ----[TRUNCATED]-----
  },
  "idVerificationResult": {
    "spoofingResult": {
        "message": "Recap score is above the threshold",
        "code": 5012,
        "recapScore": {
            "score": 0.99,
            "threshold": 0.95
        },
        "blackWhite": {
            "score": 0.027551,
            "threshold": 0.95
        }
    },
    "landmarkResult": {
        ----[TRUNCATED]-----
    },
    "forgeryResult": {
        ----[TRUNCATED]-----
    }
  }
}
```

</details>

### Spoof Error Response

{% hint style="info" %}
Note: This happens when **more than 1** spoof check fails.
{% endhint %}

HTTP Status Code: `400`

<details>

<summary>Spoof Error JSON Response</summary>

```json
{
  "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",
  "warnings": [
        {
            "message": "Image submitted is Recaptured",
            "code": 10008,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Image submitted is either B&W or Photocopy",
            "code": 10007,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "errors": [
        {
            "message": "Score is above the threshold",
            "code": 5012,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
}
```

</details>

## MyTentera

{% hint style="info" %}
📝 **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.
  {% endhint %}

<details>

<summary>Request</summary>

```json
{
  "operations": ["ocr"],
  "payload": {
    "partnerTrxId": "random-uuid",
    "groupId": "random-uuid",
    "idType": "ID_CARD",
    "country": "MYS",
    "idSubtype": "MyTentera",
    "idFrontSideImage": "Base64 encoded image of ID front side"
  },
  "userConsent": {
    "userIP": "0.0.0.0",
    "country": "MYS",
    "obtained": true,
    "obtainedAt": "1680700959"
  }
}
```

</details>

### Success Response

HTTP Status Code: `200`

<details>

<summary>Success JSON Response</summary>

```json
{
  "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": {
    "blurriness": {
        "score": 0.000006,
        "threshold": 0.95
    },
    "lowLight": {
        "score": 0.088379,
        "threshold": 0.95
    }
  },
  "card":{
     "country": "MALAYSIA",
     "type": "MyTentera",
     "isoAlpha3CountryCode": "MYS",
     "isoAlpha2CountryCode": "MY"
  },
  "idVerificationResult": {
    "spoofingResult": {
        "message": "Success",
        "code": 5000,
        "recapScore": {
            "score": 0.154018,
            "threshold": 0.95
        },
        "blackWhite": {
            "score": 0.006834,
            "threshold": 0.95
        }
    },
    "landmarkResult": {
        "code": 5000,
        "message": "Success",
        "threshold": 0.95,
        "containerResult": [
            {
                "position": {
                    "x": 741,
                    "y": 148,
                    "width": 358,
                    "height": 446
                },
                "name": "portrait",
                "score": 0.9986
            },
            {
                "position": {
                    "x": 116,
                    "y": 241,
                    "width": 180,
                    "height": 161
                },
                "name": "chip",
                "score": 0.9978
            },
            {
                "position": {
                    "x": 512,
                    "y": 513,
                    "width": 378,
                    "height": 213
                },
                "name": "hibiscus_logo",
                "score": 0.9977
            },
            {
                "position": {
                    "x": 680,
                    "y": 22,
                    "width": 164,
                    "height": 151
                },
                "name": "card_logo",
                "score": 0.9974
            },
            {
                "position": {
                    "x": 551,
                    "y": 195,
                    "width": 182,
                    "height": 210
                },
                "name": "ghost",
                "score": 0.9971
            },
            {
                "position": {
                    "x": 858,
                    "y": 24,
                    "width": 231,
                    "height": 120
                },
                "name": "malaysia_flag",
                "score": 0.9969
            },
            {
                "position": {
                    "x": 67,
                    "y": 25,
                    "width": 590,
                    "height": 118
                },
                "name": "kad_pengenalan_header",
                "score": 0.9968
            },
            {
                "position": {
                    "x": 378,
                    "y": 172,
                    "width": 281,
                    "height": 148
                },
                "name": "msc_logo",
                "score": 0.9962
            },
            {
                "position": {
                    "x": 38,
                    "y": 469,
                    "width": 385,
                    "height": 33
                },
                "name": "name",
                "score": 0.9937
            },
            {
                "position": {
                    "x": 45,
                    "y": 165,
                    "width": 358,
                    "height": 40
                },
                "name": "id_number",
                "score": 0.993
            }
        ]
    }
  }
}
```

</details>

### Landmark Warning Response

HTTP Status Code: `200`

<details>

<summary>Landmark Warning JSON Response</summary>

```json
{
  "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",
  "warnings": [
       {
           "message": "Image has Occlusion, please check [id_number] from landmarkResult for more details",
           "code": 10023,
           "operations": [
               "idVerification"
           ]
       },
       {
           "message": "Image has Occlusion, please check [name] from landmarkResult for more details",
           "code": 10022,
           "operations": [
               "idVerification"
           ]
       }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
  "card":{
    ----[TRUNCATED]-----
  },
  "idVerificationResult": {
    "spoofingResult": {
      ----[TRUNCATED]-----
    },
    "landmarkResult": {
        "code": 5000,
        "message": "Success",
        "threshold": 0.95,
        "containerResult": [
            ----[TRUNCATED]-----
            {
                "position": {
                    "x": 195,
                    "y": 1172,
                    "width": 677,
                    "height": 522
                },
                "name": "id_number",
                "score": 0.12 // Low Confidence Score
            },
            {
                "position": {
                    "x": null,
                    "y": null,
                    "width": null,
                    "height": null
                },
                "name": "name",
                "score": 0 // Low Confidence Score
            },
            ----[TRUNCATED]-----
        ]
    },
    "forgeryResult": {
        ----[TRUNCATED]-----
    }
  }
}
```

</details>

### Spoof Warning Response

{% hint style="info" %}
**Note**: This happens when 1 spoof check fails.
{% endhint %}

HTTP Status Code: `200`

<details>

<summary>Spoof Warning JSON Response</summary>

```json
{
  "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",
  "warnings": [
        {
            "message": "Image submitted is Recaptured",
            "code": 10008,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
  "card":{
    ----[TRUNCATED]-----
  },
  "idVerificationResult": {
    "spoofingResult": {
        "message": "Recap score is above the threshold",
        "code": 5012,
        "recapScore": {
            "score": 0.99,
            "threshold": 0.95
        },
        "blackWhite": {
            "score": 0.027551,
            "threshold": 0.95
        }
    },
    "landmarkResult": {
        ----[TRUNCATED]-----
    },
    "forgeryResult": {
        ----[TRUNCATED]-----
    }
  }
}
```

</details>

### Spoof Error Response

{% hint style="info" %}
**Note**: This happens when **more than 1** spoof check fails.
{% endhint %}

HTTP Status Code: `400`

<details>

<summary>Spoof Error JSON Response</summary>

```json
{
  "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",
  "warnings": [
        {
            "message": "Image submitted is Recaptured",
            "code": 10008,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Image submitted is either B&W or Photocopy",
            "code": 10007,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "errors": [
        {
            "message": "Score is above the threshold",
            "code": 5012,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
}
```

</details>

## MyKas

<details>

<summary>Request</summary>

```json
{
  "operations": ["ocr"],
  "payload": {
    "partnerTrxId": "random-uuid",
    "groupId": "random-uuid",
    "idType": "ID_CARD",
    "country": "MYS",
    "idSubtype": "MyKas",
    "idFrontSideImage": "Base64 encoded image of ID front side"
  },
  "userConsent": {
    "userIP": "0.0.0.0",
    "country": "MYS",
    "obtained": true,
    "obtainedAt": "1680700959"
  }
}
```

</details>

### Success Response

HTTP Status Code: `200`

<details>

<summary>Success JSON Response</summary>

```json
{
  "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": {
    "blurriness": {
        "score": 0.000006,
        "threshold": 0.95
    },
    "lowLight": {
        "score": 0.088379,
        "threshold": 0.95
    }
  },
  "card":{
     "country": "MALAYSIA",
     "type": "MyKas",
     "isoAlpha3CountryCode": "MYS",
     "isoAlpha2CountryCode": "MY"
  },
  "idVerificationResult": {
    "spoofingResult": {
        "message": "Success",
        "code": 5000,
        "recapScore": {
            "score": 0.142703,
            "threshold": 0.95
        },
        "blackWhite": {
            "score": 0.003333,
            "threshold": 0.95
        }
    },
    "landmarkResult": {
        "code": 5000,
        "message": "Success",
        "threshold": 0.95,
        "containerResult": [
            {
                "position": {
                    "x": 67,
                    "y": 61,
                    "width": 187,
                    "height": 102
                },
                "name": "malaysia_flag",
                "score": 0.9984
            },
            {
                "position": {
                    "x": 813,
                    "y": 24,
                    "width": 156,
                    "height": 144
                },
                "name": "card_logo",
                "score": 0.9975
            },
            {
                "position": {
                    "x": 123,
                    "y": 247,
                    "width": 153,
                    "height": 144
                },
                "name": "chip",
                "score": 0.997
            },
            {
                "position": {
                    "x": 702,
                    "y": 158,
                    "width": 300,
                    "height": 404
                },
                "name": "portrait",
                "score": 0.9951
            },
            {
                "position": {
                    "x": 265,
                    "y": 47,
                    "width": 520,
                    "height": 117
                },
                "name": "kad_pengenalan_header",
                "score": 0.9921
            },
            {
                "position": {
                    "x": 73,
                    "y": 172,
                    "width": 330,
                    "height": 40
                },
                "name": "id_number",
                "score": 0.9914
            },
            {
                "position": {
                    "x": 71,
                    "y": 454,
                    "width": 446,
                    "height": 31
                },
                "name": "name",
                "score": 0.9873
            }
        ]
    }
  }
}
```

</details>

### Landmark Warning Response

HTTP Status Code: `200`

<details>

<summary>Landmark Warning JSON Response</summary>

```json
{
  "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",
  "warnings": [
       {
           "message": "Image has Occlusion, please check [id_number] from landmarkResult for more details",
           "code": 10023,
           "operations": [
               "idVerification"
           ]
       },
       {
           "message": "Image has Occlusion, please check [name] from landmarkResult for more details",
           "code": 10022,
           "operations": [
               "idVerification"
           ]
       }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
  "card":{
    ----[TRUNCATED]-----
  },
  "idVerificationResult": {
    "spoofingResult": {
      ----[TRUNCATED]-----
    },
    "landmarkResult": {
        "code": 5000,
        "message": "Success",
        "threshold": 0.95,
        "containerResult": [
            ----[TRUNCATED]-----
            {
                "position": {
                    "x": 195,
                    "y": 1172,
                    "width": 677,
                    "height": 522
                },
                "name": "id_number",
                "score": 0.12 // Low Confidence Score
            },
            {
                "position": {
                    "x": null,
                    "y": null,
                    "width": null,
                    "height": null
                },
                "name": "name",
                "score": 0 // Low Confidence Score
            },
            ----[TRUNCATED]-----
        ]
    },
    "forgeryResult": {
        ----[TRUNCATED]-----
    }
  }
}
```

</details>

### Spoof Warning Response

{% hint style="info" %}
**Note**: This happens when 1 spoof check fails.
{% endhint %}

HTTP Status Code: `200`

<details>

<summary>Spoof Warning JSON Response</summary>

```json
{
  "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",
  "warnings": [
        {
            "message": "Image submitted is Recaptured",
            "code": 10008,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
  "card":{
    ----[TRUNCATED]-----
  },
  "idVerificationResult": {
    "spoofingResult": {
        "message": "Recap score is above the threshold",
        "code": 5012,
        "recapScore": {
            "score": 0.99,
            "threshold": 0.95
        },
        "blackWhite": {
            "score": 0.027551,
            "threshold": 0.95
        }
    },
    "landmarkResult": {
        ----[TRUNCATED]-----
    },
    "forgeryResult": {
        ----[TRUNCATED]-----
    }
  }
}
```

</details>

### Spoof Error Response

{% hint style="info" %}
**Note**: This happens when **more than 1** spoof check fails.
{% endhint %}

HTTP Status Code: `400`

<details>

<summary>Spoof Error JSON Response</summary>

```json
{
  "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",
  "warnings": [
        {
            "message": "Image submitted is Recaptured",
            "code": 10008,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Image submitted is either B&W or Photocopy",
            "code": 10007,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "errors": [
        {
            "message": "Score is above the threshold",
            "code": 5012,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
}
```

</details>

## MyPR

<details>

<summary>Request</summary>

```json
{
  "operations": ["ocr"],
  "payload": {
    "partnerTrxId": "random-uuid",
    "groupId": "random-uuid",
    "idType": "ID_CARD",
    "country": "MYS",
    "idSubtype": "MyPR",
    "idFrontSideImage": "Base64 encoded image of ID front side"
  },
  "userConsent": {
    "userIP": "0.0.0.0",
    "country": "MYS",
    "obtained": true,
    "obtainedAt": "1680700959"
  }
}
```

</details>

### Success Response

HTTP Status Code: `200`

<details>

<summary>Success JSON Response</summary>

```json
{
  "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": {
    "blurriness": {
        "score": 0.000006,
        "threshold": 0.95
    },
    "lowLight": {
        "score": 0.088379,
        "threshold": 0.95
    }
  },
  "card":{
     "country": "MALAYSIA",
     "type": "MyPR",
     "isoAlpha3CountryCode": "MYS",
     "isoAlpha2CountryCode": "MY"
  },
  "idVerificationResult": {
    "spoofingResult": {
        "message": "Success",
        "code": 5000,
        "recapScore": {
            "score": 0.199488,
            "threshold": 0.95
        },
        "blackWhite": {
            "score": 0.003816,
            "threshold": 0.95
        }
    },
    "landmarkResult": {
        "code": 5000,
        "message": "Success",
        "threshold": 0.95,
        "containerResult": [
            {
                "position": {
                    "x": 527,
                    "y": 143,
                    "width": 234,
                    "height": 307
                },
                "name": "portrait",
                "score": 0.9969
            },
            {
                "position": {
                    "x": 212,
                    "y": 47,
                    "width": 394,
                    "height": 79
                },
                "name": "kad_pengenalan_header",
                "score": 0.9969
            },
            {
                "position": {
                    "x": 108,
                    "y": 192,
                    "width": 114,
                    "height": 105
                },
                "name": "chip",
                "score": 0.9967
            },
            {
                "position": {
                    "x": 66,
                    "y": 52,
                    "width": 135,
                    "height": 74
                },
                "name": "malaysia_flag",
                "score": 0.9966
            },
            {
                "position": {
                    "x": 638,
                    "y": 45,
                    "width": 91,
                    "height": 106
                },
                "name": "card_logo",
                "score": 0.996
            },
            {
                "position": {
                    "x": 59,
                    "y": 145,
                    "width": 245,
                    "height": 27
                },
                "name": "id_number",
                "score": 0.9928
            },
            {
                "position": {
                    "x": 65,
                    "y": 375,
                    "width": 236,
                    "height": 20
                },
                "name": "name",
                "score": 0.99
            }
        ]
    }
  }
}
```

</details>

### Landmark Warning Response

HTTP Status Code: `200`

<details>

<summary>Landmark Warning JSON Response</summary>

```json
{
  "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",
  "warnings": [
       {
           "message": "Image has Occlusion, please check [id_number] from landmarkResult for more details",
           "code": 10023,
           "operations": [
               "idVerification"
           ]
       },
       {
           "message": "Image has Occlusion, please check [name] from landmarkResult for more details",
           "code": 10022,
           "operations": [
               "idVerification"
           ]
       }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
  "card":{
    ----[TRUNCATED]-----
  },
  "idVerificationResult": {
    "spoofingResult": {
      ----[TRUNCATED]-----
    },
    "landmarkResult": {
        "code": 5000,
        "message": "Success",
        "threshold": 0.95,
        "containerResult": [
            ----[TRUNCATED]-----
            {
                "position": {
                    "x": 195,
                    "y": 1172,
                    "width": 677,
                    "height": 522
                },
                "name": "id_number",
                "score": 0.12 // Low Confidence Score
            },
            {
                "position": {
                    "x": null,
                    "y": null,
                    "width": null,
                    "height": null
                },
                "name": "name",
                "score": 0 // Low Confidence Score
            },
            ----[TRUNCATED]-----
        ]
    },
    "forgeryResult": {
        ----[TRUNCATED]-----
    }
  }
}
```

</details>

### Spoof Warning Response

{% hint style="info" %}
**Note**: This happens when 1 spoof check fails.
{% endhint %}

HTTP Status Code: `200`

<details>

<summary>Spoof Warning JSON Response</summary>

```json
{
  "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",
  "warnings": [
        {
            "message": "Image submitted is Recaptured",
            "code": 10008,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
  "card":{
    ----[TRUNCATED]-----
  },
  "idVerificationResult": {
    "spoofingResult": {
        "message": "Recap score is above the threshold",
        "code": 5012,
        "recapScore": {
            "score": 0.99,
            "threshold": 0.95
        },
        "blackWhite": {
            "score": 0.027551,
            "threshold": 0.95
        }
    },
    "landmarkResult": {
        ----[TRUNCATED]-----
    },
    "forgeryResult": {
        ----[TRUNCATED]-----
    }
  }
}
```

</details>

### Spoof Error Response

{% hint style="info" %}
**Note**: This happens when **more than 1** spoof check fails.
{% endhint %}

HTTP Status Code: `400`

<details>

<summary>Spoof Error JSON Response</summary>

```json
{
  "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",
  "warnings": [
        {
            "message": "Image submitted is Recaptured",
            "code": 10008,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Image submitted is either B&W or Photocopy",
            "code": 10007,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "errors": [
        {
            "message": "Score is above the threshold",
            "code": 5012,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    ----[TRUNCATED]-----
  }
}
```

</details>
