Webhooks
The Disbursement Transaction Webhooks API provides real-time notifications for disbursement transactions processed through the Singapay platform. This webhook allows you to monitor and manage disbursement activities efficiently, ensuring that your system stays updated with the latest transaction statuses and details.
Method | Path | Format | Authentication |
---|---|---|---|
POST | https://merchant-disbursement-transaction-url | json | OAuth 2.0 with Access Token |
Field | Value | Type | Mandatory | Length | Description | Example |
---|---|---|---|---|---|---|
X-PARTNER-ID | api_key | Alphanumeric | Mandatory | API key obtained from the merchant dashboard. | b3ed7d4b-a96c-6c08-b3c7-12c3124242d9 | |
Accept | application/json | Alphabetic | Mandatory | Specifies JSON as the expected response format. | application/json | |
Authorization | Bearer {bearerToken} | Alphanumeric | Mandatory | Bearer token obtained from the get access token endpoint. | Bearer eyJ0eXAiOiJKV1{…} |
Field | Type | Mandatory | Length | Description | Example |
---|---|---|---|---|---|
status | Numeric | Mandatory | 3 | HTTP Status Code | 200 |
success | Boolean | Mandatory | 1 | 2xx is true. 4xx-500 is false. | true |
data | Object | Conditional | - | - | - |
> transaction_id | Numeric | Mandatory | - | Transaction ID | 36455454 |
> status | Alphabetic | Mandatory | - | Transaction status (e.g., success, failed, pending) | success |
> bank_code | Alphabetic | Mandatory | - | Bank code like: BRI, BNI, DANAMON, etc | BRI |
> bank_account_number | Numeric | Mandatory | - | Beneficiary bank account number | 283434 |
> bank_account_name | Alphabetic | - | - | Beneficiary bank account name | - |
> post_timestamp | Timestamp | Mandatory | - | Date requested with Unix Timestamp millisecond format | 1714618220440 |
> processed_timestamp | Timestamp | - | - | Date finished with Unix Timestamp millisecond format | - |
> notes | Alphabetic | - | - | Additional notes | - |
> amount | Object | Mandatory | - | Amount details of the transaction | - |
>> value | Numeric | Mandatory | - | Amount the recipient will receive | 11000.00 |
>> currency | Alphabetic | Mandatory | 3 | Currency type | IDR |
> fees | Array | Mandatory | - | List of transaction fees | - |
>> name | Alphabetic | - | - | Name of the fee | - |
>> value | Numeric | Mandatory | - | Fee amount | 2000.00 |
>> currency | Alphabetic | Mandatory | 3 | Currency type | IDR |
> total_amount | Object | Mandatory | - | Total amount details of the transaction | - |
>> value | Numeric | Mandatory | - | Total amount the recipient will receive | 11000.00 |
>> currency | Alphabetic | Mandatory | 3 | Currency type | IDR |
> source_account | Object | Mandatory | - | Source account details | - |
>> account_id | Numeric | - | - | Source account ID | - |
> balance_after | Object | Mandatory | - | Balance after the transaction | - |
>> currency | Alphabetic | Mandatory | 3 | Currency type | IDR |
>> value | Numeric | Mandatory | - | Balance amount after the transaction | 13000.00 |
Success: Here’s an example of a successful response.
{
"status": 200,
"success": true,
"data": {
"transaction_id": "4565456565",
"status": "success",
"amount": {
"value": "11000.00",
"currency": "IDR"
},
"fees": [
{
"name": "transfer service fee name",
"value": "2000.00",
"currency": "IDR"
}
],
"total_amount": {
"value": "13000.00",
"currency": "IDR"
},
"bank_code": "BRI",
"bank_account_number": "63434554",
"bank_account_name": "Julian Pratama",
"processed_timestamp": "1714618220440",
"post_timestamp": "1714618220440",
"notes": "lorem ipsum",
"source_account": {
"account_id": "374365465454",
"balance_after": {
"value": "0.00",
"currency": "IDR"
}
}
}
}
Error: This is an example of an unsuccessful request.
{
"status": 401,
"success": false,
"error": {
"code": 401,
"message": "Unauthorized partner, please sign in"
}
}