Create Order

Call frequency limit

Rate Limit: 10 requests per 2 seconds

  1. Interface call:

https://{host}/api/v2/accountExchange

2. Request parameter instance

parameterwhether 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

slippage

no

slippage Decimal number 0.01 = 10%

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,
    "slippage": "0.02"


}
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,
    "slippage": "0.02"

}

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

Last updated