NAV Navbar
cURL Ruby PHP

История изменений

10.05.2020

Введение

Для начала работы с API, нужно:

Тестирование

Для тестирования работы с API можно использовать тестовый сервер, stage.garantex.biz. Тестовый сервер во всём аналогичен рабочему, кроме исполнения депозитов / выводов, и использует копию базы с продакшна. Если для тестов необходимы дополнительные лимиты на тестовом сервера, они могут быть получены через саппорт.

Актуальная онлайн версия документации по API и инструменты для тестирования методов доступны по адресу: https://stage.garantex.biz/swagger?url=/api/v2/swagger

Для авторизации в swagger API ключ нужно указывать как Bearer {JWT}, где {JWT} это JWT токен.

Авторизация

Запрос и получение JWT токена:

require 'openssl'
require 'base64'
require 'json'
require 'securerandom'
require 'jwt'
require 'active_support/time'


host = 'garantex.io'
private_key = '{приватный ключ, полученный на этапе создания API ключей}'
uid = '{UID, полученный на этапе создания API ключей}'

secret_key = OpenSSL::PKey.read(Base64.urlsafe_decode64(private_key))
payload = {
    iat: Time.current.to_i,
    exp: 24.hours.from_now.to_i, # JWT TTL in seconds since epoch
    sub: 'api_key_jwt',
    iss: 'external',
    jti: SecureRandom.hex(12).upcase
}
jwt_token = JWT.encode(payload, secret_key, 'RS256')

uri = URI.parse("https://dauth.#{host}/api/v1/sessions/generate_jwt")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = (uri.scheme == 'https')
request = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
request.body = { kid: uid, jwt_token: jwt_token }.to_json
response = http.start {|h| h.request(request)}
data = JSON.parse response.body
token = data['token']
<?php
// composer require lcobucci/jwt

use Lcobucci\JWT\Builder;
use Lcobucci\JWT\Signer\Key;
use Lcobucci\JWT\Signer\Rsa\Sha256;

$host = 'garantex.io';
$private_key = '{приватный ключ, полученный на этапе создания API ключей}';
$uid = '{UID, полученный на этапе создания API ключей}';

$time = time();
$signer = new Sha256();
$privateKey = new Key(base64_decode($private_key, true));
$token = (new Builder())->issuedBy('external')
                        ->relatedTo('api_key_jwt')
                        ->identifiedBy(bin2hex(random_bytes(12)))
                        ->issuedAt($time)
                        ->expiresAt($time + 24 * 3600) // JWT TTL in seconds since epoch
                        ->getToken($signer,  $privateKey);

$post_data = array('kid' => $uid, 'jwt_token' => strval($token));

$ch = curl_init("https://dauth.$host/api/v1/sessions/generate_jwt");

curl_setopt_array($ch, array(
    CURLOPT_POST => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
    CURLOPT_POSTFIELDS => json_encode($post_data)
));

$response = curl_exec($ch);

if ($response === FALSE)
    die(curl_error($ch));

$data = json_decode($response, TRUE);
$token = $data['token'];
# Пример работы с уже полученным JWT токеном из шелла
curl "api_endpoint_here"
  -H "Authorization: Bearer {JWT}"

Не забудьте заменить private_key и uid на значения полученные при создании API ключей!

Garantex использует схему JWT авторизации, то есть для работы с методами API вначале нужно запросить у сервера JWT токен, который уже будет использоваться в Bearer аутентификации.

Полученный токен нужно сохранить и использовать его для запросов. Не нужно создавать новый токен на каждый запрос!
Время жизни JWT токена ограничено, и после его истечения токен становится недействительным. Максимальный срок жизни токена - 24 часа.

Справа приведены примеры кода для получения токена на Ruby и PHP.

Для тестов можно использовать форму получения JWT токена на сайте, по адресу https://stage.garantex.biz/api_test.

Для декодирования и проверки токенов можно использовать онлайн отладчик на сайте jwt.io.

Общая информация

Рынки

Получить список рынков:

curl "https://garantex.io/api/v2/markets"

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

