Links

Create Order

Call frequency limit

Rate Limit: 10 requests per 2 seconds
  1. 1.
    Interface call:
https://{host}/api/v2/accountExchange
2. Request parameter instance
parameter
whether
explain
depositCoinCode
Yes
eg:ETH When this field has values, fromChainId and fromTokenAddress do not need to be filled in
fromChainId
When there are values for 'fromChainId' and 'fromTokenAddress', there is no need to fill in 'depositCoinCode'
eg:1 Fill in the chain ID here。
fromTokenAddress
When there are values for 'fromChainId' and 'fromTokenAddress', there is no need to fill in 'depositCoinCode'
eg:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee。
Please fill in the currency contract address here. If it is the main currency of the chain, please fill in '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
receiveCoinCode
Yes
eg:BTC When this field has values,'toChainId' and 'toTokenAddress' do not need to be filled in
toChainId
When there are values for 'toChainId' and 'toTokenAddress', there is no need to fill in 'receiveCoinCode'
eg: 56 Fill in the chain ID here。
toTokenAddress
When there are values for 'toChainId' and 'toTokenAddress', there is no need to fill in 'receiveCoinCode'
eg: 0x55d398326f99059ff775485246999027b3197955 Please fill in the currency contract address here. If it is the main currency of the chain, please fill in '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
depositCoinAmt
Yes
eg:0.01
receiveCoinAmr
Yes
Expected acceptance
destinationAddr
Yes
"Eg: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY If there are memos, please separate them with # after placing them in the address, for example: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY # 1927632"
refundAddr
Yes
"Eg: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY If there are memos, please tell them to put them in the address and separate them with #, for example: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY # 1927632"
equipmentNo
Yes
Equipment unique number
sourceType
Yes
ANDROID,IOS,H5
sourceFlag
Yes
It is used to identify which platform created the order. It needs to be set through negotiation with SWFT BlockChain
isNoGas
no
Does it support gas free redemption
3. Example of request parameters
{
"depositCoinCode": "ETHF",
"receiveCoinCode": "USDT(BSC)",
"depositCoinAmt": "42.207403",
"receiveCoinAmt": "46.367529",
"destinationAddr": "0x19b9918f...f85ad08ba0",
"refundAddr": "0x19b9918f...f85ad08ba0",
"equipmentNo":"zfgryh918f93a19fdg6918a68cf5",
"sourceType": "H5",
"sourceFlag":"widget",
"isNoGas":true
}
or
{
"fromChainId": 513100,
"fromTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"toChainId": 56,
"toTokenAddress": "0x55d398326f99059ff775485246999027b3197955",
"depositCoinAmt": "42.207403",
"receiveCoinAmt": "46.367529",
"destinationAddr": "0x19b9918f...f85ad08ba0",
"refundAddr": "0x19b9918f...f85ad08ba0",
"equipmentNo":"zfgryh918f93a19fdg6918a68cf5",
"sourceType": "H5",
"sourceFlag":"widget",
"isNoGas":true
}
4.Example of returned results
{
"data": {
"chainFee": "0.001",
"changeType": "advanced",
"choiseFeeType": "3",
"createTime": "2022-03-10 18:44:21",
"dealFinishTime": null,
"depositCoinAmt": "2",
"depositCoinCode": "ETH",
"depositCoinFeeAmt": "0.004",
"depositCoinFeeRate": "0.002",
"depositCoinState": "wait_send",
"depositFeeRate": "0.002",
"depositTxid": "",
"destinationAddr": "0xAE93FA34f728855cE663cf9FcF8e32148F079071",
"detailState": "wait_deposit_send",
"developerId": "",
"instantRate": "6.856554564172",
"isDiscount": "N",
"kycUrl": "",
"orderId": "f94e631b-d99b-4dd5-98f7-09bf99d16d94",
"orderState": "wait_deposits",
"platformAddr": "0x3181af4f7cc7251a6a4eda75526c8abe10106db8",
"receiveCoinAmt": "13.713109",
"receiveCoinCode": "BNB(BSC)",
"receiveSwftAmt": "2416.89",
"refundAddr": "0xAE93FA34f728855cE663cf9FcF8e32148F079071",
"refundCoinAmt": "",
"refundCoinMinerFee": "",
"refundDepositTxid": "",
"refundSwftAmt": "",
"swftCoinFeeRate": "0.001",
"swftCoinState": "",
"swftReceiveAddr": "",
"swftRefundAddr": "",
"transactionId": "",
//Returned transaction data to be signed after enabling gas free fee
"noGasTxInfo": "{\"gasLimit\":37920,\"data\":\"0xxxxx\",\"chainId\":56,\"to\":\"0xxxxx\",\"nonce\":51,\"gasPrice\":\"3150000000\"}",
"xrpInfo": ""
},
"resCode": "800",
"resMsg": "success",
"resMsgEn": ""
}
5.Return Parameter Description
Field Name
field
data type
remarks
cinsorderId
orderId
String
eg:d47e8b9b-c17f-432b-9285-a46c0a3ceb9a
depositCoinCode
depositCoinCode
String
eg: ETH
receiveCoinCode
receiveCoinCode
String
Biteg:BTC
depositCoinAmt
depositCoinAmt
String
eg:1
receiveCoinAmt
receiveCoinAmt
String
eg:0.1
platformAddr
platformAddr
String
eg:123123123-232-1231232
destinationAddr
destinationAddr
String
"Eg: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY. If there are memos, please put them in the address and separate them with #, for example: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY # 1927632"
refundAddr
refundAddr
String
"Eg: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY If there are memos, please separate them with # after placing them in the address, for example: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY # 1927632"
depositCoinFeeRate
depositCoinFeeRate
String
Eg: Handling rate
depositCoinFeeAmt
depositCoinFeeAmt
String
Eg: The amount of original currency charged for handling charges
refundCoinAmt
refundCoinAmt
String
eg:0.98
transactionId
transactionId
String
On chain transaction ID, this field will have a value only after the exchange is completed and the currency has been issued
refundDepositTxid
refundDepositTxid
String
On chain transaction ID, this field will have a value only after the currency has been returned in case of exchange failure
detailState
detailState
String
(1)wait_ deposit_ Send: waiting for the deposit to be sent (2) timeout: timeout; (3)wait_ exchange_ Push: wait for the exchange information to be pushed; (4)wait_ exchange_ Return: Wait for the exchange information to return; (5.1)wait_ receive_ Send: Wait for sending the received currency, wait_ receive_ Confirm: wait for confirmation of the received currency, receive_ Complete: Confirm receipt currency (5.2)wait_ refund_ Send: Wait for sending the returned original currency, wait_ refund_ Confirm: wait for confirmation of returning original currency, refresh_ Complete: Confirm the return of original currency; (6) ERROR/error: Processing order (7) WAIT_ KYC: Wait for KYC or contact customer service to provide a link“
kycUrl
kycUrl
String
The reply time is 311 hours. Please leave a message.
https://swap.swftcoin.com/swft-v3/swft-v3-m/kyc/kyc.html?lang=cn&equipmentNo=pls_input_your_real_equipmentno_ok
New equipment manual number (reference), Lang language: CN, EN
Returned transaction data to be signed after enabling gas free fee
noGasTxInfo
String
This trading partner needs to be signed

