---
title: "Electronic Certificate Issuance Service"
method: POST
path: "/v2/data-verification/certificate-electronic/sandbox"
tags: ["Sandbox - Electronic Certificate Issuance Service"]
---

# Electronic Certificate Issuance Service

`POST /v2/data-verification/certificate-electronic/sandbox`

## Request

- Base URL: `https://api.verihubs.com`
- URL: `https://api.verihubs.com/v2/data-verification/certificate-electronic/sandbox`
- Auth: none declared. Required headers: `App-ID`, `API-Key`

Electronic Certificate Issuance allows you to check whether the NIK and other data from your client's KTP is registered in the government database. Please refer to [Verihubs Documentation](https://docs.verihubs.com/docs/electronic-certificate-issuance) for guidelines and best practice

### Scenario Description
  #### Success Scenario
  Scenario       | Request Payload | Description |
  -----------|:---------------------|:-------------------------- |
  User input all valid data | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Data inputted based on rules & registered in Authoritative source based on NIK|
  
  #### NIK Scenario
  Scenario       | Request Payload         | Description |
  -----------|:---------------------|:-------------------------- |
  NIK Not Inputted | {empty NIK value} <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | NIK is a mandatory parameter. |
  NIK Non-Numeric   | 85220118ABCD0001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Indonesian NIK inputted must be numeric. |
  NIK Not 16-Digit | 852201180888000 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Indonesian NIK inputted must be 16 digit. | 
  NIK Not Verified | {OTHER THAN PREDETERMINED NIK} <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | The NIK inputted is not registered in Authoritative source thus the other data can not be checked. |
   
  #### Name Scenario
  Scenario       | Request Payload         | Description |
  -----------|:---------------------|:-------------------------- |
  Name Not Inputted | 8522011808880001 <br> {empy name value} <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Name is not inputted in the payload. |
  Name Not Verified | 8522011808880001 <br> {OTHER THAN REGISTERED NAME} <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill}  | The name inputted is not an exact match with the name registered on Authoritative source. |
  
  #### Birth Date Scenario
  Scenario       | Request Payload         | Description |
  -----------|:---------------------|:-------------------------- |
  Birth Date Not Inputted | 8522011808880001 <br> JOHN DOE <br> {empty birth_date value} <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Birth date not inputted in payload. |
  Birth Date Not in DD-MM-YYYY Format | 8522011808880001 <br> JOHN DOE <br> 1988-08-18 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Birth date must be in DD-MM-YYYY format. Inputting random string will also trigger this validation. |
  Birth Date Not Verified| 8522011808880001 <br> JOHN DOE <br> {OTHER THAN REGISTERED BIRTH DATE} <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Birth date inputted is not an exact match with birth date registered in Authoritative source. |
  
  #### Selfie Photo Scenario
  Scenario       | Request Payload         | Description |
  -----------|:---------------------|:-------------------------- |
  Selfie Photo Parameter Empty | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {empty selfie_photo value} <br> {base64 KTP} <br> {reference_id free to fill} | Selfie photo parameter is empty/not containing any base64 values. |
  Selfie Photo is Not Base64 | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {input any value non base64} <br> {base64 KTP} <br> {reference_id free to fill} | Selfie photo inputted is non-base64 format. |
  Selfie Photo Pixelation is Below Requirement | nik: 8522011808880001 <br> name: JOHN DOE <br> birth_date: 18-08-1988 <br> email: johndoe@sandbox.com <br> phone: 6281256898760 <br> selfie_photo: {base64 Selfie (below pixel requirement)} <br> ktp_photo: {base64 KTP} <br> reference_id: {reference_id free to fill} | The resolution of the selfie photo is below 480px (horizontal) x 640px (vertical) |
  Selfie Photo Below 100KB | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie <100kb} <br> {base64 KTP} <br> {reference_id free to fill}| Selfie photo size must be 100KB-4096KB |
  Selfie Photo Size Above 4096KB | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie >4096kb} <br> {base64 KTP} <br> {reference_id free to fill}| Selfie photo size must be 100KB-4096KB |
  Selfie Photo Not Verified | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {not verified base64 SELFIE} <br> {base64 KTP} <br> {reference_id free to fill} | The face in the selfie photo inputted is not a match to face registered in Authoritative source. |
  Rejected by Passive Liveness | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {LIVENESS REJECTED} <br> {base64 KTP} <br> {reference_id free to fill}   | Face in the selfie photo is classified as non-alive/non-human by passive-liveness. |
  
  #### KTP Photo Scenario
  Scenario       | Request Payload         | Description |
  -----------|:---------------------|:-------------------------- |
  Empty KTP photo | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {empty ktp_photo value} <br> {reference_id free to fill} |KTP photo is not inputted in the payload. |
  KTP photo is not Base64 | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {input any value not_base64} <br> {reference_id free to fill}| KTP photo is not in Base64 format. Inputting random string will also trigger the same result. |
  KTP photo resolution is below minimum requirement | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {low_resolution_base64} <br> {reference_id free to fill} | Minimum KTP photo requirement of 480px (horizontal) x 360px (vertical). |
  KTP photo size below minimum requirement| 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP <100kb} <br> {reference_id free to fill} | KTP photo size must be 100KB-2096KB. | 
  KTP photo size above maximum requirement| 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP >2048kb} <br> {reference_id free to fill} | KTP photo size must be 100KB-2096KB. | 
  Invalid KTP photo | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {input failed KTP} <br> {reference_id free to fill} | KTP photo classified as not a real KTP. A fake/copied/highly blur/cropped KTP photo will trigger this validation.  |  
  
  #### Email Scenario
  Scenario       | Request Payload         | Description |
  -----------|:---------------------|:-------------------------- |
  User did not input value in Email payload  | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> {empty email value} <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill}| Data inputted missing value in Email payload |
  User did not input Email based on format  | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe.sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill}  | Data inputted not a valid format |
  User did not input unique email to the Email payload (using the same email for another NIK)  | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> janedoe@sandbox.com <br> 6281256898760 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Inputted data and got verified_with_reason status with reject_field Email |
  
  #### Phone Scenario
  Scenario       | Request Payload         | Description |
  -----------|:---------------------|:-------------------------- |
  User did not input value in Phone payload  | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> {empty phone value} <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill}  | Data inputted missing value in Phone payload |  
  User did not input Phone  based on format  | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 62812 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill} | Data inputted is not based on format |
  User did not input unique Phone to the Phone payload (using the same phone for another NIK)  | 8522011808880001 <br> JOHN DOE <br> 18-08-1988 <br> johndoe@sandbox.com <br> 6281234123412 <br> {base64 Selfie} <br> {base64 KTP} <br> {reference_id free to fill}| Inputted data and got verified_with_reason status with reject_field Phone |