[
  {
    "id": "btcrub",
    "name": "BTC/RUB"
  },
  {
    "id": "btcusd",
    "name": "BTC/USD"
  }
]

Запрос возвращает список всех активных рынков.

HTTP Request

GET https://garantex.io/api/v2/markets

Валюты

Получить список всех активных валют

Получить список активных валют:

curl "https://garantex.io/api/v2/currencies"

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

[
  {
    "id": "btc",
    "symbol": "฿",
    "explorer_transaction": "https://www.blockchain.com/btc/tx/#{txid}",
    "explorer_address": "https://www.blockchain.com/btc/address/#{address}",
    "type": "coin",
    "min_deposit_amount": "0.00005",
    "withdraw_min_amount": "0.001",
    "precision": 8
  },
  {
    "id": "usdt",
    "symbol": "$",
    "explorer_transaction": "https://etherscan.io/tx/#{txid}",
    "explorer_address": "https://etherscan.io/address/#{address}",
    "type": "coin",
    "min_deposit_amount": "0.0",
    "withdraw_min_amount": "1.36",
    "precision": 2
  }
]

Запрос для получения списка всех доступных для работы валют.

HTTP Request

GET https://garantex.io/api/v2/currencies

Параметры

Параметр Обязательный Описание
type нет Ограничить вывод криптовалютами / фиатными валютами. Может принимать значения coin и fiat.

Время

Получить текущий timestamp:

curl "https://garantex.io/api/v2/timestamp"

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

"2020-05-08T17:58:40+00:00"

Запрос возвращает текущее время сервера

HTTP Request

GET https://garantex.io/api/v2/timestamp

Комиссии на вывод крипты

Получить значение комиссий на вывод крипты

curl "https://garantex.io/api/v2/fees/withdraw/coin"

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

[
  {
    "currency": "btc",
    "type": "coin",
    "min_amount": "0.0001",      // минимальная сумма для вывода
    "fee": [
      {
        "type": "small_amount",  // тип комиссии, fixed или small amount
        "up_to": "1.0",          // максимальная сумма для которой применяется тип комисии
        "value": "0.00005"       // значение комиссии
      },
      {
        "type": "fixed",
        "value": "0.0004"
      }
    ]
  },
  {
    "currency": "usdt",
    "type": "coin",
    "min_amount": "2.34",
    "fee": [
      {
        "type": "fixed",
        "value": "1.17"
      }
    ]
  }
]

Запрос возвращает акутальные комиссии на вывод крипты.

HTTP Request

GET https://garantex.io/api/v2/fees/withdraw/coin

Возвращаемые значения

Для некоторых валют могут использоваться разные способы отправки, в зависимости от размера вывода, с разными комиссиями, и тогда массив fee будет содержать больше одного элемента, с разными значениями type. Максимальнаz сумма применимости комиссии будет указана в поле up_to.

Например для BTC есть тип отправки small_amount, для небольших сумм и с низкой комиссией, и fixed, для всего что больше максимального размера (up_to) для типа small_amount.

Способы пополнения и вывода фиата

Получить список направлений для депозита / вывода фиата

curl "https://garantex.io/api/v2/gateway_types?currency={currency_id}"

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

[
{
    "id": 8,
    "direction": "withdraw",    // направление, deposit | withdraw
    "currency": "rub",       
    "title": "Сбербанк онлайн регионы",  
    "description": "Вывод на карты региона отличного от Московского.",
    "instructions": "Введите номер карты региона отличного от Москвы",  // описание требуемых параметров (поле address)
    "min_amount": "15000.0",    // минимальная сумма депозита / вывода
    "max_amount": "3000000.0",  // максимальная сумма депозита / вывода
    "rounding": "1.0",          // кратность суммы 
    "fee": "0.01",              // комиссия: процент от суммы (2%)
    "fee_fixed": "0.0",         // комиссия: фиксированная компонента
    "fee_limit": "1000.0"       // комиссия: максимальный размер (не более 1000 рублей)
  },
  {
    "id": 15,
    "direction": "deposit",
    "currency": "rub",
    "title": "Наличные любой город РФ",
    "description": "Прием наличных в любом городе России. Комиссия 2%. От 100 000 рублей.",
    "instructions": "Свяжитесь с оператором для получения инструкций",
    "min_amount": "100000.0",
    "max_amount": "5000000.0",
    "rounding": "100.0",        // кратность суммы (100 рублей)
    "fee": "0.02",              
    "fee_fixed": "0.0",
    "fee_limit": "0.0"
  }
]

