Payout Capability
Before using the Transfer to bank
API, please use this API to retrieve the supported payout methods and which parameters need to be passed for each payout method.
API URL
UAT : https://uat.test2pay.com/sgs/api/transfer/getFundoutAbilityList
Production : https://api.payby.com/sgs/api/transfer/getFundoutAbilityList
Request
Http Header
Attributes
Content-Language String
- The language in which the response message will be used, currently only English is supported.
- Example value: en
- Maximum length:
10
Content-Type String Required
- The media type. Required for operations with a request body. The value is
application/<format>
, whereformat
isjson
. - Example value: application/json
- The media type. Required for operations with a request body. The value is
sign String Required
Requests should be signed using private-key cryptography. This allows the payment gateway to verify that an incoming request is really from your application.
Partner-Id String Required
- The merchant id of your account.
- Example value: 200001200101
- Maximum length:
12
Http Body
requestTime Timestamp Required
- Required: Mandatory
- Type: Timestamp(3)
- Example:
1581493898000
- Description: The timestamp when the order request is initiated. If the request time differs from the current system time by more than 15 minutes, the request will be rejected. This helps prevent duplicate or outdated order submissions due to timeouts.
Request Sample
// Http Header
{
"Content-Language": "en",
"Content-Type": "application/json",
"Partner-Id": "200000018128",
"sign": "S5Wr6x9Po1SX3nm4kRJyTueUMbnmsPGMlMjc3PcoyNyP0G5BuRAwauYjTJLeto6Bu1+893zCGmj201mjrvcXP4v/uMzQxRav5PBMp9VuQ+3dOFGclQAwr8cFAKuBDHhGAAkw1iVpdC8ZZLGl/jRUv3PCiZh6VyOLnrK7ZIevB/TetQSzCmN1xDIQo8mpDYz7YY/jSzYBnD17ePvkr4qQOWNUh7FF2nd29lo9KOQl5tJVoqT/D+PVSlZeuGr+wxBYCAyGqbVXXSAGcwF1egF6ISLJ29jpHcX/LACXxF/uf5cdzbudwPB2X0wtRw9WnowY3RUq34sidoF4DIShXVFHAg=="
}
// Http Body
{
"requestTime": 1585142880000
}
Response
Http Header
Content (
Content-Language
)- Required: Optional
- Type: String(10)
- Example:
en
- Description:
en
= English
Signature (
Sign
)- Required: Mandatory
- Type: String
- Example: See the response sample below for a reference.
- Description: PayBy signs each response using its private key. Merchants verify the signature using PayBy’s public key to ensure the response is authentic and not tampered with.
Merchant ID (
Partner-Id
)- Required: Mandatory
- Type: String(12)
- Example: See the response sample below for a reference.
- Description: The unique identifier of the merchant.
Http Body
head
Attributes
applyStatus Enum Required
The result of the request. The possible values are:
SUCCESS
- Application successful.FAIL
- Application failed. Check thecode
andmsg
for exact reason.ERROR
- Application error. The signature verification failed. Please check whether the private key used for the signature and the public key uploaded on the PayBy portal are one key pair.
code String Required
- Response Codes.
- Maximum length:
10
- Example value: 0
msg String
- Description of this code.
- Maximum length:
200
traceCode String
Internal code for locating the error.
body
Notice
Body is returned only when applystatus
= success
, and code
= 0
.
If applystatus
= error
or failed
; or applystatus
= success
, code
!=0
, that indicates an error. Please check the error against the error code table in the last section of this page and try again.
- fundoutAbilityList List
Attributes of each item in the list
countryCode String Required
- The code of the country where the bank of the beneficiary account belongs.
- Example value: UAE, SG, US, etc.
fundoutCurrencyCode String
- In this payout, the currency of the funds received by the beneficiary account.
- Example value:
AED
,USD
networkCode String Required
- The code of which transfer network is used in this payout.
- Example value:
LOCAL
,SWIFT
name String Required
- The name of which transfer network is used in this payout.
- Example value:
LOCAL
,SWIFT
beneficiaryType String Required
- In this payout method, the type of code that is used to identify the beneficiary account or the bank to which the beneficiary account belongs.
- Example value: IBAN, BBAN.
Response Sample
// Http Header
{
"sign": "Yv+C2lOQmfERdm5GF9b2V4Y98HmX/6CFyconeOW36AoPqcb7InRcP9E5GnvJLfMoCScuNP4FBdJ5tJpL0A7yPHUMfxARi05jFRSMG97JJazDbWTbRkNM1ZupmTubhUvxvRCgvJp1k0c5yrHph+F+++W5eYho92xnkNgd62BS27i0iDRGzGSmsaPpK7MFcdlvnbbnmDZZJ0LH6RhYiJLYKl+znllQx3jNfCRjV28o22FZ35Q43mZTsS4uAZWbZ/KfaqWoV3sN62Cjj8DSg3mD6GCGWSVbxLq58DUxAq+6GwJ7Gj0Dc9nMXP3gnFW7dodQ9AjL2iHnH6Zh1Pw2D5/ung=="
"partner-id": "200000429066"
}
// Http Body
{
"head":{
"applyStatus":"SUCCESS",
"code":"0",
"msg":"SUCCESS",
"traceCode":"0837"
},
"body":{
"fundoutAbilityList":[
{
"beneficiaryType":"IBAN",
"name":"Local",
"networkCode":"LOCAL",
"countryCode":"UAE",
"fundoutCurrencyCode":"AED"
},
{
"beneficiaryType":"IBAN",
"name":"Local",
"networkCode":"LOCAL",
"countryCode":"UAE",
"fundoutCurrencyCode":"USD"
},
{
"beneficiaryType":"BBAN",
"name":"SWIFT",
"networkCode":"SWIFT",
"countryCode":"HK",
"fundoutCurrencyCode":"USD"
},
{
"beneficiaryType":"BBAN",
"name":"SWIFT",
"networkCode":"SWIFT",
"countryCode":"SG",
"fundoutCurrencyCode":"USD"
},
{
"beneficiaryType":"BBAN",
"name":"SWIFT",
"networkCode":"SWIFT",
"countryCode":"US",
"fundoutCurrencyCode":"USD"
}
]
}
}
Response Codes
Code | Message | Cause | Solution |
---|---|---|---|
0 | SUCCESS | Success | — |
400 | INVALID_PARAMETER | Invalid request parameters | Adjust request parameters |
400 | REQUESTTIME_TOO_EARLY | Request time is too far in the past | Adjust request time |
400 | REQUESTTIME_TOO_LATER | Request time is too far in the future | Adjust request time |
402 | RATE_LIMIT_REJECT | Too many requests | Reduce request frequency |
403 | UNAUTHORIZED | API not authorized | Contact PayBy |
404 | SERVICE_NOT_AVAILABLE | API service unavailable | Contact PayBy |
500 | SYSTEM_ERROR | System error | Contact PayBy and retry later |
504 | SERVICE_TIMEOUT | Service timeout | Retry later |
601 | RISK_FAIL | Risk control validation failed | Adjust business logic |