NAV
cURL Ruby PHP NodeJS Python C#

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

24.03.2022

26.07.2021

14.11.2020

09.11.2020

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-токен

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

require 'openssl'
require 'base64'
require 'json'
require 'securerandom'
require 'jwt'
require 'active_support/time'
require 'net/http'
require 'net/https'


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

secret_key = OpenSSL::PKey.read(Base64.urlsafe_decode64(private_key))
payload = {
    exp: 1.hours.from_now.to_i, # JWT Request TTL in seconds since epoch
    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 = true
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

// require __DIR__ . '/vendor/autoload.php';
use Lcobucci\JWT\Builder;
use Lcobucci\JWT\Signer\Key;
use Lcobucci\JWT\Signer\Rsa\Sha256;

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

$time       = time();
$signer     = new Sha256();
$privateKey = new Key(base64_decode($private_key, true));
$token      = (new Builder())->identifiedBy(bin2hex(random_bytes(12)))
                             ->expiresAt($time + 1 * 3600) // JWT Request TTL in seconds since epoch
                             ->getToken($signer, $privateKey);

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

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

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

$response = curl_exec($ch);

if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200)
    die('Server error: ' . $response);

$token_data = json_decode($response, true);

var_dump(['$token_data' => $token_data]);
$token = $token_data['token'];

// Модули
const axios = require("axios"); // npm i axios
const jwt = require("jsonwebtoken"); // npm i jsonwebtoken
const crypto = require("crypto");

// Константы
const host = "garantex.org"; // для тестового сервера используйте stage.garantex.biz
const privateKey = "***"; // приватный ключ, полученный на этапе создания API ключей
const uid = "***"; // UID, полученный на этапе создания API ключей

// Получаем токен
const getToken = async () => {
  try {
    let { data } = await axios.post(
      "https://dauth." + host + "/api/v1/sessions/generate_jwt",
      {
        kid: uid,
        jwt_token: jwt.sign(
          {
            exp: Math.round(Date.now() / 1000) + 30 * 60, // JWT Request TTL: 30 minutes
            jti: crypto.randomBytes(12).toString("hex"),
          },
          new Buffer.from(privateKey, "base64").toString("ascii"),
          { algorithm: "RS256" }
        ),
      }
    );
    return data.token;
  } catch (e) {
    console.error(e);
    return false;
  }
};

// Тест работоспособности
(async () => {
  try {
    let { data } = await axios.post(
      "https://" + host + "/api/v2/orders/clear",
      null,
      {
        headers: {
          Authorization: `Bearer ${await getToken()}`,
        },
      }
    );
    console.log(data);
  } catch (e) {
    console.error(e.message, e.response.data.error);
  }
})();
# requirements:
# pip3 install 'pyjwt[crypto]'

import base64
import time
import datetime
import random
import requests
import jwt

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

key = base64.b64decode(private_key)
iat = int(time.mktime(datetime.datetime.now().timetuple()))

claims = {
    "exp": iat + 1*60*60, # JWT Request TTL in seconds since epoch
    "jti": hex(random.getrandbits(12)).upper()
}

jwt_token = jwt.encode(claims, key, algorithm="RS256")

print("JWT request token: %s\n" % jwt_token)

ret = requests.post('https://dauth.' + host + '/api/v1/sessions/generate_jwt',
                    json={'kid': uid, 'jwt_token': jwt_token})

print("JWT response code: %d" % ret.status_code)
print("JWY response text: %s\n" % ret.text)

token = ret.json().get('token')

print("JWT token: %s\n" % token)
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.IdentityModel.Tokens.Jwt;
using System.IO;
using System.Net.Http;
using System.Security.Claims;
using System.Security.Cryptography;
using System.Text;
using Microsoft.IdentityModel.Tokens;
using Newtonsoft.Json;
using System.Net;

namespace grx_asp
{
    class Program
    {
        static string privateKey = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\priv.txt", Encoding.UTF8);
        static string uid = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\uid.txt", Encoding.UTF8);

        static async Task Main(string[] args)
        {
            // Use this line to see the crypto info while debugging:
            // Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true;

            byte[] key = Convert.FromBase64String(privateKey);
            RSA rsa = RSA.Create();
            rsa.ImportFromPem(Encoding.UTF8.GetChars(key));

            var claims = new List<Claim>
            {
              new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
              new Claim(JwtRegisteredClaimNames.Exp, DateTimeOffset.Now.AddMinutes(60).ToUnixTimeSeconds().ToString())
            };

            SigningCredentials credentials = new SigningCredentials(new RsaSecurityKey(rsa), SecurityAlgorithms.RsaSha256);
            JwtSecurityToken jwtSecurity = new JwtSecurityToken(new JwtHeader(credentials), new JwtPayload(claims));
            string jwt = new JwtSecurityTokenHandler().WriteToken(jwtSecurity);
            string json = JsonConvert.SerializeObject(new { kid = uid, jwt_token = jwt });


            #region sync_using_HttpWebRequest
            HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(@"https://dauth.stage.garantex.biz/api/v1/sessions/generate_jwt");
            byte[] data = Encoding.ASCII.GetBytes(json);
            webReq.Method = "POST";
            webReq.ContentType = "application/json";
            webReq.ContentLength = data.Length;
            using (Stream stream = webReq.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }
            string respStr;
            using (HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse())
            {
                using (StreamReader sr = new StreamReader(webResp.GetResponseStream()))
                {
                    respStr = sr.ReadToEnd();
                }
            }
            #endregion sync_using_HttpWebRequest


            #region async_await_using_HttpClient
            var httpClient = new HttpClient();
            HttpContent content = new StringContent(json, Encoding.UTF8, "application/json");
            HttpResponseMessage hrm = await httpClient.PostAsync(@"https://dauth.stage.garantex.biz/api/v1/sessions/generate_jwt", content);
            HttpStatusCode httpStatus = hrm.StatusCode;
            #endregion async_await_using_HttpClient


            Console.ReadLine();
        }
    }
}

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

Garantex использует стандартную схему JWT авторизации (документация: https://jwt.io/ и https://tools.ietf.org/html/rfc7519), то есть для работы с методами API вначале нужно запросить у сервера JWT токен, который уже будет использоваться в Bearer аутентификации.

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

Время жизни JWT определяется параметрами API ключа, и может быть изменено в настройках для каждого API ключа. Минимальное время жизни JWT 30 минут, максимальное 24 часа. По умолчанию значение TTL 24 часа.

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

Параметры JWT запроса:

Для тестов можно использовать форму получения JWT токена на сайте, по адресу:

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

Авторизация запросов

Пример GET-запроса (запрос информации об аккаунте):
{JWT} - токен, полученный на предыдущем шаге

curl -H 'Authorization: Bearer {JWT}' 'https://stage.garantex.biz/api/v2/members/me'
require 'net/http'
require 'net/https'
require 'json'

host = 'garantex.org' # для тестового сервера используйте stage.garantex.biz
token = '{JWT}'
custom_headers = {'Authorization' => "Bearer #{token}"}
uri = URI.parse("https://#{host}/api/v2/members/me")

response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|
  request = Net::HTTP::Get.new uri.request_uri
  custom_headers.each { |key, value| request[key] = value }
  http.request request
end

return nil unless Net::HTTPResponse === response # Error occured
return nil unless Net::HTTPOK === response # HTTP error with code
return nil unless response.body # Response is empty

account_info = JSON.parse response.body
<?php

$host   = 'garantex.org'; // для тестового сервера используйте stage.garantex.biz
$token  = '{JWT}';

$ch = curl_init('https://' . $host . '/api/v2/members/me');

curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $token],
    CURLOPT_RETURNTRANSFER => true,
]);