Запрос возвращает список всех активных направлений ввода / вывода для фиата

HTTP Request

GET https://garantex.io/api/v2/gateway_types

Параметры

Параметр Обязательный Описание
currency да Код фиатной валюты
direction нет Направление, deposit или withdraw

Market data

Сделки

Получить список сделок по рынку

curl "https://garantex.io/api/v2/trades?market={market_id}"

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

[
  {
    "id": 34786,
    "price": "68.8",      // цена
    "volume": "757.51",   // сумма в базовой валюте
    "funds": "52116.84",  // сумма в валюте котировки
    "market": "usdtrub",  // рынок
    "created_at": "2020-04-25T12:54:22+03:00"
  },
  {
    "id": 34785,
    "price": "68.6",
    "volume": "85.06",
    "funds": "5834.93",
    "market": "usdtrub",
    "created_at": "2020-04-22T19:31:41+03:00"
  },
]

Запрос возвращает историю сделок по выбранному рынку

HTTP Request

GET https://garantex.io/api/v2/trades

Параметры

Параметр Обязательный Описание
market да ID рынка
limit нет Количество записей в выборке, по умолчанию 50. Максимум - 1000
timestamp нет Время по которое получить выборку, формат - unix timestamp
from нет ID сделки начиная с которой (но не включая) получить выборку
to нет ID сделки по которую (но не включая) получить выборку
order_by нет Направление сортировки, asc / desc. По умолчанию desc, последняя сделка сверху

Заявки

Получить список заявок для рынка

curl "https://garantex.io/api/v2/depth?market={market_id}"

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

{
  "timestamp": 1589042898,
  "asks": [
    {
      "id": 60536,
      "price": "68.95",
      "volume": "407.82",
      "amount": "28119.19",
      "factor": "0.006",
      "type": "limit"       // тип цены: factor или limit
    },
    {
      "id": 59506,
      "price": "68.984",
      "volume": "5620.29",
      "amount": "387709.72",
      "factor": "0.006",
      "type": "factor"
    }
  ],
  "bids": [
    {
      "id": 60896,
      "price": "68.6",
      "volume": "5970.02",
      "amount": "409543.63",
      "factor": "0.0",
      "type": "limit"
    },
    {
      "id": 60880,
      "price": "68.573",
      "volume": "6311.96",
      "amount": "432826.65",
      "factor": "0.0",
      "type": "factor"
    }
  ]
}

Запрос возвращает состояние "стаканов" по выбранному рынку. Заявки отсортированы в порядке возрастания цены для продажи и убывания цены для покупки.

HTTP Request

GET https://garantex.io/api/v2/depth

Параметры

Параметр Обязательный Описание
market да ID рынка

Аккаунт

Счета

Получить список всех пользовательских счетов

Получить список счетов:

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/accounts"

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

[
  {
    "currency": "btc",
    "balance": "0.83001049",
    "locked": "0.0"
  },
  {
    "currency": "rub",
    "balance": "91164.92",
    "locked": "288570.5"
  },
  {
    "currency": "usdt",
    "balance": "1989.85",
    "locked": "0.0"
  }
]

Запрос для получения списка всех счетов пользователя и остатков по ним.

HTTP Request

GET https://garantex.io/api/v2/accounts

Получить состояние пользовательского счета по конкретной валюте

Получить состояние счета для валюты:

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/accounts/btc"

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

{
  "currency": "btc",
  "balance": "0.83001049",
  "locked": "0.0"
}

Запрос для получения остатков по счёту в конкретной валюте.

HTTP Request

GET https://garantex.io/api/v2/accounts/{currency_id}

Пользователь

Получение информацию о текущем пользователе.

Получить информация о текущем пользователе:

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/members/me"

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