## Headers

- `App-ID` string, required
- `API-Key` string, required

## Request body

- Sertel
  - `nik` string, required: 16 digit numeric Identifier Number from ID.
  - `name` string, required: Full name from ID.
  - `birth_date` string, required: Date of birth from ID in DD-MM-YYYY format.
  - `email` string, required: Email address (must be unique per nik).
  - `phone` string, required: Valid phone number, use country code but without symbol (+), (must be unique per nik).
  - `selfie_photo` string, required: Selfie photo in base64 format, size min. 100 kB max. 4 MB, min pixel 640px x 480px.
  - `ktp_photo` string, required: KTP photo in base64 format, size min. 100 kB max. 2 MB, min pixel 480px x 360px.
  - `channel` string: Brand's name (will be used in email).
  - `reference_id` string: Use to indicate your company's transaction (must be unique).

## Response `200`

Successful Response

- ResponseSertel
  - `message` string, required: Shows message of the response
  - `data` object, required: Shows results of verification
    - `id` string: Verihubs ID, generate string that are unique for every transactions
    - `status` string: Identifier of the transactions. It will return verified, verified_with_reason, or not_verified
    - `reject_field` object: Indicator if there’s a "false" response to a or any parameter, example if nik detected as not found in data source, then the reject_filed will state [“nik”, “name”], and so on
    - `reference_id` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Request
- `500`: Internal Server Error

---

[API](https://skmtc.dev/verihubs/apis/sandbox-data-api-documentation.md) - [All operations](https://skmtc.dev/verihubs/apis/sandbox-data-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/verihubs/apis/sandbox-data-api-documentation/revisions/64df34f0a428?raw)
