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

2000

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:

  1. You have added your user's bank account via the Create a customer profile bank account API.
  2. Your user's bank account has been verified either of the below methods:

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.

4400

Adding a callback URL in sandbox mode

📘

Add the callback URL on the dashboard to receive a callback when the transaction has been completed.

Payout TypeFromTo
Bank Transfer PayoutBusiness AccountUser'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
ParameterDescriptionExample Value
account_noFAST Bank Account No.6666666665
amountAmount transferred124.0
arrivalTime of confirmation28+Jun+2022+-++2%3A23+PM
bank_abbrevBank AbbreviationDBS
created_atDatetime of creation2022-06-28T14%3A17%3A48%2B08%3A00
expressLegacy fieldfalse
failure_reasonReason for transaction failure
feesTransaction fee0.68
idTransaction (withdrawal) idcontract_81e65e649ce64a51baa787d5b374d974
idempotency_idUnique ref no. that was provided to prevent double transactionTest_CR001_6
statusTransaction Status: completed/pending/cancelledcompleted
typeType of transactionWithdrawal+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!