Create E-wallet Disbursement
Transfer funds from your wallet to an e-wallet account.
Endpoint
POST /v1/disbursements
Request
Body
| Field | Type | Required | Description |
|---|---|---|---|
idempotency_key | string | Yes | Unique key to prevent duplicates |
channel | string | Yes | Must be EWALLET |
ewallet_provider | string | Yes | E-wallet code (e.g., GOPAY, OVO) — see E-wallet Codes |
ewallet_phone | string | Yes | Destination e-wallet phone number (normalized to 62xxxxxxxxx) |
amount_minor | integer | Yes | Transfer amount in minor units (not including fee) |
notify_url | string | No | Webhook URL for disbursement status updates |
Example
cURL
curl -X POST https://api.nusio-saka.com/v1/disbursements \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"idempotency_key": "disb-ewallet-001",
"channel": "EWALLET",
"ewallet_provider": "GOPAY",
"ewallet_phone": "08123456789",
"amount_minor": 10000000
}'
Response
HTTP 201 Created
{
"success": true,
"data": {
"id": "uuid",
"ref_code": "DSB-260601110000-E5F6",
"idempotency_key": "disb-ewallet-001",
"channel": "EWALLET",
"bank_id": null,
"account_number": null,
"account_name": null,
"ewallet_provider": "GOPAY",
"ewallet_phone": "6281234567890",
"request_amount_minor": 10000000,
"fee_minor": 0,
"final_amount_minor": 10000000,
"source": "API",
"status": "PENDING",
"requested_at": "2026-06-01T11:00:00Z",
"created_at": "2026-06-01T11:00:00Z"
}
}
Error Codes
| Code | HTTP | Description |
|---|---|---|
NOT_WALLET_MERCHANT | 403 | Account is not WALLET settlement type |
MISSING_EWALLET_INFO | 400 | ewallet_provider or ewallet_phone is missing |
INSUFFICIENT_BALANCE | 422 | Wallet balance < amount_minor + fee |
AMOUNT_EXCEEDS_LIMIT | 422 | Exceeds per-transaction limit |
DAILY_LIMIT_EXCEEDED | 422 | Exceeds daily limit |
DUPLICATE_IDEMPOTENCY_KEY | 409 | A disbursement with this key already exists |