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
| Header | Required | Description |
|---|---|---|
X-SIGNATURE | Yes | Base64-encoded RSA-SHA256 signature |
Content-Type | Yes | application/json |
Body
| Field | Type | Required | Description |
|---|---|---|---|
clientId | string | Yes | Your legacy_client_id |
orderId | string | Yes | Your unique disbursement ID (idempotency key) |
ewalletCode | string | Yes | E-wallet code — see Supported Codes |
accountNumber | string | Yes | Destination phone number (normalized to 62xxxxxxxxx) |
requestAmount | integer | Yes | Transfer amount in full IDR (NOT minor units) |
notifyUrl | string | No | Callback URL |
Supported Ewallet Codes
ewalletCode | Provider | Min Amount |
|---|---|---|
GOPAY | GoPay | — |
GOPAYDRIVER | GoPay Driver | — |
OVO | OVO | — |
SHOPEEPAY | ShopeePay | — |
LINKAJA | LinkAja | — |
DANA | DANA | IDR 20,000 |
KASPRO | KasPro | — |
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
| Message | Description |
|---|---|
Invalid ewalletCode | ewalletCode not in approved list |
Minimum requestAmount for DANA is 20000 | DANA requires min IDR 20,000 |
Insufficient Balance | Wallet balance insufficient |
Maximum Request Amount Exceeded | Exceeds per-transaction limit |
Invalid X-SIGNATURE | Signature verification failed |