Signature

Request

Disbursement

Callback

Changelog

Introduction

Welcome to Platform API, you can use this API to integrate with your website.

Signature

Request

  1. Sort all non-empty parameter fields in ascending ASCII order. Concatenate the values in the order of the keys to generate string StringA.

  2. Encrypt StringA using the merchant's private key (queryString) with RSA to obtain the signature value sign.

Response

  1. Sort all non-empty parameter fields in ascending ASCII order. Concatenate the values in the order of the keys to generate string StringA (excluding sign).

  2. Decrypt sign using RSA with the platform's public key to obtain the original data, then compare it with StringA.

Callback

  1. Sort all non-empty parameter fields in ascending ASCII order. Concatenate the values in the order of the keys to generate string StringA (excluding sign).

  2. Decrypt sign using RSA with the platform's public key to obtain the original data, then compare it with StringA.


Example

SignDataExample

JavaCodeExample

Request

To make a transfer request to the ClickPay gateway, you need to send an HTTP POST request to the production URL https://open.clickpay.click/gateway/cash. The JSON structure for a successful response and the required parameters for the request are provided below.

Disbursement

HTTP Request

Production: POST https://open.clickpay.click/gateway/cash

Parameters

The following parameters need to be included in your POST request to make a transfer:

Parameter Type Required Description Example
merchantCode string(32) Y Merchant number opened by the merchant on the platform S820190712000002
orderNum string(32) Y Merchant system unique order number T1231511321515
money double(15,2) Y Transfer amount 100000
feeType int(1) Y 0-Deducted from the transfer amount 1-Deducted from the merchant balance 1
dateTime string(14) Y Date and time in format yyyyMMddHHmmss 20191018105510
name string(16) Y Cardholder's Name MUHAMAD JUMAEDI
currency string(64) Y Currency IDR
number string(32) Y Transfer account 0120410580
bankCode string(16) Y Bank code 014
accountEmail string(50) Y Transfer Email,The email must be a fixed value, and only the correct format is required. [email protected]
accountMobile string(45) Y Transfer Mobile 82123234444
description string(32) Y Transfer description Test Withdraw
notifyUrl string(100) Y Asynchronous notification address https://www.example.com/notify
sign string(512) Y RSA encrypted string ja6R8eukQY9jc8z_lihKUjxMAeOirBFTu4uRM75MZzZg8f-JnGDAdKiAVkFP8LvaHbPAhpyV1SVhe2NNmnDgqDzHAhthxf1ikGYwjmPkxnktGIHL3G3NY4IYKYnL8R8DRmpC6M9TXxrONWC4C0P_HwMDphnbqzRGxV4Z3y-EZOs

Make sure all required parameters are included and properly formatted in your POST request to ensure a successful transaction.

Important Notes

JSON Response Structure

The response will be in JSON format and will contain the following fields:

Field Description Example Value
platRespCode Indicates if the request was successful. SUCCESS (request successful), FAIL (request failed), UNKNOWN (status unknown, requires manual processing), NOTEXIST (order does not exist), ERROR (error occurred)
platRespMessage Description of platRespCode. "Request success"
platOrderNum Order number on the platform. "W0620190809142621000000"
orderNum Merchant system unique order number. "T201908090001"
money Amount involved in the transaction. 20000.00
feeType Type of fee charged. 0
name Name of the customer. "MUHAMAD JUMAEDI"
number Transaction number or account number. "0120410580"
fee Charged fee. 123
bankCode Bank code associated with the transaction. "DSG"
description Description of the transaction. "transfer"
status Status of the order (refer to Status Code). 0 (Apply)
statusMsg Description of the status. "Apply"
platSign RSA encrypted signature for verification. "YDPniVvWSV15vxuZDPgjowKW1fZKjNsmsbrzI-BGjpFg7d53FLar2nt5W5a78CmDj_KGdjWZo3z1RSBj2aoGSa_bDIgtCm6mz6hT852l64Wf1T4jEJi0mkzHlpVRGcy6DGjrp34Ri0cXVLyavjnjCycVpd11XE-iGE847Rbbs5aCaA4eZX7aGS25ca4gD0__fut7Qiul6FLvD2yGhK_naCsYqbAYTKhYGuWa6kotmVL36fljzwHok6LKmbR98z1gJ7GFEwe9JlUyFkH0ad2L6Tu_NT90KOeQC6F3N-jUuFKN3w1R9-WUrg6O638xrD8IkjbM6CjdqIn1qhCLjVc67g"

