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

ParameterSignMandatoryTypeLengthDescription
appIdYYstring64AppId is unique for merchant
signNYstring512Sign click here
merchantOrderNoYYstring64Merchant order number (must be unique)
amountYYstring20Order amount (unit as fiat currency, 1=1.00) Mexican Peso: MXN (supports two decimal places)
Nigerian Naira: NGN (does not retain decimal places)
Zambia Kwacha:ZMW(supports two decimal places)
Bangladeshi Taka:BDT(supports two decimal places)
Brazil:BRL(supports two decimal places)
Vietnam:VND(does not retain decimal places)
Philippines:PHP(supports two decimal places)
Kenyan Shilling:KES (supports two decimal places)
Egyptian Pound:EGP(supports two decimal places)
India Rupee:INR(does not retain decimal places)
Pakistani Rupee:PKR(supports two decimal places)
currencyYYstring20Fiat currency (unit of amount)
emailNYstring64User email
userIdYYstring64Email/ Phone number
userIpYYstring64User IP
feeTypeYYstring32Outer buckle: OUTER_BUCKLE
User Buckle:USER_BUCKLE
callbackUrlYYstring128The address receiving order webhook
bankParamNNobject1024Bank account expend parameter
customParamNNobject1024Custom fields
remarkNNstring1024Remark

BDT bankParam Expend Parameter

ParameterSignMandatoryTypeLengthDescription
mobileYYString32Mobile phone number
payMethodYYString32BD_BKASH/BD_NAGAD

PKR bankParam Expend Parameter

ParameterMandatorySignTypeLengthDescription
payMethodYYString32Payment Method
bankCodeYYString32Bank Name
accountNumberYYString32Mobile (JazzCash/EasyPaisa, 03XXXXXXXXX)

INR bankParam Expend Parameter

ParameterMandatorySignTypeLengthDescription
bankAccountNumberYYString32Payee UPI VPA

KES bankParam Expend Parameter

ParameterMandatorySignTypeLengthDescription
accountTypeYYString32Account type
bankCodeYYString32Bank / Wallet Code
bankAccountNumberYYString32Account Number / Phone Number

EGP bankParam Expend Parameter

ParameterMandatorySignTypeLengthDescription
accountTypeYYString32Account type
bankCodeYYString32Bank / Wallet Code
bankAccountNumberYYString32Account Number / Phone Number

PHP bankParam Expend Parameter

ParameterSignMandatoryTypeLengthDescription
productNumberYYString32Product no
bankCodeYYString32Bank code, refers to Bank Transfer Account Form api response
bankAccountNumberYYString32Bank Account Number/Card Number/E-Wallet Account Number

VND bankParam Expend Parameter

ParameterSignMandatoryTypeLengthDescription
typeYYString32ACCOUNT_NUMBER/CARD_NUMBER
bankCodeYYString32Bank code, refers to Bank Transfer Account Form api response
bankAccountNumberYYString32Bank Account Number/Card Number

NGN / MXN bankParam Expend Parameter

ParameterSignMandatoryTypeLengthDescription
bankCodeYYString32Bank code, refers to Bank Transfer Account Form api response
bankNameYYString32Bank name, refers to Bank Transfer Account Form api response
bankAccountNumberYYString32Bank Account Number (When user Choose NGN Opay, enter phone number, example:7012345678)

ZMW bankParam Expend Parameter

ParameterSignMandatoryTypeLengthDescription
mobileYYString32Mobile phone number

BRL bankParam Expend Parameter

ParameterSignMandatoryTypeLengthDescription
pixKeyYYString64CPF/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

ParameterTypeDescription
successbooleanSuccess
errorbooleanError
codelongResponse code
msgstringResponse message
traceIdstringTrace id
modelobjectResponse 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:

  1. Remove the sign field from the request body.
  2. Sort fields: Sort all remaining top-level parameters alphabetically by their keys (ASCII order).
  3. 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.
  4. Concatenate: Join all sorted top-level fields in a key=value format, separated by an ampersand (&).
  5. Append Secret Key: Append the merchant secret key at the end of the string in the format of &key=YOUR_SECRET_KEY.
  6. 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&currency=NGN&feeType=OUTER_BUCKLE&merchantOrderNo=test1234&userId=test1234&userIp=XX.XX.XX.XX&key=XXXXX



Did this page help you?