Открытый API

Список методов

Комиссия:
https://api.bitok.com/open_api/<pair>/fee
Тикер:
https://api.bitok.com/open_api/<pair>/ticker
Сделки:
https://api.bitok.com/open_api/<pair>/trades
Глубина:
https://api.bitok.com/open_api/<pair>/depth
Пары:
https://api.bitok.com/open_api/pairs
Параметр Обяз. Описание Тип
<pair> Да Валютная пара, разделенная символом подчеркивания, например "btc_usd", "ltc_eur" и т. д. строка

Торговый API

Аутентификация осуществляется посредством отправки следующих http-заголовков:

Key:
Ключ API, например b355c2770b0f5710a447e305fc2fa689
Sign:
Данные POST-запроса (?param=val&m1=val1), подписанные методом HMAC-SHA512 с API-secret в качестве ключа

Данные должны отправляться на https://api.bitok.com.
Также необходимо отправлять параметр POST-запроса nonce. nonce должен иметь целое положительное значение и инкрементироваться при каждом запросе.

Имя метода передается как POST-параметр method. Все параметры метода передаются как POST-данные.
Все ответы в формате JSON.

Ответ на успешный запрос выглядит так:

{
    "success": 1,
    "return": {

    }
}

Ответ в случае ошибки:

{
    "success": 0,
    "error": "<Error text>"
} 

Список методов

getInfo

Возвращает сведения о текущем балансе пользователя, привилегии API-ключа, номер транзакции, количество активных заявок.
Метод не имеет параметров.

Пример ответа:

{
  "success": 1,
  "return": {
    "funds": {
      "usd": 325,
      "btc": 23.998,
      "sc": 121.998,
      "ltc": 0,
      "ruc": 0,
      "nmc": 0
    },
    "funds_on_hold": {
      "usd": 0,
      "btc": 1,
      "sc": 0,
      "ltc": 0.02,
      "ruc": 0,
      "nmc": 0
    },
    "affiliate_amount": {
      "usd": 0.0000123,
      "btc": 0,
      "sc": 0,
      "ltc": 0.0002,
      "ruc": 0,
      "nmc": 0
    },
    "rights": {
      "info": 1,
      "trade": 1
    },
    "transaction_count": 80,
    "open_orders": 1,
    "server_time": 1342123547
  }
}
TransHistory

Возвращает историю транзакций.

Параметр Обяз. Описание Тип Значение по умолч.
from Нет начинать с целое число 0
count Нет Кол-во транзакций для отображения целое число 1000
from_id Нет ID начальной транзакции целое число 0
end_id Нет ID конечной транзакции целое число Inf
order Нет порядок сортировки ASC или DESC DESC
since Нет начальная временная метка UNIX-время 0
end Нет конечная временная метка UNIX-время Inf

При использовании параметров since или end значение параметра order автоматически устанавливается как ASC.

Пример ответа:

{
    "success": 1,
    "return":{
        "total": 173,
        "rows": {
            "1081672":{
                "type": "trade",
                "amount": "0.5135923100",
                "currency": "btc",
                "timestamp": 1457960494,
                "direction": "income",
                "status": 2,
                "desc": "BTC payment"
            }
        }
    }
}
TradeHistory

Возвращает историю выполненных заявок.

Параметр Обяз. Описание Тип Значение по умолч.
from Нет смещение, с которого начинать вывод результатов целое число 0
count Нет кол-во транзакций для отображения целое число 1000
from_id Нет ID начальной транзакции целое число 0
end_id Нет ID конечной транзакции целое число infinity
order No порядок сортировки ASC или DESC DESC
since Нет выводить транзакции выполненные после указанного времени UNIX-timestamp 0
end No выводить транзакции выполненные до указанного времени UNIX-timestamp infinity
pair Нет пара для фильтрации заявок например, btc_usd все доступные пары

При использовании параметров since или end значение параметра order автоматически устанавливается как ASC.

Пример ответа:

{
    "success": 1,
    "return":{
        "166830":{
            "pair": "btc_usd",
            "type": "sell",
            "amount": 1,
            "rate": 1,
            "order_id": 343148,
            "is_your_order": 1,
            "timestamp": 1342445793
        }
    }
}
ActiveOrders

Возвращает все открытые заявки.

Параметр Обяз. Описание Тип Значение по умолч.
pair Нет валютная пара для фильтрации заявок btc_usd (пример) все доступные пары

Пример ответа:

{
    "success": 1,
    "return": {
        "343152": {
            "pair": "btc_usd",
            "type": "sell",
            "amount": 1.00000000,
            "rate": 3.00000000,
            "timestamp_created": 1342448420,
            "status": 0
        }
    }
}
Trade

Выполняет торговую операцию.

Параметр Обяз. Описание Тип Значение по умолч.
pair Да валютная пара btc_usd (пример) -
type да тип операции buy (покупка) или sell (продажа) -
rate Да цена, по которой вы хотите купить/продать числовое значение -
amount Да количество валюты, которое вы хотите купить/продать числовое значение -

Пример ответа:

{
    "success": 1,
    "return": {
        "received": 0.1,
        "remains": 0,
        "order_id": 0,
        "funds": {
            "usd": 325,
            "btc": 2.498,
            "sc": 121.998,
            "ltc": 0,
            "ruc": 0,
            "nmc": 0
        }
    }
}
CancelOrder

Отменяет открытую заявку.

Параметр Обяз. Описание Тип Значение по умолч.
order_id Да ID заявки целое число -

Пример ответа:

{
    "success": 1,
    "return": {
        "order_id": 343154,
        "funds": {
            "usd": 325,
            "btc": 24.998,
            "sc": 121.998,
            "ltc": 0,
            "ruc": 0,
            "nmc": 0
        }
    }
}
WithdrawDepositHistory

Возвращает историю транзакций по внесению и выводу средств

Параметр Обяз. Описание Тип Значение по умолч.
from Нет смещение, с которого начинать вывод результатов целое число 0
count Нет кол-во транзакций для отображения целое число 10
currency Нет фильтрация транзакций по выбранной валюте btc (пример) все доступные валюты

Пример ответа:

{
    "success": 1,
    "return": {
        "40": {
            "tx_id": 40,
            "amount": "2.00",
            "base_amount": "2.00",
            "fee": "0.01",
            "type": "deposit",
            "status": "confirmed",
            "rejected": 0,
            "timestamp": 1394698058,
            "currency": "btc",
            "provider": "coins",
            "extra": {
                "ps_id": "ed6c1c20588be8d29abe25f23b7cda314187cb22bf2bbad4de23192b7e1913b0",
                "confirmations": 3
            }
        },
    }
}
fee

Возвращает комиссию пользователя для заданной пары.

Параметр Обяз. Описание Тип Значение по умолч.
pair Да валютная пара btc_usd (пример) -

Пример ответа:

{
    "trade": 0.002
}
DepositAddress

Возвращает адрес для депозита криптовалюты

Параметр Обяз. Описание Тип Значение по умолч.
currency Да криптовалюта btc (например) -

Пример ответа:

{
    "success": 1,
    "return": {
        "address": "1G3FtRHSfW5Saiq3pti2qm1dJ1bwFL48RD1"
    }
}
WithdrawCrypt

Вывод криптовалюты

Параметр Обяз. Описание Тип Значение по умолч.
amount Да сумма числовое значение -
currency Да криптовалюта btc (пример) -
crypto_address Да адрес кошелька для вывода строка, валидный адрес криптокошелька -
invoice Да уникальный идентификатор транзакции в вашей системе строка -
notify_url Нет URL для нотификации https://yourdomain.com/nofify-url (пример) -

Пример ответа:

{
    "success": 1,
    "return": {
        "status": "new",
        "id" : 12345678
    }
}

Нотификация будет отправлена посредством HTTP POST на ваш notify_url после завершения процессинга. Пример:

Ключ Значение Описание
id 12345678 ID транзакции Bitok.com
invoice XXXXXXXXX уникальный идентификатор транзакции в вашей системе
amount 0.123 сумма
currency btc валюта
status processed статус операции, может быть "paid" или "cancelled"
txid 12345678 ID транзакции в блокчейне, только если status="paid"
error Not enough funds текст ошибки, только если status="cancelled"
signature 5905abcd...34rd71cc Подпись запроса (см. Верификация IPN)
CreateVoucher

Сгенерировать ваучер Bitok.com

Параметр Обяз. Описание Тип Значение по умолч.
amount Да сумма числовое значение -
currency Да валюта usd (пример) -
invoice Да уникальный идентификатор транзакции в вашей системе строка -
notify_url Нет URL для нотификации https://yourdomain.com/nofify-url (пример) -

Пример ответа:

{
    "success": 1,
    "return": {
        "status": "new",
        "id" : 12345678
    }
}

Нотификация будет отправлена посредством HTTP POST на ваш notify_url после завершения процессинга. Пример:

Ключ Значение Описание
id 12345678 ID транзакции Bitok.com
invoice XXXXXXXXX уникальный идентификатор транзакции в вашей системе
amount 0.123 сумма
currency btc валюта
status processed статус операции, может быть "paid" или "cancelled"
voucher_code 8v34408a987ax35d код ваучера, только если status="paid"
error Not enough funds текст ошибки, только если status="cancelled"
signature 5905abcd...34rd71cc Подпись запроса (см. Верификация IPN)
RedeemVoucher

Использовать ваучер Bitok.com

Параметр Обяз. Описание Тип Значение по умолч.
voucher_code Да Код ваучера Bitok.com string -
invoice Да уникальный идентификатор транзакции в вашей системе строка -
notify_url Нет URL для нотификации https://yourdomain.com/nofify-url (пример) -

Пример ответа:

{
    "success": 1,
    "return": {
        "status": "new",
        "id" : 12345678
    }
}

Нотификация будет отправлена посредством HTTP POST на ваш notify_url после завершения процессинга. Пример:

Ключ Значение Описание
id 12345678 ID транзакции Bitok.com
invoice XXXXXXXXX уникальный идентификатор транзакции в вашей системе
amount 0.123 сумма
currency btc валюта
status processed статус операции, может быть "paid" или "cancelled"
error Voucher does not exist текст ошибки, только если status="cancelled"
signature 5905abcd...34rd71cc Подпись запроса (см. Верификация IPN)
Верификация IPN:

Для проверки IPN нотификации Вам нужно выполнить следующее:

  1. Сгенерировать URL-кодированную строку HTTP запроса из полученного IPN сообщения, без поля "signature";
  2. Сгенерировать sha512 хэш-код, используя метод HMAC, с ключом API Secret;
  3. Сравнить полученную хэш-строку со строкой в поле "signature" изначального запроса, строки должны быть идентичны;

PHP пример:

// Your API secret
$apiSecret = 'MY API SECRET';

$request = $_POST;

unset($request['signature']);
$hash = hash_hmac('sha512', http_build_query($request, '', '&'), $apiSecret);

// Strings should be identical
$verified = ($hash === $_POST['signature']);