Простая интеграция
Самая простая интеграция заключается в использовании следующей ссылки, которая должна включать в себя такие параметры, как адрес кошелька, сумма, валюта (cardeur, cardusd or cardrub) и id скидки. Общий вид запроса: /change/buy-{CurrencyTo}-with-card{CurrencyFrom}?amount_pay={Amount}&wallet={WalletAddress}&discount={Discount} Посмотреть пример
Плотная интеграция
Пожалуйста, отправляйте описание Вашей компании и информацию о том, почему Вы заинтересованы в сотрудничестве с нами, на почту [email protected]
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 https://indacoin.com/api/mobgetcurrencies).
General view of the query: https://indacoin.com/gw/payment_form?partner={YourPartnerName}&cur_from={CurrencyFrom}&cur_to={CurrencyTo}&amount={Amount}&address={WalletAddress}&user_id={UserID} Посмотреть пример
Integration with API:
Логика
  • Проверьте лимит пользователя (создаться, если еще не существует)
  • Создаете транзакцию
  • Направьте клиента на URL-адрес Indacoin, где пользователь должен будет совершить оплату и пройти верификацию
  • Вне зависимости от того, дойдет ли пользователь до конца, Вы должны показать ему URL для завершения верификации
  • На ваш URL-адрес поступит callback о состоянии транзакции (успех или неудача) Посмотреть пример
Чтобы убедиться, что у вас есть подпись, вам нужно отправить в headers ‘gw-partner’, ‘gw-nonce’, ‘gw-sign’. Заголовок ‘gw-sign’ формируется как HMAC sha256 от partnerName + "_" + nonce
Подпись для URL-формы подобна API, как одноразовые транзакции по ID. Также в кодировке Double Base64
Пример формы оплаты
/gw/payment_form?transaction_id={transactionId}&partner={indacoin}&cnfhash={cnfhash}=

https://indacoin.com/gw/payment_form?transaction_id=1154&partner=indacoin&cnfhash=Ny8zcXVWbCs5MVpGRFFXem44NWh5SE9xTitlajkydFpDTXhDOVMrOFdOOD0=
Минимальная сумма платежа на данный момент составляет 50 USD/EURO, максимум - 500 USD/EURO
Возможные статусы транзакций:
  • NotFound
  • Chargeback
  • Declined
  • Cancelled
  • Failed
  • Draft
  • Paid
  • Verification
  • FundsSent
  • Finished
Методы:
Создать транзакцию
POST /api/exgw_createTransaction
- создать новую транзакцию
Параметры в json:
  • user_id - string;
  • cur_in - string(eur, usd);
  • cur_out - string (btc,eth,usd,euro);
  • target_address - string
  • amount_in - decimal
Лимиты пользователя
POST /api/exgw_getUserlimits
- receive user's limit (and create if non-existent)
Параметры в json:
  • user_id - string;
  • cur_in string (usd, eur)
Получить стоимость
/api/GetCoinConvertAmount/{currencyFrom}/{currencyTo}/{amount:decimal}/{partner?}/{userId?}
- возвращает лимит пользователя (и создает, если он не существует)
Параметры в GET:
  • Currency string (usd, euro);
  • Amount - numeric_string;
  • PartnerName - string
Транзакция
POST /api/exgw_getTransactions
- возвращает информацию о последних транзакциях
Параметры в 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
Все параметры опциональны
информация о транзакции
POST /api/exgw_gettransactioninfo
- возвращает информацию о транзакции
Параметры в json:
  • transaction_id - numeric
Пример создания запроса на PHP
$method = 'POST';
$target_url = 'https://indacoin.com/api/exgw_createTransaction';
$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;
$secret="secret";
$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);
print_r($result);
Пример создания запроса для URL
Чтобы создать запрос, вам нужно получить ID транзакции из предыдущего запроса
$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 = 'https://indacoin.com/gw/payment_form?transaction_id='.$transaction_id.'&partner='.$partnername.'&cnfhash='.$sig

Проверка лимита пользователя

Так как у каждого пользователя есть лимит, который изменяется в процессе платежей, перед созданием транзакции желательно его определить через запрос exgw_getUserlimits. Лимит зависит от региона пользователя и истории его покупок на нашей платформе

Создание транзакции на Indacoin

Перед тем, как пользователь совершит оплату, вы должны получить ID транзакции для проведения платежа на Indacoin, для этого используется запрос exgw_createTransaction

Отправка клиента на Indacoin

Для отправки клиента на страницу оплаты, надо сформировать URL с помощью полученной ID транзакции

Обработка запроса

Далее клиент переходит на площадку Indacoin, где происходит процесс оплаты, верификации и подтверждение покупки

Проверка статуса по Callback или API

После совершения оплаты клиентом Вам будет отправлен callback на каждое изменение статуса транзакции

За дополнительной информацией обращайтесь к нашему менеджеру по почте [email protected]
Статус транзакции можно узнать через методы:
/api/exgw_gettransactioninfo
/api/exgw_getTransactions