Bank Card Transfer
Overview
This interface allows merchants to transfer funds from their account to a specified bank card account.
Order Status
| Status | Description |
|---|---|
| CREATED | Order created |
| SUCCESS | Transfer completed |
| FAILURE | Transfer failed |
| BANK_FAIL | Bank declined |
API URL
- UAT Environment: https://uat.test2pay.com/sgs/api/transfer/placeTransferToBankCard
- Production Environment: https://api.payby.com/sgs/api/transfer/placeTransferToBankCard
Request
HTTP Headers
Attributes
- Content-Language String
- The language for the response message. Defaults to English.
- Example value:
en - Maximum length:
10
- Content-Type String Required
- Media type of the request body.
- Required for operations with a request body.
- Format:
application/json
- sign String Required
- Request signature using private-key cryptography.
- Ensures the payment gateway can verify the request origin.
- Example value:
RSA_SIGNATURE_BASE64_STRING
- Partner-Id String Required
- Unique partner identifier.
- Example value:
200001200101 - Maximum length:
12
HTTP Body
requestTime Timestamp Required
- Time the request was initiated.
- Example value:
1581493898000
bizContent:
Attributes
accountHolderType String(16) Required
- Recipient account type: Currently only
INDIVIDUALis supported. - Example value:
INDIVIDUAL
- Recipient account type: Currently only
merchantOrderNo String(64) Required
- Unique order identifier from the merchant.
- Example value:
Me23484
firstName String Required
- Encrypted field. Recipient's first name. 2–35 letters after decryption
- Required when
accountHolderTypeisINDIVIDUAL
lastName String Required
- Encrypted field. Recipient's last name. 2–35 letters after decryption
- Required when
accountHolderTypeisINDIVIDUAL
middleName String
- Encrypted field. Recipient's middle name. 2–35 letters after decryption
countryCode String(2) Required
- Recipient country code.
- Example value:
AE
state String(3)
- Recipient state.
- Required when
countryCodeisUS.
zipCode String(10)
- Recipient postal code.
- Required when
countryCodeisUS.
city String(50) Required
- Recipient city.
- Example value:
Dubai
addressLine String(200) Required
- Recipient full address.
- Example value:
26th Floor Sky Tower
amount Money Required
- Amount to transfer.
- Example value:
12.34
memo String(50) Required
- Transfer description or note.
- Example value:
Bonus
notifyUrl String(200)
- URL to receive transfer status notifications.
senderType String(16) Required
- Sender account type:
INDIVIDUALorCORPORATE. - When the sender account type is
INDIVIDUAL,senderInfoRequestis required. - Example value:
INDIVIDUAL
- Sender account type:
cardToken String Required
- Token representing the recipient's card.
- When provided,
cardTokentakes precedence andcardNumber,expiryMonth, andexpiryYearcan be omitted.
cardTokenMerchantId String(12)
- Merchant ID associated with the
cardToken. - Defaults to the requesting
partnerIdwhen omitted.
- Merchant ID associated with the
last4 String(4) Required
- Last 4 digits of the card number.
- Must match the last 4 digits of the card resolved by
cardToken.
expiryYear String(4) Required
- Encrypted field. Card expiration year.
- Must be current year or later.
- Not required when
cardTokenis provided. - Example value:
2025
expiryMonth String(2) Required
- Encrypted field. Card expiration month (1–12).
- Combined year and month must be current month or later.
- Not required when
cardTokenis provided. - Example value:
12
cardNumber String(50) Required
- Encrypted field. Card number (12–19 digits, numeric only).
- Not required when
cardTokenis provided.
riskInfo String(255)
- Risk information for merchant-to-card transfer scenarios in JSON format.
- Example value:
{"scene":"casino","level":"high"}
senderInfoRequest TransferBankCardSenderInfo
Sender information. It is required and must not be empty when
senderTypeisINDIVIDUAL.firstName String Required
- Encrypted field. Sender's first name. 2–35 letters after decryption.
lastName String Required
- Encrypted field. Sender's last name. 2–35 letters after decryption.
countryCode String(2) Required
- Sender country code. Must be a valid ISO country code.
- Example value:
AE
state String(2–3)
- Sender state.
- Required when
countryCodeisUS.
zipCode String(10)
- Sender postal code.
- Required when
countryCodeisUS.
city String(50) Required
- Sender city.
addressLine String(200) Required
- Sender full address.
reference String(15) Required
- Sender reference number. 5–15 characters, alphanumeric only.
- Example value:
100000348329
sourceOfFunds Enum Required
- Source of the transferred funds.
- Possible values:
credit,debit,prepaid,deposit_account,mobile_money_account,cash
dateOfBirth String
- Sender date of birth in
YYYY-MM-DDformat. Format-validated when provided. - Example value:
1999-01-01
- Sender date of birth in
Request Sample
{
"requestTime": 1777636067475,
"bizContent": {
"merchantOrderNo": "T1777636061770ZMAY",
"amount": {
"amount": 1.00,
"currency": "AED"
},
"memo": "company single pay",
"notifyUrl": "http://yoursite.com/api/notification",
"riskInfo": {
"scene": "casino",
"level": "high"
},
"accountHolderType": "INDIVIDUAL",
"senderType": "INDIVIDUAL",
"firstName": "ONVvIuLQB0FCQwCUbLtgUQWvkFTn5E7cK3Xqe/tXAtsHxUky6NKMxcrHYBvH7kVbzgngb/D39l3Jd5L/nWZM7WkmB7L4EXz3CUkGvgOcE+Y8OuT+WCE0lpM0aLoygKXJsZmiTqcRvBq5T669uW8ezEHAFPqql0EJLex9XuGD/T16JdeQDzfomiodKPNrkcEcNxt6FOGmSHrKXZlMsFk6ED+ZkdI6EQFv7/F81+U5BE+WYSVhTn/l/tcbIdqEmgYU3cY1klruz3ge4RZo55/CwNtuM8mH35aw2USwW7I9cP21r0ALvtV8xiUCrYKBmKVYOHI2riC2l4+jtsjdfPzaTg==",
"lastName": "i/1PAWy7FUw3hQNoyR9WYxmLC5xcOiT9eS/kie4uh+/GQIin91/LTXtjRUQobgRGvA5+Mjokrrip0ak1JPnA4o9bBKmi5Aj6PX7F49/I+Nn9+iTXgFwnaHBknjPtPkVynhVaTIqCgb8JxETtLHouhVrBqMqSbAxRJ/btefg/svuE9pE6q3zbXaUSP1vODEX5NspbiWjmS62VkhbWwZxGbVh/wTWwqYPMlJMbQVrnRmibtZ3zTI9J0yRYsEkDLsz7iBC2Ye+ayGOJVZxXYHVibZSgx6Hc342303ejp6vabDfDa70413YbvQ4wDrotIwWgzEa1qBZZ54VQ6XLxMv8lww==",
"middleName": "aPDNDh0PVMU36S1rYAQ+EwsMLz0vtkmFyP9IM0cPL/sr5r8iGO80R6VNPyrjBPHK/DAkoxYIQ5caMauVKtQO7/2qTUQAOqHhTONNS5zmqZcd0wXUTqj6lhZxi6euhQxNy5JJde1BPVm06Xs0lLfXqpjmBDpGbYRTmWEwP3tQlj/3oA1JgilMHoZY4f41cANZg1VrdFf7UneIaolLbS8buk2IthfVfErKmPI2FfQ+fSswEQ5hjVSZAOPq9ryyQf3JPZWbOfED68+z6J6VtRTbRr1IqIujxZD8uUg2EL3POEdidvShxrQPHbp4XemLpyAIItbA1fxVrs+ejDDIrRybdw==",
"cardNumber": "KNh0ES4qzHfz6KyMopf04sNmBdZAe+2diPsCjYw8mqAmoJFlq5i8z0lI98MB2RJMTkEwdL1anLGkfxcAAjJQJAnFbLpWTQYO3EPoEy0jOmRF8L5R5RarjsKkAnZ4eajVYrSybfLYGkWSViBJVeOh3NANmHvQEVNr9UtYg9wkc67eHm0L+6DZOf0MO+XdDyEHo8eQ3+JKN8fpULATFtrIYsZ0mdFrl8lhb4OhD+ja4ZtkZfmuaxN+xjlK50aCxhEooOBPEvMhpPsyE4ETkf/pN+In/RLTsXlE4OZTyPJFxu5xliM15pCdIU+S6x/32zRBhGt+JnfupXnjk8NXgdUX2A==",
"expiryYear": "Z1jLhLD+NWJptjDjP9YLVPyA+qyJ7OliVnNL9fTRLJNWIxaQBLzca0BIB6BHEkA1TIKZvs/0aBdgArTeJixT1OLm8hhWzghNdW0TqwcshYO6mEpIAEHWwXAmoyfRDE/P/RrUsqqsU8GSLL2s4NDQFLW95VcYL3NNNTLqfzuXieeZr3docDQOj3yPomPWNDqi2e4bH2G3s1Q9jGF5a7mMcKwlx07ePcYV1Y8sRqLN4gP8zncvaBeSrD+pcwb15nCAzA+WUNV9Bby6gdTRSLbNtwSpqySZeFSlaWNY18INusOjd98+t6l6zwrixorqZdGigCpCdB8/6RSyvYUIqcj2fQ==",
"expiryMonth": "C99R1WEz7NxpycTX7X2IanH7J0TVGhEnrSdImJmUNLCx38+cMaMFygR5l+P2lgtK2LF/lC1FR8fK9AYPLo9GWush2SmPAvBbkUNGuzTJCmJPdWZmjG/7AeopEb1Ax2oWmvKPn0pHetxXrMBesdQtx0Ekx0kAds1D5zyXsCp8fq1/OoI+LiI1cncfkgER8d0AvyV7J2n/DWQBBuxrQ9sEhorIE5QlhcqVQCpAP/HIt0Ow7cHCmprw2wD/iYehYjQZwm/avizm8sVgDA5VnIAfqmZmLnWx7xq84WhFWEpsNEof3FNOm+Xm3TZfW74PVuhgPNNsfkQlNWQA2pD1SzBGaQ==",
"countryCode": "AE",
"state": "Abu",
"city": "Dubai",
"addressLine": "26th Floor Sky Tower",
"senderInfoRequest": {
"firstName": "YIQfkvSFngesF73UXWZr8ollDCAxNCutXSCgWLQrFTTatuKayT51mnShJJHmZl3r6R1Tv3fCGcPuVW/BT8uSVleOrscgNdpsfRRohptyZ4NKgNm+jCXNvb+hmESpocCg38TbwE1RNQeOz2T+b/mxOq5YdlHCLHPEdjkQz9+O3rxrzmR17u7wqu42a6w+REK29cnkpJF+o7GgyZzU7Id/wFrHK71nBE8Vr4aN5sDmXH8KK4JmHWj227OOaSokHDzhYo0JQ80VlhfkPkrPpaUP5u5nvmVWZJy+2Kn8aaKw14jrCuzTdqXUrwuLn8Z5vaGTO2B7NayPFb87i8kECdz88w==",
"lastName": "LSBwCYeR/yKx+o3Gzh1CaesKEsCObTdWfy92xBAT7MitRnVqvwDWstMbN9YPcS24OHTtwIfS4SD555mBRIX9NRr36wlk3y0q59/cHGRiTWXXPXWHX/Vd8EEiTADwV1WDDxhok1zkIZA9hOJ29+q9gV3ubTaLXRnp0NbzkDucjLVMzO6YVzKp95ECyuquqFf+rvOrRU1b1Qe8wMWPvZJ7UnPVItdDyJM7QP45JWq78tYj8EISPXodkuo5PFeX4qcES1dcIGiRRlqzZUkoCWzQTpbt+zzFEc14atKBX9YrweiiaJBnaqauY6G/R/Zu57wuGj2T1MekSMqj6Nlh6nsmVg==",
"countryCode": "AE",
"state": "Abu",
"zipCode": "123456",
"city": "Dubai",
"addressLine": "skytower",
"reference": "100000348329",
"dateOfBirth": "1999-01-01",
"sourceOfFunds": "debit"
}
}
}
Response
HTTP Headers
Attributes
applyStatus String(16) Required
- Request status result.
- Example value:
SUCCESS - Possible values:
SUCCESS: Application successfulFAIL: Application failedERROR: Exception occurred
code String(10) Required
- Return error code.
- Example value:
0
msg String(200)
- Return message.
HTTP Body
- transferToBankCard TransferBankcardOrder Required
- Complete transfer order details.
TransferBankcardOrder:
Attributes
requestTime Timestamp(3) Required
- Request time passed by the merchant when placing the order.
- Example value:
1581493898000
merchantOrderNo String(64) Required
- Merchant's reference number for tracking the request.
- Example value:
S10000
orderNo String(32) Required
- Botim Money's unique identification number of the order.
- Example value:
O1000
product String(200) Required
- Product name of the API method used in the order.
- Example value:
Transfer Bank Card
status String Required
- Status of the order.
- Possible values:
CREATED,SUCCESS,FAILURE,BANK_FAIL
amount Money Required
- Amount to be transferred.
transferFee Money Required
Transfer fee.
Example value:
{
"amount": 0,
"currency": "AED"
}
accountHolderType String(16) Required
- Recipient account type. Currently only
INDIVIDUALis supported. - Example value:
INDIVIDUAL
- Recipient account type. Currently only
firstName String Required
- Encrypted field. Recipient's first name.
- Required when
accountHolderTypeisINDIVIDUAL.
lastName String Required
- Encrypted field. Recipient's last name.
- Required when
accountHolderTypeisINDIVIDUAL.
middleName String
- Encrypted field. Recipient's middle name.
cardNumber String Required
- Encrypted field. Card number.
expiryMonth String(2) Required
- Card expiration month (1–12).
- Example value:
09
expiryYear String(4) Required
- Card expiration year.
- Example value:
2027
countryCode String(2) Required
- Recipient country code.
- Example value:
AE
state String(3)
- Recipient state.
- Example value:
Abu
city String(50) Required
- Recipient city.
- Example value:
Dubai
addressLine String(200) Required
- Recipient full address.
memo String(50) Required
- Transfer description or note.
- Example value:
Bonus
notifyUrl String(200)
- URL where the merchant receives notifications.
- Example value:
http://yoursite.com/api/notification
failDes String(200)
- Cause of order failure.
bankReference String(128)
- Bank reference number.
paidTime Date Required
- Time of deduction.
refundedTime Date
- Time of refund.
senderInfo TransferBankCardSenderInfo
Sender information. If included, fields marked Required below must be provided.
firstName String Required
- Encrypted field. Sender's first name.
lastName String Required
- Encrypted field. Sender's last name.
countryCode String(2) Required
- Sender country code.
- Example value:
AE
state String(3)
- Sender state. Required when
countryCodeisUS. - Example value:
Abu
- Sender state. Required when
zipCode String(10)
- Sender postal code.
- Example value:
123456
city String(50) Required
- Sender city. Required when
countryCodeisUS. - Example value:
Dubai
- Sender city. Required when
addressLine String(200) Required
- Sender full address.
- Example value:
skytower
reference String(15) Required
- Sender reference number.
- Example value:
100000348329
sourceOfFunds Enum Required
- Source of the transferred funds.
- Possible values:
credit,debit,prepaid,deposit_account,mobile_money_account,cash
dateOfBirth String
- Sender date of birth in
YYYY-MM-DDformat. - Example value:
1999-01-01
- Sender date of birth in
Response Sample
HTTP Headers
{
"sign": "Yv+C2lOQmfERdm5GF9b2V4Y98HmX/6CFyconeOW36AoPqcb7InRcP9E5GnvJLfMoCScuNP4FBdJ5tJpL0A7yPHUMfxARi05jFRSMG97JJazDbWTbRkNM1ZupmTubhUvxvRCgvJp1k0c5yrHph+F+++W5eYho92xnkNgd62BS27i0iDRGzGSmsaPpK7MFcdlvnbbnmDZZJ0LH6RhYiJLYKl+znllQx3jNfCRjV28o22FZ35Q43mZTsS4uAZWbZ/KfaqWoV3sN62Cjj8DSg3mD6GCGWSVbxLq58DUxAq+6GwJ7Gj0Dc9nMXP3gnFW7dodQ9AjL2iHnH6Zh1Pw2D5/ung=="
}
HTTP Body
{
"body": {
"transferBankCardOrder": {
"amount": {
"amount": 1.0,
"currency": "AED"
},
"partnerId": "200000088724",
"notifyUrl": "http://yoursite.com/api/notification",
"memo": "company single pay",
"requestTime": 1777636068930,
"transferFee": {
"amount": 0.0,
"currency": "AED"
},
"orderNo": "131777636068533842",
"merchantOrderNo": "T1777636061770ZMAY",
"product": "Transfer Bank Card",
"status": "CREATED",
"paidTime": 1777636070000,
"accountHolderType": "INDIVIDUAL",
"cardNumber": "b888aa5f23a817883d4d12c74044bab1ae6ee65dc8d6e11515394aba452b273b",
"expiryMonth": "08",
"expiryYear": "2028",
"firstName": "46fbf700b56ded7c159e0edbe79e6d53082f48640da2806aaf238fd00c717c04",
"lastName": "c85c2e16a566d82acc5f76f0694d3ae16c8481499e4a806aa64e424db158cddb",
"middleName": "c6c094bc0054f9cbe34102ff49f86b3928b5ac09f3d2ac87e170d0500675921f",
"countryCode": "AE",
"state": "Abu",
"city": "Dubai",
"addressLine": "26th Floor Sky Tower",
"senderInfo": {
"firstName": "35e8062b71ff23f92bb6d4e881cee471a22c7d79c401685df0d312db7edb58e0",
"lastName": "4f3ef4f55a2f52c91fc7ebe3f738beb9ceeffbede18d130f4028a084ce1c0875",
"countryCode": "AE",
"state": "Abu",
"zipCode": "123456",
"city": "Dubai",
"addressLine": "skytower",
"reference": "100000348329",
"sourceOfFunds": "debit",
"dateOfBirth": "1999-01-01"
}
}
},
"head": {
"applyStatus": "SUCCESS",
"code": "0",
"msg": "SUCCESS",
"traceCode": "587641"
}
}
Response Codes
| Code | Message | Cause | Workaround |
|---|---|---|---|
| 0 | SUCCESS | Request successful | - |
| 400 | INVALID_PARAMETER | Invalid request parameters | Adjust request parameters |
| 400 | REQUESTTIME_TOO_EARLY | Request time is too early | Adjust request time |
| 400 | REQUESTTIME_TOO_LATER | Request time is too late | Adjust request time |
| 402 | RATE_LIMIT_REJECT | Too many requests | Reduce request frequency |
| 403 | UNAUTHORIZED | API not authorized | Contact Botim Money |
| 404 | SERVICE_NOT_AVAILABLE | API service unavailable | Contact Botim Money |
| 500 | SYSTEM_ERROR | System error | Contact Botim Money, retry later |
| 504 | SERVICE_TIMEOUT | Service timeout | Retry later |
| 601 | RISK_FAIL | Risk control validation failed | Adjust business parameters |
| 62002 | ORDER_FAILURE | Order has failed | Use different merchant order number |
| 62016 | MERCHANT_ORDER_NO_EXIST | Duplicate order number with different parameters | Use different order number |
| 62026 | PRODUCT_IS_NOT_APPLIED | Product not activated | Apply for product access |
| 62028 | ORDER_SUCCESS | Order already successful | Use different merchant order number |
| 62029 | ORDER_CREATED | Order already created | Use different merchant order number |