История изменений
24.03.2022
- Документация приведена к актуальному состоянию
- Добавлен P2P
26.07.2021
- Coingecko added
14.11.2020
- получение дополнительных депозит адресов: POST /deposit_address, GET /deposit_address/details
09.11.2020
- параметры iss, sub, iat в запросе JWT больше не требуются
- запрос /gateway_types теперь требует авторизации
- добавлены запросы /depositcodes/create и /depositcodes/redeem для работы с кодами Garantex
10.05.2020
- первая публичная версия API
Введение
Для начала работы с API, нужно:
связаться с саппортом и попросить включить доступ к API
в настройка профиля включить Google Authenticator
в настройках профиля создать пару ключей и ОБЯЗАТЕЛЬНО сохранить приватный ключ к себе - он будет показан только один раз и нигде на стороне сервера не сохраняется.
выставить ограничения для ключа: тип доступа (read-only, trading, withdraw), время жизни JWT и список ip адресов с которых возможен доступ.
Тестирование
Для тестирования работы с 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 запроса:
- exp - опциональный, время жизни JWT запроса. Не устанавливать его слишком большим и не оставляйте пустым, если вы не планируете переиспользовать запрос многократно.
- jti - обязательный, уникальный идентификатор запроса.
- алгоритм подписи JWT - RS256
- все остальные опциональные параметры не используются и устанавливать их не обязательно.
Для тестов можно использовать форму получения JWT токена на сайте, по адресу:
- https://stage.garantex.biz/api_test - стейдж, тестовый сервер.
- https://garantex.org/api_test - продакшн, боевой сервер.
Для декодирования и проверки токенов можно использовать онлайн отладчик на сайте 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 запросов в час.
Есть группа запросов для которых установлены более жёсткие ограничения:
POST /api/v2/orders
POST /api/v2/orders/clear
POST /api/v2/withdraws/create
POST /api/v2/depositcodes
POST /api/v2/deposit_address
для них лимиты 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"
}
]
Запрос возвращает список всех активных направлений ввода / вывода для фиата
- требуемый уровень доступа: read-only
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"
}
]
Запрос для получения списка всех счетов пользователя и остатков по ним.
- требуемый уровень доступа: read-only
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"
}
Запрос для получения остатков по счёту в конкретной валюте.
- требуемый уровень доступа: read-only
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"
}
]
}
Запрос для получения информации о текущем пользователе и балансе счетов.
- требуемый уровень доступа: read-only
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 операции
- требуемый уровень доступа: read-only
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"
}
]
Запрос возвращает историю сделок пользователя по выбранному рынку.
- требуемый уровень доступа: read-only
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"
}
Запрос создаёт завку на покупку / продажу для выбранного рынка.
- требуемый уровень доступа: trading
HTTP Request
POST https://garantex.org/api/v2/orders
Параметры
Параметр | Обязательный | Описание |
---|---|---|
market | да | ID рынка |
volume | да | Cумма в валюте продажи |
side | да | Направление заявки, buy или sell |
ord_type | да | Тип заявки
|
fix_price | нет | Фикcированная цена, необходим для ord_type: limit |
factor | нет | Цена в процентах от базового рынка, необходим для ord_type: factor, либо максимальное отклонение в процентах от базового рынка для ord_type: market или default |
Типы заявок
- limit: классический тип ордера, исполнение по заданной цене. Не предназначен для криптопар.
- factor: цена исполения ордера определяется как отклонение от цены целевого рынка. Для btcrub это композит Binance BTCUSDT * MOEX USDRUB_TOM, для usdtrub - пара MOEX USDRUB_TOM. Не предназначен для криптопар.
- default: исполнение по рынку, сумма указывается в той валюте которая у вас есть. То есть, для sell btсrub это BTC, для buy btcrub - RUB.
- market: исполнение по рынку, сумма указывается в той валюте которую вы хотите получить. То есть, для sell btсrub это RUB, для buy btcrub - BTC.
Цена заявки
- fix_price: классический вариант, исполнение по указанной цене пары.
- factor: процент отклонения от цены целевого рынка. Минимальное значение: -0.2, максимальное: +0.2.
Получить список заявок
Получить список заявок
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"
}
]
Запрос возвращает список своих заявок с возможностью фильтрации
- требуемый уровень доступа: read-only
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
- требуемый уровень доступа: read-only
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
- требуемый уровень доступа: trading
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"
}
]
Запрос для отмены всех активных заявок, с возможностью фильтрации по рынку / направлению
- требуемый уровень доступа: trading
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"
}
]
Получение списка депозитов пользователя.
- требуемый уровень доступа: read-only
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
- требуемый уровень доступа: read-only
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 транзакции
- требуемый уровень доступа: read-only
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
}
Создание заявки на внос средств.
- требуемый уровень доступа: read-only
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"
}
Получение актуального адреса для депозита крипты
- требуемый уровень доступа: read-only
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
}
Получение дополнительного адреса для депозита крипты
- требуемый уровень доступа: read-only
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"
}
Получение детальной информации о конкретном депозит адресе
- требуемый уровень доступа: read-only
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"
}
Получение детальной информации о конкретном депозит адресе
- требуемый уровень доступа: read-only
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"
}
]
Получение списка всех депозит-адресов пользователя
Запрос позволяет получить все депозит-адреса авторизованного пользователя для определенной валюты или блокчейна. Обязательно указать только один из двух параметров.
- требуемый уровень доступа: read-only
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
}
Вывод в средств в код.
- требуемый уровень доступа: withdraw
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"
}
Депозит кода.
- требуемый уровень доступа: read-only
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"
}
Возвращение денег из своего кода на баланс.
- требуемый уровень доступа: read-only
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"
}
Получение деталей кода
Получение детальной информации по коду
- требуемый уровень доступа: read-only
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"
}
]
Получение списка своих кодов с возможностью фильтрации
- требуемый уровень доступа: read-only
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"
},
Запрос возвращает список заявок на вывод с разбиением по страницам. Заявки выводятся отсортированные от новых к старым.
- требуемый уровень доступа: read-only
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 может принимать следующие значения:
- submitted: создан
- canceled: отменен
- accepted: принят к обработке
- suspected: отменён службой безопасности как подозретельный
- rejected: не удался
- processing: обрабатывается
- pending: обрабатывается
- queued: обрабатывается
- succeed: успешно завершён
- failed: не удался
- toinspect: на ручной проверке
- confirming: подтверждение в блокчейне
- blocked: заблокирован службой безопасности
Информация о выводе
Получить детали вывода по 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
- требуемый уровень доступа: read-only
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
}
Запрос для создания заявки на вывод крипты / фиата. Обратите внимание, набор параметров запроса для них различается!
- требуемый уровень доступа: withdraw
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-секции биржи, необходимо следующее:
Подключить 2-х факторную аутентификацию на сайте или в приложении
Завести P2P-никнейм на сайте или в приложении
Просматривать чужие P2P-объявления, отправлять по ним сделки
Создавать свои объявления, получать по ним сделки
Пункты 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"
}
]
Запрос для получения списка чатов для залогиненного юзера.
- требуемый уровень доступа: read-only
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 чата
- требуемый уровень доступа: read-only
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), к которым относится чат.
- требуемый уровень доступа: otc
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.
- требуемый уровень доступа: otc
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"
}
]
Запрос возвращает список своих сделок с возможностью фильтрации
- требуемый уровень доступа: read-only
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 сделки
- требуемый уровень доступа: read-only
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"
}
Запрос создает сделку и возвращает детали созданной сделки
- требуемый уровень доступа: otc
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. Возвращаются детали сделки с измененным рейтингом
- требуемый уровень доступа: otc
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. Запрос возвращает детали сделки с измененными реквизитами.
- требуемый уровень доступа: otc
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"
}
Отправить сделку на арбитраж. Запрос возвращает детали сделки с измененным статусом.
- требуемый уровень доступа: otc
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 или на арбитраже.
- требуемый уровень доступа: otc
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"
}
Отменить сделку. Запрос возвращает детали сделки с измененным статусом.
- требуемый уровень доступа: otc
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"
}
Отметить сделку оплаченной. Запрос возвращает детали сделки с измененным статусом.
- требуемый уровень доступа: otc
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"
}
Отметить сделку принятой. Запрос возвращает детали сделки с измененным статусом.
- требуемый уровень доступа: otc
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"
}
]
Запрос возвращает список всех объявлений авторизованного пользователя, с возможностью фильтрации
- требуемый уровень доступа: read-only
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 объявления
- требуемый уровень доступа: read-only
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
Удаление объявления
- требуемый уровень доступа: otc
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"
}
Запрос возвращает созданное объявление.
- требуемый уровень доступа: otc
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"
}
Запрос возвращает отредактированное объявление.
- требуемый уровень доступа: otc
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"
}
Запрос переключает статус приватности объявления. Если объявление было приватным, оно становится публичным и наоборот.
- требуемый уровень доступа: otc
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.
- требуемый уровень доступа: otc
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). Можно также отключить только объявления по покупке или только по продаже. Запрос возвращает список деактивированных объявлений
- требуемый уровень доступа: otc
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
|
тип объекта
|
id | Integer | id объекта |
state | String | тип события / состояние объекта |
все остальные поля для каждого типа объекта свои, и совпадают с тем что возвращается в обычных API запросах для этого объекта.
Типы событий различаются для разных объектов.
Возможные типы:
- сделки
- created: сделка проведена
- заявки
- done: исполнена
- cancel: отменена
- депозиты
- submitted: создан
- accepted: зачислен
- rejected: отменён
- suspected: заблокирован службой безопасности
- выводы
- processing: отправляется
- succeed: завершён
- confirming: подтверждается в блокчейне
- failed: не удался
- rejected: отменён
- suspected: отменён службой безопасности
Имейте ввиду, что для фиатных и крипто валют последовательность статусов вывода будет разной, а для разных типов выводов часть промежуточных статусов может быть пропущена.
Ошибки
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 - внутренняя ошибка сервера, попробуйте повторить запрос позже. |