$response = curl_exec($ch);

if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200)
    die('Server error: ' . $response);

$account_info = json_decode($response, true);

var_dump(['$account_info' => $account_info]);

import requests

host   = 'garantex.org' // для тестового сервера используйте stage.garantex.biz
token  = '{JWT}'

ret = requests.get('https://' + host + '/api/v2/members/me',
                   headers = {'Authorization': 'Bearer ' + token})

print("Test request response code: %d" % ret.status_code)
print("Test request response text: %s" % ret.text)

response = ret.json()

Пример POST-запроса (создание вывода в код Garantex):
{JWT} - токен, полученный на предыдущем шаге
{currency} - код фиатной валюты, например rub
{amount} - сумма вывода, например 10000

curl -X POST -H 'Authorization: Bearer {JWT}' -H 'Content-Type: application/x-www-form-urlencoded' -d 'currency={currency}&amount={amount}' 'https://stage.garantex.biz/api/v2/depositcodes/create'
require 'net/http'
require 'net/https'
require 'json'

host = 'garantex.org' // для тестового сервера используйте stage.garantex.biz
token = '{JWT}'
currency = '{currency}'
amount = '{amount}'
custom_headers = {'Authorization' => "Bearer #{token}"}
uri = URI.parse("https://#{host}/api/v2/depositcodes/create")

response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|
  request = Net::HTTP::Post.new uri.request_uri
  custom_headers.each { |key, value| request[key] = value }
  request.set_form_data({ currency: currency, amount: amount })
  http.request request
end

return nil unless Net::HTTPResponse === response # Error occured
return nil unless Net::HTTPCreated === response # HTTP error with code
return nil unless response.body # Response is empty

depositcode_data = JSON.parse response.body
<?php

$host = 'garantex.org'; // для тестового сервера используйте stage.garantex.biz
$token = '{JWT}';
$currency = '{currency}';
$amount = '{amount}';

$ch = curl_init('https://' . $host . '/api/v2/depositcodes/create');

curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $token],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => ['currency' => $currency, 'amount' => $amount],
]);

$response = curl_exec($ch);

if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 201)
    die('Server error: ' . $response);

$depositcode_data = json_decode($response, true);

var_dump(['$depositcode_data' => $depositcode_data]);

import requests

host     = 'garantex.org' // для тестового сервера используйте stage.garantex.biz
token    = '{JWT}'
currency = '{currency}'
amount   = '{amount}'

ret = requests.post('https://' + host + '/api/v2/depositcodes/create',
                   headers = {'Authorization': 'Bearer ' + token},
                   data = {'currency': currency, 'amount': amount})

print("Test request response code: %d" % ret.status_code)
print("Test request response text: %s" % ret.text)

response = ret.json()

Для запроса данных через API Garantex необходимо использовать OAuth 2.0 Bearer аутентификацию.

Лимиты

При запросах к API существуют лимиты в виде ограничения количества запросов.

Конкретное значение лимита зависит от типа запросов и наличия авторизации. Для запросов, не требующий авторизации, ограничения 60 запросов в минуту / 600 запросов в 15 минут / 1800 запросов в час.
Для авторизованных запросов - 30 запросов в минуту / 300 запросов в 15 минут / 900 запросов в час.

Есть группа запросов для которых установлены более жёсткие ограничения:

для них лимиты 10 запросов в минуту / 100 запросов в 15 минут / 300 запросов в час.

В случае превышения количества запросов в ответе будет ошибка
429 Too Many Requests - вы превысили допустимую частоту запросов.

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

Рынки

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

curl -X GET "https://garantex.org/api/v2/markets"

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

[
  {
    "id": "btcrub",
    "name": "BTC/RUB",
    "ask_unit": "btc",
    "bid_unit": "rub",
    "min_ask": "0.00001",
    "min_bid": "5.0"
  },
  {
    "id": "usdtrub",
    "name": "USDT/RUB",
    "ask_unit": "usdt",
    "bid_unit": "rub",
    "min_ask": "0.1",
    "min_bid": "5.0"
  }
]

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

HTTP Request

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

Валюты

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

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

curl -X GET "https://garantex.org/api/v2/currencies"

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

[
  {
    "id": "usd",
    "symbol": "$",
    "type": "fiat",
    "min_deposit_amount": "0.0",
    "withdraw_min_amount": "0.0",
    "precision": 2
  },
  {
    "id": "usdt",
    "symbol": "$",
    "explorer_transaction": "https://etherscan.io/tx/#{txid}",
    "explorer_address": "https://etherscan.io/address/#{address}",
    "blockchain": "ethereum",
    "contract_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "type": "coin",
    "min_deposit_amount": "0.0",
    "withdraw_min_amount": "20.0",
    "precision": 2
  }
]

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

HTTP Request

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

Параметры

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

Получить детали валюты

Получить детали валюты по ее id:

curl -X GET "https://garantex.org/api/v2/currencies/{id}"

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

{
  "id": "btc",
  "symbol": "฿",
  "explorer_transaction": "https://www.blockchain.com/btc/tx/#{txid}",
  "explorer_address": "https://www.blockchain.com/btc/address/#{address}",
  "blockchain": "btc",
  "type": "coin",
  "min_deposit_amount": "0.0002",
  "withdraw_min_amount": "0.001",
  "precision": 8
}

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

HTTP Request

GET https://garantex.org/api/v2/currencies/{id}

Параметры

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

Время

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

curl -X GET "https://garantex.org/api/v2/timestamp"

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

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

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

HTTP Request

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

Комиссии

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

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

curl -X GET "https://garantex.org/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.org/api/v2/fees/withdraw/coin

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

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

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

Комиссии на торговлю

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

curl -X GET 'https://garantex.org/api/v2/fees/trading'

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

[
  {
    "market": "btcrub",
    "ask_fee": [
      {
        "type": "market_maker_fee",
        "value": "0.001"
      },
      {
        "type": "market_taker_fee",
        "value": "0.001"
      }
    ],
    "bid_fee": [
      {
        "type": "market_maker_fee",
        "value": "0.001"
      },
      {
        "type": "market_taker_fee",
        "value": "0.001"
      }
    ]
  }
]

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

HTTP Request

GET https://garantex.org/api/v2/fees/trading

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

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

curl -X GET -H "Authorization: Bearer {JWT}" "https://garantex.org/api/v2/gateway_types?currency={currency}"

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

