API Request & Response

🎈Headers

Key

Type

Description

App-ID

String

Application ID that generated from Application Menu in Verihubs Client Dashboard. To hit in Testing and Live mode you need a Production Application ID.

API-Key

String

API-Key that generated from Application Menu in Verihubs Client Dashboard that related to specific Application ID.

You can generate your Application ID and API-Key in the Application page in Verihubs Client Dashboard..

🎈Request Details

Request Parameter for NIK Endpoint

Payloads

Type

Description

Example

nik

string

16-digit of Wajib Pajak's NIK as stated on KTP.

1234567891234567

purpose

string

The main purpose of validation. Currently there is no number of character limitation in this payload.

Pengecekan status WP

user_consent

boolean

When user_consent is true, the response will show the user's NPWP along with the validation status.

When user_consent is false, the response will only show the validation status without showing user's NPWP.

true

reference_id

string

ID that can be generated from your side to indicate your company's transaction. Must be unique per transaction. Verihubs will also auto-generate this ID if it left empty/non-exist in the payload.

npwp#123456

Request Parameter for NPWP Endpoint

Payloads

Type

Description

Example

npwp

string

Wajib Pajak's NPWP as stated on NPWP card and has to be inputted without the point (.) and strip (-) symbols that are shown in the Kartu NPWP. Verihubs accepts these formats of NPWP:

  • 15 digit NPWP.
  • 16 digit NPWP.
  • 22 digit NITKU.

If the NPWP written on NPWP card is 01.002.003.4-056.000, then input it as is 010020034056000

purpose

string

The main purpose of validation. Currently there is no number of character limitation in this payload.

Pengecekan status WP

user_consent

boolean

When user_consent is true, the response will show the user's NPWP along with the validation status.

When user_consent is false, the response will only show the validation status without showing user's NPWP.

true

reference_id

string

ID that can be generated from your side to indicate your company's transaction. Must be unique per transaction. Verihubs will also auto-generate this ID if it left empty/non-exist in the payload.

npwp#123456

🚧

Hitting the Verihubs Tax Number Verification endpoint(s) with both the NPWP and NIK in the same endpoint will result in an INVALID_PAYLOAD response.

🎈Response Details

Response Parameter for NIK and NPWP Endpoint

ResponseTypeDescriptionExamples
messageStringStatus of the transactionSuccessfully check NPWP
idString32-digit auto-generated Verihubs transaction ID123a4a56-7b8c-91a2-34b5-67a8e9a1234a
reference_idStringID that can be generated from your side to indicate your company's transaction. Must be unique.npwp#123456
npwpStringNPWP from the inputted NIK if user_consent is set TRUE010020034056000
namaStringMasked registered name of the NPWP owner.J*HN D**
alamatStringMasked registered address of the NPWP owner.W_K TW_R 1, JL D.. P_NJ*_T_N K_V. 9 001 011
status_wpStringThe Wajib Pajak (WP) status of the associated NPWP that will be shown as AKTIF or NE (re: Non Efektif).AKTIF
status_sptStringThe Surat Pemberitahuan (SPT) Tahunan status of the associated NPWP for the last 2 years that will be shown as VALID or INVALID.VALID

Detailed Response

Code

Description

Response

200

Successful Request*; This is a transaction that is considered successful and has been successfully verified by the data source)

{ 
  "message": "Successfully check NPWP", 
  "data": { 
    "id": "Transaction ID", 
    "referenceid": "Reference ID from Client", 
    "npwp": "NPWP Number", 
    "nama": "Masked Name", 
    "alamat": "Masked Address", 
    "status_wp": "AKTIF/NE", 
    "status_spt": "VALID/INVALID" 
  } 
}

200

Successfull Request but NPWP Not Found. This indicates that the searched NPWP by NIK is not registered in the datasource.

{
"message": "NPWP not found",
"data": \{
"id": "4182b248-f323-4c57-a770-15b4ea4c4968",
"reference_id": "Reference ID from client",
"npwp": null,
"nama": null,
"alamat": null,
"status_wp": null,
"status_spt": null
}
}

400

Bad Request*; This is a transaction that is considered failed due to validation errors, an error_field will appear explaining the error.

{
"message": "Authorization Failed",
"error_code":    "BAD REQUEST",
"error_fields": []
}

401

