Simple integration
The most simple integration could be by using the following link, that should include params like cryptowallet address, amount, currency (cardeur, cardusd or cardrub) and discount id. General view of the query: /change/buy-{CurrencyTo}-with-card{CurrencyFrom}?amount_pay={Amount}&wallet={WalletAddress}&discount={Discount} See example
Tight integration
Please describe your business, the size of your company and your interest in a co-operation with Indacoin. Get in touch with [email protected] to receive further information
Integration without API:
We added a new option of the payment page for quick 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 (BTC, ETH etc ... full list here
General view of the query:{YourPartnerName}&cur_from={CurrencyFrom}&cur_to={CurrencyTo}&amount={Amount}&address={WalletAddress}&user_id={UserID} See example
Integration with API:
  • Check the limit of the user (it will create one if he doesn't exist yet)
  • Further create transaction
  • Forward him to indacoin URL, the user will pay and passes verification
  • Either will pass or not until the end, you should show him URL for finishing verification
  • On your URL arrives a callback in case of failure or success of transaction See example
To verify that you have a signature - you need to send in headers 'gw-partner', 'gw-nonce', 'gw-sign'. Header gw-sign is formed as HMAC sha256 from partnerName + "_" + nonce
Singature for URL forms just like API's instead of nonce - transaction's ID and Double Base64 encoding
Example of payment form is
Minimum amount for now is 50 USD/EURO, maximum is 500 USD/EURO
Possible statuses of transaction:
  • NotFound
  • Chargeback
  • Declined
  • Cancelled
  • Failed
  • Draft
  • Paid
  • Verification
  • FundsSent
  • Finished
create transaction
POST /api/exgw_createTransaction
- 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
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)
get price
- receive amount user will get
Parameters in GET:
  • Currency string (usd, euro);
  • Amount - numeric_string;
  • PartnerName - string
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 = '[email protected]';
$partnername = 'cigsspot';
$cur_in = 'usd';
$cur_out = 'btc';
$target_address = '1FeGgKxU5gjC562wZXd67VTVfwcSjpqv3Y'; // or use empty address if non crypto
$amount_in = '55';

$nonce = 1000000;

$string= $partnername."_".$nonce;
$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

$context = stream_context_create($options);
$result = file_get_contents($target_url, false, $context);
Example of the request for URL
To create the request you need to get transaction ID from the previous request
$transaction_id = 1154; //get from exgw_createTransaction method
$partnername = 'indacoin';
$string = $partnername."_".$transaction_id;
$secret = "secret";
$sig = base64_encode(base64_encode(hash_hmac('sha256', $partnername.'_'.$transaction_id, $secret, true)));
$urlToRedirectClient = ''.$transaction_id.'&partner='.$partnername.'&cnfhash='.$sig

Checking limit for current user

Before that, 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)

Creating transaction on Indacoin

When a user makes a payment, you have to get ID-transaction for conducting this payment. To do so make a request exgw_createTransaction.

Forwarding to Indacoin

To forward the client to the page of the payment, you need to use ID-transaction to create a URL

Processing client on Indacoin

Then the customer goes to our platform, where s/he makes the payment, gets verified and receives the confirmation of the purchase

Check status by Callback or API

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

Ask our manager on [email protected] for a further information
Also, you can check the status here: