> 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-v2/summary-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)

## MyKad

### Request

<details>

<summary>Sample Request for Front Side</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>

<details>

<summary>Sample Request for Front Side and Back Side</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",
    "idBackSideImage": "Base64 encoded image of ID back side" //if enabled
  },
  "userConsent": {
    "userIP": "0.0.0.0",
    "country": "MYS",
    "obtained": true,
    "obtainedAt": "1680700959"
  }
}
```

</details>

### Success Response

HTTP Status Code: `200`

<details>

<summary>Success JSON Response for Front Side Only</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": {
        "front": {
            "statusCode": 5000
        }
    },
    "card": {
        "country": "MALAYSIA",
        "type": "MyKad",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY"
    },
    "idVerificationResult": {
        "front": {
            "statusCode": 5000
        }
    }
}
```

</details>

<details>

<summary>Success JSON Response for Front Side and Back Side</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": {
        "front": {
            "statusCode": 5000
        },
        "back": {
            "statusCode": 5000
        }
    },
    "card": {
        "country": "MALAYSIA",
        "type": "MyKad",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY"
    },
    "idVerificationResult": {
        "front": {
            "statusCode": 5000
        },
        "back": {
            "statusCode": 5000
        }
    }
}
```

</details>

### Forged Card Response

HTTP Status Code: `400`&#x20;

<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": {
    "front": {
      "statusCode": 5000
    }
  }
}
```

</details>

### Landmark Response

HTTP Status Code: `200`&#x20;

<details>

<summary>Landmark 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 failed the idVerification",
            "code": 5025,
            "operations": [
                "idVerification"
            ]
        }
    ],
    "imageQualityResult": {
        "front": {
            "statusCode": 5000
        }
    }
}
```

</details>

### Spoof Response

HTTP Status Code: `400`&#x20;

<details>

<summary>Spoof 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": "Spoof check failed. Image submitted is either B&W or Photocopy",
            "code": 5602,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Spoof check failed. Image submitted is Recaptured",
            "code": 5601,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Spoof check failed. Image submitted is color reprint",
            "code": 5603,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    "front": {
      "statusCode": 5000
    }
  }
}
```

</details>

## MyTentera

{% hint style="info" %}
**Note:**&#x20;

* There are **two versions** of **MyTentera** cards: an **old version** and a **new version**. The **old version** does not have a **ghost image**.
* The ghost image is considered an optional landmark—if detected, it will be included in the response; otherwise, it will be omitted without triggering any IDV failure.
  {% endhint %}

### Request

<details>

<summary>Sample Request for Front Side</summary>

```json
{
  "operations": ["idVerification"],
  "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>

<details>

<summary>Sample Request for Front Side and Back Side</summary>

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

</details>

### Success Response

HTTP Status Code: `200`&#x20;

<details>

<summary>Success JSON Response for Front Side Only</summary>

<pre class="language-json"><code class="lang-json">{
    "transactionId": "unique transaction id generated to identify this transaction",
<strong>    "partnerTrxId": "partner transaction id submitted by customer in request",
</strong>    "groupId": "partner group id submitted by customer in request",
    "imageQualityResult": {
        "front": {
            "statusCode": 5000
        }
    },
    "card": {
        "country": "MALAYSIA",
        "type": "MyTentera",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY"
    },
    "idVerificationResult": {
        "front": {
            "statusCode": 5000
        }
    }
}
</code></pre>

</details>

<details>

<summary>Success JSON Response for Front Side and Back Side</summary>

```json
{
    "transactionId": "a67331e2-9f4d-417a-9289-6ed1af79f567",
    "partnerTrxId": "28415b48-9b69-4311-81bc-6b593ce6490f",
    "groupId": "c6547fe1-0694-4d8a-b9bc-dfa1aee13057",
    "imageQualityResult": {
        "front": {
            "statusCode": 5000
        },
        "back": {
            "statusCode": 5000
        }
    },
    "card": {
        "country": "MALAYSIA",
        "type": "MyTentera",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY"
    },
    "idVerificationResult": {
        "front": {
            "statusCode": 5000
        },
        "back": {
            "statusCode": 5000
        }
    }
}
```

</details>

### Landmark Response

HTTP Status Code: `200`

<details>

<summary>Landmark 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 failed the idVerification",
        "code": 5025,
        "operations": [
            "idVerification"
        ]
      }
  ],
  "imageQualityResult": {
    "front": {
      "statusCode": 5000
    }
  }
}
```

</details>

### Spoof Response

HTTP Status Code: `400`&#x20;

<details>