Request Parameter Precautions

Parameter
Explanation
depositCoinAmt
After users create an order, must send depositCoinAmt to the order address.
receiveCoinAmt
receiveCoinAmt = depositCoinAmt * instantRate the rate is obtained through the getBaseInfo port, this value is used to record the market price when the order is submitted, precision is maintained to 6 decimal places
equipmentNo
Environment number, this can be used to check numbers associted with all of the order's information, please do not disclose
sourceFlag
Used to indicate which platform's order, the paramater isn't necesary the same sources originally indicated after the project's product comes online
developerId
Used to record the project's related order data, the project can use this paramater to express what the order is part of a particular user or is used to record its own system's order number, or another record number serial number; after the order is created, the parameter value will be returned (SWFT does not support checking order information through this paramater)

Code Exmple

java code example

OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"equipmentNo\":\"Zsda352943090468518\",\"sessionUuid\":\"\",\"sourceType\":\"ANDROID\",\"userNo\":\"\",\"orderId\":\"de752da3-0ff7-4682-8038-d8e1f20cad95\",\"depositCoinCode\":\"BTC\",\"receiveCoinCode\":\"ETH\",\"depositCoinAmt\":\"0.01\",\"receiveCoinAmt\":\"0.336585\",\"receiveSwftAmt\":\"18.06\",\"destinationAddr\":\"0x364397e2fc9929f11ba0c03826ef282dd64a829f\",\"refundAddr\":\"18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY\",\"sourceFlag\":\"LendChain\",\"developerId\":\"\"}");
Request request = new Request.Builder()
.url("https://{host}/api/v2/accountExchange")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();