Authorization Failed*; The transaction cannot proceed because it is unauthorized.

{
"message": "Authorization Failed",
"error_code":    "UNAUTHORIZED",
"error_fields": []
}

403

Insufficient Quota*; The transaction failed due to insufficient quota, please contact Verihubs Customer Success (CS) Team.

{
"message": "Insufficient testing quota",
"error_code": "FORBIDDEN",
"error_fields": []
}

429

Spam Error*; The transaction is read as spam, please wait a few seconds before re-performing the hit process.

{
"message": "Too many request in the allowed time frame",
"error_code":       "TOO_MANY_REQUEST",
"error_fields": []
}

500

Internal Server Error*; The transaction failed due to a server error that could be caused by data source constraints, timeout, internal error.

{
"message": "Internal Server Error",
"error_code":    "INTERNAL_SERVER_ERROR",
"error_fields": []
}

NIK, NPWP and User Consent Variations

Payload Used

User Consent

Request

Response

Remarks

NIK

True

{
**"nik": "true NIK",**
"purpose": "real purpose",
**"user_consent": true,**
“reference_id”: “Client Generated Reference ID”
}
{
"message": "Successfully check NPWP",
"data": {
"id": "Transaction ID",
"referenceid": "Reference ID from Client",
**"npwp": "NPWP Number",**
"nama": "Masked Name",
"alamat": "Masked Address",
"status_wp": "AKTIF/NE",
"status_spt": "VALID/INVALID"
}
}

The NPWP number will be shown if the NIK payload is being used and user_consent is true.

NIK

False/Empty/Not Exist

{
**"nik": "true NIK",**
"purpose": "real purpose",
**"user_consent": false,**
“reference_id”: “Client Generated Reference ID”
}
{
"message": "Successfully check NPWP",
"data": {
"id": "Transaction ID",
"referenceid": "Reference ID from Client",
"nama": "Masked Name",
"alamat": "Masked Address",
"status_wp": "AKTIF/NE",
"status_spt": "VALID/INVALID"
}
}

The NPWP number will not be shown if the NIK payload is being used and user_consent is false.

NPWP

True/False/Empty/Not Exist

{
**"npwp": "true NPWP",**
"purpose": "real purpose",
**"user_consent": true,**
“reference_id”: “Client Generated Reference ID”
}
{
"message": "Successfully check NPWP",
"data": {
"id": "Transaction ID",
"referenceid": "Reference ID from Client",
"nama": "Masked Name",
"alamat": "Masked Address",
"status_wp": "AKTIF/NE",
"status_spt": "VALID/INVALID"
}
}

The user_consent payload will be ignored if the NPWP is being used for the verification.

NIK + NPWP

True/False/Empty/Not Exist

{
**"nik": "true NIK",**
**“npwp”: “true NPWP”,**
"purpose": "real purpose",
**"user_consent": true**
}
{
"message": "Invalid payload",
"error_code": "INVALID_PAYLOAD",
"error_fields": "h-2": "Description",
"0-0": "App-ID",
"0-1": "String",
"0-2": "Application ID that gen
}

Only a single request payload option between NIK or NPWP is allowed to be used.

Reference ID Variations

Client Reference ID

Request

Response

Remarks

Client Generated

{
"nik": "true NIK",
"purpose": "real purpose",
"user_consent": true,
“reference_id”: “Client Generated Reference ID”
}
{
"message": "Successfully check NPWP",
"data": {
"id": "Transaction ID",
"referenceid": "Client Generated Reference ID",
"npwp": "NPWP Number",
"nama": "Masked Name",
"alamat": "Masked Address",
"status_wp": "AKTIF/NE",
"status_spt": "VALID/INVALID"
}
}

The response will show the exact same Reference ID if the client chooses to generate it by themself.

Empty

or

Not Exist

{
"nik": "true NIK",
"purpose": "real purpose",
"user_consent": true,
“reference_id”: “”
}
{
"message": "Successfully check NPWP",
"data": {
"id": "Transaction ID",
**"referenceid": "Verihubs Generated Reference ID",**
"npwp": "NPWP Number",
"nama": "Masked Name",
"alamat": "Masked Address",
"status_wp": "AKTIF/NE",
"status_spt": "VALID/INVALID"
}
}

Verihubs will generate a specific Reference ID if within the request payload client doesn’t include ones.