{
  "sn": "SNXXXXXXXXXX",
  "email": "user@garantex.io",
  "accounts": [
    {
      "currency": "btc",
      "balance": "0.83001049",
      "locked": "0.0"
    },
    {
      "currency": "rub",
      "balance": "91164.92",
      "locked": "288570.5"
    },
    {
      "currency": "usdt",
      "balance": "1989.85",
      "locked": "0.0"
    }
  ]
}

Запрос для получения информации о текущем пользователе и балансе счетов.

HTTP Request

GET https://garantex.io/api/v2/members/me

Торговые операции

История сделок

Получить список своих сделок:

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/trades/my?market={market_id}"

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

[
  {
    "id": 68966,              // id сделки
    "order_id": 60489,        // id заяки по которой прошла сделка
    "market": "usdtrub",      // рынок
    "currency": "usdt",       // валюта продажи
    "funds_currency": "rub",  // валюта покупки
    "price": "68.91",         // цена 
    "volume": "5.84",         // сумма продажи
    "funds": "402.46",        // сумма покупки
    "fee": "0.001",           // комиссия (процент)
    "fee_size": "0.4",        // комиссия (размер)
    "created_at": "2020-03-07T11:46:47+03:00",
    "side": "sell"            // направление: покупка или продажа  терминах базовой валюты рынка)
  },
  {
    "id": 68935,
    "order_id": 60447,
    "market": "usdtrub",
    "currency": "rub",
    "funds_currency": "usdt",
    "price": "68.54",
    "volume": "35000.0",
    "funds": "510.62",
    "fee": "0.001",
    "fee_size": "0.51",
    "created_at": "2020-03-07T11:09:01+03:00",
    "side": "buy"
  }
]  

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

HTTP Request

GET https://garantex.io/api/v2/trades/my

Параметры

Параметр Обязательный Описание
market да ID рынка
limit нет Количество записей в выборке, по умолчанию 50. Максимум - 1000
timestamp нет Время по которое получить выборку, формат - unix timestamp
from нет ID сделки начиная с которой (но не включая) получить выборку
to нет ID сделки по которую (но не включая) получить выборку
order_by нет Направление сортировки, asc / desc. По умолчанию desc, последняя сделка сверху

История заявок

Получить историю заявок

curl -H "Authorization: Bearer {JWT}"  "https://garantex.io/api/v2/orders?market={market_id}"

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

[
  {
    "id": 61002,
    "market": "usdtrub",
    "remaining_volume": "100.0",
    "executed_volume": "0.0",
    "volume": "100.0",
    "side": "ask",
    "ord_type": "factor",
    "state": "wait",
    "factor": "0.007",
    "fix_price": "0.0",
    "funds_received": "0.0",
    "funds_fee": "0.0",
    "trades_count": 0,
    "avg_price": 0,
    "executed_amount": "0.0",
    "quote_amount": "0.0",
    "created_at": "2020-05-10T14:34:33+03:00",
    "updated_at": "2020-05-10T14:34:33+03:00"
  },
  {
    "id": 61001,
    "market": "usdtrub",
    "remaining_volume": "6863.73",
    "executed_volume": "0.0",
    "volume": "6863.73",
    "side": "bid",
    "ord_type": "limit",
    "state": "wait",
    "factor": "0.0",
    "fix_price": "68.5",
    "funds_received": "0.0",
    "funds_fee": "0.0",
    "trades_count": 0,
    "avg_price": 0,
    "executed_amount": "0.0",
    "quote_amount": "0.0",
    "created_at": "2020-05-10T14:33:47+03:00",
    "updated_at": "2020-05-10T14:33:47+03:00"
  }
]

Запрос для получения истории заявок по выбранному рынку с разбиением по страницам

HTTP Request

GET https://garantex.io/api/v2/orders

Параметры

Параметр Обязательный Описание
market да ID рынка
state нет Состояния заявки:
  • wait
  • done
  • cancel
page нет Номер страницы, по умолчанию 1
limit нет Количество результатов на странице, по умолчанию 100. Максимум - 1000
order_by нет Направление сортировки, asc / desc. По умолчанию desc, последняя заявка сверху

Информация о заявке

