First Party Payout
Overview
Each customer profile will only be allowed to withdraw to a verified customer profile bank account. Payouts in different currencies have different processing time, with SGD being near-instant and USD taking up to 2 business days depending on the beneficiary bank and country. Similar to payments, a webhook callback will be triggered to your system to indicate the transaction status when it's updated.
Sequence Diagram
Processing Payouts
When your user submits a withdrawal request on your platform, create a customer profile withdrawal request via our bank transfer payout endpoint. Withdrawal request can only be made to a verified customer profile bank account. 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.
For payout in USD via SWIFT, there may be request for additional information (RFI) before the payout can be completed due to our internal controls as well as our banking partners' controls. Our team will reach out to you in such scenarios to gather the necessary information and proof before processing the transaction.
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
account_no=12345678&amount=50.0&arrival=11+Mar+2024+-++5%3A57+PM&bank_abbrev=DBS&bank_account_holder_name=Jane+Doe&beneficiary_address=ABC+Crescent%2C+Singapore%2C+Singapore%2C+SG%2C+123456&created_at=2024-03-11T09%3A57%3A42.487Z¤cy=usdc&description=&express=FAST&failure_reason=&fees=0.5&id=contract_123ddc11043d4b35926385c857915b4d&idempotency_id=Test_CR001_6&payout_invoice_id=Test_CR001_6&status=completed&swift_bic=DBSSSGSGXXX&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