Cryptocurrency Exchange API - Indacoin


On this page, you can find methods that are used to enable your service with the cryptocurrency exchange features of Indacoin. For example, if you want to provide your customers with the option to pay via credit/debit cards, with our API you will be able to do that.

How to become a partner with Indacoin:

  • Select the type of the integration you are interested in.
  • Contact us to verify your company’s profile.
  • Receive the partnername and the secret for the integration.
  • Start API implementation.

For more information on the possible use of our API please email us to [email protected]

Types of integration

Fast integration

You can forward users to URL without the creation of transaction by API, cur_from should be used from the list (USD, EURO, RUB) cur_to should be short_name of the coin.

Full list:

General view of the query:{YourPartnerName}&cur_from={CurrencyFrom}&cur_to={CurrencyTo}&amount={Amount}&address={WalletAddress}&user_id={UserID}

See example

Standard integration

  • We recommend making a request exgw_getUserlimits to check the limit which is available for this concrete user (the limit depends on the region of the client and on the history of his/her purchases on our platform). (It is not mandatory)
  • When a user makes a payment, you have to get ID-transaction for conducting this payment. To do so make a request exgw_createTransaction, where you choose amounts, currencies and wallet address.
  • To forward the client to the page of the payment, you need to use ID-transaction to create a URL.

In both types of the integration the customer goes to our platform to make the payment, to get verified and to receive the confirmation of the purchase.

After the client makes the payment, you get a callback about every change in the status of the transaction.

Possible statuses of transaction:


Also, you can check the status here:

The purchase is considered to be successful when the status Finished is reached.


User limit

POST /api/exgw_getUserlimits
- receive user's limit (and create if non-existent)
Parameters in json:
user_id - string;
cur_in string (usd, eur)


- create new transaction
Parameters in json:
user_id - string;
cur_in - string(eur, usd);
cur_out - string (btc,eth,usd,euro);
target_address - string
amount_in - decimal

Get price

(the method is valid only for crypto processing)
- receive amount user will get
Parameters in GET:
Currency string (usd, euro);
Amount - numeric_string;
PartnerName - string

Transaction history

POST /api/exgw_getTransactions
- receive info about last transactions
Parameters in json:
user_id - string;
tx_id - string;
status - tx_status;
created_at - int/timestamp;
hash - string (or null);
cur_in - string (usd, eur);
cur_out - string (btc, eth, usd, euro);
amount_in - numeric_string;
amount_out - numeric_string;
target_address - string;
limit - int;
offset - int
all parameters are optional

Transaction info

POST /api/exgw_gettransactioninfo
- receive transaction's info
Parameters in json:
transaction_id - numeric

Example of how to create the request on PHP

$method = 'POST';
$target_url = '';
$user_id = 'test_user_1';
$cur_in = 'usd';
$cur_out = 'btc';
$target_address = '1FeGgKxU5gjC562wZXd67VTVfwcSjpqv3Y';
$amount_in = '55';

$nonce = 1000000;
$partnername=;//ask for it
$secret= ; //ask for it
$sig = base64_encode(hash_hmac('sha256', $string, $secret,true));

$arr = array(
  'user_id' => $user_id,
  'cur_in' => $cur_in,
  'cur_out' => $cur_out,
  'target_address' => $target_address,
  'amount_in' => $amount_in

$data = json_encode($arr);

$options = array(
  'http' => array(
    'header' => "Content-Type: application/json\r\n"
    ."gw-partner: $partnername\r\n"
    ."gw-nonce: ".$nonce."\r\n"
    ."gw-sign: ".$sig."\r\n",
    'method' => $method,
    'content' => $data
echo "start";

Example of how to create the request for URL

To create the request you need to get transaction ID from the previous request.

$transaction_id =; //get it from previous method
$sig = base64_encode(base64_encode(hash_hmac('sha256', $string, $secret,true))); h5SE9xTitlajkydFpDTXhDOVMrOFdOOD0=

Callback section

To verify callback we will send you headers ‘gw-sign’,’gw-nonce’ where nonce will be random number and sign will be
    partnerName + '_' +
    trInfo.userId + '_' +
    nonce + '_' +

Example: // should be hidden at the start
  "userId": "[email protected]"
  ,"transactionId": 453668
  ,"requestId": -1
  ,"status": "Draft"
  ,"createdAt": "2018-05-11T11:40:03.75Z"
  ,"confirmedAt": "0001-01-01T00:00:00Z"
  ,"finishedAt": "0001-01-01T00:00:00Z"
  ,"blockchainHash": ""
  ,"link": "/notify.aspx?confirm_code=&request_id=-1"
  ,"curIn": "USD"
  ,"curOut": "BTC"
  ,"amountIn": 112.0
  ,"amountOut": 0.010335
  ,"realAmountOut": 0.0
  ,"targetAddress": "{
  ,"reason": ""
  ,"extra_info": {}
  ,"couponCode": ""