Получить информацию о заявке

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/order?id={id}"

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

{
  "id": 60998,
  "market": "usdtrub",
  "remaining_volume": "52.91",
  "executed_volume": "47.09",
  "volume": "100.0",
  "side": "ask",
  "ord_type": "limit",
  "state": "wait",
  "factor": "0.0",
  "fix_price": "68.9",
  "funds_received": "3244.5",
  "funds_fee": "3.24",
  "trades_count": 2,
  "avg_price": "68.9",
  "executed_amount": "47.09",
  "quote_amount": "3244.5",
  "created_at": "2020-05-10T11:59:32+03:00",
  "updated_at": "2020-05-10T13:57:20+03:00"
}

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

HTTP Request

GET https://garantex.io/api/v2/order

Параметры

Параметр Обязательный Описание
id да ID заявки

Установить заявку

Установить заявку

curl -X POST -H "Authorization: Bearer {JWT}" -d 'market={market_id}&side={side}&volume={order_volume}&ord_type={order_type}&fix_price={fix_price}' "https://garantex.io/api/v2/orders"

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

{
  "id": 60998,
  "market": "usdtrub",
  "remaining_volume": "100.0", // остаток объёма к продаже по заявке  терминах продал - купил), для типа market - оставшаяся к откупу сумма
  "executed_volume": "0.0",    // средства израсходованные по заявке  терминах продал - купил)
  "volume": "100.0",           // начальный объём заявки  терминах продал - купил), для типа market - ожидаемая к получению сумма
  "side": "ask",               // направление заявки - ask или bid
  "ord_type": "limit",         // тип заявки: default, market, factor или limit
  "state": "wait",             // состояние заявки: wait, done, cancel
  "factor": "0.0",             // цена в процентах от базового рынка (для типа factor)
  "fix_price": "68.9",         // фиксированная цена (для типа limit)
  "funds_received": "0.0",     // средства полученные по заявке  терминах продал - купил)
  "funds_fee": "0.0",          // размер комиссии заплаченной с полученных средств
  "trades_count": 0,           // количество сделок прошедших по заявке
  "avg_price": 0,              // средняя цена исполненных по заявке сделок
  "executed_amount": "0.0",    // исполненная сумма в базовой валюте рынка
  "quote_amount": "0.0",       // исполненная сумма в валюте котировки
  "created_at": "2020-05-10T11:59:32+03:00",
  "updated_at": "2020-05-10T11:59:32+03:00"
}

Запрос создаёт завку на покупку / продажу для выбранного рынка.

HTTP Request

POST https://garantex.io/api/v2/orders

Параметры

Параметр Обязательный Описание
market да ID рынка
volume да Cумма в валюте продажи
side да Направление заявки, buy или sell
ord_type нет Тип заявки
  • default
  • market
  • factor
  • limit
fix_price нет Фикcированная цена, необходим для ord_type: limit
factor нет Цена в процентах от базового рынка, необходим для ord_type: factor,
либо максимальное отклонение в процентах от базового рынка для ord_type: market или default

Типы заявок

Цена заявки

Отменить заявку

Отменить заявку

curl -X POST -H "Authorization: Bearer {JWT}" -d 'id={order_id}' "https://garantex.io/api/v2/order/delete"

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

{
  "id": 60998,
  "market": "usdtrub",
  "remaining_volume": "52.91",
  "executed_volume": "47.09",
  "volume": "100.0",
  "side": "ask",
  "ord_type": "limit",
  "state": "wait",
  "factor": "0.0",
  "fix_price": "68.9",
  "funds_received": "3244.5",
  "funds_fee": "3.24",
  "trades_count": 2,
  "avg_price": "68.9",
  "executed_amount": "47.09",
  "quote_amount": "3244.5",
  "created_at": "2020-05-10T11:59:32+03:00",
  "updated_at": "2020-05-10T13:57:20+03:00"
}

Запрос для отмены заявки с указанным ID

HTTP Request

POST https://garantex.io/api/v2/order/delete

Параметры

Параметр Обязательный Описание
id да ID заявки

Отменить все заявки

Отменить все заявки

