Skip to main content

Create E-wallet Disbursement

Transfer funds from your wallet to an e-wallet account.

Endpoint

POST /api/disbursement/create-ewallet

Authentication

RSA-SHA256 X-SIGNATURE header. See Authentication.

Request

Headers

HeaderRequiredDescription
X-SIGNATUREYesBase64-encoded RSA-SHA256 signature
Content-TypeYesapplication/json

Body

FieldTypeRequiredDescription
clientIdstringYesYour legacy_client_id
orderIdstringYesYour unique disbursement ID (idempotency key)
ewalletCodestringYesE-wallet code — see Supported Codes
accountNumberstringYesDestination phone number (normalized to 62xxxxxxxxx)
requestAmountintegerYesTransfer amount in full IDR (NOT minor units)
notifyUrlstringNoCallback URL

Supported Ewallet Codes

ewalletCodeProviderMin Amount
GOPAYGoPay
GOPAYDRIVERGoPay Driver
OVOOVO
SHOPEEPAYShopeePay
LINKAJALinkAja
DANADANAIDR 20,000
KASPROKasPro

Example

PHP
$body = json_encode([
'clientId' => 'TEST_CLIENT_001',
'orderId' => 'DISB-EW-001',
'ewalletCode' => 'GOPAY',
'accountNumber' => '08123456789',
'requestAmount' => 100000,
]);

$bodyHash = hash('sha256', $body);
$stringToSign = "TEST_CLIENT_001|TEST_SECRET_001|$bodyHash";
openssl_sign($stringToSign, $rawSig, $privateKey, OPENSSL_ALGO_SHA256);
$xSignature = base64_encode($rawSig);

$ch = curl_init('https://api.nusio-saka.com/api/disbursement/create-ewallet');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-SIGNATURE: ' . $xSignature,
],
CURLOPT_POSTFIELDS => $body,
]);
$response = json_decode(curl_exec($ch), true);

Response

HTTP 200 OK

{
"code": 200,
"message": "Success",
"data": {
"refCode": "DSB-260601110000-G7H8",
"orderId": "DISB-EW-001",
"accountNumber": "6281234567890",
"accountName": null,
"bank": null,
"requestAmount": "100000.00",
"disbursementFee": "0.00",
"disbursementAmount": "100000.00",
"status": "PENDING",
"requestAt": "2026-06-01 11:00:00"
}
}

Error Responses

MessageDescription
Invalid ewalletCodeewalletCode not in approved list
Minimum requestAmount for DANA is 20000DANA requires min IDR 20,000
Insufficient BalanceWallet balance insufficient
Maximum Request Amount ExceededExceeds per-transaction limit
Invalid X-SIGNATURESignature verification failed