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&currency=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&currency=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
ParameterDescriptionSample ValueRemarks
account_noRecipient's bank account number12345678
amountAmount transferred40.5
arrivalTime of confirmation12+Mar+2024+-++9%3A30+AM
bank_abbrevRecipient's bank abbreviationSCB
bank_account_holder_nameRecipient's nameJane+DoeOnly applicable for USD payout
beneficiary_addressRecipient's addressABC+Crescent%2C+Singapore%2C+Singapore%2C+SG%2C+123456Only applicable for USD payout
created_atDatetime of creation2024-03-12T01%3A30%3A48.420Z
currencyCurrency of transaction: xsgd/usdcxsgd
descriptionTransaction descriptionOnly applicable for USD payout
expressLegacy fieldFAST
failure_reasonReason for transaction failure
feesTransaction fee0.5
idTransaction idcontract_1205f142caa14d1f9e5deabfb64ec1df
idempotency_idUnique idempotency id provided when triggering the payoutTest_CR001_6
payout_invoice_idSame as idempotency_idTest_CR001_6
statusTransaction status: completed/pending/cancelledcompleted
swift_bicSWIFT of the recipient's bankDBSSSGSGXXXOnly applicable for USD payout
typeType of transactionWithdrawal+on+behalf
wallet_nameWallet nameDigital+Goods