Create Order (Bank Account)
Introduction
Create order for bank-account based transactions.
API Description
Request Method:POST
Request Path:open/api/transfer/payment
Parameters
Request Parameters
Parameter | Sign | Mandatory | Type | Length | Description |
|---|---|---|---|---|---|
appId | Y | Y | string | 64 | AppId is unique for merchant |
sign | N | Y | string | 512 | Sign click here |
merchantOrderNo | Y | Y | string | 64 | Merchant order number (must be unique) |
amount | Y | Y | string | 20 | Order amount (unit as fiat currency, 1=1.00) Mexican Peso: |
currency | Y | Y | string | 20 | Fiat currency (unit of amount) |
N | Y | string | 64 | User email | |
userId | Y | Y | string | 64 | Email/ Phone number |
userIp | Y | Y | string | 64 | User IP |
feeType | Y | Y | string | 32 | Outer buckle: |
callbackUrl | Y | Y | string | 128 | The address receiving order webhook |
bankParam | N | N | object | 1024 | Bank account expend parameter |
customParam | N | N | object | 1024 | Custom fields |
remark | N | N | string | 1024 | Remark |
PKR bankParam Expend Parameter
| Parameter | Mandatory | Sign | Type | Length | Description |
|---|---|---|---|---|---|
| payMethod | Y | Y | String | 32 | Payment Method |
| bankCode | Y | Y | String | 32 | Bank Name |
| accountNumber | Y | Y | String | 32 | Mobile (JazzCash/EasyPaisa, 03XXXXXXXXX) |
INR bankParam Expend Parameter
| Parameter | Mandatory | Sign | Type | Length | Description |
|---|---|---|---|---|---|
| bankAccountNumber | Y | Y | String | 32 | Payee UPI VPA |
KES bankParam Expend Parameter
| Parameter | Mandatory | Sign | Type | Length | Description |
|---|---|---|---|---|---|
| accountType | Y | Y | String | 32 | Account type |
| bankCode | Y | Y | String | 32 | Bank / Wallet Code |
| bankAccountNumber | Y | Y | String | 32 | Account Number / Phone Number |
EGP bankParam Expend Parameter
| Parameter | Mandatory | Sign | Type | Length | Description |
|---|---|---|---|---|---|
| accountType | Y | Y | String | 32 | Account type |
| bankCode | Y | Y | String | 32 | Bank / Wallet Code |
| bankAccountNumber | Y | Y | String | 32 | Account Number / Phone Number |
PHP bankParam Expend Parameter
| Parameter | Sign | Mandatory | Type | Length | Description |
|---|---|---|---|---|---|
| productNumber | Y | Y | String | 32 | Product no |
| bankCode | Y | Y | String | 32 | Bank code, refers to Bank Transfer Account Form api response |
| bankAccountNumber | Y | Y | String | 32 | Bank Account Number/Card Number/E-Wallet Account Number |
VND bankParam Expend Parameter
| Parameter | Sign | Mandatory | Type | Length | Description |
|---|---|---|---|---|---|
| type | Y | Y | String | 32 | ACCOUNT_NUMBER/CARD_NUMBER |
| bankCode | Y | Y | String | 32 | Bank code, refers to Bank Transfer Account Form api response |
| bankAccountNumber | Y | Y | String | 32 | Bank Account Number/Card Number |
NGN / MXN bankParam Expend Parameter
| Parameter | Sign | Mandatory | Type | Length | Description |
|---|---|---|---|---|---|
| bankCode | Y | Y | String | 32 | Bank code, refers to Bank Transfer Account Form api response |
| bankName | Y | Y | String | 32 | Bank name, refers to Bank Transfer Account Form api response |
| bankAccountNumber | Y | Y | String | 32 | Bank Account Number (When user Choose NGN Opay, enter phone number, example:7012345678) |
ZWM bankParam Expend Parameter
| Parameter | Sign | Mandatory | Type | Length | Description |
|---|---|---|---|---|---|
| mobile | Y | Y | String | 32 | Mobile phone number(11-digit number) |
| payMethod | Y | Y | String | 32 | BD_BKASH/BD_NAGAD |
BRL bankParam Expend Parameter
| Parameter | Sign | Mandatory | Type | Length | Description |
|---|---|---|---|---|---|
| pixKey | Y | Y | String | 64 | CPF/CNPJ/Phone/Email/EVP |
Request Parameter Example
{
"appId": "TEST000001",
"sign": "TEST000001",
"merchantOrderNo": "11187",
"amount": "10000",
"currency": "NGN", //MSN,NGN,ZMW,BDT
"feeType": "INNER_BUCKLE",
"userId": "[email protected]",
"userIp": "14.232.142.199",
"email": "[email protected]",
"callbackUrl": "http://127.0.0.1:8022/open/api/callback",
"bankParam": {
"bankCode": "123",
"bankName": "Mock Bank",
"bankAccountNumber": "032434**"
}
}Response Parameters
| Parameter | Type | Description |
|---|---|---|
| success | boolean | Success |
| error | boolean | Error |
| code | long | Response code |
| msg | string | Response message |
| traceId | string | Trace id |
| model | object | Response content |
Response Parameter Example
{
"code": "0",
"msg": "success",
"model": {
"amount": "6.45",
"orderNo": "400017506670013450114"
},
"traceId": "68590ef3ef9bd17e8671b85313daf949",
"success": true,
"error": false
}Request Signature Guidelines
Signature Mechanism Filter fields:
- Remove the sign field from the request body.
- Sort fields: Sort all remaining top-level parameters alphabetically by their keys (ASCII order).
- Handle Nested Objects (Crucial): If a field contains a nested object (e.g., bankParam), do not stringify it to standard JSON. Instead, sort the inner keys alphabetically, join them with an ampersand (&), and append this raw string directly to the parent key.
- Concatenate: Join all sorted top-level fields in a key=value format, separated by an ampersand (&).
- Append Secret Key: Append the merchant secret key at the end of the string in the format of &key=YOUR_SECRET_KEY.
- Generate signature
Signature Example
Original Request Body (JSON)
{
"amount": "12345",
"appId": "xxxxxxx",
"bankParam": {
"bankCode": "xxx",
"bankAccountNumber": "2",
"bankName": "Zenith Bank"
},
"callbackUrl": "https://xxx.com/callback",
"currency": "NGN",
"feeType": "OUTER_BUCKLE",
"merchantOrderNo": "test1234",
"sign": "XXXXX",
"userId": "test1234",
"userIp": "XX.XX.XX.XX"
}Special Notice on Nested Objects
bankAccountNumber=2&bankCode=xxx&bankName=Zenith Bank
Constructed String for Signing
amount=12345&appId=xxxxxxx&bankParam=bankAccountNumber=2&bankCode=xxx&bankName=Zenith Bank&callbackUrl=https://xxx.com/callback¤cy=NGN&feeType=OUTER_BUCKLE&merchantOrderNo=test1234&userId=test1234&userIp=XX.XX.XX.XX&key=XXXXX
