---
title: "Sandbox - National ID Service"
method: POST
path: "/v1/id/check"
tags: ["Sandbox - National ID Service"]
---

# Sandbox - National ID Service

`POST /v1/id/check`

## Request

- Base URL: `https://api.verihubs.com`
- URL: `https://api.verihubs.com/v1/id/check`
- Auth: none declared. Required headers: `App-ID`, `API-Key`

This method helps you to perform identity checking that shows legal subjects in order to issue an Electronic Certificate with the purpose of doing verification of citizenship data through legal sources.
  
  #### Scenario Description
  Scenario       | Request Payload         | Description |
  -----------|:---------------------|:-------------------------- |
  User input all valid data | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID | Data inputted based on rules & registered in Dukcapil based on NIK|
  User input real valid NIK integers format | 16 DIGITS NUMERIC <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID | NIK with the following suffix will give effect to the given image <br> "003" :"IMAGE_NO_FACE" <br> "004" :"IMAGE_INVALID" <br> "005" :"IMAGE_INVALID_2" <br> "006" :"IMAGE_INVALID_3" <br> "007" :"IMAGE_EXCEED_LIMIT_SIZE" <br> "008" :"IMAGE_UNDER_LIMIT_SIZE" |
   User input invalid NIK format | NIK_INVALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID | Inputted invalid NIK format |
  User inputs NIK more than 16 digit numbers   | NIK_INVALID_2 <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID | NIK > 16 digits numeric |
  User inputs NIK less than 16 digit numbers  | NIK_INVALID_3 <br> NAME_VALID <br> BIRTH_DATE_VALID  <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID   | NIK < 16 digits numeric |
  User inputs NIK with special characters  | NIK_INVALID_4 <br> NAME_VALID <br> BIRTH_DATE_VALID  <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID   | Inputted NIK is not in numeric format |
  User did not input NIK  | NIK_EMPTY <br> NAME_VALID <br> BIRTH_DATE_VALID  <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID | Did not input only NIK |
  User did not input payload NIK  | NIK_NONE <br> NAME_VALID <br> BIRTH_DATE_VALID  <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID | Did not input payload NIK |
  User inputs invalid name   | NIK_VALID <br> NAME_INVALID  <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br>  IMAGE_VALID   | Name inputted is not registered in Dukcapil accordance NIK |
  User did not input name     | NIK_VALID <br> NAME_EMPTY <br> BIRTH_DATE_VALID  <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID | Did not input only name |
  User did not input payload name   | NIK_VALID <br> NAME_NONE<br> BIRTH_DATE_VALID  <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID  | Did not input payload name |
  User inputs invalid birth date    | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_INVALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID  | Birth date inputted is not registered in Dukcapil accordance NIK |
  User inputs valid birth date with other format    | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_INVALID_2 <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID  | Birth date inputted is not accordance with the Birth Date Format, Should be DD-MM-YYYY |
  User did not input birth date    | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_EMPTY <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID   | Did not input only birth date |
  User did not input payload birth date   | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_NONE <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_VALID  | Did not input payload birth date |  
  User inputs invalid email  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_INVALID <br> PHONE_VALID <br> IMAGE_VALID  | Inputted invalid email
  User did not input email  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_EMPTY <br> PHONE_VALID <br> IMAGE_VALID  | Did not input only email
  User did not input payload email  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_NONE <br> PHONE_VALID <br> IMAGE_VALID  | Did not input payload email
  User inputs invalid phone  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_INVALID <br> IMAGE_VALID  | Inputted invalid phone format
  User did not input phone  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_EMPTY <br> IMAGE_VALID  | Did not input only phone
  User inputs phone less than 7 digits numbers  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_INVALID_2 <br> IMAGE_VALID  | Phone < 7 digits numeric
  User inputs phone more than 20 digits numbers  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_INVALID_3 <br> IMAGE_VALID  | Phone > 20 digits numeric
  User did not input payload phone  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_NONE <br> IMAGE_VALID  | Did not input payload phone
  User inputs valid image but different person with NIK   | NIK_VALID <br> NAME_VALID <br>  BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_INVALID  | Image inputted with format base64 or identity image URL but different person accordance to NIK | 
  User inputs invalid image format dimension  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_INVALID_2  | Image inputted with another format (not in a vallid base64 or url) |  
  User inputs invalid image format dimension  | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_INVALID_3  | Image inputted with under 400px*400px dimension |   
  User inputs image but no face photo    | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_NO_FACE  | Image inputted with format base64 or identity image URL but no face photo |
  User inputs invalid image with size more than 2 MB    | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_EXCEED_LIMIT_SIZE | Image size > 2 MB with 400px * 400px  |
  User inputs invalid image with size less than 30 KB  | NIK_VALID <br> NAME_VALID <br>  BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br> IMAGE_UNDER_LIMIT_SIZE | Image size < 30 KB with 400px * 400px  |          
  User did not input image   | NIK_VALID <br> NAME_VALID <br> BIRTH_PLACE_VALID <br> BIRTH_DATE_VALID <br>  IMAGE_EMPTY | Did not input only image  | 
  User did not put payload image    | NIK_VALID <br> NAME_VALID <br> BIRTH_DATE_VALID <br> EMAIL_VALID <br> PHONE_VALID <br>  IMAGE_NONE | Did not put payload image |

## Headers

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

## Request body

- IdCheck
  - `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).
  - `image` string, required: Selfie photo in base64 format, size min. 30 kB max. 2 MB, min pixel 400px x 400px

## Response `200`

Successful Response

- ResponseIdCheck
  - `code` integer, required: Code **(to be deleted on November 30, 2022)**
  - `status` integer, required: Status **(to be deleted on November 30, 2022)**
  - `message` string, required: Message
  - `results` object, required: Shows results of ID
    - `nik` string: it will return "Registered or Not Registered". if Nik is not registered all the key; name, birthdate, birthplace, address will return null
    - `name` boolean: it will return 'true' or 'false'based on individual name that registered on ektp.
    - `birth_date` boolean: it will return 'true' or 'false'based on individual birth date that registered on ektp.
    - `email` string
    - `phone` string
    - `similarity` integer: it will return a percentage of similarity '0-100'

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Unauthorized
- `429`: Unauthorized
- `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)
