FORMAT: 1A HOST: https://core.cryptohub24.net/
API Cryptohub (RU)
Введениe
CryptoHub — это решение для приёма и обработки криптовалютных платежей, которое работает напрямую с блокчейнами без посредников. Платформа агрегирует протоколы различных сетей и взаимодействует со специализированными сервисами конкретных валют, обеспечивая полностью автономный, стабильный и безопасный процессинг.
С помощью CryptoHub вы можете работать с полным циклом криптовалютных операций: создавать адреса, управлять балансами, проводить выплаты и возвраты, рассчитывать комиссии и проверять mpкорректность транзакций. Все процессы интегрированы в единое API, что позволяет гибко и безопасно подключать криптопроцессинг к вашим сервисам.
Oсновы
CryptoHub API построено на принципах REST. Каждый запрос в API связан с выполнением определенного действия.
CryptoHub API использует HTTP, что делает его совместимым с разработкой на любом языке программирования.
Basic URL: https://core.cryptohub24.net/<метод API>
API поддерживает POST и GET-запросы. POST использует JSON для аргументов, а GET — строковые запросы. API всегда возвращает ответ в формате JSON, независимо от типа запроса.
При отправке запроса к CryptoHub API нужно указать заголовок "Content-Type: application/json" и каждый раз генерировать подпись с помощью вашего секретного ключа. Секретный ключ необходимо получить через менеджеров CryptoHub.
Начало работы с API
Пoдключение:
До начала интеграции вам нужно выполнить несколько шагов:
-
Передайте вашему менеджеру(Cryptohub) список IP-адресов, которые будут использоваться для работы с API, чтобы мы добавили их в whitelist.
-
Передайте вашему менеджеру(Cryptohub) креды от риск-провайдера и
max_risk_rate— допустимый порог риска -
Получите у менеджера partner_id и секретный ключ для доступа к API.
-
Настроить обработку уведомлений от CryptoHub и проверку их подлинности.
-
Проинтегрироваться с CryptoHub по API
Пpоверка подлинности уведомлений
При поступлении уведомления от Cryptohub, проверьте его подлинность с помощью проверки IP-адреса и подписи.
Шаг 1. Проверка IP-адреса
Проверьте IP-адрес, с которого пришло уведомление. CryptoHub может присылать уведомления со следующих IP-адресов:
-
34.147.48.238 -
34.90.243.164
Формирование подписи [sign]
Для каждого запроса к API необходимо формировать подпись (X-Sign) с использованием вашего secretKey.
Подпись обеспечивает проверку подлинности и целостности данных.
Секретный ключ выдаётся менеджером CryptoHub. Храните его в защищённом месте и не публикуйте на сторонних ресурсах.
Алгоритм формирования подписи
- Сформировать тело запроса (JSON).
- При необходимости добавить параметр
timestamp(в зависимости от конкретного метода API). - Отсортировать все ключи тела по алфавиту.
- Сериализовать объект в строку JSON без пробелов и форматирования.
- Вычислить HMAC-SHA256 от полученной строки с использованием
secretKey. - Передать подпись в заголовке
X-Sign.
Пример pre-request скрипта (Postman / JavaScript)
// 1. Load secret (выдаётся менеджером)
const secretKey = pm.environment.get("secretKey") || "Ввести секретный ключ";
// 2. Parse request body
let bodyObj = {};
if (pm.request.body && pm.request.body.raw) {
try {
bodyObj = JSON.parse(pm.request.body.raw);
} catch (e) {
console.error("Invalid JSON body:", e);
}
}
// 3. Optionally add timestamp
// bodyObj.timestamp = Math.floor(Date.now() / 1000).toString();
// 4. Sort keys
const ordered = {};
Object.keys(bodyObj).sort().forEach(key => {
ordered[key] = bodyObj[key];
});
// 5. Stringify compactly
const jsonString = JSON.stringify(ordered);
// 6. Compute HMAC-SHA256 signature
const CryptoJS = require("crypto-js");
const msgBytes = CryptoJS.enc.Utf8.parse(jsonString);
const keyBytes = CryptoJS.enc.Utf8.parse(secretKey);
const signature = CryptoJS.HmacSHA256(msgBytes, keyBytes).toString(CryptoJS.enc.Hex);
// 7. Set the X-Sign header
pm.request.headers.upsert({
key: 'X-Sign',
value: signature
});
Pre-request Script - это автоматизированный сценарий, выполняемый перед отправкой API-запроса. Его основная функция - подготовка и валидация данных запроса в соответствии с требованиями API.
Интеграционное описание API методов [/integration]
#Group Интеграционное описание API методов
Создание крипто-адреса [/create_address]
С помощью данного метода можно генерировать криптовалютные адреса для различных блокчейнов через агрегатор Cryptohub. Используется для создания адресов депозитов, комиссионных и системных операций.
Prod URL: https://core.cryptohub24.net/create_address
Test URL: https://core.test-cryptohub24.net/create_address
Метод: POST
Типы адресов (AddressType):
| Параметр | Формат | Описание |
|---|---|---|
Push | Integer (1) | Адрес для оплаты без фиксированной суммы оплаты |
Wallet | Integer (3) | Кошелёк |
FeeWallet | Integer (4) | Кошелёк для комиссий |
System | Integer (5) | Системный кошелёк |
ClientWallet | Integer (6) | Кошелёк клиента (CryptoDeposit) |
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
Параметры для формирования подписи:
| Параметр | Формат | Описание |
|---|---|---|
blockchain | String | Название блокчейна. Пример: BTC, ETH |
type | Integer | Тип адреса. |
partner_id | Integer | Идентификатор партнёра в системе CryptoHub |
Входные данные(JSON Body):
| Параметр | Тип | Обязательность | Описание | Пример |
|---|---|---|---|---|
blockchain | String | Да | Название блокчейна | "Bitcoin" |
type | Integer | Да | Тип генерируемого адреса | 1 |
user_info | Object | Нет | Дополнительная информация о пользователе | {"user_id": "12345"} |
partner_id | String | Да | Внешний идентификатор партнёра | "partner_company" |
Опциональные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
need_activate | Boolean | Указывает, нужно ли активировать адрес. Применимо для сетей Tron, Ton | true / false |
Ответные данные:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
address | String | Адрес в выбранном блокчейне | 0x63b5192bbcbd3d30ad14837ab9fdded3b2935f7d |
cross_chains | String | Список блокчейнов, в которых этот адрес может использоваться дополнительно к запрошенному | BSC |
Создание крипто-адреса [POST]
-
Request
-
Headers
Content-Type: application/json X-Sign: sha256_signature
-
Body
{
"blockchain": "Bitcoin",
"type": 1,
"user_info": {
"user_id": "customer_12345"
},
"partner_id": "your_partner_id",
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"blockchain": "Ethereum",
"address": "0x63b5192bbcb d3d30ad14837a b9fdded3b2935f7d",
"cross_chains": ["BSC", "Polygon"]
},
"message": "OK",
"error_code": 0
}
-
-
Response 200 (Кейс: запрос не успешен)
-
Body
{
"result": false,
"data": {}
}
-
-
Response 400 (application/json)
-
Body
{
"error": "Invalid signature"
}
-
-
Response 400 (application/json)
-
Body
{
"error": "Address type not allowed"
}
-
-
Response 403 (application/json)
-
Body
{
"error": "Forbidden - IP not in whitelist"
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Создание выплаты [/create_withdraw]
С помощью данного метода можно инициировать вывод криптовалютных средств через агрегатор Cryptohub. Поддерживает различные типы выводов с настройкой комиссий и проверкой безопасности.
Prod URL: https://core.cryptohub24.net/create_withdraw
Test URL: https://core.test-cryptohub24.net/create_withdraw
Метод: POST
Подробнее о статусах транзакциях вы можете ознакомится тут
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
####Входные данные(JSON Body) Обязательные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
blockchain | string | Название блокчейна | "Bitcoin" |
token | string | Тикер токена | "BTC" |
from_address | string | Адрес отправителя | "bc1q...sender" |
to_address | string | Адрес получателя | "bc1q...receiver" |
withdraw_id | string | Уникальный ID вывода. При повторной передаче можно запросить обновление статуса вывода | "wd_12345" |
amount | string | Сумма для вывода | "1.0" |
partner_id | string | ID партнера | "partner_company" |
Опциональные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
fee_address | string | Адрес для комиссии. Опционально — для базовых валют (например, ETH в сети Ethereum). Обязательно — для небазовых токенов (например, USDT). | "bc1q...fee" |
fee_level | string | Уровень комиссии: low / medium / high | "medium" |
withdraw_type | integer | Тип вывода: 1 — Withdraw 2 — System 3 — Payout | 1 |
max_fee_price | string | Максимальная цена комиссии | "100.0" |
include_fee | bool | При true комиссия будет оплачена из объема вывода (если вывод в базовом токене) | true |
comment | string | Комментарий к транзакции, который необходимо добавить в блокчейне | "Payment for invoice #123" |
Ответные данные:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
blockchain | string | Адрес в разрезе блокчейна | 0x63b5192bbcbd3d30ad14837ab9fdded3b2935f7d |
token | string | Тикер токена | BTC |
amount | string | Сумма вывода | "1.0" |
hash | string | Хэш транзакции | "0xa12f...9bc3" |
status | int | Статус транзакции (см. таблицу статусов выше) | 5 |
from_address | string | Адрес отправителя | "bc1q...sender" |
to_address | string | Адрес получателя | "bc1q...receiver" |
transaction_id | int | ID транзакции | 123456 |
created | date | Дата создания | "2025-09-30T12:34:56Z" |
processed | date | Дата обработки | "2025-09-30T12:40:00Z" |
Примеры ответов с ошибками:
Недостаточно средств (error_code: 20)
{
"result": false,
"message": "Insufficient balance for transaction",
"error_code": 20
}
Создание выплаты [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"blockchain": "Ton",
"token": "USDT",
"from_address": "ВАШ_АДРЕС_ОТПРАВИТЕЛЯ",
"to_address": "ВАШ_АДРЕС_ПОЛУЧАТЕЛЯ",
"withdraw_id": "ВАШ_УНИКАЛЬНЫЙ_ID",
"amount": "1.0",
"partner_id": "ВАШ_PARTNER_ID",
"fee_address": "АДРЕС_ДЛЯ_КОМИССИИ",
"fee_level": "low",
"withdraw_type": 1,
"max_fee_price": "100.0",
"include_fee": true,
"comment": "Комментарий к транзакции"
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"blockchain": "BSC",
"token": "USDT",
"amount": "1.0",
"hash": "0x864b6815119bd852ef0e7a6e2ad481dfc705d1d80211adf72146d057ff0af",
"status": 1,
"from_address": "0xd1d5f52c21f655957a94a742acasff1cf81885b",
"to_address": "0x4d98388fb",
"transaction_id": 44879,
"created": "2022-09-27 15:58:39",
"processed": "2022-09-27 15:58:40"
},
"message": "OK",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Insufficient balance for transaction",
"error_code": 20
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid address format",
"error_code": 18
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Duplicate withdraw_id detected",
"error_code": 25
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner (some_external_partner_id) not found",
"error_code": 2000
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Получение баланса [/get_balance]
С помощью данного метода можно получить суммарный баланс по каждому токену по данным Cryptohub.
Prod URL: https://core.cryptohub24.net/get_balance
Test URL: https://core.test-cryptohub24.net/get_balance
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256.
Дополнительные параметры участвующие в подписи: timestamp . Формат: "%Y-%m-%d %H:%M:%S" Подробнее
####Входные данные(JSON Body):
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
blockchain | string | Название блокчейна | "Bitcoin" |
timestamp | number | UNIX timestamp с миллисекундами | 1659100099.278159 |
partner_id | string | ID партнера | "your_partner_id" |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции (true/false) |
data.balances | object | Балансы токенов в формате {"ТОКЕН": "СУММА"} |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки |
Получение баланса [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"blockchain": "Bitcoin",
"timestamp": 1659100099.278159,
"partner_id": "ВАШ_PARTNER_ID"
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"balances": {
"BTC": "0.512548060000000000"
}
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"data": null,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"data": null,
"message": "Blockchain is not active",
"error_code": 10
}
-
-
Response 500 (application/json)
- Body
Проверка риска адреса [/get_address_risk_rate]
С помощью данного метода можно проверить уровень риска криптовалютного адреса через интеграцию с сервисами анализа рисков.
Prod URL: https://core.cryptohub24.net/get_address_risk_rate
Test URL: https://core.test-cryptohub24.net/get_address_risk_rate
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256.
Подробнее
####Входные данные(JSON Body):
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
address | string | Криптовалютный адрес для проверки | "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k" |
blockchain | string | Название блокчейна адреса | "Bitcoin" |
partner_id | string | ID партнера | "your_partner_id" |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции |
data.address | string | Проверяемый адрес |
data.blockchain | string | Блокчейн адреса |
data.risk_rate | number | Уровень риска (от 0.0 до 1.0) |
data.risk_level | string | Уровень риска: low / medium / high / critical |
data.categories | array[] | Категории адреса (например: exchange, gambling, mining и т.д.) |
data.transactions_count | integer | Общее количество транзакций |
data.first_seen | string | Дата первого использования |
data.last_seen | string | Дата последней активности |
data.volume_received | string | Общий объем полученных средств |
data.volume_sent | string | Общий объем отправленных средств |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки (0 = успех) |
Описание результатов аналитической системы:
| Поле | Тип | Пример | Описание |
|---|---|---|---|
result | boolean | true | Флаг успешного выполнения запроса |
message | string | "Ok" | Сообщение об успехе или ошибке |
error_code | int | 0 | Код ошибки (0 = ошибок нет) |
data.blockchain | string | "Bitcoin" | Блокчейн, к которому относится адрес |
data.address | string | "tb1qv5kk494..." | Проверяемый адрес |
data.partner | string | "KVITUM" | Идентификатор партнёра |
data.recipient_address_risky.checked | boolean | true | Проверка на рискованность адреса выполнена |
data.white_or_black_address.checked | boolean | true | Проверка на наличие адреса в whitelist/blacklist выполнена |
data.crystal.start | string (datetime) | "2025-09-25 16:26:41" | Время старта проверки |
data.crystal.checked | boolean | true | Факт выполнения проверки |
data.crystal.risk_rate | float | 0.05 | Итоговый риск адреса (0–1) |
data.crystal.signals.atm | float | 0.01 | Риск, связанный с банкоматами |
data.crystal.signals.scam | float | 0.05 | Риск мошенничества |
data.crystal.signals.miner | float | 0.04 | Риск, связанный с майнингом |
data.crystal.signals.mixer | float | 0.02 | Использование миксеров |
data.crystal.signals.ransom | float | 0.1 | Вымогательство |
data.crystal.signals.gambling | float | 0.2 | Азартные игры |
data.crystal.signals.sanctions | float | 0.72 | Связь с санкционными адресами |
data.crystal.signals.dark_market | float | 0.03 | Даркнет-маркеты |
data.crystal.signals.marketplace | float | 0.08 | Нелегальные маркетплейсы |
data.crystal.signals.dark_service | float | 0.07 | Даркнет-сервисы |
data.crystal.signals.stolen_coins | float | 0.06 | Украденные монеты |
data.crystal.signals.seized_assets | float | 0.09 | Арестованные активы |
data.crystal.signals.illegal_service | float | 0.01 | Нелегальные сервисы |
data.crystal.signals.liquidity_pools | float | 0.01 | Подозрительные пулы ликвидности |
data.crystal.signals.exchange_licensed | float | 0.02 | Лицензированные биржи |
data.crystal.signals.exchange_fraudulent | float | 0.01 | Мошеннические биржи |
data.crystal.signals.exchange_unlicensed | float | 0.02 | Нелицензированные биржи |
data.crystal.signals.p2p_exchange_licensed | float | 0.01 | Лицензированные P2P-биржи |
data.crystal.signals.p2p_exchange_unlicensed | float | 0.08 | Нелицензированные P2P-биржи |
data.crystal.signals.child_exploitation | float | 0.4 | Детская эксплуатация (критический индикатор) |
data.crystal.signals.terrorism_financing | float | 0.35 | Финансирование терроризма |
data.crystal.signals.enforcement_action | float | 0.02 | Правоприменительные действия |
data.crystal.risk_reason | string | "High Risk" | Текстовое объяснение уровня риска |
data.max_risk_rate | float | 0.3 | Пороговое значение риска |
data.risk_rate | float | 0.05 | Рассчитанный риск адреса |
data.risky | boolean | false | Флаг «рискованный/нерискованный» с учётом порога |
Проверка риска адреса [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"address": "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k",
"blockchain": "Bitcoin",
"partner_id": "ВАШ_PARTNER_ID"
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"blockchain": "Bitcoin",
"address": "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k",
"partner": "example",
"recipient_address_risky": {
"checked": true
},
"white_or_black_address": {
"checked": true
},
"crystal": {
"start": "2025-09-25 16:26:41",
"checked": true,
"risk_rate": 0.05,
"signals": {
"atm": 0.01,
"scam": 0.05,
"miner": 0.04,
"mixer": 0.02,
"other": 0.02,
"ransom": 0.1,
"wallet": 0.01,
"payment": 0.01,
"gambling": 0.2,
"sanctions": 0.72,
"dark_market": 0.03,
"marketplace": 0.08,
"dark_service": 0.07,
"stolen_coins": 0.06,
"seized_assets": 0.09,
"illegal_service": 0.01,
"liquidity_pools": 0.01,
"exchange_licensed": 0.02,
"child_exploitation": 0.4,
"enforcement_action": 0.02,
"exchange_fraudulent": 0.01,
"exchange_unlicensed": 0.02,
"terrorism_financing": 0.35,
"p2p_exchange_licensed": 0.01,
"p2p_exchange_unlicensed": 0.08
},
"risk_reason": "High Risk"
},
"max_risk_rate": 0.3,
"risk_rate": 0.05,
"risky": false
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid address format",
"error_code": 18
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Blockchain is not active",
"error_code": 10
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Расчет комиссии [/calculate_fee]
С помощью данного метода можно рассчитать размер комиссии для транзакции в указанном блокчейне. Поддерживает различные уровни комиссий и автоматически определяет оптимальную сумму для разных типов блокчейнов.
Prod URL: https://core.cryptohub24.net/calculate_fee
Test URL: https://core.test-cryptohub24.net/calculate_fee
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256.
Дополнительные параметры участвующие в подписи: timestamp . Формат: "%Y-%m-%d %H:%M:%S" Подробнее
####Входные данные(JSON Body)
Обязательные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
blockchain | string | Название блокчейна | "Bitcoin" |
token | string | Тикер токена | "BTC" |
from_address | string | Адрес отправителя | "tb1q...sender" |
fee_level | string | Уровень комиссии: low / medium / high | "medium" |
partner_id | string | ID партнера | "your_partner_id" |
timestamp | number | UNIX timestamp с миллисекундами | 1659100099.27815 |
Опциональные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
amount | string | Сумма транзакции (опционально) | "0.1" |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции |
data.blockchain | string | Блокчейн транзакции |
data.token | string | Токен, в котором рассчитана комиссия (базовый токен блокчейна) |
data.fee | string | Рассчитанная комиссия |
data.fee_level | string | Использованный уровень комиссии |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки |
Расчет комиссии [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"blockchain": "Ton",
"token": "USDT",
"from_address": "EQCCkzV4N3rGJYYbCAhdCH4u8isQ3hc0jIWul6JUM8UXtVOT",
"fee_level": "low",
"partner_id": "1",
"timestamp": 1659100099.278159,
"amount": "0.1"
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"blockchain": "Ton",
"token": "TON",
"fee": "0.047",
"fee_level": "low"
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Blockchain is not active",
"error_code": 10
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Token is not active",
"error_code": 11
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid address format",
"error_code": 18
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid amount",
"error_code": 19
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Address not for blockchain",
"error_code": 27
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Получение баланса адреса [/get_address_balance]
С помощью данного метода можно получить балансы всех токенов для указанного криптовалютного адреса, принадлежащего партнеру.
Prod URL: https://core.cryptohub24.net/get_address_balance
Test URL: https://core.test-cryptohub24.net/get_address_balance
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256.
Дополнительные параметры участвующие в подписи: timestamp . Формат: "%Y-%m-%d %H:%M:%S" Подробнее
####Входные данные(JSON Body):
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
address | string | Криптовалютный адрес для проверки | "EQCCkzV4N3rGJYYbCAhdCH4u8isQ3hc0jIWul6JUM8UXtVOT" |
timestamp | number | UNIX timestamp с миллисекундами | 1659100099.278159 |
partner_id | string | ID партнера | "your_partner_id" |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции |
data.balances | object | Балансы по блокчейнам и токенам |
data.balances.{blockchain} | object | Балансы для конкретного блокчейна |
data.balances.{blockchain}.{token} | string | Баланс токена в строковом формате |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки (0 = успех) |
Получение баланса адреса [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"address": "EQCCkzV4N3rGJYYbCAhdCH4u8isQ3hc0jIWul6JUM8UXtVOT",
"timestamp": 1659100099.278159,
"partner_id": "ВАШ_PARTNER_ID"
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"balances": {
"Ton": {
"TON": "7.866401871",
"USDT": "8.089"
}
}
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid address format",
"error_code": 18
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Address not found for this partner",
"error_code": 27
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Возврат транзакции [/refund_transaction]
С помощью данного метода можно инициировать возврат средств для платежей (тип Payment). Поддерживает возвраты как в базовой валюте блокчейна, так и в токенах.
Prod URL: https://core.cryptohub24.net/refund_transaction
Test URL: https://core.test-cryptohub24.net/refund_transaction
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
####Входные данные(JSON Body): Обязательные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
transaction_id | string | ID исходной транзакции для возврата | "80211" |
to_address | string | Адрес для возврата средств | "TELiZxB4eiKrXqbrtSMMFj4c1wxZNzsswg" |
fee_address | string | Адрес для оплаты комиссии | "TAHZe1e2avW3zmNozcjohBCsruNiJ1bEY8" |
partner_id | string | ID партнера | "your_partner_id" |
Опциональные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
fee_level | string | Уровень комиссии: low/medium/high | "low" |
max_fee_price | string | Максимальная цена комиссии | "100.0" |
comment | string | Комментарий к возврату | "Refund for order #123" |
confirmations | integer | Количество подтверждений | 3 |
fee_limit | string | Ограничение затрат на комиссию |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции |
data.hash | string | Хэш транзакции возврата в блокчейне |
data.blockchain | string | Блокчейн транзакции |
data.token | string | Токен возврата |
data.amount | string | Сумма возврата |
data.status | integer | Статус транзакции возврата |
data.from_address | string | Адрес отправителя (исходный адрес транзакции) |
data.to_address | string | Адрес получателя возврата |
data.transaction_id | integer | ID новой транзакции возврата |
data.created | string | Время создания возврата |
data.processed | string | Время обработки возврата (если завершено) |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки |
Возврат транзакции [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"transaction_id": "80211",
"to_address": "TELiZxB4eiKrXqbrtSMMFj4c1wxZNzsswg",
"fee_address": "TAHZe1e2avW3zmNozcjohBCsruNiJ1bEY8",
"partner_id": "your_partner_id",
"fee_level": "low",
"max_fee_price": "100.0",
"comment": "Refund for order #123",
"confirmations": 3,
"fee_limit": "0.1"
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"hash": "01158a9062abbe04cb417ae334fc98d9fa9e7f83181163776406661bfa4ca8f1",
"blockchain": "Tron",
"token": "TRX",
"amount": "10.000000000000000000",
"status": 5,
"from_address": "TAHZe1e2avW3zmNozcjohBCsruNiJ1bEY8",
"to_address": "TELiZxB4eiKrXqbrtSMMFj4c1wxZNzsswg",
"transaction_id": 80212,
"created": "2025-09-25 12:37:20",
"processed": "2025-09-25 12:38:31"
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Refund already created for this transaction",
"error_code": 22
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Balance on address not enough for refund",
"error_code": 20
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Refund on our address prohibited",
"error_code": 23
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Fee address required",
"error_code": 24
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Валидация адреса [/validate_address]
С помощью данного метода можно проверить валидность и активность криптовалютного адреса для указанного блокчейна. Проверяет как формальную корректность, так и возможность использования адреса в сети.
Prod URL: https://core.cryptohub24.net/validate_address
Test URL: https://core.test-cryptohub24.net/validate_address
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
####Входные данные(JSON Body)
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
address | string | Криптовалютный адрес для проверки | "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k" |
blockchain | string | Название блокчейна адреса | "Bitcoin" |
timestamp | number | UNIX timestamp с миллисекундами | 1659100099.278159 |
partner_id | string | ID партнера | "your_partner_id" |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции (всегда true, кроме серверных ошибок) |
data.valid | boolean | Формальная валидность: соответствует ли адрес стандартам блокчейна |
data.active | boolean | Активность: можно ли использовать адрес в сети (активирован ли в блокчейне. Для Ton, Tron адрес нужно дополнительно активировать специальным образом, без этого не весь функционал доступен) |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки |
Валидация адреса [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"address": "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k",
"blockchain": "Bitcoin",
"timestamp": 1659100099.278159,
"partner_id": "ВАШ_PARTNER_ID"
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"valid": true,
"active": true
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"valid": true,
"active": false
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"valid": false,
"active": false
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid address format",
"error_code": 18
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Blockchain is not active",
"error_code": 10
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Получение баланса адреса по блокчейну [/get_address_blockchain_balance]
С помощью данного метода можно получить балансы токенов для указанного адреса в конкретном блокчейне. В отличие от метода get_address_balance, передает баланс из блокчейна, а не из данных Cryptohub.
Prod URL: https://core.cryptohub24.net/get_address_blockchain_balance
Test URL: https://core.test-cryptohub24.net/get_address_blockchain_balance
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
####Входные данные(JSON Body) Обязательные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
address | string | Криптовалютный адрес для проверки | "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k" |
blockchain | string | Название блокчейна | "Bitcoin" |
timestamp | string | Временная метка в ISO формате | "2022-10-10T10:10:10.000Z" |
partner_id | integer | ID партнера | 1 |
Опциональные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
tokens | array | Список токенов для фильтрации | ["BTC", "USDT"] |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции |
data.balances | object | Балансы токенов в блокчейне |
data.balances.{token} | string / number | Баланс токена (строка для ненулевых, число 0 для нулевых) |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки |
Особенности формата ответа:
-Ненулевые балансы: возвращаются как строки для точности ("0.125000000")
-Нулевые балансы: возвращаются как числа (0)
-Фильтрация: если указан параметр tokens, возвращаются только запрошенные токены
Получение баланса адреса по блокчейну [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"address": "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k",
"blockchain": "Bitcoin",
"timestamp": "2022-10-10T10:10:10.000Z",
"partner_id": 1,
"tokens": ["BTC", "USDT"]
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"balances": {
"BTC": "0.125000000",
"USDT": "1500.000000"
}
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"balances": {
"BTC": 0
}
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid address format",
"error_code": 18
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Blockchain is not active",
"error_code": 10
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Address not for blockchain",
"error_code": 27
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Сверка блокчейна [/blockchain_reconciliation]
С помощью данного метода можно инициировать процесс сверки (реконсиляции) балансов для указанного блокчейна за определенный период времени. Процесс выполняется асинхронно в фоновом режиме. Доступна отправка расхождений в мессенджере "Telegram".
Prod URL: https://core.cryptohub24.net/blockchain_reconciliation
Test URL: https://core.test-cryptohub24.net/blockchain_reconciliation
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
Сценарии сверки (автоматический выбор):
- Cross-Chain с полной проверкой - для блокчейнов с cross-chain поддержкой и check_all=true
- Обычная полная проверка - для блокчейнов без cross-chain и check_all=true
- Cross-Chain частичная проверка - для блокчейнов с cross-chain и check_all=false
- Обычная частичная проверка - для блокчейнов без cross-chain и check_all=false***
Какие адреса проверяются:
- При check_all=true (полная сверка): Все адреса партнера в указанном блокчейне
- При check_all=false (частичная сверка): Адреса с транзакциями в указанный период, новые адреса, системные, кошельковые и fee-адреса, адреса с ранее найденными расхождениями
Важные примечания:
- Процесс сверки выполняется асинхронно
- Ответ
processed: trueозначает, что запрос принят в обработку - Уведомление об окончании сверки через callback-уведомления
- Для больших периодов обработка может занимать время
Рекомендации:
- Используйте ежедневные сверки для актуальности данных
- Мониторьте callback-уведомления о завершении сверок
####Входные данные(JSON Body) Обязательные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
blockchain | string | Название блокчейна для сверки | "Bitcoin" |
start | string | Начало периода (ISO format) | "2022-10-10T10:10:10.000Z" |
end | string | Конец периода (ISO format) | "2022-10-11T10:10:10.000Z" |
id | integer | ID запроса для поиска расхождений, которые были найдены по данному запросу. (Поиск по этому параметру пока недоступен) | 1 |
partner_id | integer | ID партнера | 1 |
timestamp | string | Временная метка (ISO format) | "2022-10-11T10:10:10.000Z" |
Опциональные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
check_all | boolean | Полная сверка всех адресов | true |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции |
data.processed | boolean | Статус обработки запроса (true — запрос принят в обработку) |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки |
Сверка блокчейна [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"blockchain": "Bitcoin",
"start": "2024-01-20T00:00:00.000Z",
"end": "2024-01-20T23:59:59.999Z",
"id": 1,
"partner_id": 1,
"timestamp": "2024-01-21T10:00:00.000Z",
"check_all": true
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"processed": true
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Blockchain is not active",
"error_code": 10
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid period",
"error_code": 30
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Сбор платежей [/collect_payments]
С помощью данного метода можно собрать средства с нескольких адресов на один коллекторский адрес. Поддерживает различные сценарии сбора в зависимости от типа токена и адресов.
Prod URL: https://core.cryptohub24.net/collect_payments
Test URL: https://core.test-cryptohub24.net/collect_payments
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
Типы адресов и их назначение:
- Адреса для сбора (addresses): Тип "push" (депозитные адреса) - адреса, с которых собираются средства (клиентские адреса пополнения)
- Коллекторский адрес (collector_address): Тип "system" (системный адрес) - адрес для накопления собранных средств (холодный кошелек или основной счет)
- Адрес комиссии (fee_address): Любой адрес партнера с балансом - для оплаты комиссий сети
Особенности для разных типов токенов:
- Базовые токены (BTC, ETH, TRX): fee_address не обязателен, комиссия оплачивается тем же токеном
- Небазовые токены (USDT, USDC): fee_address обязателен, требуется баланс в базовой валюте для комиссии
Сценарии использования:
- Сбор с конкретных адресов через параметр
addresses
"addresses": [
"TE7gA5yTnhQce9SYni4AyMsV6qAkvuGV3N", и другие адреса]
- Сбор со всех адресов через параметр
collect_all: true
{
"blockchain": "",
"token": "",
"collector_address": "",
"partner_id": "1",
"collect_all": true,
"fee_address": ""
}
####Входные данные(JSON Body) Обязательные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
blockchain | string | Название блокчейна | "Tron" |
token | string | Тикер токена для сбора | "TRX" |
addresses | array | Список адресов для сбора | ["TE7gA5yTnhQce9SYni4AyMsV6qAkvuGV3N"] |
collector_address | string | Адрес-коллектор (system тип) | "TCM28qNGEFcR7RJ6UnhV3TcFNy3CG3BUNF" |
partner_id | string | ID партнера | "1" |
Опциональные параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
min_balance | string | Минимальный баланс для сбора | "1.0" |
fee_address | string | Адрес для оплаты комиссии | "TAHZe1e2avW3zmNozcjohBCsruNiJ1bEY8" |
fee_level | string | Уровень комиссии: low/medium/high | "low" |
fee_limit | string | Ограничение затрат на комиссию | null |
max_fee_price | string | Максимальная цена комиссии | "100.0" |
collect_all | boolean | Собрать со всех адресов | true |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции |
data.blockchain | string | Блокчейн операции |
data.token | string | Токен сбора |
data.transits | array | Массив ID созданных транзитных операций |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки (0 = успех) |
Сбор платежей [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"blockchain": "Tron",
"token": "TRX",
"addresses": [
"TE7gA5yTnhQce9SYni4AyMsV6qAkvuGV3N"
],
"collector_address": "TCM28qNGEFcR7RJ6UnhV3TcFNy3CG3BUNF",
"partner_id": "1",
"min_balance": "1.0",
"fee_address": "TAHZe1e2avW3zmNozcjohBCsruNiJ1bEY8",
"fee_level": "low",
"max_fee_price": "100.0",
"collect_all": true
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"blockchain": "Tron",
"token": "TRX",
"transits": [80214]
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid address format",
"error_code": 18
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Fee address needed for non-base tokens",
"error_code": 24
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid minimum balance",
"error_code": 26
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
История транзакций адреса [/get_transaction_history]
С помощью данного метода можно получить историю транзакций для указанного криптовалютного адреса за заданный период времени. Работает только с адресами, принадлежащими партнеру.
Prod URL: https://core.cryptohub24.net/get_transaction_history
Test URL: https://core.test-cryptohub24.net/get_transaction_history
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
####Входные данные(JSON Body):
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
address | string | Криптовалютный адрес для проверки | "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k" |
start | string | Начало периода (формат: "YYYY-MM-DD HH:MM:SS") | "2022-09-24 15:58:39" |
end | string | Конец периода (формат: "YYYY-MM-DD HH:MM:SS") | "2025-09-26 19:35:11" |
partner_id | integer | ID партнера | 1 |
timestamp | string | Временная метка (ISO format) | "2024-01-21T10:00:00.000Z" |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции |
data.transactions_history.address | string | Проверяемый адрес |
data.transactions_history.address_type | integer | Тип адреса (1 — push, 2 — wallet и т.д.) |
data.transactions_history.transactions | array | Массив транзакций |
transactions[].hash | string | Хэш транзакции в блокчейне |
transactions[].blockchain | string | Блокчейн транзакции |
transactions[].token | string | Токен транзакции |
transactions[].amount | string | Сумма транзакции |
transactions[].status | integer | Статус транзакции |
transactions[].from_address | string | Адрес отправителя |
transactions[].to_address | string | Адрес получателя |
transactions[].transaction_id | integer | Внутренний ID транзакции |
transactions[].created | string | Время создания |
transactions[].processed | string | Время обработки |
transactions[].confirmations | integer | Количество подтверждений |
transactions[].type | integer | Тип транзакции |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки |
История транзакций адреса [POST]
-
Request (application/json)
-
Headers
Content-Type: X-Sign: generated_signature_here
-
Body
{
"address": "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k",
"start": "2024-01-20 00:00:00",
"end": "2024-01-21 23:59:59",
"partner_id": 1,
"timestamp": "2024-01-22T10:00:00.000Z"
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": {
"transactions_history": {
"address": "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k",
"address_type": 1,
"transactions": [
{
"hash": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef1234",
"blockchain": "Bitcoin",
"token": "BTC",
"amount": "0.15000000",
"status": 5,
"from_address": "bc1qsendaddress1234567890abcdefghijk",
"to_address": "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k",
"transaction_id": 12345,
"created": "2024-01-20 14:30:25",
"processed": "2024-01-20 14:35:10",
"confirmations": 12,
"type": 1
}
]
}
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (Без транзакции:)
-
Body
{
"result": true,
"data": {
"transactions_history": {
"address": "tb1qv5kk494hh98sydrk4ksprmm9j24v64z9pml80k",
"address_type": 1,
"transactions": []
}
},
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid address format",
"error_code": 18
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Address not found for this partner",
"error_code": 27
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Запрос на получение списка транзакций [/list_transactions]
С помощью данного метода можно получить список транзакций партнёра с возможностью фильтрации по различным параметрам (статус, тип, адреса и др.).
Prod URL: https://core.cryptohub24.net/list_transactions
Test URL: https://core.test-cryptohub24.net/list_transactions
Метод: POST
Аутентификация осуществляется через цифровую подпись X-Sign в заголовке запроса, формируемую по алгоритму SHA-256. Подробнее
####Входные данные(JSON Body):
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
partner_id | string | ID партнёра | "1" |
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
id | integer | ID транзакции | 80022 |
status | integer | Статус транзакции (1 = успешно и т.д.) | 1 |
type | integer | Тип транзакции (4 = депозит, 5 = вывод) | 4 |
transaction_hash | string | Хэш транзакции | "fd1e40..." |
from_address | string | Адрес отправителя | "0xd638..." |
to_address | string | Адрес получателя | "0xf40d3..." |
base_amount | string | Сумма в базовой валюте | "5000" |
is_small_amount | boolean | Признак «малой суммы» | false |
risky | boolean | Флаг рискованной транзакции | false |
created | string | Дата создания (формат: YYYY-MM-DD) | "2025-09-01" |
updated | string | Дата обновления | "2025-09-05" |
processing | boolean | Признак в обработке | false |
blockchain | string | Блокчейн транзакции | "Tron" |
token | string | Токен | "TRX" |
Доступные операции для фильтров:
| Операция | Описание |
|---|---|
eq | равно |
lt | меньше |
lte | меньше или равно |
gt | больше |
gte | больше или равно |
ne | не равно |
in | входит в список |
is | проверка на null или boolean |
like | поиск по шаблону (чувствителен к регистру) |
ilike | поиск по шаблону (без учета регистра) |
Ответные данные:
| Поле | Тип | Описание |
|---|---|---|
result | boolean | Результат операции (true/false) |
data | array | Массив транзакций |
data[].id | integer | ID транзакции |
data[].transaction_hash | string | Хэш транзакции (может быть null) |
data[].partner_transaction_id | string | ID транзакции партнёра (если передавался) |
data[].cs_transaction_id | string | Внутренний ID (может быть null) |
data[].type | integer | Тип транзакции |
data[].blockchain | string | Название блокчейна (Tron, BSC, Bitcoin и т.д.) |
data[].token | string | Токен (TRX, BNB, BTC) |
data[].partner | integer | ID партнёра |
data[].status | integer | Статус транзакции |
data[].status_updated | string | Время обновления статуса (может быть null) |
data[].block | integer | Номер блока (если применимо) |
data[].confirmations | integer | Количество подтверждений |
data[].from_address | string | Адрес отправителя |
data[].to_address | string | Адрес получателя |
data[].token_amount | string | Сумма в токенах |
data[].base_amount | string | Сумма в базовой валюте |
data[].is_small_amount | boolean | Признак «малой суммы» |
data[].fee | string | Комиссия |
data[].fee_info.fee_level | string | Уровень комиссии (low, medium, high) |
data[].fee_info.fee_limit | string | Лимит комиссии (может быть null) |
data[].fee_info.max_fee_price | string | Максимальная комиссия (если есть) |
data[].risky | boolean | Признак рискованной транзакции |
data[].risk_rate_info | object | Детали по рискам (может быть пустым) |
data[].config.comment | string | Комментарий к транзакции |
data[].config.refund_of | integer | ID транзакции, возвратом которой является текущая |
data[].config.next_check | string | Следующее время проверки транзакции |
data[].config.check_count | integer | Количество проверок транзакции |
data[].config.confirmations | integer | Количество подтверждений (сохранённых в config) |
data[].config.processing_time | string | Время обработки транзакции |
data[].created | string | Дата создания транзакции |
data[].updated | string | Дата обновления транзакции |
data[].processing | boolean | Признак обработки транзакции |
data[].fee_currency | string | Валюта комиссии (например, TRX) |
message | string | Сообщение от сервера |
error_code | integer | Код ошибки (0 = успех) |
Запрос на получение списка транзакций [POST]
-
Request ()
-
Headers
Content-Type: application/json X-Sign: generated_signature_here
-
Body
{
"partner_id": "1",
"filters": {
"status": {
"eq": "1"
},
"type": {
"eq": "4"
},
"blockchain": {
"eq": "Tron"
},
"token": {
"eq": "TRX"
},
"created": {
"gte": "2025-09-01"
},
"base_amount": {
"gt": "1000"
},
"risky": {
"eq": false
}
}
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": [
{
"id": 80022,
"transaction_hash": null,
"partner_transaction_id": null,
"cs_transaction_id": null,
"type": 4,
"blockchain": "Tron",
"token": "TRX",
"partner": 1,
"status": 1,
"status_updated": null,
"block": null,
"confirmations": 0,
"from_address": "TE7gA5yTnhQce9SYni4AyMsV6qAkvuGV3N",
"to_address": "TTK3vbnmHLVJgfL5onfBSVTeCXMMBunA6a",
"token_amount": "0",
"base_amount": "5000",
"is_small_amount": false,
"fee": "0",
"fee_info": {
"fee_level": "medium",
"fee_limit": null,
"max_fee_price": null
},
"risky": false,
"risk_rate_info": {},
"config": {
"comment": null,
"refund_of": 80018,
"next_check": "2025-09-26 17:30:58",
"check_count": 50,
"confirmations": 1,
"processing_time": "2025-09-25T17:30:57.553403"
},
"created": "2025-09-01 12:19:10",
"updated": null,
"processing": false,
"fee_currency": "TRX"
}
],
"message": "Ok",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": true,
"data": [],
"message": "No transactions found",
"error_code": 0
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Partner not found",
"error_code": 2000
}
-
-
Response 200 (application/json)
-
Body
{
"result": false,
"message": "Invalid filter parameters",
"error_code": 30
}
-
-
Response 500 (application/json)
-
Body
{
"error": "Internal server error"
}
-
Group Callback уведомления
При изменении статуса транзакции, Cryptohub отправляет callback на указанный партнёром callback_url.
В этой связи, партнёру необходимо:
- Обработать callback у себя;
- Выставить endpoint для приёма данных;
- При необходимости — вернуть в ответе параметры по риск-чеку или автоматическому транзиту.
Для проверки на риск, статусы транзакции должны быть не финальными (например: new, not confirmed).
Типы транзакций:
| Код | Название | Описание |
|---|---|---|
| 1 | Payment | Оплата клиентов на наши адреса |
| 2 | FeeRequest | Запрос комиссии |
| 3 | Transit | Транзит между нашими адресами |
| 4 | Refund | Возврат денег клиенту |
| 5 | Withdraw | Выплата (используется мерчантами) |
| 6 | System | Системная выплата (через админку KVT) |
| 7 | CustomRefund | Not used |
| 8 | Payout | Выплата (используется клиентами) |
| 9 | Activation | Активация |
| 10 | Other | Другое |
| 11 | Delegate | Делегирование |
| 12 | Undelegate | Анделегирование |
Параметры callback (JSON Body):
| Поле | Тип | Описание | Пример |
|---|---|---|---|
transaction_id | integer | ID транзакции | 80022 |
type | integer | Тип транзакции (см. таблицу ниже) | 1 |
hash | string | Хэш транзакции | "fd1e402b5d..." |
token | string | Тикер токена | "USDT" |
amount | string | Сумма транзакции | "100.0" |
fee_spent | string | Общая комиссия (включая комиссии fee request-ов) | "0.002" |
fee_tr | string | Комиссия конкретно за эту транзакцию | "0.001" |
fee_transactions | array | Список транзакций, задействованных для оплаты комиссии | "txid": "fee_transaction.transaction_hash", "amount": "prettify_decimal(fee_transaction.base_amount)", "fee": "prettify_decimal(fee_transaction.fee)", "fee_currency": "fee_transaction.token.name", "address_from": "fee_transaction.from_address", "address_to": "fee_transaction.to_address" |
blockchain | string | Название блокчейна | "Tron" |
status | string | Статус транзакции | "not confirmed" |
balance | string | Баланс адреса | "5000" |
from_address | string | Адрес отправителя | "TXXX..." |
to_address | string | Адрес получателя | "TYYY..." |
risk_rate_info | object | JSON с результатом проверки на риск | {"..."} |
created | string | Дата создания транзакции | "2025-09-01 12:19:10" |
confirmations | integer | Количество подтверждений в блокчейне | 2 |
processed | string | Дата завершения обработки (только если статус Confirmed) | "2025-09-25 12:19:10" |
Пример тела запроса (callback от CryptoHub):
{
"transaction_id": 0000000,
"type": 1,
"hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"token": "USDT",
"amount": "000.00",
"fee_spent": "0",
"fee_tr": "0",
"fee_transactions": [],
"blockchain": "Tron",
"status": 3,
"balance": {
"Tron": {
"TRX": "0.000000",
"USDT": "0000.00000"
}
},
"from_address": "Txxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"to_address": "Tyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
"risk_rate_info": {
"notified": true,
"recipient_address_risky": {
"checked": true
},
"risk_rate": "0.005",
"white_or_black_address": {
"checked": true,
"risk_rate": "0.005",
"start": "2025-09-29 09:53:18",
"tag": {
"category": "payeer",
"id": 12221,
"name": "Payeer"
},
"white_address_id": 12221
}
},
"created": "2025-09-29 09:53:00",
"processed": "2025-09-29 09:53:08",
"confirmations": 19
}
В ответ на callback партнёр может вернуть объект data:
{
"result": true,
"data": {
"auto_transit": {
"fee_address": "Txxxxxxxxxxxxxxxxxxxx",
"fee_level": "medium",
"max_fee_price": 200,
"payout_address": "Tyyyyyyyyyyyyyyyyyyyy",
"confirmations": 10
},
"finish_risk_check": false,
"need_check": true,
"risk_rate": 0.5
},
"error_code": 0,
"message": "Ok"
}
Описание полей, которые может передать партнер (Опционально):
| Поле | Тип | Описание |
|---|---|---|
| auto_transit | object/boolean | Функция, которая позволяет сразу инициировать сбор платежа (пополнения) на адрес мерчанта, на payout_address. Может быть false, если не используется. Параметры до confirmations относятся к функции auto_transit. |
| auto_transit.fee_address | string | Адрес комиссии |
| auto_transit.fee_level | string | Уровень комиссии (по умолчанию "medium") |
| auto_transit.max_fee_price | number | Максимальная цена комиссии |
| auto_transit.payout_address | string | Адрес для сбора авто-транзита |
| auto_transit.confirmations | integer | Количество подтверждений |
| finish_risk_check | boolean | Если проверка на риск требуется и завершилась по таймауту: • при true транзакция останется в ожидании проверки риска, пока она не будет успешно проведена; • иначе перейдёт в confirmed. |
| need_check | boolean | Нужно ли проводить проверку риска (true/false) |
| risk_rate | number | Максимальный рейтинг риска, при превышении которого транзакция считается рискованной |
#Group Возможные статусы и ошибки
Статусы транзакций (TransactionStatus):
| Параметр | Описание | Финальный? |
|---|---|---|
New = 1 | Новая транзакция, не отправлена в криптосервис, хэш не получен | Нет |
Rejected = 2 | Транзакция отменена | Да |
NotConfirmed = 3 | Транзакция не подтверждена в блокчейне, ждёт необходимого количества подтверждений | Нет |
WaitingForRisk = 4 | Транзакция получила подтверждения, ждёт проверки на рискованность (только для транзакций типа Payment) | Нет |
Confirmed = 5 | Транзакция успешна | Да |
Risky = 6 | Транзакция неуспешна (ответ Crystal: транзакция рискованная) | Да |
RefundInProcess = 7 | Транзакция рискованная, в процессе возврата (callback-уведомления на KVT не отправляются) | Нет |
Refund = 8 | Транзакция успешно возвращена (callback-уведомления на KVT не отправляются) | Да |
WaitingForFee = 9 | Транзакция в токене, ожидает комиссию | Нет |
FeeValueReceived = 10 | Транзакция готова к отправке на криптосервис (комиссия получена, аналог статуса New) | Нет |
ProcessingError = 11 | Транзакция попала в ошибку | Нет |
ProcessingNetworkError = 12 | Транзакция попала в ошибку из-за сетевых проблем | Нет |
WaitingForKey = 13 | Not Used | Нет |
KeyReceived = 14 | Not Used | Нет |
captured | Платеж вручную помечен как потенциальный дубликат. | Нет |
risk_not_check | Не была совершена проверка на риск. Ожидается запуск проверки. | Нет |
Коды ошибок (error_code):
| Код ошибки | Константа | Описание |
|---|---|---|
| 10 | BlockchainIsNotActive | Блокчейн не активен |
| 11 | TokenIsNotActive | Токен не активен |
| 12 | AddressTypeIsNotAllowed | Тип адреса не разрешен |
| 13 | PayoutAddressNotSet | Адрес для выплат не установлен |
| 14 | TransactionTypeIsNotAllowed | Тип транзакции не разрешен |
| 15 | UnknownTransactionStatus | Неизвестный статус транзакции |
| 16 | InvalidMaxRiskRate | Невалидный максимальный уровень риска |
| 17 | InvalidConfirmation | Невалидное подтверждение |
| 18 | InvalidAddress | Невалидный адрес |
| 19 | InvalidAmount | Невалидная сумма |
| 20 | BalanceNotEnough | Недостаточно средств |
| 21 | InsufficientBaseBalance | Недостаточно базовой валюты для комиссии |
| 22 | RefundAlreadyCreated | Возврат уже создан |
| 23 | RefundOnOurAddress | Возврат на наш адрес |
| 24 | FeeAddressNeeded | Требуется адрес для комиссии |
| 25 | DuplicateWithdrawId | Дублирующий withdraw_id |
| 26 | InvalidMinBalance | Невалидный минимальный баланс |
| 27 | AddressNotForBlockchain | Адрес не для указанного блокчейна |
| 2000 | UnknownError | Неизвестная ошибка (например, неправильный partner_id){"result": false, "data": null, "message": "Partner (some_external_partner_id) not found", "error_code": 2000} |
| 2001 | InternalError | Внутренняя ошибка сервера |