[
{
    "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.org/api/v2/gateway_types

Параметры

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

Market data

Сделки

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

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

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

[
  {
    "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.org/api/v2/trades

Параметры

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

Заявки

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

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

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

{
  "timestamp": 1648047486,
  "asks": [
    {
      "price": "156612.04",
      "volume": "0.23625259",
      "amount": "37000.0",
      "factor": "0.008",
      "type": "limit"      // тип цены: factor или limit
    },
    {
      "price": "157006.78",
      "volume": "0.00003591",
      "amount": "5.64",
      "factor": "0.011",
      "type": "factor"
    }
  ],
  "bids": [
    {
      "price": "153590.1",
      "volume": "0.04143581",
      "amount": "6364.13",
      "factor": "-0.011",
      "type": "factor"
    },
    {
      "price": "152074.67",
      "volume": "0.26302868",
      "amount": "40000.0",
      "factor": "-0.021",
      "type": "limit"
    }
  ]
}

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

HTTP Request

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

Параметры

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

Аккаунт

Счета

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

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

curl -H GET "Authorization: Bearer {JWT}" "https://garantex.org/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.org/api/v2/accounts

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

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

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

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

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

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

HTTP Request

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

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

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

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

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

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

{
  "sn": "SNXXXXXXXXXX",
  "email": "user@garantex.org",
  "nickname": "p2p_nickname",
  "accounts": [
    {
      "currency": "btc",
      "balance": "0.83001049",
      "locked": "0.0",
      "allowed_withdraw_amount": "0.01"
    },
    {
      "currency": "rub",
      "balance": "91164.92",
      "locked": "288570.5",
      "allowed_withdraw_amount": "7207469.72"
    },
    {
      "currency": "usdt",
      "balance": "1989.85",
      "locked": "0.0",
      "allowed_withdraw_amount": "3348.49"
    }
  ]
}

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

HTTP Request

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

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

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

curl -H GET "Authorization: Bearer {JWT}" "https://garantex.org/api/v2/members/api_key"

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

{
  "uid": "89c134ad-04b7-4fab-bf2d-52831c023a1a",
  "name": "1st key",
  "ip_restrictions": "0.0.0.0/0,::/0",
  "trading_permitted": false,
  "withdrawals_permitted": false,
  "otc_permitted": false
}

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

HTTP Request

GET https://garantex.org/api/v2/members/api_key

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

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

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

curl -H "Authorization: Bearer {JWT}" "https://garantex.org/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.org/api/v2/trades/my

Параметры

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

Список всех последних сделок:

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

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

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

[
  {
    "id": 148344,
    "price": "4336282.57",
    "volume": "0.21909204",
    "funds": "950021.63",
    "market": "btcrub",
    "created_at": "2022-03-14T15:24:20+03:00"
  },
  {
    "id": 148343,
    "price": "3879648.0",
    "volume": "0.0386633",
    "funds": "150000.0",
    "market": "btcrub",
    "created_at": "2022-03-14T15:24:20+03:00"
  }
]  

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

HTTP Request

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

Параметры

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

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

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

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.org/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.org/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 GET -H "Authorization: Bearer {JWT}" "https://garantex.org/api/v2/orders?market={market}"

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

[
  {
    "id": 262876,
    "market": "btcrub",
    "remaining_volume": "123.0",
    "executed_volume": "0.0",
    "volume": "123.0",
    "side": "ask",
    "ord_type": "market",
    "state": "cancel",
    "factor": "0.0",
    "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": "2022-03-23T16:37:23+03:00",
    "updated_at": "2022-03-23T16:37:23+03:00"
  }
]

Запрос возвращает список своих заявок с возможностью фильтрации

HTTP Request

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

Параметры

Параметр Обязательный Описание
market да ID рынка
state нет Состояние заявки - wait, done, cancel
page нет Страница при постраничном разбиении (deprecated)
order_by нет Сортировка. desc или asc, по умолчанию desc
limit нет Количество записей, по умолчанию 250
offset нет С какой записи начинать

Получить детали заявки

Получить детали заявки

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

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

[
  {
    "id": 262876,
    "market": "btcrub",
    "remaining_volume": "123.0",
    "executed_volume": "0.0",
    "volume": "123.0",
    "side": "ask",
    "ord_type": "market",
    "state": "cancel",
    "factor": "0.0",
    "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": "2022-03-23T16:37:23+03:00",
    "updated_at": "2022-03-23T16:37:23+03:00"
  }
]

Запрос возвращает детали своей заявки по ее ID

HTTP Request

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

Параметры

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

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

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

curl -X POST -H "Authorization: Bearer {JWT}" -d 'id={order_id}' "https://garantex.org/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.org/api/v2/order/delete

Параметры

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

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

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

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

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

[
  {
    "id": 262882,
    "market": "usdtrub",
    "remaining_volume": "1.0",
    "executed_volume": "0.0",
    "volume": "1.0",
    "side": "ask",
    "ord_type": "limit",
    "state": "wait",
    "factor": "0.2",
    "fix_price": "234.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": "2022-03-23T17:31:38+03:00",
    "updated_at": "2022-03-23T17:31:38+03:00"
  },
  {
    "id": 262702,
    "market": "usdtrub",
    "remaining_volume": "1453.45",
    "executed_volume": "0.0",
    "volume": "1453.45",
    "side": "bid",
    "ord_type": "limit",
    "state": "wait",
    "factor": "0.0",
    "fix_price": "44.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": "2021-06-26T00:18:17+03:00",
    "updated_at": "2021-06-26T00:18:17+03:00"
  }
]

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

HTTP Request

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

Параметры

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

Депозиты

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

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

curl -H "Authorization: Bearer {JWT}" "https://garantex.org/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.org/api/v2/deposits

Параметры

Параметр Обязательный Описание
currency нет Код валюты, например aed, aff, btc, btc-bbtc, btc-bsc, dai, dai-bsc, eth, eth-bsc, rub, uah, usd, usdt, usdt-bsc, usdt-omni, usdt-tron
state нет Статус. Может быть submitted, rejected, accepted, suspected, processing, pending, succeed, canceled, confirming, fraudulent
limit нет Количество результатов в ответе, по умолчанию 250
offset нет С какой записи по номеру начинать
start_time нет С какой записи по времени создания начинать, по умолчанию - без ограничений
end_time нет По какую запись возвращать результат. По умолчанию - текущий таймстэмп

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

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

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

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

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

curl -H "Authorization: Bearer {JWT}" "https://garantex.org/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.org/api/v2/deposit/{deposit_id}

Параметры

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

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

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

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

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

curl -H "Authorization: Bearer {JWT}" "https://garantex.org/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.org/api/v2/deposit

Параметры

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

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

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

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.org/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.org/api/v2/deposits/create

Параметры

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

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

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

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

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

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

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

HTTP Request

GET https://garantex.org/api/v2/deposit_address

Параметры

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

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

curl -X POST -H "Authorization: Bearer {JWT}" -d "currency=btc" "https://garantex.org/api/v2/deposit_address"

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

{
  "id": 6789,
  "currency": "btc",
  "address": null
}

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

HTTP Request

POST https://garantex.org/api/v2/deposit_address

Параметры

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

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

Обратите внимание, значение адреса в ответе может быть null! Это нормальная ситуация, так как создание нового адреса занимает время, и в таком случае фактический адрес должен быть получен отдельно, запросом /deposit_address/details.

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

curl -H "Authorization: Bearer {JWT}" -d "currency=btc" "https://garantex.org/api/v2/deposit_address/details?id={id}"

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

{
  "id": 6789,
  "blockchain": "btc",
  "address": "3Qtj2uSv2AV7S86iTzJW1RwCoNKzGrJFyJ"
}

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

HTTP Request

GET https://garantex.org/api/v2/deposit_address/details

Параметры

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

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

Обратите внимание, значение адреса в ответе может быть null! Это нормальная ситуация, так как создание нового адреса занимает время, и в таком случае запрос необходимо повторить позже.

Кроме того, в ответе будет указан не код валюты, но код блокчейна, так как адреса валидны для всех валют которые поддерживаются на этом блокчейне.

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

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

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

curl -H "Authorization: Bearer {JWT}" -d "currency=btc" "https://garantex.org/api/v2/deposit_address/{id}"

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

{
  "id": 6789,
  "blockchain": "btc",
  "address": "3Qtj2uSv2AV7S86iTzJW1RwCoNKzGrJFyJ"
}

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

HTTP Request

GET https://garantex.org/api/v2/deposit_address/{id}

Параметры

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

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

Обратите внимание, значение адреса в ответе может быть null! Это нормальная ситуация, так как создание нового адреса занимает время, и в таком случае запрос необходимо повторить позже.

Кроме того, в ответе будет указан не код валюты, но код блокчейна, так как адреса валидны для всех валют которые поддерживаются на этом блокчейне.

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

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

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

curl -H "Authorization: Bearer {JWT}" -d "currency=btc" "https://garantex.org/api/v2/deposit_address/list"

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

[
  {
    "id": 2813,
    "address": "3KVWYcm3Avkj8cDzmt2TAVYwGei48awQyY",
    "blockchain": "btc",
    "created_at": "2019-11-16T15:56:54.000+03:00"
  },
  {
    "id": 19610,
    "address": null,
    "blockchain": "btc",
    "created_at": "2022-03-13T17:17:56.779+03:00"
  }
]

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

Запрос позволяет получить все депозит-адреса авторизованного пользователя для определенной валюты или блокчейна. Обязательно указать только один из двух параметров.

HTTP Request

GET https://garantex.org/api/v2/deposit_address/list

Параметры

Параметр Обязательный Описание
blockchain 1/2 Код блокчейна, например btc или omni-usdt или ethereum
currency 1/2 Код валюты, например btc или DAI-BSC или usdt-tron (можно использовать верхний регистр)

Коды Garantex

Выпуск кода

Вывод в средств в код:

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

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

{
  "id": 34766,
  "code": "OB34XF7YWOQBMSGAUEAP",
  "currency": "rub",
  "amount": "444.0",
  "used": false,
  "fee": 0,
  "created_at": "2022-03-22T18:49:13.495+03:00",
  "used_at": null
}

Вывод в средств в код.

HTTP Request

POST https://garantex.org/api/v2/depositcodes/create

Параметры

Параметр Обязательный Описание
currency да Код фиатной валюты (rub)
amount да Сумма для вывода
label нет Пометка для нотификаций

Депозит кода

Депозит кода:

curl -X POST -H 'Authorization: Bearer {JWT}' -H 'Content-Type: application/x-www-form-urlencoded' -d 'deposit_code={deposit_code}' 'https://garantex.org/api/v2/depositcodes/redeem'

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

{
  "id": 34765,
  "code": "PFIJC5YNZW7RMLRVOO6K",
  "currency": "rub",
  "amount": "1111.0",
  "used": true,
  "created_at": "2022-03-22T18:35:11.862+03:00",
  "used_at": "2022-03-22T18:35:25.607+03:00"
}

Депозит кода.

HTTP Request

POST https://garantex.org/api/v2/depositcodes/redeem

Параметры

Параметр Обязательный Описание
deposit_code да Код

Отмена кода

Отмена кода:

curl -X POST -H 'Authorization: Bearer {JWT}' -H 'Content-Type: application/x-www-form-urlencoded' -d 'id=34769' 'https://garantex.org/api/v2/depositcodes/cancel'

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

{
  "id": 34769,
  "code": "D4CHY***************",
  "currency": "rub",
  "amount": "446.0",
  "used": true,
  "created_at": "2022-03-22T19:10:49.978+03:00",
  "used_at": "2022-03-22T19:11:17.386+03:00"
}

Возвращение денег из своего кода на баланс.

HTTP Request

POST https://garantex.org/api/v2/depositcodes/cancel

Параметры

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

Детали кода

Детали кода:

curl -X GET -H 'Authorization: Bearer {JWT}' -H 'Content-Type: application/x-www-form-urlencoded' 'https://garantex.org/api/v2/depositcodes/{id}'

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

{
  "id": 34770,
  "code": "OGNYA***************",
  "currency": "rub",
  "amount": "555.0",
  "used": true,
  "created_at": "2022-03-22T19:19:37.599+03:00",
  "used_at": "2022-03-22T19:21:18.120+03:00"
}

Получение деталей кода

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

HTTP Request

GET https://garantex.org/api/v2/depositcodes/{id}

Параметры

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

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

История кодов:

curl -X GET -H 'Authorization: Bearer {JWT}' -H 'Content-Type: application/x-www-form-urlencoded' 'https://garantex.org/api/v2/depositcodes'

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

[
  {
    "id": 34770,
    "code": "OGNYA***************",
    "currency": "rub",
    "amount": "555.0",
    "used": true,
    "created_at": "2022-03-22T19:19:37.599+03:00",
    "used_at": "2022-03-22T19:21:18.120+03:00"
  },
  {
    "id": 34769,
    "code": "D4CHY***************",
    "currency": "rub",
    "amount": "446.0",
    "used": true,
    "created_at": "2022-03-22T19:10:49.978+03:00",
    "used_at": "2022-03-22T19:11:17.386+03:00"
  }
]

Получение списка своих кодов с возможностью фильтрации

HTTP Request

GET https://garantex.org/api/v2/depositcodes

Параметры

Параметр Обязательный Описание
currency нет Код фиатной валюты. Например, rub, uah, usd
limit нет Количество результатов в ответе, по умолчанию 250
offset нет С какой записи по номеру начинать
used нет Использован ли код

Выводы

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

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

curl -H "Authorization: Bearer {JWT}" "https://garantex.org/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.org/api/v2/withdraws

Параметры

Параметр Обязательный Описание
currency нет Код валюты, например aed,aff,btc,btc-bbtc,btc-bsc,dai,dai-bsc,eth,eth-bsc,rub,uah,usd,usdt,usdt-bsc,usdt-omni,usdt-tron
page нет Номер страницы, по умолчанию 1 (deprecated)
state нет Статус. Может быть prepared, submitted, rejected, accepted, suspected, processing, pending, queued, succeed, canceled, failed, toinspect, confirming, blocked
limit нет Количество записей на странице, по умолчанию 250
offset нет С какой записи по номеру начинать
start_time нет С какой записи по времени создания начинать, по умолчанию - без ограничений
end_time нет По какую запись возвращать результат. По умолчанию - текущий таймстэмп

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

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

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

Поле state может принимать следующие значения:

Информация о выводе

Получить детали вывода по withdraw id:

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

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

{
    "id": 123456,
    "currency": "btc",
    "type": "coin",
    "amount": "0.0042",
    "fee": "0.0001",
    "rid": "14sWK1hUw3p3efBSqdC9yNSkynARmgF9zA",
    "state": "succeed",
    "txid": "1234f116be697c6b014d15edd4aa648c399c71a3acec567a0f806751184500fc",
    "block_number": 612345,
    "confirmations": 194,
    "created_at": "2020-09-15T20:16:48+03:00",
    "updated_at": "2020-09-15T20:43:11+03:00",
    "completed_at": "2020-09-15T20:43:11+03:00"
}

Получение детальной информации о выводе по ID

HTTP Request

GET https://garantex.org/api/v2/withdraws/{withdraw_id}

Параметры

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

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

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

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

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

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

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

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

{
  "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.org/api/v2/withdraws/create

Параметры

Параметр Обязательный Описание
currency да Код валюты, например aed,aff,btc,btc-bbtc,btc-bsc,dai,dai-bsc,eth,eth-bsc,rub,uah,usd,usdt,usdt-bsc,usdt-omni,usdt-tron
amount да Сумма к получению (без учёта комиссии!)
rid да Адрес вывода. Для фиата формат поля зависит от направления.
gateway_type_id зависит от валюты ID выбранного направления вывода, необходим для фиатных выводов.
data нет JSON поле с дополнительной информацией о выводе, необходимость и формат поля зависят от выбранного направления вывода.

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

Информация о созданной заявке на вывод.

Обратите внимание, набор полей в возвращаемом значении различаются для фиатных и крипто выводов! Для крипты добавляются поля txid, block_number и confirmations, выставленные в нулевые значения.

P2P

P2P flow

Чтобы воспользоваться API P2P-секции биржи, необходимо следующее:

  1. Подключить 2-х факторную аутентификацию на сайте или в приложении

  2. Завести P2P-никнейм на сайте или в приложении

  3. Просматривать чужие P2P-объявления, отправлять по ним сделки

  4. Создавать свои объявления, получать по ним сделки

Пункты 3 и 4 описаны ниже.

Подраздел P2P-профили

Позволяет просматривать профили других пользователей, их репутацию и статистику по ним.

Подраздел Чаты

Чат открывается автоматически, когда создается сделка. Большую часть времени в чат пишет бот - об открытии/закрытии сделок. Еще туда пишет контрагент - с обсуждением условий сделки. API позволяет читать и писать в чаты.

Подраздел Все объявления

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

Подраздел P2P-сделки

Сделка создается, например, когда вы, прочитав чужое объявление, решили на него откликнуться. Для создания сделки достаточно желаемой суммы (в пределах объявления) и ID понравившегося объявления. Свои сделки можно просматривать с фильтрацией, завершать, отменять, дополнять реквизитами, ставить оценку, жаловаться. Еще на сделку можно соглашаться, если она пришла по вашему объявлению.

Подраздел Свои объявления

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

P2P-профили

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

Получить P2P-профиль по никнейму:

curl -X GET 'https://garantex.org/api/v2/otc/profiles?nickname={nickname}'

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

{
  "nickname": "my_nickname",
  "verified": false,
  "rating": 0,
  "registered_at": "2021-06-25",
  "first_deal_at": null,
  "completed_deals": 0,
  "trade_partners_count": 0,
  "tg_username": null,
  "trade_volume": "< 100K",
  "trade_volume_30d": "< 100K",
  "ads_sell": [],
  "ads_buy": []
}

Запрос возвращает публичный P2P-профиль пользователя по его P2P-никнейму.

HTTP Request

GET https://garantex.org/api/v2/otc/profiles

Параметры

Параметр Обязательный Описание
nickname да P2P-никнейм, по которому нужно получить публичный профиль

Чаты

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

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

curl -X GET --header 'Authorization: Bearer {JWT}'  'https://garantex.org/api/v2/otc/chats?limit={limit}&offset={offset}'

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

[
  {
    "id": 19446,
    "message_count": 1018,
    "unread_message_count": 0,
    "counterparty": "peer_nickname1",
    "last_chat_message": {
      "id": 277969,
      "chat_id": 19446,
      "sender": "my_nickname",
      "ad_id": 3382,
      "message": "",
      "file_url": "https://garantex.org/uploads/chat_message/file/277969/photo_2021-12-20_23-27-57.jpg",
      "created_at": "2021-12-22T05:52:48+03:00"
    },
    "created_at": "2020-09-29T17:01:39+03:00",
    "updated_at": "2021-12-22T05:52:48+03:00"
  },
  {
    "id": 19447,
    "message_count": 97,
    "unread_message_count": 0,
    "counterparty": "peer_nickname2",
    "last_chat_message": {
      "id": 277967,
      "chat_id": 19447,
      "sender": "my_nickname",
      "ad_id": null,
      "message": "hello",
      "created_at": "2021-12-22T05:52:04+03:00"
    },
    "created_at": "2020-10-05T23:57:39+03:00",
    "updated_at": "2021-12-22T05:52:04+03:00"
  }
]

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

HTTP Request

GET https://garantex.org/api/v2/otc/chats

Параметры

Параметр Обязательный Описание
limit нет Количество чатов, по умолчанию - 250
offset нет Сколько первых чатов пропустить, по умолчанию - 0

Получить сообщения чата

Получить сообщения выбранного чата:

curl -X GET --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/chats/{chat_id}/messages?limit={limit}&offset={offset}'

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

[
  {
    "id": 277966,
    "chat_id": 19447,
    "sender": "my_nickname",
    "ad_id": 3378,
    "message": "Сделка #41520 отменена",
    "deal_id": 41520,
    "kind": "canceled",
    "created_at": "2021-12-22T05:33:07+03:00"
  },
  {
    "id": 277965,
    "chat_id": 19447,
    "sender": "peer_nickname1",
    "ad_id": 3378,
    "message": "Продавец открыл сделку #41520 на сумму 100.00 RUB, к оплате / получению - 105.00 RUB",
    "deal_id": 41520,
    "kind": "seller_pending",
    "created_at": "2021-12-22T05:32:34+03:00"
  }
]

Запрос для получения списка сообщений по chat_id чата

HTTP Request

GET https://garantex.org/api/v2/otc/chats/{chat_id}/messages

Параметры

Параметр Обязательный Описание
chat_id да id выбранного чата
limit нет Количество сообщений, по умолчанию - 250
offset нет Сколько первых сообщений пропустить, по умолчанию - 0

Послать сообщение

Послать сообщение в чат:

curl -X POST --header 'Authorization: Bearer {JWT}' -F chat_id={chat_id} -F  -F  -F message={message}  'https://garantex.org/api/v2/otc/chats/message'

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

{
  "id": 277977,
  "chat_id": 19447,
  "sender": "my_nickname",
  "ad_id": null,
  "message": "asdf",
  "created_at": "2022-02-23T19:47:42+03:00"
}

Послать сообщение в чат, выбранный по одному из id. В параметрах должен быть указан хотя бы один из id - чата (chat_id), объявления (ad_id) или сделки (deal_id), к которым относится чат.

HTTP Request

POST https://garantex.org/api/v2/otc/chats/message

Параметры

Параметр Обязательный Описание
chat_id 1/3 id чата, куда нужно отправить сообщение
ad_id 1/3 id объявления, в чат которого надо отправить сообщение
deal_id 1/3 id сделки, в чат которой надо отправить сообщение
message да Сколько первых сообщений пропустить, по умолчанию - 0

Пометить прочитанным

Пометить прочитанными сообщения чата:

curl -X POST --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/chats/{chat_id}/mark_read'

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

{
  "id": 19447,
  "message_count": 98,
  "unread_message_count": 0,
  "counterparty": "peer_nickname1",
  "last_chat_message": {
    "id": 277977,
    "chat_id": 19447,
    "sender": "my_nickname",
    "ad_id": null,
    "message": "asdf",
    "created_at": "2022-02-23T19:47:42+03:00"
  },
  "created_at": "2020-10-05T23:57:39+03:00",
  "updated_at": "2022-02-23T19:47:42+03:00"
}

Пометить прочитанными сообщения чата, выбранного по chat_id.

HTTP Request

POST https://garantex.org/api/v2/otc/chats/{chat_id}/mark_read

Параметры

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

Все объявления

Список всех объявлений

Получить список всех объявлений:

curl -X GET 'https://garantex.org/api/v2/otc/ads?direction={direction}&only_available={only_available}'

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

[
  {
    "id": 3388,
    "member": "peer_nickname1",
    "min": "1.0",
    "max": "1111111.0",
    "payment_method": "fffff",
    "description": "fffff",
    "direction": "sell",
    "price": "1.01",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  {
    "id": 3377,
    "member": "peer_nickname2",
    "min": "3.0",
    "max": "3000000.0",
    "payment_method": "ууууу",
    "description": "ууууу",
    "direction": "sell",
    "price": "1.03",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": true
  }
]

Запрос возвращает список всех объявлений с возможностью фильтрации

HTTP Request

GET https://garantex.org/api/v2/otc/ads

Параметры

Параметр Обязательный Описание
direction да Направление: sell or buy
amount нет Фильтрация по сумме желаемой сделки
currency нет Код фиатной валюты. Например, rub, uah, usd
nickname нет Nickname второго участника сделки
only_available нет Показать только доступные сделки. true или false, по умолчанию true
payment_method нет Поиск по способу оплаты, включение подстроки

Детали объявления

Получить детали по id объявления:

curl -X GET 'https://garantex.org/api/v2/otc/ads/{id}'

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

{
  "id": 3377,
  "version_id": 17,
  "member": "peer_nickname",
  "min": "3.0",
  "max": "3000000.0",
  "payment_method": "ууууу",
  "description": "ууууу",
  "direction": "sell",
  "price": "1.03",
  "currency": "rub",
  "fiat_currency": "rub",
  "min_rating": null,
  "verified_only": true
}

Запрос возвращает детали объявления по указанному id объявления

HTTP Request

GET https://garantex.org/api/v2/otc/ads/{id}

Параметры

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

P2P-cделки

Список своих сделок

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

curl -X GET --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/deals'

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

[
  {
    "id": 41520,
    "amount": "100.0",
    "volume": "105.0",
    "price": "1.05",
    "fee": "0.1",
    "buyer": "my_nickname",
    "seller": "peer_nickname1",
    "state": "canceled",
    "currency": "rub",
    "fiat_currency": "rub",
    "payment_details": null,
    "chat_id": 19447,
    "direction": "buy",
    "completed_at": null,
    "created_at": "2021-12-22T05:32:34+03:00"
  },
  {
    "id": 41519,
    "amount": "11.0",
    "volume": "11.55",
    "price": "1.05",
    "fee": "0.01",
    "buyer": "my_nickname",
    "seller": "peer_nickname2",
    "state": "waiting",
    "currency": "rub",
    "fiat_currency": "rub",
    "payment_details": null,
    "chat_id": 19447,
    "direction": "buy",
    "completed_at": null,
    "created_at": "2021-12-22T05:25:27+03:00"
  }
]

Запрос возвращает список своих сделок с возможностью фильтрации

HTTP Request

GET https://garantex.org/api/v2/otc/deals

Параметры

Параметр Обязательный Описание
currency нет Код фиатной валюты. Например, rub, uah, usd
state нет Фильтрация по статусу сделки. pending, waiting, paid, arbitration, canceled, completed. Если статус не задан, выводятся все активные сделки
counterparty нет Nickname второго участника сделки
direction нет Направление сделки - sell, buy. По умолчанию выводятся все.
limit нет Количество сделок, по умолчанию - 250
offset нет Через сколько первых сделок начать выводить остальные сделки
start_time нет Время создания сделок, нижняя граница. Без ограничений (date-time)
end_time нет Время создания сделок, верхняя граница. Ограничение - текущий момент (date-time)
order_by нет Сортировка по id, asc или desc, по умолчанию desc

Детали сделки

Получить детали по id сделки:

curl -X GET --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/deals/{id}'

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

{
  "id": 41514,
  "ad": {
    "id": 3379,
    "member": "my_nickname",
    "payment_method": "hhhhhhh",
    "description": "hhhhhhh",
    "direction": "sell",
    "price": "0.9",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "1000.0",
  "volume": "900.0",
  "price": "0.9",
  "fee": "1.0",
  "buyer": "peer_nickname",
  "seller": "my_nickname",
  "state": "canceled",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": null,
  "rating_by_seller": null,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "sell",
  "completed_at": null,
  "created_at": "2021-12-22T05:06:08+03:00"
}

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

HTTP Request

GET https://garantex.org/api/v2/otc/deals/{id}

Параметры

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

Создание сделки

Создать новую P2P-сделку:

curl -X POST --header 'Authorization: Bearer {JWT}' -d 'ad_id={ad_id}&amount={amount}&ad_version={ad_version}&payment_info={payment_info}'  'https://garantex.org/api/v2/otc/deals'

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

{
  "id": 41530,
  "ad": {
    "id": 3206,
    "member": "peer_nickname",
    "payment_method": "uuuuuu",
    "description": "uuuuuu",
    "direction": "sell",
    "price": "0.99",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "444.0",
  "volume": "439.56",
  "price": "0.99",
  "fee": "0.0",
  "buyer": "my_nickname",
  "seller": "peer_nickname",
  "state": "pending",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": null,
  "rating_by_seller": null,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "buy",
  "completed_at": null,
  "created_at": "2022-02-28T19:24:25+03:00"
}

Запрос создает сделку и возвращает детали созданной сделки

HTTP Request

POST https://garantex.org/api/v2/otc/deals

Параметры

Параметр Обязательный Описание
ad_id да id объявления, по которому создается сделка
amount да Сумма сделки в валюте объявления
ad_version нет id версии объявления, чтобы убедиться, что объявление не было слишком сильно изменено
payment_info нет Платежные реквизиты, применимо только к объявлениям о покупке

Изменить рейтинг сделки

Изменить рейтинг сделки:

curl -X PUT --header 'Authorization: Bearer {JWT}' -d 'rating={rating}'  'https://garantex.org/api/v2/otc/deals/{id}/rate'

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

{
  "id": 41514,
  "ad": {
    "id": 3379,
    "member": "my_nickname",
    "payment_method": "hhhhhhh",
    "description": "hhhhhhh",
    "direction": "sell",
    "price": "0.9",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "1000.0",
  "volume": "900.0",
  "price": "0.9",
  "fee": "1.0",
  "buyer": "peer_nickname",
  "seller": "my_nickname",
  "state": "canceled",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": null,
  "rating_by_seller": 2,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "sell",
  "completed_at": null,
  "created_at": "2021-12-22T05:06:08+03:00"
}

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

HTTP Request

PUT https://garantex.org/api/v2/otc/deals/{id}/rate

Параметры

Параметр Обязательный Описание
id да id сделки, которой изменяется рейтинг
rating да выставляемая оценка

Указание/изменение платежных реквизитов

Указать/изменить реквизиты:

curl -X PUT --header 'Authorization: Bearer {JWT}' -d 'payment_details={payment_details}' 'https://garantex.org/api/v2/otc/deals/{id}/payment_details'

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

{
  "id": 41524,
  "ad": {
    "id": 3217,
    "member": "peer_nickname",
    "payment_method": "uuuuuu",
    "description": "uuuuuuu",
    "direction": "buy",
    "price": "1.01",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "200.0",
  "volume": "202.0",
  "price": "1.01",
  "fee": "0.0",
  "buyer": "peer_nickname",
  "seller": "my_nickname",
  "state": "waiting",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": "ffff",
  "rating_by_seller": null,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "sell",
  "completed_at": null,
  "created_at": "2022-02-24T18:47:50+03:00"
}

Установить новые платежные реквизиты. Подходит только для случаев, когда вы - продавец, а сделка - в статусе waiting или pending. Запрос возвращает детали сделки с измененными реквизитами.

HTTP Request

PUT https://garantex.org/api/v2/otc/deals/{id}/payment_details

Параметры

Параметр Обязательный Описание
id да id сделки, которой изменяются платежные реквизиты
payment_details да текст платежных реквизитов

Послать сделку на арбитраж

Послать сделку на арбитраж:

curl -X PUT --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/deals/{id}/arbitration'

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

{
  "id": 41525,
  "ad": {
    "id": 3206,
    "member": "peer_nickname",
    "payment_method": "uuuuuu",
    "description": "uuuuuu",
    "direction": "sell",
    "price": "0.99",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "333.0",
  "volume": "329.67",
  "price": "0.99",
  "fee": "0.0",
  "buyer": "my_nickname",
  "seller": "peer_nickname",
  "state": "arbitration",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": null,
  "rating_by_seller": null,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "buy",
  "completed_at": null,
  "created_at": "2022-02-25T10:28:08+03:00"
}

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

HTTP Request

PUT https://garantex.org/api/v2/otc/deals/{id}/arbitration

Параметры

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

Завершить сделку

Завершить сделку:

curl -X PUT --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/deals/{id}/complete'

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

{
  "id": 41515,
  "ad": {
    "id": 3379,
    "member": "my_nickname",
    "payment_method": "hhhhhhh",
    "description": "hhhhhhh",
    "direction": "sell",
    "price": "0.9",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "555.0",
  "volume": "499.5",
  "price": "0.9",
  "fee": "0.56",
  "buyer": "peer_nickname",
  "seller": "my_nickname",
  "state": "completed",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": null,
  "rating_by_seller": null,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "sell",
  "completed_at": "2022-02-25T14:45:43+03:00",
  "created_at": "2021-12-22T05:07:16+03:00"
}

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

HTTP Request

PUT https://garantex.org/api/v2/otc/deals/{id}/complete

Параметры

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

Отменить сделку

Отменить сделку:

curl -X PUT --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/deals/{id}/cancel'

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

{
  "id": 41526,
  "ad": {
    "id": 3206,
    "member": "peer_nickname",
    "payment_method": "uuuuuu",
    "description": "uuuuuu",
    "direction": "sell",
    "price": "0.99",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "123.0",
  "volume": "121.77",
  "price": "0.99",
  "fee": "0.0",
  "buyer": "my_nickname",
  "seller": "peer_nickname",
  "state": "canceled",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": null,
  "rating_by_seller": null,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "buy",
  "completed_at": null,
  "created_at": "2022-02-25T14:52:56+03:00"
}

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

HTTP Request

PUT https://garantex.org/api/v2/otc/deals/{id}/cancel

Параметры

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

Оплатить сделку

Пометить оплаченной сделку:

curl -X PUT --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/deals/{id}/set_paid'

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

{
  "id": 41527,
  "ad": {
    "id": 3206,
    "member": "peer_nickname",
    "payment_method": "uuuuuu",
    "description": "uuuuuu",
    "direction": "sell",
    "price": "0.99",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "444.0",
  "volume": "439.56",
  "price": "0.99",
  "fee": "0.0",
  "buyer": "my_nickname",
  "seller": "peer_nickname",
  "state": "paid",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": null,
  "rating_by_seller": null,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "buy",
  "completed_at": null,
  "created_at": "2022-02-25T18:16:18+03:00"
}

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

HTTP Request

PUT https://garantex.org/api/v2/otc/deals/{id}/set_paid

Параметры

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

Принять сделку

Принять сделку:

curl -X PUT --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/deals/{id}/accept'

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

{
  "id": 41529,
  "ad": {
    "id": 3378,
    "member": "my_nickname",
    "payment_method": "ggggggf",
    "description": "ggggggf",
    "direction": "buy",
    "price": "1.45",
    "currency": "rub",
    "fiat_currency": "rub",
    "min_rating": null,
    "verified_only": false
  },
  "amount": "90.0",
  "volume": "130.5",
  "price": "1.45",
  "fee": "0.09",
  "buyer": "my_nickname",
  "seller": "peer_nickname",
  "state": "pending",
  "currency": "rub",
  "fiat_currency": "rub",
  "payment_details": "hgvhv",
  "rating_by_seller": null,
  "rating_by_buyer": null,
  "chat_id": 19447,
  "direction": "buy",
  "completed_at": null,
  "created_at": "2022-02-25T19:59:24+03:00"
}

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

HTTP Request

PUT https://garantex.org/api/v2/otc/deals/{id}/accept

Параметры

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

Свои объявления

Список своих объявлений

Получить список своих объявлений

curl -X GET --header 'Authorization: Bearer {JWT}' "https://garantex.org/api/v2/otc/my/ads"

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

[
  {
    "id": 3380,
    "min": "1.0",
    "max": "1.0",
    "real_max": "1.0",
    "price": "0.0",
    "payment_method": "rrrrrrrrrrrrr",
    "description": "rrrrrrrrrrrrrr",
    "direction": "buy",
    "active": false,
    "private": false,
    "currency": "rub",
    "fiat_currency": "rub",
    "auto_increase": false,
    "rating": null,
    "only_verified": false,
    "edited_at": "2021-12-20T00:19:55+03:00",
    "created_at": "2021-12-13T00:39:24+03:00"
  },
  {
    "id": 3379,
    "min": "4.0",
    "max": "7200369.35",
    "real_max": "7200369.35",
    "price": "0.9",
    "payment_method": "hhhhhhh",
    "description": "hhhhhhh",
    "direction": "sell",
    "active": false,
    "private": false,
    "currency": "rub",
    "fiat_currency": "rub",
    "auto_increase": true,
    "rating": 100,
    "only_verified": true,
    "edited_at": "2021-12-22T05:22:55+03:00",
    "created_at": "2021-12-13T00:37:31+03:00"
  }
]

Запрос возвращает список всех объявлений авторизованного пользователя, с возможностью фильтрации

HTTP Request

GET https://garantex.org/api/v2/otc/my/ads

Параметры

Параметр Обязательный Описание
direction нет Направление: sell or buy. По умолчанию: все направления
active нет Активные объявления или неактивные, true или false. По умолчанию: все объявления

Детали объявления

Получить детали по id объявления:

curl -X GET --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/my/ads/{id}'

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

{
  "id": 3271,
  "min": "10.0",
  "max": "7200369.35",
  "real_max": "7200369.35",
  "price": "0.99",
  "payment_method": "llllllllll",
  "description": "llllllllll",
  "direction": "sell",
  "active": false,
  "private": false,
  "currency": "rub",
  "fiat_currency": "rub",
  "auto_increase": true,
  "rating": 500,
  "only_verified": false,
  "edited_at": "2021-12-13T00:39:44+03:00",
  "created_at": "2021-01-20T18:06:42+03:00"
}

Запрос возвращает детали объявления по указанному id объявления

HTTP Request

GET https://garantex.org/api/v2/otc/my/ads/{id}

Параметры

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

Удалить объявление

Удалить объявление по id:

curl -X DELETE --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/my/ads/{id}'

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

no content

Удаление объявления

HTTP Request

DELETE https://garantex.org/api/v2/otc/my/ads/{id}

Параметры

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

Создать объявление

Создать объявление:

curl -X POST --header 'Authorization: Bearer {JWT}' -d 'currency={currency}&min={min}&max={max}&price={price}&direction={direction}&description={description}&payment_method={payment_method}&active={active}&private={private}&auto_increase={auto_increase}&only_verified={only_verified}' 'https://garantex.org/api/v2/otc/my/ads'

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

{
  "id": 3389,
  "min": "1.0",
  "max": "111.0",
  "real_max": "111.0",
  "price": "1.1",
  "payment_method": "yadayada",
  "description": "abc",
  "direction": "sell",
  "active": false,
  "private": false,
  "currency": "rub",
  "fiat_currency": "rub",
  "auto_increase": false,
  "rating": null,
  "only_verified": false,
  "edited_at": "2022-02-28T19:35:03+03:00",
  "created_at": "2022-02-28T19:35:03+03:00"
}

Запрос возвращает созданное объявление.

HTTP Request

POST https://garantex.org/api/v2/otc/my/ads

Параметры

Параметр Обязательный Описание
currency да Код фиатной валюты. Например, rub, uah, usd
min да Минимальная сумма
max да Максимальная сумма
price да Цена
direction да Направление: sell или buy
description да Описание
payment_method да Способ оплаты
active нет Активное ли объявление, true или false, по умолчанию false
private нет Приватное ли объявление, true или false, по умолчанию false
auto_increase нет Увеличивать ли максимум объявления до баланса авторизованного пользователя автоматически. true или false, по умолчанию false
only_verified нет Объявление доступно только верифицированным пользователям. true или false, по умолчанию false
rating нет Минимальный рейтинг контрагента. NULL, 100, 500 и 1000. По умолчанию - без ограничений

Редактировать объявление

Редактировать объявление:

curl -X PUT --header 'Authorization: Bearer {JWT}' -d 'min={min}&max={max}&price={price}&description={description}&payment_method={payment_method}&active={active}&private={private}&auto_increase={auto_increase}&only_verified={only_verified}&rating={rating}' 'https://garantex.org/api/v2/otc/my/ads/{id}'

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

{
  "id": 3215,
  "min": "3999.0",
  "max": "888888.0",
  "real_max": "888888.0",
  "price": "0.4",
  "payment_method": "some more text",
  "description": "some text",
  "direction": "buy",
  "active": true,
  "private": true,
  "currency": "rub",
  "fiat_currency": "rub",
  "auto_increase": true,
  "rating": 100,
  "only_verified": true,
  "edited_at": "2022-02-28T16:03:21+03:00",
  "created_at": "2020-12-09T23:05:43+03:00"
}

Запрос возвращает отредактированное объявление.

HTTP Request

PUT https://garantex.org/api/v2/otc/my/ads/{id}

Параметры

Параметр Обязательный Описание
id да id объявления
min нет Минимальная сумма
max нет Максимальная сумма
price нет Цена
description нет Описание
payment_method нет Способ оплаты
active нет Активное ли объявление, true или false, по умолчанию false
private нет Приватное ли объявление, true или false, по умолчанию false
auto_increase нет Увеличивать ли максимум объявления до баланса авторизованного пользователя автоматически. true или false, по умолчанию false
only_verified нет Объявление доступно только верифицированным пользователям. true или false, по умолчанию false
rating нет Минимальный рейтинг контрагента. NULL, 100, 500 и 1000. По умолчанию - без ограничений

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

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

curl -X PUT --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/my/ads/{id}/toggle_private'

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

{
  "id": 3215,
  "min": "3.0",
  "max": "33.0",
  "real_max": "33.0",
  "price": "2.0",
  "payment_method": "some more text",
  "description": "some text",
  "direction": "buy",
  "active": true,
  "private": false,
  "currency": "rub",
  "fiat_currency": "rub",
  "auto_increase": true,
  "rating": 100,
  "only_verified": true,
  "edited_at": "2022-02-28T18:11:50+03:00",
  "created_at": "2020-12-09T23:05:43+03:00"
}

Запрос переключает статус приватности объявления. Если объявление было приватным, оно становится публичным и наоборот.

HTTP Request

PUT https://garantex.org/api/v2/otc/my/ads/{id}/toggle_private

Параметры

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

Переключить активность объявления

Переключить активность объявления:

curl -X PUT --header 'Authorization: Bearer {JWT}' 'https://garantex.org/api/v2/otc/my/ads/{id}/toggle_active'

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

{
  "id": 3215,
  "min": "3.0",
  "max": "33.0",
  "real_max": "33.0",
  "price": "2.0",
  "payment_method": "some more text",
  "description": "some text",
  "direction": "buy",
  "active": false,
  "private": false,
  "currency": "rub",
  "fiat_currency": "rub",
  "auto_increase": true,
  "rating": 100,
  "only_verified": true,
  "edited_at": "2022-02-28T18:49:09+03:00",
  "created_at": "2020-12-09T23:05:43+03:00"
}

Запрос переключает статус активности объявления. Если объявление было активным, оно становится неактивным, и наоборот. Неактивное объявление выключается из общего списка объявлений в P2P.

HTTP Request

PUT https://garantex.org/api/v2/otc/my/ads/{id}/toggle_active

Параметры

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

Отключить все объявления

Отключить все объявления:

curl -X PUT --header 'Authorization: Bearer {JWT}' -d 'direction={direction}' 'https://garantex.org/api/v2/otc/my/ads/{id}/deactivate_all'

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

[
  {
    "id": 3380,
    "min": "1.0",
    "max": "1.0",
    "real_max": "1.0",
    "price": "0.0",
    "payment_method": "rrrrrrrrrrrrr",
    "description": "rrrrrrrrrrrrrr",
    "direction": "buy",
    "active": false,
    "private": false,
    "currency": "rub",
    "fiat_currency": "rub",
    "auto_increase": false,
    "rating": null,
    "only_verified": false,
    "edited_at": "2022-02-28T19:05:57+03:00",
    "created_at": "2021-12-13T00:39:24+03:00"
  },
  {
    "id": 3378,
    "min": "2.0",
    "max": "719637.15",
    "real_max": "719637.15",
    "price": "1.45",
    "payment_method": "ggggggf",
    "description": "ggggggf",
    "direction": "buy",
    "active": false,
    "private": false,
    "currency": "rub",
    "fiat_currency": "rub",
    "auto_increase": true,
    "rating": null,
    "only_verified": false,
    "edited_at": "2022-02-28T19:05:57+03:00",
    "created_at": "2021-12-13T00:36:45+03:00"
  }
]

Отключить все объявления (статус активности active выставить в false). Можно также отключить только объявления по покупке или только по продаже. Запрос возвращает список деактивированных объявлений

HTTP Request

PUT https://garantex.org/api/v2/otc/my/ads/{id}/deactivate_all

Параметры

Параметр Обязательный Описание
direction нет направление сделок: sell или buy

Сallbacks

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

Ссылки для обратных вызовов прописываются в форме API Callback в настройках профиля: https://garantex.org/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 - внутренняя ошибка сервера.
502 Bad Gateway - внутренняя ошибка сервера, попробуйте повторить запрос позже.
503 Service Unavailable - внутренняя ошибка сервера, попробуйте повторить запрос позже.

Инструкции