Lesspay sends an asynchronous notification to your system when a payout batch reaches a final state.1. Configuration Sources#
The Callback URL (notify_url) can be configured in two ways:1.
Merchant Dashboard (Default):Register your default notify_url with the Lesspay Product Operations team.
This is the standard way to receive payout notifications.
2.
Specify notify_url in the Batch Payout API (/api/global/payout/batch/create-order).
Overrides the dashboard setting for that specific batch.
2. Webhook Authentication#
You must verify the signature of the webhook to ensure authenticity.Signature Mechanism#
The mechanism is identical to the Pay In Webhook:Algorithm: SHA256 (Uppercase)
Verification Steps#
1.
Collect all parameters from the JSON body (exclude null/empty).
3.
Concatenate as key=value&....
4.
Append &key=YOUR_APP_SECRET.
5.
Hash (SHA256) and convert to Uppercase.
3. Notification Parameters#
The webhook payload corresponds to the PayoutQueryVO structure.| Field Name | Type | Description |
|---|
request_id | String | Merchant's Batch ID |
pay_order_id | String | Lesspay's Batch Order ID |
order_status | String | Batch Status (SUCCESS, PARTIAL_SUCCESS, FAILED) |
currency | String | Payout Currency |
total_amount | String | Total Amount |
fail_reason | String | Reason for failure (if applicable) |
created_at | String | Creation Timestamp |
Detail List (details)#
The details array contains the status of each individual transaction in the batch.| Field Name | Type | Description |
|---|
mch_order_id | String | Merchant's Detail ID |
payout_order_detail_id | String | Lesspay's Detail ID |
amount | String | Amount |
status | String | Detail Status (SUCCEED, FAILED) |
fail_reason | String | Failure reason (if failed) |
channel_order_no | String | Channel Order Number |
bank_account_no | String | Masked Account Number |
bank_account_name | String | Masked Beneficiary Name |
4. Examples#
{
"pay_order_id": "PO20251219001",
"request_id": "BATCH_001",
"order_status": "PARTIAL_SUCCESS",
"currency": "IDR",
"total_amount": "200000.00",
"created_at": "2025-12-19 12:00:00",
"details": [
{
"mch_order_id": "DET_001",
"payout_order_detail_id": "POD_001",
"amount": "100000.00",
"status": "SUCCEED",
"bank_account_no": "123***456",
"bank_account_name": "John Doe"
},
{
"mch_order_id": "DET_002",
"payout_order_detail_id": "POD_002",
"amount": "100000.00",
"status": "FAILED",
"fail_reason": "Invalid Account",
"bank_account_no": "987***654",
"bank_account_name": "Jane Smith"
}
]
}
Modified at 2025-12-19 04:49:57