Skip to content

Fund Transfer API

Justin edited this page Feb 13, 2018 · 32 revisions

Number Conversion

All numbers, specifically for price and volume, must be converted to an integer for use in Fund Transfer API requests. The conversion is 100000000, or 1E8. For strongly typed programming languages, use of integer variable types is strongly recommended, as decimals will not be accepted by the API.

Withdraw (Crypto currencies)

path: /fundtransfer/withdrawCrypto

http post

Please note that currently this call does not return the tx id of the withdrawal as this is just the submission of the request. The actual withdraw process is executed in a separate job.

Example: Withdraw 0.1 Bitcoin to 1EJKj147QmEzywLnLpuxSr6SoPr1p62VBX

sample request:

{"amount":10000000,"address":"1EJKj147QmEzywLnLpuxSr6SoPr1p62VBX","currency":"BTC"}

sample success response:

{"success":true,"errorCode":null,"errorMessage":null,"status":"Pending Authorization"}

Note: Destination tag for Ripple When calling withdrawCrypto API for XRP, pass destination tag as part of the address as per following sample:

{"amount":10000000,"address":"1EJKj147QmEzywLnLpuxSr6SoPr1p62VBX?dt=123456","currency":"XRP"}

in this case value of dt can be any integer.

Withdraw (AUD)

path: /fundtransfer/withdrawEFT

http post

Please note that currently this call does not return the tx id of the withdrawal as this is just the submission of the request. The actual withdraw process is executed in a separate job.

Example: Withdraw $1000 to your ABC bank account

sample request:

{"accountName":"John Smith","accountNumber":"12345678","bankName":"ABC Bank","bsbNumber":"123456","amount":100000000000,"currency":"AUD"}

sample success response:

{"success":true,"errorCode":null,"errorMessage":null,"status":"Pending Authorization"}

Fund Transfer History

  • path: /fundtransfer/history
  • method: http GET

Coming soon (Preview)...

Returns a list of deposits and withdraws for all crypto assets and fiat currencies and with ability to paginate between records.

Request params

  1. limit: total number of records to return. value is an integer value between 0 and 200 and is optional.
  2. since: is a long integer value that is used for pagination and is the last record id retrieved from the previous API call. this parameter is optional.
  3. indexForward: boolean value used to indicate whether to retrieve old records or newer records. this parameter is optional (default is false).

Response params

Below is a sample response:

{"success":true,"errorCode":null,"errorMessage":null,"fundTransfers":[
{"status":"Complete","fundTransferId":2222,"description":"Withdraw AUD from [john.smith] to Bank, John Smith(BSB: 123456, Account: 12345678)","creationTime":1489922298280,"currency":"AUD","amount":500000000,"fee":0,"transferType":"WITHDRAW","errorMessage":null,"lastUpdate":1489922299280,"cryptoPaymentDetail":null}
,
{"status":"Complete","fundTransferId":1111,"description":"BITCOIN Deposit, B 0.001","creationTime":1432410317609,"currency":"BTC","amount":1000000,"fee":0,"transferType":"DEPOSIT","errorMessage":null,"lastUpdate":1431510317627,"cryptoPaymentDetail":{"address":"1EJKj147QmEzywLnLpuxSr6SoPr1p62VBX","txId":"e03a9a4b5c557f6ee3400a29ff1475d1df73e9cddb48c2391abdc391d8c1504a"}}
]}

Authentication

This API call uses GET Http request so when signing the request at your end please make sure to add query string as per below:

String path = "/fundtransfer/history"; 
String stringToSign = path + "\n";
if (queryString != null) {
    stringToSign += queryString + "\n";
}
stringToSign += timestamp + "\n";

below is a sample query string: String queryString = "limit=10&since=1&indexForward=true";

You can also call the API without any of the above parameters and in this case queryString will be null and won't affect the signature.

Pagination

Fund transfer history API allows for fetching new or old records given a cursor which is a useful method for retrieving data that changes in real time.

Please note that pagination for this API is slightly different to other APIs (e.g. order/history) and this change was made in order to improve how you can navigate between old and new records.

  1. Default API call: do not pass "since" or "indexForward". you can specify limit. in this case most recent records are returned and records are always sorted with first record being newest record in the list.

  2. Retrieving older records: if you want to retrieve older records based on the first call then use the last record id (in this case fundtransferId) and pass it as since to the new API call with indexForward being false.

  3. Retrieving newer records: if you want to retrieve newer records based on the first call then use the first record id (in this case fundtransferId) and pass it as since to the new API call with indexForward being true.

Fund transfer status

  1. Complete: confirmed and final transaction status
  2. Cancelled: fund transfer has been cancelled (e.g. due to invalid address) 1._ New:_ records with New status are in transition or are not complete. You can ignore any fund transfer with such status.
  3. Error: there has been an error processing the transfer.

Additional notes

  1. when passing since (e.g. since=100) all records greater than (when using indexForward=true) or less than (when using indexForward=false) record id of 100 are returned. The return result does not include record with id of 100.
  2. if since is not present via request params then the system will assume newest record id as since
  3. Results are always sorted in descending order which means first record being newest record in the list

Limitations

Below are some limitations in the current fund transfer history API:

  1. For recent crypto deposits no detail is returned via this API (e.g. address and txId are null).
  2. For crypto withdrawals only the address field is returned.

Our engineering team will try to address above limitations in the near future.

Introduction updated 9/28/18

Authentication

Pagination

WebSocket v2

WebSocket v1 deprecated

Market Data API updated 7/24/19

Trading API updated 08/19/19

Transaction API

Account API updated 3/14/19

Fund Transfer API updated 08/06/19

FAQ

Clone this wiki locally