This table explains each field in the JSON response object, providing both the field's purpose and an example value to clarify its meaning.

{
  "platRespCode": "SUCCESS",
  "platRespMessage": "Request success",
  "platOrderNum": "W0620190809142621000000",
  "orderNum": "T201908090001",
  "money": 20000.00,
  "feeType": 0,
  "name": "MUHAMAD JUMAEDI",
  "number": "0120410580",
  "fee": 123,
  "bankCode": "DSG",
  "description": "transfer",
  "status": 0,
  "statusMsg": "Apply",
  "platSign": "YDPniVvWSV15vxuZDPgjowKW1fZKjNsmsbrzI-BGjpFg7d53FLar2nt5W5a78CmDj_KGdjWZo3z1RSBj2aoGSa_bDIgtCm6mz6hT852l64Wf1T4jEJi0mkzHlpVRGcy6DGjrp34Ri0cXVLyavjnjCycVpd11XE-iGE847Rbbs5aCaA4eZX7aGS25ca4gD0__fut7Qiul6FLvD2yGhK_naCsYqbAYTKhYGuWa6kotmVL36fljzwHok6LKmbR98z1gJ7GFEwe9JlUyFkH0ad2L6Tu_NT90KOeQC6F3N-jUuFKN3w1R9-WUrg6O638xrD8IkjbM6CjdqIn1qhCLjVc67g"
}

PHP Sample Code for Disbursement API

<?php
$private_key = 'YOUR_PRIVATE_KEY'; // Replace with your private key
$merchantCode = 'YOUR_MERCHANT_CODE_HERE'; // Replace with your merchant code
$orderNum = 'T1231511321515'; // Unique order number in your system
$money = '100000'; // Amount for disbursement
$feeType = '1'; // Fee type
$dateTime = date("YmdHis", time()); // Current date and time
$name = 'MUHAMAD JUMAEDI'; // Beneficiary name
$accountEmail = '[email protected]'; // Beneficiary email
$accountMobile = '9984574212'; // Beneficiary mobile number
$currency = 'IDR'; // Currency
$number = '0120410580'; // Account number
$bankCode = 'DSG'; // Bank code
$description = 'Test Withdraw'; // Transaction description
$notifyUrl = 'https://www.example.com/notify'; // Notification URL

$params = array(
    'merchantCode' => $merchantCode,
    'orderNum' => $orderNum,
    'money' => $money,
    'feeType' => $feeType,
    'dateTime' => $dateTime,
    'name' => $name,
    'number' => $number,
    'accountEmail' => $accountEmail,
    'accountMobile' => $accountMobile,
    'currency' => $currency,
    'bankCode' => $bankCode,
    'description' => $description,
    'notifyUrl' => $notifyUrl
);

ksort($params);
$params_str = '';
foreach ($params as $val) {
    $params_str .= $val;
}

$sign = private_key_encrypt($params_str, $private_key);
$params['sign'] = $sign;
$params_string = json_encode($params);

// $url = 'https://open.clickpay.click/gateway/cash'; // Production URL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($params_string)
));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

// Execute post
$request = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($httpCode == 200) {
    $result = json_decode($request, true);
    header('location: ' . $result['paymentUrl']);
    echo "platRespCode :" . $result['platRespCode'] . "<br />";
    echo "platRespMessage :" . $result['platRespMessage'] . "<br />";
    echo "platOrderNum :" . $result['platOrderNum'] . "<br />";
    echo "orderNum :" . $result['orderNum'] . "<br />";
    echo "money :" . $result['money'] . "<br />";
    echo "feeType :" . $result['feeType'] . "<br />";
    echo "name :" . $result['name'] . "<br />";
    echo "number :" . $result['number'] . "<br />";
    echo "fee :" . $result['fee'] . "<br />";
    echo "bankCode :" . $result['bankCode'] . "<br />";
    echo "description :" . $result['description'] . "<br />";
    echo "status :" . $result['status'] . "<br />";
    echo "statusMsg :" . $result['statusMsg'] . "<br />";
    echo "platSign :" . $result['platSign'] . "<br />";
} else {
    echo $httpCode;
}

