# 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
# INR
Request body data example:
{
"externalOrderId": "20250513184347329830",
"chainType": "BSC",
"tokenType": "USDT",
"addressTo": "0xa8666442fA7583F783a169CC9F3333333360295E8",
"tokenAmount": "1",
"currencyType": "INR",
"payType": "BANK",
"remark": "test",
"notifyUrl" : ""
}
Parameter Description:
1. Skip First Screen Mode
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 |
notifyUrl | String | No | Callback address after payment is completed (server side) |
remark | String | No | Merchant customized remarks |
reviewQuote | String | No | Skip the quotation page: 1=Yes, 0=No (Default: 0) |
2. Standard Quotation Mode
Parameter name | type | Is this field required? | describe |
---|---|---|---|
tokenAmount | String | No | Amount of tokens |
externalOrderId | String | No | Merchant order number |
chainType | String | Yes | Blockchain type (BSC) |
tokenType | String | Yes | Token type (USDT) |
addressTo | String | No | Address |
currencyType | String | Yes | Currency type (INR) |
payType | String | Yes | Payment type: BANK |
notifyUrl | String | No | Callback URL after payment is completed (server-side) |
remark | String | No | Merchant custom remark information |
reviewQuote | String | No | Whether to skip the quotation page: 1=Yes, 0=No (default: 0) |
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",
"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 |
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 |
# BRL
Request body data example:
{
"externalOrderId": "20250513192309317184",
"chainType": "BSC",
"tokenType": "USDT",
"addressTo": "0xa8666442fA7583F783a169CC9F5449333333395E8",
"tokenAmount": "10.214234221423422312",
"currencyType": "BRL",
"payType": "PIX",
"remark": "test",
"notifyUrl" : ""
}
Parameter Description:
1. Skip First Screen Mode
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 BRL |
payType | string | Yes | Payment type: PIX |
notifyUrl | String | No | Callback address after payment is completed (server side) |
remark | String | No | Merchant customized remarks |
reviewQuote | String | No | Skip the quotation page: 1=Yes, 0=No (Default: 0) |
2. Standard Quotation Mode
Parameter name | type | Is this field required? | describe |
---|---|---|---|
tokenAmount | String | No | Amount of tokens |
externalOrderId | String | No | Merchant order number |
chainType | String | Yes | Blockchain type (BSC) |
tokenType | String | Yes | Token type (USDT) |
addressTo | String | No | Address |
currencyType | String | Yes | Currency type (BRL) |
payType | String | Yes | Payment type: PIX |
notifyUrl | String | No | Callback URL after payment is completed (server-side) |
remark | String | No | Merchant custom remark information |
reviewQuote | String | No | Whether to skip the quotation page: 1=Yes, 0=No (default: 0) |
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",
"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 |
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 |
# MXN
Request Body Example:
{
"externalOrderId": "20250513192309317184",
"chainType": "BSC",
"tokenType": "USDT",
"addressTo": "0xa8666442fA7583F783a169CC9F5449333333395E8",
"tokenAmount": "10.214234221423422312",
"currencyType": "MXN",
"payType": "BANK",
"remark": "test",
"notifyUrl": ""
}
Parameter Description:
1. Skip First Screen Mode
Parameter Name | Type | Required | Description |
---|---|---|---|
tokenAmount | Decimal | Yes | Token amount |
externalOrderId | String | Yes | Merchant order ID |
chainType | String | Yes | Chain type (e.g., BSC) |
tokenType | String | Yes | Token type (e.g., USDT) |
addressTo | String | Yes | Address |
currencyType | String | Yes | Currency type (e.g., MXN) |
payType | String | Yes | Payment type: CASH, PAYCASHRECURRENT, QRIS |
notifyUrl | String | No | Callback URL for payment completion (server-side) |
remark | String | No | Custom merchant remarks |
reviewQuote | String | No | Whether to skip the quote page: 1 = yes, 0 = no (default: 0) |
2. Standard Quotation Mode
Parameter Name | Type | Required | Description |
---|---|---|---|
tokenAmount | String | No | Amount of tokens |
externalOrderId | String | No | Merchant order number |
chainType | String | Yes | Blockchain type (BSC) |
tokenType | String | Yes | Token type (USDT) |
addressTo | String | No | Address |
currencyType | String | Yes | Currency type (MXN) |
payType | String | Yes | Payment type: CASH, PAYCASHRECURRENT, QRIS |
notifyUrl | String | No | Callback URL after payment is completed (server-side) |
remark | String | No | Merchant custom remark information |
reviewQuote | String | No | Whether to skip the quotation page: 1=Yes, 0=No (default: 0) |
Response Type:
Header: { 'Content-Type': 'application/json;charset=utf-8'}
Create Payment Response Explanation:
Normal response data example (HTTP 200)
{
"code": "200",
"success": true,
"msg": "Success",
"msgEn": "SUCCESS",
"data": {
"chainType": "BSC",
"currencyAmount": "60.72",
"tokenAmount": "10.214234221423422312",
"currencyType": "MXN",
"tokenType": "USDT",
"externalOrderId": "20250513192309317184",
"orderId": "OEXCHEXCH202505131123101747135390221-U0000000401298839",
"tradeType": "BUY",
"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 | Description |
---|---|---|
chainType | String | Main chain |
currencyAmount | String | Fiat amount |
tokenAmount | String | Token amount |
currencyType | String | Fiat currency type |
tokenType | String | Token type |
externalOrderId | String | Merchant order ID |
orderId | String | Order ID |
tradeType | String | Trade type |
bankAccountNumber | String | Channel bank account number (use as applicable) |
exchangePrice | String | Exchange rate |
orderFee | String | Fee |
bankAccountType | String | Channel bank account type (use as applicable) |
bankCode | String | Channel bank code (use as applicable) |
bankName | String | Channel bank name (use as applicable) |
cashierUrl | String | Exchange cashier URL |
payParam | String | Payment parameters |
# VND
Request Body Example:
{
"externalOrderId": "YURITEST20250610093847710921",
"chainType": "BSC",
"tokenType": "USDT",
"addressTo": "0xa8666442fA7583F783a169CC9F5449ec660295E8",
"tokenAmount": "1.1098",
"currencyType": "VND",
"payType": "ZALO_PAY",
"reviewQuote": "",
"remark": "test",
"notifyUrl": ""
}
Parameter Description:
1. Skip First Screen Mode
Parameter Name | Type | Required | Description |
---|---|---|---|
tokenAmount | Decimal | Yes | Token amount |
externalOrderId | String | Yes | Merchant order ID |
chainType | String | Yes | Blockchain type (e.g. BSC) |
tokenType | String | Yes | Token type (e.g. USDT) |
addressTo | String | Yes | Recipient wallet address |
currencyType | String | Yes | Fiat currency type (e.g. VND) |
payType | String | Yes | Payment method: BANK, BANK_SCAN_CODE, CARD_TO_CARD, MOMO, ZALO_PAY, VIETTEL_MONEY |
notifyUrl | String | No | Callback URL for payment completion (server-side) |
remark | String | No | Merchant remarks |
reviewQuote | String | No | Skip quote page: 1=Yes, 0=No (Default: 0) |
2. Standard Quotation Mode
Parameter Name | Type | Required | Description |
---|---|---|---|
tokenAmount | String | No | Amount of tokens |
externalOrderId | String | No | Merchant order number |
chainType | String | Yes | Blockchain type (BSC) |
tokenType | String | Yes | Token type (USDT) |
addressTo | String | No | Address |
currencyType | String | Yes | Currency type (VND) |
payType | String | Yes | Payment type: BANK, BANK_SCAN_CODE, CARD_TO_CARD, MOMO, ZALO_PAY, VIETTEL_MONEY |
notifyUrl | String | No | Callback URL after payment is completed (server-side) |
remark | String | No | Merchant custom remark information |
reviewQuote | String | No | Whether to skip the quotation page: 1=Yes, 0=No (default: 0) |
Response Type:
Header: { 'Content-Type': 'application/json;charset=utf-8'}
Create Payment Response Explanation:
Normal response data example (HTTP 200)
{
"code": "200",
"success": true,
"msg": "成功",
"msgEn": "SUCCESS",
"data": {
"chainType": "BSC",
"currencyAmount": "28854",
"tokenAmount": "1.1098",
"currencyType": "VND",
"tokenType": "USDT",
"externalOrderId": "YURITEST20250610093847710921",
"orderId": "OEXCHEXCH202506100138491749519529967U0000000400000253",
"tradeType": "BUY",
"payParam": null,
"exchangePrice": "25999",
"orderFee": "0.022196",
"bankAccountNumber": null,
"bankAccountType": null,
"bankCode": null,
"bankName": null,
"cashierUrl": "http://ramp-cashier.io/fiat/OEXCHEXCH202506100138491749519529967U0000000400000253"
}
}
Response Parameter Description:
Parameter Name | Type | Description |
---|---|---|
chainType | String | Main chain |
currencyAmount | String | Fiat amount |
tokenAmount | String | Token amount |
currencyType | String | Fiat currency type |
tokenType | String | Token type |
externalOrderId | String | Merchant order ID |
orderId | String | Order ID |
tradeType | String | Trade type |
bankAccountNumber | String | Channel bank account number (use as applicable) |
exchangePrice | String | Exchange rate |
orderFee | String | Fee |
bankAccountType | String | Channel bank account type (use as applicable) |
bankCode | String | Channel bank code (use as applicable) |
bankName | String | Channel bank name (use as applicable) |
cashierUrl | String | Exchange cashier URL |
payParam | String | Payment parameters |