curl -X POST -H "Authorization: Bearer {JWT}"  "https://garantex.io/api/v2/orders/clear"

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

[
  {
    "id": 61002,
    "market": "usdtrub",
    "remaining_volume": "100.0",
    "executed_volume": "0.0",
    "volume": "100.0",
    "side": "ask",
    "ord_type": "factor",
    "state": "wait",
    "factor": "0.007",
    "fix_price": "0.0",
    "funds_received": "0.0",
    "funds_fee": "0.0",
    "trades_count": 0,
    "avg_price": 0,
    "executed_amount": "0.0",
    "quote_amount": "0.0",
    "created_at": "2020-05-10T14:34:33+03:00",
    "updated_at": "2020-05-10T14:34:33+03:00"
  },
  {
    "id": 61001,
    "market": "usdtrub",
    "remaining_volume": "6863.73",
    "executed_volume": "0.0",
    "volume": "6863.73",
    "side": "bid",
    "ord_type": "limit",
    "state": "wait",
    "factor": "0.0",
    "fix_price": "68.5",
    "funds_received": "0.0",
    "funds_fee": "0.0",
    "trades_count": 0,
    "avg_price": 0,
    "executed_amount": "0.0",
    "quote_amount": "0.0",
    "created_at": "2020-05-10T14:33:47+03:00",
    "updated_at": "2020-05-10T14:33:47+03:00"
  }
]

Запрос для отмены всех активных заявок, с возможностью фильтрации по рынку / направлению

HTTP Request

POST https://garantex.io/api/v2/orders/clear

Параметры

Параметр Обязательный Описание
market нет ID рынка
side нет Направление заявки: sell или buy

Депозиты

История депозитов

Получить список депозитов:

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/deposits"

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

[
  {
    "id": 36931,
    "currency": "rub",
    "type": "fiat",
    "amount": "500000.0",
    "fee": "0.0",
    "state": "accepted",
    "address": "Наличные касса Москва: ",
    "created_at": "2020-04-23T10:10:23+03:00",
    "completed_at": "2020-04-23T10:10:36+03:00"
  },
  {
    "id": 36354,
    "currency": "rub",
    "type": "fiat",
    "amount": "61000.0",
    "fee": "0.0",
    "state": "accepted",
    "address": "код пополнения: TGJ0C5IYM62PBDR8HAQO",
    "created_at": "2020-03-05T23:13:01+03:00",
    "completed_at": "2020-03-05T23:13:01+03:00"
  },
  {
    "id": 36060,
    "currency": "usdt",
    "type": "coin",
    "amount": "640.0",
    "fee": "0.0",
    "txid": "0x88178478a5df7c3dd0a53dddf70fc0c092f5fc4b0fff6f3058381f99c7e92abe",
    "block_number": 9606704,
    "confirmations": 23212,
    "state": "accepted",
    "address": "0xda36a74ca59f8816dc330fae1074223aa89833a1",
    "created_at": "2020-03-04T22:49:13+03:00",
    "completed_at": "2020-03-04T22:50:05+03:00"
  }
]

Получение списка депозитов пользователя.

HTTP Request

GET https://garantex.io/api/v2/deposits

Параметры

Параметр Обязательный Описание
currency нет Получить список депозитов только по указанной валюте
limit нет Количество результатов в ответе, по умолчанию 50. Максимум - 500
state нет Статус депозита:
  • pending
  • canceled
  • submitted
  • accepted
  • rejected

Возвращаемые значения

Обратите внимание, поля в возвращаемом списке различаются для фиатных и крипто депозитов!

Для крипты добавляются поля txid, block_number и confirmations.

Информация о депозите

Получить детали депозита по deposit id:

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/deposit/{deposit_id}"

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

{
  "id": 36060,
  "currency": "usdt",
  "type": "coin",
  "amount": "640.0",
  "fee": "0.0",
  "txid": "0x88178478a5df7c3dd0a53dddf70fc0c092f5fc4b0fff6f3058381f99c7e92abe",
  "block_number": 9606704,
  "confirmations": 23212,
  "state": "accepted",
  "address": "0xda36a74ca59f8816dc330fae1074223aa89833a1",
  "created_at": "2020-03-04T22:49:13+03:00",
  "completed_at": "2020-03-04T22:50:05+03:00"
}