<summary>Spoof 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": "Spoof check failed. Image submitted is either B&W or Photocopy",
          "code": 5602,
          "operations": [
              "idVerification"
          ]
       },
       {
          "message": "Spoof check failed. Image submitted is Recaptured",
          "code": 5601,
          "operations": [
              "idVerification"
          ]
       },
       {
            "message": "Spoof check failed. Image submitted is color reprint",
            "code": 5603,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    "front": {
      "statusCode": 5000
    }
  }
}
```

</details>

## MyKas

### Request

<details>

<summary>Sample Request for Front Side</summary>

```json
{
  "operations": ["idVerification"],
  "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>

<details>

<summary>Sample Request for Front Side and Back Side</summary>

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

</details>

### Success Response

HTTP Status Code: `200`&#x20;

<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": {
        "front": {
            "statusCode": 5000
        }
    },
    "card": {
        "country": "MALAYSIA",
        "type": "MyKas",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY"
    },
    "idVerificationResult": {
        "front": {
            "statusCode": 5000
        }
    }
}
```

</details>

<details>

<summary>Sample Request for Front Side and Back Side</summary>

```json
{
   "transactionId": "0f24d08f-273a-40d9-88d4-4f56895303b1",
    "partnerTrxId": "10d3469b-6aa1-4dc4-8b49-7031446fd222",
    "groupId": "5a16a0c5-61d8-4c2c-8a45-4d7d242a01db",
    "imageQualityResult": {
        "front": {
            "statusCode": 5000
        },
        "back": {
            "statusCode": 5000
        }
    },
    "card": {
        "country": "MALAYSIA",
        "type": "MyKas",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY"
    },
    "idVerificationResult": {
        "front": {
            "statusCode": 5000
        },
        "back": {
            "statusCode": 5000
        }
    }
}
```

</details>

### Landmark Response

HTTP Status Code: `200`&#x20;

<details>

<summary>Landmark 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 failed the idVerification",
        "code": 5025,
        "operations": [
            "idVerification"
        ]
      }
  ],
  "imageQualityResult": {
    "front": {
      "statusCode": 5000
    }
  }
}
```

</details>

### Spoof Response

HTTP Status Code: `400`&#x20;

<details>

<summary>Spoof 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": "Spoof check failed. Image submitted is either B&W or Photocopy",
            "code": 5602,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Spoof check failed. Image submitted is Recaptured",
            "code": 5601,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Spoof check failed. Image submitted is color reprint",
            "code": 5603,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    "front": {
      "statusCode": 5000
    }
  }
}
```

</details>

## MyPR

### Request

<details>

<summary>Sample Request for Front Side</summary>

```json
{
  "operations": ["idVerification"],
  "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>

<details>

<summary>Sample Request for Front Side and Back Side</summary>

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

</details>

### Success Response

HTTP Status Code: `200`&#x20;

<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": {
        "front": {
            "statusCode": 5000
        }
    },
    "card": {
        "country": "MALAYSIA",
        "type": "MyPR",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY"
    },
    "idVerificationResult": {
        "front": {
            "statusCode": 5000
        }
    }
}
```

</details>

<details>

<summary>Sample Request for Front Side and Back Side</summary>

```json
{
    "transactionId": "a601c0ef-f07a-41f4-8a40-66a12069a27b",
    "partnerTrxId": "311ef43a-4f5d-4775-9610-e27ba981be7a",
    "groupId": "1059f8ba-16c0-479c-a94a-d98b2ef55ed9",
    "imageQualityResult": {
        "front": {
            "statusCode": 5000
        },
        "back": {
            "statusCode": 5000
        }
    },
    "card": {
        "country": "MALAYSIA",
        "type": "MyPR",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY"
    },
    "idVerificationResult": {
        "front": {
            "statusCode": 5000
        },
        "back": {
            "statusCode": 5000
        }
    }
}
```

</details>

### Landmark Response

HTTP Status Code: `200`&#x20;

<details>

<summary>Landmark 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 failed the idVerification",
        "code": 5025,
        "operations": [
            "idVerification"
        ]
      }
  ],
  "imageQualityResult": {
    "front": {
      "statusCode": 5000
    }
  }
}
```

</details>

### Spoof Response

HTTP Status Code: `400`&#x20;

<details>

<summary>Spoof 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": "Spoof check failed. Image submitted is either B&W or Photocopy",
            "code": 5602,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Spoof check failed. Image submitted is Recaptured",
            "code": 5601,
            "operations": [
                "idVerification"
            ]
        },
        {
            "message": "Spoof check failed. Image submitted is color reprint",
            "code": 5603,
            "operations": [
                "idVerification"
            ]
        }
  ],
  "imageQualityResult": {
    "front": {
      "statusCode": 5000
    }
  }
}
```

</details>
