# 1. Fiat-to-cryptocurrency exchange
Request method
- POST
URL:
/api/v1/exchange/express/trade/buy
Content-Type:
Content-Type: application/json; charset=utf-8
Request header parameters (Header)
Param | Type | Description | Sample |
---|---|---|---|
access_key | String | Access key obtained from the merchant backend | pFqV75X3 |
timestamp | int64 | Unix millisecond timestamp (13 digits) | 1679724896223 |
nonce | String | UUID V4 random string | 794c26b0-d33c-4394-b2bb-c485eca16d9e |
sign | String | The signature calculated by the signature algorithm | kAXyh+eerqrefyaF8dyFB0M4FVo= |
All the above parameters are passed as HTTP Header
Request body data example: INR
{
"externalOrderId": "20250513184347329830",
"chainType": "BSC",
"tokenType": "USDT",
"addressTo": "0xa8666442fA7583F783a169CC9F3333333360295E8",
"tokenAmount": "1",
"currencyType": "INR",
"payType": "BANK",
"remark": "test",
"notifyUrl" : ""
}
Parameter Description:
Parameter name | type | Is this field required? | describe |
---|---|---|---|
tokenAmount | Decimal | yes | Token Amount |
externalOrderId | String | yes | Merchant order number |
chainType | String | yes | Chain type BSC |
tokenType | String | yes | Token Type USDT |
addressTo | String | yes | address |
currencyType | String | yes | Currency Type INR |
payType | string | yes | Payment type: BANK UPI |
notifyUrl | String | no | Callback address after payment is completed (server side) |
remark | String | no | Merchant customized remarks |
Response type:
Header: { 'Content-Type': 'application/json;charset=utf-8'}
Create a payment response description:
Normal response data example (HTTP 200)
{
"code": "200",
"success": true,
"msg" : "Success" ,
"msgEn": "SUCCESS",
"data": {
"chainType": "BSC",
"currencyAmount": "83.2309",
"tokenAmount": "1",
"currencyType": "INR",
"tokenType": "USDT",
"externalOrderId": "20250513184347329830",
"orderId": "OEXCHEXCH202505131043481747133028307HAMBIT-U0000000401298824",
"tradeType": "BUY",
"payUrl": null,
"exchangePrice": "83.2309",
"orderFee": "0.0118",
"bankAccountNumber": null,
"bankAccountType" : null ,
"bankCode" : null ,
"bankName" : null ,
"cashierUrl": "http://fiat/OEXCHEXCH202505131043481747133028307-U0000000401298824"
}
}
Response Parameter Description
Parameter name | type | describe |
---|---|---|
chainType | String | Main Chain |
currencyAmount | String | Amount in Fiat Currency |
tokenAmount | String | Token Amount |
currencyType | String | Fiat currency type |
tokenType | String | Token Type |
externalOrderId | String | Merchant order number |
orderId | String | Order Number |
tradeType | String | Transaction Type |
payUrl | String | Fiat currency payment link(to be used according to actual situation) |
BankAccountNumber | String | Channel Bank Account Number(to be used according to actual situation) |
exchangePrice | String | exchange rate |
orderFee | String | Fees |
BankAccountType | String | Channel bank account type (to be used according to actual situation) |
BankCode | String | Channel bank code (use according to actual situation) |
BankName | String | Channel bank name (use according to actual situation) |
cashierUrl | String | Redeem cashier link |
Request body data example: BRL
{
"externalOrderId": "20250513192309317184",
"chainType": "BSC",
"tokenType": "USDT",
"addressTo": "0xa8666442fA7583F783a169CC9F5449333333395E8",
"tokenAmount": "10.214234221423422312",
"currencyType": "BRL",
"payType": "PIX",
"remark": "test",
"notifyUrl" : ""
}
Parameter Description:
Parameter name | type | Is this field required? | describe |
---|---|---|---|
tokenAmount | Decimal | yes | Token Amount |
externalOrderId | String | yes | Merchant order number |
chainType | String | yes | Chain type BSC |
tokenType | String | yes | Token Type USDT |
addressTo | String | yes | address |
currencyType | String | yes | Currency TypeBRL |
payType | string | yes | Payment type: PIX |
notifyUrl | String | no | Callback address after payment is completed (server side) |
remark | String | no | Merchant customized remarks |
Response type:
Header: { 'Content-Type': 'application/json;charset=utf-8'}
Create a payment response description:
Normal response data example (HTTP 200)
{
"code": "200",
"success": true,
"msg" : "Success" ,
"msgEn": "SUCCESS",
"data": {
"chainType": "BSC",
"currencyAmount": "60.72",
"tokenAmount": "10.214234221423422312",
"currencyType": "BRL",
"tokenType": "USDT",
"externalOrderId": "20250513192309317184",
"orderId": "OEXCHEXCH202505131123101747135390221HAMBIT-U0000000401298839",
"tradeType": "BUY",
"payUrl": null,
"exchangePrice": "5.944444",
"orderFee": "0.204284684428468447",
"bankAccountNumber": null,
"bankAccountType" : null ,
"bankCode" : null ,
"bankName" : null ,
"cashierUrl": "http://fiat/OEXCHEXCH202505131123101747135390221-U0000000401298839"
}
}
Response Parameter Description
Parameter name | type | describe |
---|---|---|
chainType | String | Main Chain |
currencyAmount | String | Amount in Fiat Currency |
tokenAmount | String | Token Amount |
currencyType | String | Fiat currency type |
tokenType | String | Token Type |
externalOrderId | String | Merchant order number |
orderId | String | Order Number |
tradeType | String | Transaction Type |
payUrl | String | Fiat currency payment link(to be used according to actual situation) |
BankAccountNumber | String | Channel Bank Account Number(to be used according to actual situation) |
exchangePrice | String | exchange rate |
orderFee | String | Fees |
BankAccountType | String | Channel bank account type (to be used according to actual situation) |
BankCode | String | Channel bank code (use according to actual situation) |
BankName | String | Channel bank name (use according to actual situation) |
cashierUrl | String | Redeem cashier link |