function private_key_encrypt($data, $private_key)
{
    $private_key = '-----BEGIN PRIVATE KEY-----' . "\n" . $private_key . "\n" . '-----END PRIVATE KEY-----';
    $pi_key = openssl_pkey_get_private($private_key);
    $crypto = '';
    foreach (str_split($data, 117) as $chunk) {
        openssl_private_encrypt($chunk, $encryptData, $pi_key);
        $crypto .= $encryptData;
    }

    return base64_encode($crypto);
}

function public_key_decrypt($data, $public_key)
{
    $public_key = '-----BEGIN PUBLIC KEY-----' . "\n" . $public_key . "\n" . '-----END PUBLIC KEY-----';
    $data = base64_decode($data);
    $pu_key = openssl_pkey_get_public($public_key);
    $crypto = '';
    foreach (str_split($data, 128) as $chunk) {
        openssl_public_decrypt($chunk, $decryptData, $pu_key);
        $crypto .= $decryptData;
    }

    return $crypto;
}
?>

Explanation

This code demonstrates how to make a disbursement API request using PHP. Below are the key steps:

  1. Initialize Variables: Replace the placeholders with your actual private key, merchant code, and other relevant details.
  2. Create Parameters Array: Populate the $params array with the necessary information.
  3. Sort and Concatenate Parameters: Sort the parameters and concatenate their values into a string.
  4. Generate Signature: Encrypt the concatenated string using your private key to generate a signature.
  5. Add Signature to Parameters: Add the generated signature to the parameters array.
  6. Convert Parameters to JSON: Convert the parameters array to a JSON string.
  7. Initialize cURL: Set up a cURL request to the API endpoint.
  8. Set cURL Options: Configure the cURL request with the appropriate options, including URL, request method, headers, and body.
  9. Execute cURL Request: Execute the cURL request and handle the response.
  10. Display Response: Display the response details, including any error codes or messages.

Functions

Notes

This code provides a comprehensive example of how to integrate with a disbursement API using PHP, ensuring secure transmission through RSA encryption.

Callback

Return values are returned as HTTP POST, Merchant will need to provide a call-back page to catch the result. After receiving the notification and processing is successful, please return the string SUCCESS

Callback Parameters

HTTP Request

Callback Parameters

When the payment platform sends the callback, it includes several parameters in the JSON payload. Here are the details of those parameters:

Parameter Description Example
platOrderNum Payment platform order number BK_1563278763273
orderNum Merchant request serial number T1231511321515
money Request order amount 10000
feeType 0-Deducted from the transfer amount 1-Deducted from the merchant balance 0
name Request order name MUHAMAD JUMAEDI
number Transfer bank card number 0120410580
fee Transaction Fees 3000
bankCode Transfer bank code, reference to bank list Requested bankCode
description Transfer description Test Withdraw
status Status code 2
statusMsg Status description SUCCESS
platSign RSA encrypted string ja6R8eukQY9jc8z_lihKUjxMAeOirBFTu4uRM75MZzZg8f-JnGDAdKiAVkFP8LvaHbPAhpyV1SVhe2NNmnDgqDzHAhthxf1ikGYwjmPkxnktGIHL3G3NY4IYKYnL8R8DRmpC6M9TXxrONWC4C0P_HwMDphnbqzRGxV4Z3y-EZOs
{
	"bankCode": "014",
	"description": "Test Withdraw",
	"fee": "5500.00",
	"feeType": "1",
	"money": "100000.00",
	"name": "GGG",
	"number": "8850934909",
	"orderNum": "12222222",
	"platOrderNum": "123456",
	"platSign": "Lp6pAWHb3DMKTHeR4UZR8O75Ut5+RsjiyzrCMvh+7oH2wYIXy8Mhk4rgrWKjlB7eAg0rL1aNDA7EwI2hlcrRG9bsJF/FVhlgBWBPf3lHk7CzBCW2hLsovMrf1wwdV2zLVL2PRaA0E7kFxfpLtBvu0OeNv/AJKWm+fBW8NvrJ8eg=",
	"status": "2",
	"statusMsg": "SUCCESS"
}

PHP Callback Handler

