Transaction API
About 2 min
Introduce
Service Code | 91 |
---|---|
Name | API Disbursement Cash Out |
Version | 1.0 |
HTTP Method | POST |
Path | .../{version}/disbursement/cash-out |
orderNo Inspection rule
- orderNo is generated by the merchant and is globally unique and does not allow duplications
- It is recommended to add the merchantId as a prefix to the order number to increase differentiation.
- in Sandbox Environment merchantId =
sandbox-10001
must start with:S10001xxxxxxx
- in Production Environment merchantId =
10001
must start with:10001xxxxxxx
- Only numbers and letters are supported, no special symbols are allowed
- in Sandbox Environment merchantId =
- If a transaction times out, the transaction Status is checked by calling the
Inquiry Status
interface throughorderNo
Request Header
Field | Attribute | Type | Description |
---|---|---|---|
Content-Type | Mandatory | String | String represents indicate the media type of the resource (e.g. application/json, application/pdf) |
Authorization | Mandatory | String | String starts with keyword “Bearer ” followed by access_token (e.g. Bearer eyJraWQiOi...Jzc29zIiiY) |
X-TIMESTAMP | Mandatory | String | Merchant's current local time in yyyy-MM-ddTHH:mm:ssTZD format |
X-SIGNATURE | Mandatory | String | Created using Symmetric signature HMAC_SHA512 algorithm. Refer to:Authentication Specification |
ORIGIN | Optional | String | Origin Domain www.yourdomain.com |
X-PARTNER-ID | Mandatory | String | MerchantID. Unique ID for a partner as MerchantID |
X-EXTERNAL-ID | Mandatory | String | Numeric String. Reference number that should be unique in the same day |
CHANNEL-ID | Mandatory | String | PJP’s channel id Device identification on which the API services is currently being accessed by the end user (customer) |
Request Body Parameter
Field | Attribute | Type | Description |
---|---|---|---|
orderNo | Mandatory | String(32) | String transaction Unique ID |
purpose | Mandatory | String(64) | String The reason to transaction |
productDetail | Optional | String(128) | String The subject matter of this transaction |
additionalParam | Optional | String(128) | String additional parameter |
itemDetailList | Mandatory | List<ItemDetail> | Json String The products for this transaction. Refer to: ItemDetail |
billingAddress | Optional | Address | Json String Address for billing. Refer to: BillingAddress |
shippingAddress | Optional | Address | Json String Address for shipping. Refer to: ShippingAddress |
money | Mandatory | Money | Json String Net amount of the transaction. Refer to: Money |
merchant | Mandatory | Merchant | Json String merchant information. Refer to: Merchant |
paymentMethod | Mandatory | String(6) | String Payment option which shows the provider of this payment. Refer to: PaymentMethod |
cashAccount | Mandatory | String(32) | String Payment payout account. If DANA 62-8xxxxxxxxx |
payer | Mandatory | Payer | Json String Disbursement initiator. Refer to: Payer |
receiver | Mandatory | Receiver | Json String Trading beneficiaries. Refer to: Receiver |
callbackUrl | Optional | String(64) | Callback to customer url |
Response Body Parameter
Field | Attribute | Type | Description |
---|---|---|---|
responseCode | Mandatory | String(32) | String Response code. success=2009100 |
responseMessage | Mandatory | String(64) | String Response description |
orderNo | Mandatory | String | String Disbursement identifier on service provider system. Must be filled upon successful transaction |
tradeNo | Optional | String | String Disbursement identifier on service consumer system |
status | Optional | String | String Disbursement status: PROCESSING, SUCCESS, FAILED... Refer to: TransactionStatus |
merchant | Mandatory | Merchant | Json String Net amount of the transaction. Refer to: Merchant |
disbursementTime | Mandatory | Merchant | String Disbursement time |
money | Mandatory | Money | Json String Net amount of the transaction. Refer to: Money |
channel | Mandatory | Payer | Json String Disbursement initiator. Refer to: CashChannel |
Sample Parameter
Sample Request
curl -X POST 'https://sandbox-gateway.smilepay.id/v1.0/disbursement/cash-out' \
-H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYmYiOjE3NDA0NzA0NzIsImV4cCI6MTc0MDQ3MTM3MiwiaWF0IjoxNzQwNDcwNDcyLCJNRVJDSEFOVF9JRCI6InNhbmRib3gtMTAwMDEifQ.eMcSoq4bSnJJOPhplQwW7wSz8f6rdh6U7Tv0L4lZxog' \
-H 'X-TIMESTAMP: 2025-02-25T16:09:10+07:00' \
-H 'X-SIGNATURE: J/ZlRT/pO+4z+Nnc+oyrfXcHcxlhc876ZDChnK5xtGBvOqP5n16uPZ45vsg6o7DQZuvIWrCHf9pZUAFOJiYZcA==' \
-H 'ORIGIN:www.yourdomain.com' \
-H 'X-PARTNER-ID: sandbox-10001' \
-H 'X-EXTERNAL-ID: T_1737537970911' \
-H 'CHANNEL-ID: 95221' \
-H 'Content-Type: application/json' \
-d '{
"paymentMethod": "BCA",
"cashAccount": "7031699382",
"payer": {
"name": "test",
"email": "[email protected]",
"phone": "0877983192",
"address": "Jalan Pantai Mutiara TG6, Pluit, Jakarta"
},
"receiver": {
"name": "smilepay",
"email": "[email protected]",
"phone": "0877983192",
"address": "Jl. Pluit Karang Ayu 1 No.B1 Pluit"
},
"orderNo": "D_1740470950370",
"purpose": "Paylabs SINARMAS ",
"productDetail": "Product details",
"additionalParam": "other descriptions",
"itemDetailList": [
{
"name": "mac A1",
"quantity": 1,
"price": 1
}
],
"billingAddress": {
"address": "Jl. Pluit Karang Ayu 1 No.B1 Pluit",
"city": "jakarta",
"postalCode": "14450",
"phone": "0877983192",
"countryCode": "Indonesia"
},
"shippingAddress": {
"address": "Jl. Pluit Karang Ayu 1 No.B1 Pluit",
"city": "jakarta",
"postalCode": "14450",
"phone": "0877983192",
"countryCode": "Indonesia"
},
"money": {
"currency": "IDR",
"amount": 10000
},
"merchant": {
"merchantId": "sandbox-10001"
}
}'
Sample Response
{
"tradeNo": "T102100012502251512079401",
"orderNo": "D_1740470950370",
"status": "PROCESSING",
"disbursementTime": "2025-02-25T15:12:07+07:00",
"merchant": {
"merchantId": "sandbox-10001",
"merchantName": "[email protected]",
"accountNo": "000000000000",
"shopName": null
},
"channel": {
"paymentMethod": "BCA",
"cashAccount": "7031699382",
"accountName": null
},
"money": {
"currency": "IDR",
"amount": 10000
},
"responseCode": "2009100",
"responseMessage": "Successful"
}