Получение детальной информации о депозите по id

HTTP Request

GET https://garantex.io/api/v2/deposit/{deposit_id}

Параметры

Параметр Обязательный Описание
deposit_id да ID депозита полученное при его создании / из истории депозитов

Возвращаемые значения

Обратите внимание, поля в возвращаемом списке различаются для фиатных и крипто депозитов!

Для крипты добавляются поля txid, block_number и confirmations.

Получить детали депозита по txid:

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/deposit?txid={txid}"

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

{
  "id": 36060,
  "currency": "usdt",
  "type": "coin",
  "amount": "640.0",
  "fee": "0.0",
  "txid": "0x88178478a5df7c3dd0a53dddf70fc0c092f5fc4b0fff6f3058381f99c7e92abe",
  "block_number": 9606704,
  "confirmations": 23212,
  "state": "accepted",
  "address": "0xda36a74ca59f8816dc330fae1074223aa89833a1",
  "created_at": "2020-03-04T22:49:13+03:00",
  "completed_at": "2020-03-04T22:50:05+03:00"
}

Получение детальной информации о депозите по txid транзакции

HTTP Request

GET https://garantex.io/api/v2/deposit?txid={txid}

Параметры

Параметр Обязательный Описание
txid да txid транзакции в блокчейне

Возвращаемые значения

Обратите внимание, поля в возвращаемом списке различаются для фиатных и крипто депозитов!

Для крипты добавляются поля txid, block_number и confirmations.

Создание депозита

Создать заявку на депозит:

curl -X POST -H 'Authorization: Bearer {JWT}' -H 'Content-Type: application/x-www-form-urlencoded' -d 'currency={currency_id}&amount={amount}&gateway_type_id={gateway_type_id}' 'https://garantex.io/api/v2/deposits/create'

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

{
  "id": 36960,
  "currency": "rub",
  "type": "fiat",
  "amount": "100000.0",
  "fee": "0.0",
  "state": "submitted",
  "address": "Наличные касса Москва: ",
  "created_at": "2020-05-08T20:33:58+03:00",
  "completed_at": null
}

Создание заявки на внос средств.

HTTP Request

POST https://garantex.io/api/v2/deposits/create

Параметры

Параметр Обязательный Описание
currency да Код фиатной валюты (rub)
amount да Размер депозита
gateway_type_id да ID выбранного метода пополнения
data нет JSON поле с дополнительной информацией о депозите, необходимость и формат поля зависят от выбранного метода пополнения
address нет Информация об адресе депозита, необходимость и формат поля зависят от выбранного метода пополнения

Адрес для депозита крипты

Получить адрес для депозита крипты:

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/deposit_address?currency={currency_id}"

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

{
  "currency": "usdt-omni",
  "address": "3DVQ9WL2rTjBm1q7UHwWAQdNCKveFRJCYk"
}

Получение адреса для депозита крипты

HTTP Request

GET https://garantex.io/api/v2/deposit_address?currency={currency_id}

Параметры

Параметр Обязательный Описание
currency да ID валюты для депозита

Мульти-блокчейн валюты

Для валют которые используют больше чем один блокчейн, по умолчанию возвращается адрес для "основного" блокчейна. При необходимости получить адрес из другого блокчейна, он указывается через дефис, например usdt-omni.

Выводы

История выводов

Получить список выводов

curl -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/withdraws"

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

{
    "id": 32690,
    "currency": "rub",
    "type": "fiat",
    "amount": "1.0",
    "fee": "0.0",
    "rid": "код пополнения: XQGW4***************",
    "state": "succeed",
    "created_at": "2020-04-13T22:52:37+03:00",
    "updated_at": "2020-04-13T22:52:37+03:00",
    "completed_at": "2020-04-13T22:52:37+03:00"
  },
  {
    "id": 31449,
    "currency": "btc",
    "type": "coin",           // тип валюты: coin или fiat
    "amount": "0.01145726",
    "fee": "0.00005",
    "rid": "3AXFusZJufbaxcm8o2JoD2eHEvZDgL9Asu",
    "state": "succeed",       // статус заявки 
    "txid": "70c71a54b3554de88829ef3cc6323e90443f4615943d4352c081cd6f33c34f2a",
    "block_number": 620172,
    "confirmations": 592,
    "created_at": "2020-03-04T18:11:54+03:00",
    "updated_at": "2020-03-04T18:17:10+03:00",
    "completed_at": "2020-03-04T18:17:10+03:00"
  },