Callback Implementation

The callback URL is where the payment platform sends the response after processing a transfer request. The response is sent via an HTTP POST request in JSON format. Below is an example of a PHP script to handle this callback.

PHP Script for Handling the Callback

<?php

$res = json_decode(file_get_contents('php://input'), true);
$platSign = $res['platSign'];
unset($res['platSign']);

$public_key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFJ/AmUV4Z8udG8aOBUt/kEwc/DbxF5Gtfw6Y00NHQ4Pz2X2x9IxjUZxn2dnFxmrmhqKNlfwXOqyejhBzi0pSHyGoI4XP9IEfZGO6YkSb9DCY1ZxX8fDl2G+tPCbWYTVO4JutFmzTWgk1Uhhu6L9dlOMUHvZf3/6czA/a9C7azXwIDAQAB';
$decryptSign = public_key_decrypt($platSign, $public_key);

$params = $res;
ksort($params);
$params_str = '';
foreach ($params as $key => $val) {
    $params_str .= $val;
}

if ($params_str == $decryptSign) {
    if ($res['status'] == '2') {
        echo 'success';
    } else {
        echo 'fail';
    }
} else {
    echo 'fail';
}

function public_key_decrypt($data, $public_key)
{
    $public_key = '-----BEGIN PUBLIC KEY-----' . "\n" . $public_key . "\n" . '-----END PUBLIC KEY-----';
    $data = base64_decode($data);
    $pu_key = openssl_pkey_get_public($public_key);
    $crypto = '';
    foreach (str_split($data, 128) as $chunk) {
        openssl_public_decrypt($chunk, $decryptData, $pu_key);
        $crypto .= $decryptData;
    }
    return $crypto;
}
?>

Notes

Return Values

The merchant's server should respond with a string "success" if the notification and processing are successful. If there is any failure, respond with "fail". This response should be sent back to the payment platform to confirm the receipt of the callback.

Inquiry Status

HTTP Request

To query the order status, send an HTTP POST request to the following endpoint:

Production: https://open.clickpay.click/gateway/query

Parameters

When sending the POST request, include the following parameters in the JSON body:

Parameter Description Example
merchantCode Merchant number opened by the merchant on the platform S820190712000002
queryType CASH_QUERY
orderNum Merchant system unique order number T1231511321515
dateTime Date and time of the transaction in yyyyMMddHHmmss format 20191018105510
appId Application ID. Ignore if you didn't create an application 9039094726
sign RSA encrypted string ja6R8eukQY9jc8z....bqzRGxV4Z3y-EZOs

JSON Response Structure

Here’s a detailed explanation of the JSON response structure and parameters for querying the order status via the provided API endpoint.

Here is the field explanation table for the provided JSON object:

Field Description Example Value
platRespCode Indicates if the request was successful. SUCCESS (request successful), FAIL (request failed), UNKNOWN (status unknown, requires manual processing), NOTEXIST (order does not exist), ERROR (error occurred)
platRespMessage Description of platRespCode. "success"
platOrderNum Order number on the platform. "W0620190806194836000002"
orderNum Merchant system unique order number. "T201908060003"
amount Amount involved in the transaction. 19877.00
fee Charged fee. 123.00
status Status of the order (refer to Status Code). 5
msg Description of the status. "Paying"
platSign RSA encrypted signature for verification. "HaRTNUDVVdaM5pBVTgh_s18BMVD8JC4GtMU7yIOpYaABJV_GWDnI1UENR7bAKQ1eczJz18iJDnoXIi4S_XMBa8h5zlL_kYun77XNo-39LOvTkLfbYuKw6sbApuFGhOue-GqTTq3HGqQX8HjT2QF0Toe10NspOz6WI0g28J652EE"

When you query the order status, the response will be a JSON object structured as follows:

{
  "platRespCode": "SUCCESS",  // SUCCESS indicates that the request was successful. NOTEXIST indicates that the order does not exist. FAIL indicates that the request failed.
  "platRespMessage": "success",  // Description of platRespCode
  "platOrderNum": "W0620190806194836000002",
  "orderNum": "T201908060003",  // OrderNumber of Platform
  "amount": 19877.00,
  "fee": 123.00,  // Charged fee
  "status": 5,  // Please refer to Status Code
  "msg": "Paying",  // Description of status
  "platSign": "HaRTNUDVVdaM5pBVTgh_s18BMVD8JC4GtMU7yIOpYaABJV_GWDnI1UENR7bAKQ1eczJz18iJDnoXIi4S_XMBa8h5zlL_kYun77XNo-39LOvTkLfbYuKw6sbApuFGhOue-GqTTq3HGqQX8HjT2QF0Toe10NspOz6WI0g28J652EE"
}

