API обмена криптовалют - Indacoin

api

На этой странице вы можете найти методы, которые используются для обеспечения вашего сервиса функцией обмена криптовалюты Indacoin. Например, если вы хотите, чтобы ваши пользователи оплачивали свои покупки, используя банковские карты, наш API идеально подойдет для решения этой задачи.

Как стать партнером Indacoin:

  • Выберите тип интеграции, который вам больше всего подходит.
  • Свяжитесь с нами, чтобы верифицировать аккаунт своей компании.
  • Получите ключи (partnername и secret), необходимые для интеграции.
  • Начинайте интеграцию у себя на сайте.

Для получения более подробной информации о возможностях нашего API пишите на почту [email protected]

Типы интеграции

Быстрая интеграция

Вы можете форвардить пользователей на URL адрес без создания транзакции с помощью API, cur_from должен быть выбран из списка валют (USD, EURO, RUB) а cur_to представляет собой short_name коина.

Полный список криптовалют: https://indacoin.com/api/mobgetcurrenciesinfoi

Общий вид запроса: https://indacoin.com/gw/payment_form?partner={YourPartnerName}&cur_from={CurrencyFrom}&cur_to={CurrencyTo}&amount={Amount}&address={WalletAddress}&user_id={UserID}

Посмотреть пример

Стандартная интеграция

  • Минимальный лимит на транзакцию составляет 30 USD / EUR, а максимальный - 3000 USD / EUR
  • Когда пользователь совершает платеж, вы должны получить ID-transaction для проведения этого платежа. Чтобы это сделать, отправьте реквест exgw_createTransaction с выбранной суммой, валютой и адресом кошелька.
  • Для редиректа клиента на страницу платежа вы должны использовать ID-transaction, чтобы создать URL.

В обоих случаях пользователь должен посетить нашу страницу оплаты, чтобы сделать платеж, пройти верификацию и получить подтверждение покупки.

После того, как клиент осуществил платеж, вам будет приходить коллбэк о каждом изменении статуса транзакции.

Возможные статусы транзакций:

  • NotFound — транзакция не найдена;
  • Chargeback — получен чарджбек;
  • Declined — платеж отклонен, вероятно, по той причине, что карта не 3D secure;
  • Cancelled — платеж не был осуществлен в течение нескольких часов после создания ордера;
  • Failed — общий случай, когда платеж не удался;
  • Draft — оплата еще не поступала или не было попыток оплаты;
  • Paid — списание средств с карты пользователя;
  • Verification — пользователь приступил к верификации;
  • FundsSent — криптовалюта отправлена на адрес кошелька пользователя, но еще не получена;
  • Finished — криптовалюта получена пользователем.

Статус транзакции можно узнать через методы:

https://indacoin.com/api/exgw_gettransactioninfo

https://indacoin.com/api/exgw_getTransactions

Покупка считается успешной после достижения статуса 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
Optional parameters:
success_url - url for redirecting user after successful payment, transaction_id in get parameter will be added to url;
fail_url - url for redirecting user after failed payment, transaction_id in get parameter will be added to url;
extra_info - json object with extra info ( will be returned back with all callbacks and transaction info);
tag - tag parameter if needed

Get price

(the method is valid only for crypto processing)
/api/GetCoinConvertAmount/{currencyFrom}/{currencyTo}/{amount:decimal}/{partner?}/{userId?}
- receive amount user will get
Параметры в GET:
Currency - string (usd, euro);
Amount - numeric_string;
PartnerName - string

Transaction history

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
все параметры необязательны

Transaction info

POST /api/exgw_gettransactioninfo
- возвращает информацию по транзакции
Параметры в json:
transaction_id - numeric

Пример создания запроса на PHP

$method = 'POST';
$target_url = 'https://indacoin.com/api/exgw_createTransaction';
$user_id = 'test_user_1';
$cur_in = 'usd';
$cur_out = 'btc';
$target_address = '1FeGgKxU5gjC562wZXd67VTVfwcSjpqv3Y';
$amount_in = '55';

$nonce = 1000000;
$partnername=;//ask for it
$string=$partnername."_".$nonce;
$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
  )
)

$context = stream_context_create($options);
$result = file_get_contents($target_url, false, $context);

echo "start";


Пример создания запроса для URL

Для создания запроса Вам нужно получить ID транзакции из предыдущего запроса.

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

https://indacoin.com/gw/payment_form?transaction_id=1154&partner=indacoin&cnfhash=Ny8zcXVWbCs5MVpGRFFXem44NW 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

base64_encode(base64_encode(hash_hmac(
    'sha256',
    partnerName + '_' +
    trInfo.userId + '_' +
    nonce + '_' +
    trInfo.transactionId,
    $secret,
    true
)));

Пример:

{
  "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": "{
    "btcAddress":
    "mtULnCAMY3iUiZmxGUqARhKuoiZQbFT36H"
  }"
  ,"reason": ""
  ,"extra_info": {}
  ,"couponCode": ""
}