Bank Transfer Payouts Guide (SG)
Customer Profile API
Learn how to use the Payout API to enable Singapore bank transfer withdrawals to your user's bank account.
Overview

UI Example of performing a SGD withdrawal
You can send bank transfer payouts to connected users that have a verified bank account. In our system, your funds are paid out from your StraitsX Business Account to your user's bank account.
Before you begin
Ensure that you have the following prerequisites:
- You have added your user's bank account via the Create a customer profile bank account API.
- Your user's bank account has been verified either of the below methods:
Environment | Method |
---|---|
Sandbox | Create a mock bank account verification |
Production | Automated Verification |
Step 1 — Add callback URL
On a successful completion of a withdrawal transaction, StraitsX will send a callback notification to you via a callback URL indicated on the StraitsX Business Dashboard.

Adding a callback URL in sandbox mode
Add the callback URL on the dashboard to receive a callback when the transaction has been completed.
Step 2 — Making a bank transfer payout
Payout Type | From | To |
---|---|---|
Bank Transfer Payout | Business Account | User's bank account |
- Make a bank transfer payout to a user's bank account
curl --request POST \
--url https://sandbox.xfers.io/api/v3/customer_profile/customer_profile_7c3ee523-e379-4ddc-aa50-f21b8f9eab87/withdrawals \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-XFERS-APP-API-KEY: t4wsjxpwtk6o9tz20j4baj4ifwibin100py1vrvfsqh' \
--data '
{
"bank_account_id": "30",
"amount": "10",
"idempotency_id": "test_cp_tx"
}
'
curl --request POST \
--url https://www.xfers.io/api/v3/customer_profile/customer_profile_id/withdrawals \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-XFERS-APP-API-KEY: {YOUR_API_KEY}' \
--data '
{
"bank_account_id": "{bank_account_id}",
"amount": "{{amount}}",
"idempotency_id": "{{merchant_id}}"
}
'
- Complete a bank transfer payout in sandbox environment by initiating the below request
- This step can be skipped in production mode
curl --request PUT \
--url https://sandbox.xfers.io/api/v3/sandbox/customer_profile/customer_profile_7c3ee523-e379-4ddc-aa50-f21b8f9eab87/withdrawals/contract_70a6331d6a97496dade0127fbe7e7522 \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-XFERS-APP-API-KEY: t4wsjxpwtk6o9tz20j4baj4ifwibin100py1vrvfsqh' \
--data '
{
"status": "completed"
}
'
Step 4 — Confirm withdrawal has been completed
Securing your callback
When the payout is completed, we will send a callback to the URL indicated on the StraitsX Business Dashboard. The callback can be verified using the HMAC-SHA256
algorithm.
Learn more about how to secure your callback →
Callback Response
account_no=6666666665&amount=124.0&arrival=28+Jun+2022+-++2%3A23+PM&bank_abbrev=DBS&comment=&created_at=2022-06-28T14%3A17%3A48%2B08%3A00&express=false&failure_reason=&fees=0.68&id=contract_81e65e649ce64a51baa787d5b374d974&idempotency_id=Test_CR001_6&status=completed&type=Withdrawal+on+behalf&value_date=&wallet_name=Digital+Goods
Parameter | Description | Example Value |
---|---|---|
account_no | FAST Bank Account No. | 6666666665 |
amount | Amount transferred | 124.0 |
arrival | Time of confirmation | 28+Jun+2022+-++2%3A23+PM |
bank_abbrev | Bank Abbreviation | DBS |
created_at | Datetime of creation | 2022-06-28T14%3A17%3A48%2B08%3A00 |
express | Legacy field | false |
failure_reason | Reason for transaction failure | |
fees | Transaction fee | 0.68 |
id | Transaction (withdrawal) id | contract_81e65e649ce64a51baa787d5b374d974 |
idempotency_id | Unique ref no. that was provided to prevent double transaction | Test_CR001_6 |
status | Transaction Status: completed/pending/cancelled | completed |
type | Type of transaction | Withdrawal+on+behalf |
Try it out!
Getting started with StraitsX APIs is easy. Our business development and integration teams will be with you every step of the way. If you have any questions or would like to connect with our team, please do so via Support!
Updated 11 months ago