Regular Payout
Overview
Payouts can be made to a payout recipient created. Different recipient types and countries will have different data requirements for a payout recipient to be valid. Similar to payments, a webhook callback will be triggered to your system to indicate the transaction status when it's updated.
Sequence Diagram
Payout Recipients
In order to create a payout, you first need to add a recipient by calling our create payout recipient endpoint. Depending on the recipient country and disbursement method, the required fields for the payout recipient are different - for bank transfer recipient, bankAccountNo
and bankShortCode
are required; for PayNow recipient, proxyType
and proxyValue
are required.
Processing Payouts
Once a recipient is added, you can create a payout request via our create regular payout endpoint to the selected recipient. A contract (i.e. transaction) will be created in pending
status and returned in the response. Upon processing the payout, StraitsX will send a callback notification to you via the callback URL indicated on the StraitsX Business Dashboard. Learn more about callback configuration.
Note: At the moment, regular payout in USD is not supported.
Sandbox Testing
To test your integration, you could initiate a withdrawal in sandbox and mock its status. Callback will also be sent in the sandbox environment.
Webhooks
Webhook callbacks use HTTP POST
request with the event in string format and expects 200 OK in the response. Each failed webhook callback is retried up to 20 times with a 5-minute interval. If you need to retrigger callback for a single contract or a list of contracts, you can do so via our callback event endpoints.
For payouts, a sample webhook callback looks like the following:
account_no=12345678&amount=40.5&arrival=12+Mar+2024+-++9%3A30+AM&bank_abbrev=SCB&created_at=2024-03-12T01%3A30%3A48.420Z¤cy=xsgd&express=FAST&failure_reason=&fees=0.5&id=contract_1205f142caa14d1f9e5deabfb64ec1df&idempotency_id=Test_CR001_6&payout_invoice_id=Test_CR001_6&status=completed&type=Withdrawal+on+behalf&wallet_name=Digital+Goods
Parameter | Description | Sample Value | Remarks |
---|---|---|---|
account_no | Recipient's bank account number | 12345678 | |
amount | Amount transferred | 40.5 | |
arrival | Time of confirmation | 12+Mar+2024+-++9%3A30+AM | |
bank_abbrev | Recipient's bank abbreviation | SCB | |
bank_account_holder_name | Recipient's name | Jane+Doe | Only applicable for USD payout |
beneficiary_address | Recipient's address | ABC+Crescent%2C+Singapore%2C+Singapore%2C+SG%2C+123456 | Only applicable for USD payout |
created_at | Datetime of creation | 2024-03-12T01%3A30%3A48.420Z | |
currency | Currency of transaction: xsgd/usdc | xsgd | |
description | Transaction description | Only applicable for USD payout | |
express | Legacy field | FAST | |
failure_reason | Reason for transaction failure | ||
fees | Transaction fee | 0.5 | |
id | Transaction id | contract_1205f142caa14d1f9e5deabfb64ec1df | |
idempotency_id | Unique idempotency id provided when triggering the payout | Test_CR001_6 | |
payout_invoice_id | Same as idempotency_id | Test_CR001_6 | |
status | Transaction status: completed/pending/cancelled | completed | |
swift_bic | SWIFT of the recipient's bank | DBSSSGSGXXX | Only applicable for USD payout |
type | Type of transaction | Withdrawal+on+behalf | |
wallet_name | Wallet name | Digital+Goods |
Updated 5 months ago