Example PHP Code

Below is a PHP code snippet to send the request and handle the response:

<?php
    $private_key = 'YOUR_PRIVATE_KEY';
    $merchantCode = 'YOUR_MERCHANT_CODE_HERE';
    $queryType = 'CASH_QUERY';
    $orderNum = 'T1231511321515';
    $dateTime = '20191018105510';

    $params = array(
        'merchantCode' => $merchantCode,
        'queryType' => $queryType,
        'orderNum' => $orderNum,
        'dateTime' => $dateTime
    );

    ksort($params);
    $params_str = '';
    foreach ($params as $key => $val) {
        $params_str .= $val;
    }
    $pi_key = openssl_pkey_get_private($private_key);
    openssl_private_encrypt($params_str, $sign, $pi_key);
    $sign = base64_encode($sign);
    $params['sign'] = $sign;

    $params_string = json_encode($params);

    $url = 'https://open.clickpay.click/gateway/query'; // Production
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($params_string)
    ));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    // Execute post
    $request = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($httpCode == 200) {
        $result = json_decode($request, true);
        header('location: ' . $result['paymentUrl']);
        echo "platRespCode :" . $result['platRespCode'] . "<br />";
        echo "platRespMessage :" . $result['platRespMessage'] . "<br />";
        echo "amount :" . $result['amount'] . "<br />";
        echo "platOrderNum :" . $result['platOrderNum'] . "<br />";
        echo "orderNum :" . $result['orderNum'] . "<br />";
        echo "fee :" . $result['fee'] . "<br />";
        echo "status :" . $result['status'] . "<br />";
        echo "msg :" . $result['msg'] . "<br />";
        echo "platSign :" . $result['platSign'] . "<br />";
    } else {
        echo $httpCode;
    }
?>

This script sends a POST request to the specified URL with the necessary parameters to query the order status and handles the response by printing it. Make sure to replace the placeholders with actual values specific to your integration.