C# code example

var client = new RestClient("https://{host}/api/v2/accountExchange");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("undefined", "{\"equipmentNo\":\"352943090468518\",\"sessionUuid\":\"\",\"sourceType\":\"ANDROID\",\"userNo\":\"\",\"orderId\":\"de752da3-0ff7-4682-8038-d8e1f20cad95\",\"depositCoinCode\":\"BTC\",\"receiveCoinCode\":\"ETH\",\"depositCoinAmt\":\"0.01\",\"receiveCoinAmt\":\"0.336585\",\"receiveSwftAmt\":\"18.06\",\"destinationAddr\":\"0x364397e2fc9929f11ba0c03826ef282dd64a829f\",\"refundAddr\":\"18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY\",\"sourceFlag\":\"LendChain\",\"developerId\":\"\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Objective-C code example

#import <Foundation/Foundation.h>
NSDictionary *headers = @{ @"Content-Type": @"application/json",
@"cache-control": @"no-cache" };
NSDictionary *parameters = @{ @"equipmentNo": @"Zsda352943090468518",
@"sessionUuid": @"",
@"sourceType": @"ANDROID",
@"userNo": @"",
@"orderId": @"de752da3-0ff7-4682-8038-d8e1f20cad95",
@"depositCoinCode": @"BTC",
@"receiveCoinCode": @"ETH",
@"depositCoinAmt": @"0.01",
@"receiveCoinAmt": @"0.336585",
@"receiveSwftAmt": @"18.06",
@"destinationAddr": @"0x364397e2fc9929f11ba0c03826ef282dd64a829f",
@"refundAddr": @"18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY",
@"sourceFlag": @"LendChain",
@"developerId": @"" };
NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://{host}/api/v2/accountExchange"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];

Nodejs code example

//getToken example
import axios from 'axios'
const params = {
equipmentNo: "zfgryh918f93a19fdg6918a68cf5",
sourceType: "H5",
userNo: "",
sessionUuid: "",
orderId: "",
sourceFlag: "widget",
depositCoinCode: "ETHF",
receiveCoinCode: "USDT(BSC)",
depositCoinAmt: "42.207403",
receiveCoinAmt: "46.367529",
destinationAddr: "0x19b9918f...f85ad08ba0",
refundAddr: "0x19b9918f...f85ad08ba0"
}
const res = await axios.post('https://{host}/api/v2/accountExchange', params )
console.log(res)

​Postman example

Response result example

{
"data": {
"changeType": "advanced",
"choiseFeeType": "3",
"depositCoinAmt": "0.01",
"depositCoinCode": "BTC",
"depositCoinFeeAmt": "0.00001",
"depositCoinFeeRate": "0.001",
"depositCoinState": "wait_send",
"destinationAddr": "0x364397e2fc9929f11ba0c03826ef282dd64a829f",
"detailState": "wait_deposit_send",
"developerId": "",
"orderId": "60a31323-0507-446b-866c-973a91856e8c",
"orderState": "wait_deposits",
"platformAddr": "3HKL2rwot5YezHGdc5yAabZo74TJeTkVqb",
"receiveCoinAmt": "0.33642",
"receiveCoinCode": "ETH",
"receiveSwftAmt": "18.06",
"refundAddr": "18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY",
"refundCoinAmt": "",
"refundCoinMinerFee": "",
"refundDepositTxid": "",
"refundSwftAmt": "",
"swftCoinFeeRate": "0.0005",
"swftCoinState": "",
"swftReceiveAddr": "",
"swftRefundAddr": "",
//Returned transaction data to be signed after enabling gas free fee
"noGasTxInfo": "{\"gasLimit\":37920,\"data\":\"0xxxxx\",\"chainId\":56,\"to\":\"0xxxxx\",\"nonce\":51,\"gasPrice\":\"3150000000\"}",
"transactionId": ""
},
"resCode": "800",
"resMsg": "成功"
}
For a detailed explanation, please seed the Google Document
Business Reference Graph
Create the order confirmation page
After order creation is complete, create an order