Запрос возвращает список заявок на вывод с разбиением по страницам. Заявки выводятся отсортированные от новых к старым.

HTTP Request

GET https://garantex.io/api/v2/withdraws

Параметры

Параметр Обязательный Описание
currency нет Код валюты
page нет Номер страницы, по умолчанию 1
limit нет Количество записей на странице, по умолчанию 100. Максимум - 1000

Возвращаемые значения

Обратите внимание, поля в возвращаемом списке различаются для фиатных и крипто выводов!

Для крипты добавляются поля txid, block_number и confirmations.

Создание заявки на вывод

Создать заявку на вывод средств

curl -X POST -H "Authorization: Bearer {JWT}" "https://garantex.io/api/v2/withdraws/create?currency={currency_id}&amount={amount}&rid={address}"

Пример ответа (вывод крипты):

{
  "id": 33104,
  "currency": "usdt",
  "type": "coin",
  "amount": "101.17",
  "fee": "1.17",
  "rid": "0xda36a74ca59f8816dc330fae1074223aa89833a1",
  "state": "submitted",
  "txid": null,
  "block_number": null,
  "confirmations": 0,
  "created_at": "2020-05-09T20:27:15+03:00",
  "updated_at": "2020-05-09T20:27:15+03:00",
  "completed_at": null
}

Пример ответа (вывод фиата):

{
  "id": 33108,
  "currency": "rub",
  "type": "fiat",
  "amount": "15150.0",
  "fee": "150.0",
  "rid": "Сбербанк онлайн регионы: 1234 5678 9012 3456",
  "state": "submitted",
  "created_at": "2020-05-09T21:12:13+03:00",
  "updated_at": "2020-05-09T21:12:13+03:00",
  "completed_at": null
}

Запрос возвращает список заявок на вывод с разбиением по страницам. Заявки выводятся отсортированные от новых к старым.

HTTP Request

POST https://garantex.io/api/v2/withdraws/create

Параметры

Параметр Обязательный Описание
currency да Код валюты
amount да Сумма к получению (без учёта комиссии!)
rid да Адрес вывода. Для фиата формат поля зависит от направления.
gateway_type_id зависит от валюты ID выбранного метода пополнения, необходимо для фиата.
data нет JSON поле с дополнительной информацией о выводе, необходимость и формат поля зависят от выбранного направления вывода.

Возвращаемые значения

Обратите внимание, поля в возвращаемом значении различаются для фиатных и крипто выводов!

Для крипты добавляются поля txid, block_number и confirmations, выставленные в нулевые значения.

Сallbacks

Garantex поддерживает 3 вида обратных вызовов:

Ссылки для обратных вызовов прописываются в форме API Callback в настройках профиля: https://garantex.io/settings

Формат отправки запросов: POST x-www-form-urlencoded

Общие параметры, передаваемые в запросе:

Параметр Значение Описание
event_type String
  • deposit
  • withdraw
  • order
  • trade
тип объекта
  • депозит
  • вывод
  • заявка
  • сделка
id Integer id объекта
state String тип события / состояние объекта

все остальные поля для каждого типа объекта свои, и совпадают с тем что возвращается в обычных API запросах для этого объекта.

Типы событий различаются для разных объектов.

Возможные типы:

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

Ошибки

Error Code Meaning
2000 Invalid API-key, IP, or permissions for action.
401 Unauthorized - JWT токен неверен
403 Forbidden
404 Not Found
405 Method Not Allowed
429 Too Many Requests - Вы привысили допустимую частоту запросов.
500 Internal Server Error - We had a problem with our server. Try again later.
503 Service Unavailable - We're temporarily offline for maintenance. Please try again later.