Explanation:

  1. Setup Parameters:

    • Replace YOUR_PRIVATE_KEY and YOUR_MERCHANT_CODE_HERE with your actual private key and merchant code.
    • Set queryType to ORDER_QUERY.
    • Set orderNum to the merchant system unique order number you want to inquire about.
    • Set dateTime to the date and time of the transaction in yyyyMMddHHmmss format.
  2. Construct Parameters:

    • Construct an array $params with the required parameters.
    • Sort the parameters alphabetically by key and concatenate their values into a single string $params_str.
  3. Encrypt Signature:

    • Encrypt the concatenated parameters string $params_str using the private key.
    • Base64 encode the resulting encrypted signature and add it to the $params array.
  4. HTTP POST Request:

    • Convert the $params array to JSON format.
    • Set up a cURL request to send a POST request to the API endpoint (https://open.clickpay.click/gateway/query).
    • Include headers specifying the content type and content length.
    • Disable SSL verification for simplicity (CURLOPT_SSL_VERIFYPEER set to FALSE).
  5. Handle Response:

    • Execute the cURL request and capture the HTTP response.
    • If the HTTP response code is 200 (OK), decode the JSON response and print the result.
    • If the HTTP response code is not 200, print the HTTP status code.

Make sure to replace placeholders with actual values specific to your integration. This script will help you inquire about the status of a transaction on the platform. Adjustments may be needed based on specific API requirements or additional security configurations.

Status Codes

Note: Order is successful only when the status value is 2, order fails when 3 or 4

Response Status Description
0 create order
1 or 5 paying
2 withdrawal successful
3 cancel withdrawal
4 withdrawal failed

Inquiry Balance

Here is the detailed information for querying the merchant balance using the API.

HTTP Request

Production:

POST: https://open.clickpay.click/gateway/account

Parameters

Parameter Description Example
merchantCode Merchant number opened by the merchant on the platform S820190712000002
currency Currency IDR
dateTime Format: yyyyMMddHHmmss 20191018105510
appId Application ID (ignore if not applicable) 9039094726
sign RSA encrypted string ja6R8eukQY9jc8z....bqzRGxV4Z3y-EZOs

You can use this interface to query the merchant amount information.

Response JSON Structure

Field Description
platRespCode Response code. SUCCESS indicates a successful request, FAIL indicates failure.
platRespMessage Description corresponding to platRespCode.
balance Merchant's available balance.
freeze Amount currently being processed for transfer.
pendMoney Pending amount.
platSign Signature for the response.

The above command returns JSON structured like this:

{
  "platRespCode": "SUCCESS", // SUCCESS indicates that the request was successful. FAIL indicates that the request failed.
  "platRespMessage": "success", // Description of platRespCode
  "balance": 20000.00, // Merchant available balance
  "freeze": 6000.00, // Transfer processing amount
  "pendMoney": 0.00, // Pending amount
  "platSign": "YTO7eBFIgpQRDg6iKUz3GDggg1H8e5vuPDqgCrWkoO08VixtocMB1gUyDdUaMwEfm5-Iv337ZmHOMJWO7B_2YAIabVOUUaEzE9nJfFIwZYxYXNCJwswXGEtEt8qah4oXTjOOIkiuetgORGxATclKHIvgD-Wm-eZ2DvhrgrRwdUI"
}

The following PHP code example demonstrates how to perform a balance inquiry.

<?php
    $privateKey = 'YOUR_PRIVATE_KEY'; 
    $merchantCode = 'YOUR_MERCHANT_CODE_HERE';
    $dateTime = '20191018105510';
    $params = array(
        'merchantCode' => $merchantCode,
        'dateTime' => $dateTime
    );

    ksort($params);
    $params_str = '';
    foreach ($params as $key => $val) {
        $params_str .= $val;
    }
    $pi_key = openssl_pkey_get_private($privateKey);
    openssl_private_encrypt($params_str, $sign, $pi_key);
    $sign = base64_encode($sign);
    $params['sign'] = $sign;

    $params_string = json_encode($params);
    $url = 'https://open.clickpay.click/gateway/account';
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($params_string))
    );
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    // execute post
    $request = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($httpCode == 200) {
        $result = json_decode($request, true);
    } else {
        echo $httpCode;
    }
?>

Bank List

List of banks supported in disbursement:

Bank Code Bank Short Name Bank Name
002 BRI Bank Rakyat Indonesia
008 Mandiri Bank Mandiri (Persero) Tbk
009 BNI Bank Negara Indonesia
011 Danamon Bank Danamon Indonesia Tbk
013 Permata PT Bank Permata Tbk
014 BCA Bank Central Asia Tbk
015 Permata Syariah PT Bank Permata Tbk Syariah
016 Maybank PT Bank Internasional Indonesia Tbk
019 Panin PT Bank Panin Tbk
022 CIMB Niaga PT Bank CIMB Niaga Tbk
023 UOB PT Bank UOB Buana Tbk
028 OCBC PT Bank OCBC NISP Tbk
031 Citibank Citibank N.A.
033 Bank of America Bank of America NA
036 Windu PT Bank Windu Kentjana International Tbk
037 Artha PT Bank Artha Graha Internasional Tbk
042 Tokyo Mitsubishi Bank of Tokyo-Mitsubishi UFJ, Ltd.
046 DBS DBS Bank Ltd.
047 Resona Perdania Bank Resona Perdania
048 Mizuho Bank Mizuho Indonesia
050 Standard Chartered Standard Chartered Bank
054 Capital PT Bank Capital Indonesia Tbk
057 BNP Paribas Bank BNP Paribas Indonesia
061 ANZ PT ANZ Panin Bank
069 Bank of China Bank of China Limited
076 Bumi Arta PT Bank Bumi Arta Tbk
087 HSBC HSBC Bank (Indonesia)
088 Antardaerah Bank ANTAR DAERAH
089 Rabobank PT Bank Rabobank International Indonesia
095 JTrust PT Bank JTrust Indonesia
097 Mayapada PT Bank Mayapada Internasional Tbk
110 Jawa Barat Bank Jawa Barat dan Banten Tbk
111 DKI Bank DKI
112 BPD DIY Bank Pembangunan Daerah Istimewa Yogyakarta
113 Jateng Bank Jateng
114 Jatim Bank Jatim
115 Jambi Bank Jambi
116 Aceh Bank Aceh
117 Sumut Bank Sumut
118 Nagari Bank Nagari
119 Riau Bank Riau
120 Sumsel Babel Bank Sumsel Babel
121 Lampung Bank Lampung
122 Kalsel Bank Kalsel
123 Kalbar Bank Kalbar
124 BPD Kaltim Bank Pembangunan Daerah Kalimantan Timur
125 BPD Kalteng Bank Pembangunan Daerah Kalimantan Tengah
126 SULSELBAR Bank Sulawesi Selatan dan Sulawesi Barat
127 Sulut Bank Sulut
128 NTB Bank Nusa Tenggara Barat
129 BPD Bali Bank Pembangunan Daerah Bali
130 NTT Bank Nusa Tenggara Timur
131 Maluku Bank Maluku
132 BPD Papua Bank Pembangunan Daerah Papua
133 Bengkulu Bank Bengkulu
134 SULTENG Bank Sulawesi Tengah
135 Sultra Bank Sultra
137 Banten Bank Banten
145 Nusantara Parahyangan Bank Nusantara Parahyangan
146 Bank of India Indonesia Bank of India Indonesia
147 Muamalat Bank Muamalat Indonesia
151 Mestika Bank Mestika
152 SHINHAN Shinhan Bank
153 Sinarmas PT Bank Sinarmas Tbk
157 Maspion PT Bank Maspion Indonesia Tbk
161 Ganesha Bank Ganesha
164 ICBC Industrial and Commercial Bank of China (ICBC)
167 QNB Indonesia PT Bank QNB Kesawan Tbk
200 BTN Bank Tabungan Negara
212 Woori Saudara Bank Woori Saudara 1906 Tbk
213 BTPN PT Bank Tabungan Pensiunan Nasional Tbk
405 Victoria Syariah PT Bank Victoria Syariah
425 BJB Syariah Bank Jabar Banten Syariah
426 Mega Bank Mega Tbk
441 Bukopin Bank Bukopin
451 Syariah Indonesia Bank Syariah Indonesia
472 Jasa Jakarta Bank Jasa Jakarta
484 KEB Hana KEB Hana Bank
485 MNC Internasional PT Bank MNC Internasional Tbk
490 Neo Commerce Bank Neo Commerce
494 BRI Agroniaga Bank Rakyat Indonesia (Agroniaga)
498 SBI Indonesia Bank SBI Indonesia (Indomonex)
501 Royal Bank Royal
503 National Nobu Bank Nationalnobu
506 Mega Syariah Bank Mega Syariah
513 Ina Bank Ina Perdana
517 Panin Syariah Bank Panin Syariah
520 Prima Master Bank Prima Master
521 Syariah Bukopin Bank Syariah Bukopin
523 Sahabat Sampoerna Bank Sahabat Sampoerna
526 Dinar Bank Dinar Indonesia
531 Amar Bank Amar Indonesia
535 Seabank Bank Seabank Indonesia
536 BCA Syariah Bank Central Asia Syariah
542 Jago PT Bank Artos Indonesia
547 BTPN Syariah Bank Tabungan Pensiunan Nasional Syariah
548 Multiarta Sentosa Bank Multiarta Sentosa
553 Mayora PT Bank Mayora Indah Tbk
555 Index Selindo PT Bank Index Selindo
559 CNB Central Nasional Bank
564 Mantap PT Bank Mantap Sejahtera
566 Victoria Intl PT Bank Victoria International
567 Harda PT Bank Harda Internasional Tbk
688 BPR KS Bank Pembangunan Daerah Kepulauan Selayar
945 IBK PT Bank IFI
947 Aladin Syariah Bank Aladin Syariah
949 CTBC Indonesia China Trust Commercial Bank, Indonesia Branch
950 Commonwealth Commonwealth Bank of Australia

List of wallet supported in disbursement:

Wallet Code Wallet Name
10001 OVO
10002 Dana
10003 Gopay
10008 ShopeePay
10009 LinkAja

Changelog

Version 1.0