Обновление API BitMEX в рамках Travel Rule

Мы обновляем API BitMEX для соблюдения глобальных требований Travel Rule. Изменения вступят в силу в начале 2026 года и затронут все операции вывода средств через API.

Обновление API BitMEX в рамках Travel Rule - главное изображение

Мы обновляем API BitMEX для соблюдения глобальных требований Travel Rule. Изменения вступят в силу в начале 2026 года и затронут все операции вывода средств через API.

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

Подробнее о Travel Rule и его влиянии на вашу торговлю читайте в нашем блоге и разделе FAQ.


Суть изменений:

1. Обязательное использование сохраненных адресов

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

Эндпоинт POST /api/v1/user/requestWithdrawal больше не принимает следующие параметры:

  • address - больше не поддерживается

  • network - больше не поддерживается

  • memo - больше не поддерживается

Теперь вы должны использовать параметр addressId для ссылки на сохраненный адрес в вашей адресной книге.

2. Требования к данным для Travel Rule

Теперь для каждого адреса в адресной книге необходимо указать:

  • Данные бенефициара — сведения о получателе средств.

  • Данные VASP — сведения о провайдере (бирже или сервисе), обслуживающем адрес назначения.

Важно: вывод средств на адреса, не содержащие этих данных, будет недоступен.


Как адаптировать процесс вывода средств?

Шаг 1. Создание или обновление сохраненных адресов

Используйте API адресной книги для создания новых адресов или обновления существующих с учетом информации для Travel Rule:

  • Создание адреса: POST /api/v1/address

  • Обновление адреса: PUT /api/v1/address

Обратите внимание: Для всех новых адресов в адресной книге действует период блокировки вывода (cool-down) минимум на 24 часа. Подробнее об этом можно узнать по ссылке.

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

  • На сайте BitMEX: www.bitmex.com/app/addresses

  • В мобильном приложении BitMEX

  • Пошаговое руководство по настройке адресной книги доступно в нашем блоге.

Шаг 2. Использование ID адреса в запросе

При запросе на вывод средств необходимо указывать идентификатор (id) сохраненного адреса вместо самого адреса:

{

  "addressId": 12345,

  "currency": "XBt",

  "amount": 10000000,

  "otpToken": "123456"

}

Работа с адресной книгой

Для вывода средств можно использовать только те адреса, которые содержат данные Travel Rule.

Добавление нового адреса

Способы добавления адреса получателя:

  1. Через API: используйте POST /api/v1/address с адресом назначения и информацией Travel Rule.

  2. На сайте: создайте новый адрес в разделе www.bitmex.com/app/addresses.

  3. В приложении: воспользуйтесь функцией адресной книги в мобильном приложении BitMEX.

Обновление сохраненных адресов

Для добавления данных Travel Rule к уже созданным адресам используйте следующие способы:

  1. Через API: используйте PUT /api/v1/address для добавления полей beneficiary и vasp.

  2. На сайте: внесите изменения в сохраненный адрес в разделе www.bitmex.com/app/addresses.

  3. В приложении: воспользуйтесь функцией редактирования адреса в мобильном приложении BitMEX.

Важно: использование адресов с неполными данными Travel Rule приведет к ошибке 400 (Bad Request). Кроме того, указание некорректных данных может повлечь за собой отклонение транзакции или заморозку средств на стороне получателя (VASP).


Спецификация полей Travel Rule

Поле beneficiary

В этом поле указываются данные получателя средств.

Если владелец аккаунта BitMEX и получатель средств — это одно и то же лицо (физическое или юридическое), необходимо передать следующие данные:

{

  "type": "SELF"

}

Если получатель — другое физическое лицо (третье лицо), укажите следующие данные:

{

  "type": "THIRD_PARTY",

  "entityType": "INDIVIDUAL",

  "firstName": "John",

  "lastName": "Doe"

}

Если получатель — юридическое лицо (компания):

{

  "type": "THIRD_PARTY",

  "entityType": "CORPORATE",

  "fullName": "Acme Corporation"

}

Поле vasp

В этом поле указываются данные провайдера услуг, обслуживающего адрес кошелька.

Личный кошелек (Self-hosted): если адрес является личным (некастодиальным), передайте следующий vasp:

{

  "addressType": "UNHOSTED"

}

Биржевой кошелек (Hosted): если средства переводятся на биржу или кастодиальный сервис, вы можете указать идентификатор и источник (id, source) либо ввести данные VASP вручную.

Поиск VASP (id и source): для получения идентификаторов используйте следующий эндпоинт (требуется подпись запроса API-ключом): GET /api/compliance/travel-rule/vasps?q={vasp_name}

В ответ вернется список организаций, соответствующих запросу, с указанием их id и source.

{

  "addressType": "HOSTED",

  "id": "{vasp_id}",

  "source": "{source_name}"

}

Ручной ввод данных: если найти id и source не удалось, данные провайдера можно указать вручную:

{

  "addressType": "HOSTED",

  "name": "My VASP",

  "website": "https://myvasp.example.com"

}

Обратите внимание: если параметры id и source не передаются, поля name (название) и website (сайт) становятся обязательными.


Справочник API

POST /api/v1/user/requestWithdrawal

Запрос на вывод средств на внешний кошелек.

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

Параметр

Тип

Обязательно

Описание

addressId

integer

Да

ID сохраненного адреса, содержащего адрес назначения и данные Travel Rule.

currency

string

Да

Валюта вывода (например, "XBt", "USDt").

amount

integer

Да

Сумма вывода в минимальных единицах валюты.

otpToken

string

Условно

Токен 2FA. Обязателен для внешних выводов, если для адреса назначения не включена опция skip2FA.

fee

number

Нет

Комиссия сети (если не указана, будет рассчитано значение по умолчанию).

Примечание: Параметры address, network и memo больше не поддерживаются. Все данные о назначении перевода должны содержаться в сохраненном адресе, на который ссылается addressId. Для внутренних переводов другим пользователям BitMEX используйте параметр targetUserId вместо addressId.

Пример запроса

POST /api/v1/user/requestWithdrawal

{

  "addressId": 12345,

  "currency": "XBt",

  "amount": 50000000,

  "otpToken": "123456"

}

Пример запроса с необязательными параметрами

POST /api/v1/user/requestWithdrawal

{

  "addressId": 67890,

  "currency": "USDt",

  "amount": 25000000,

  "otpToken": "123456",

  "fee": 0.0001

}

Ответ

{

  "transactID": "b6c6b38e-8f4d-4b6c-9c7f-8e3b7c6d5a4e",

  "account": 123456,

  "currency": "XBt",

  "transactType": "Withdrawal",

  "amount": 50000000,

  "fee": 20000,

  "transactStatus": "Pending",

  "addressId": 12345,

  "tx": null

  "transactTime": "2024-01-15T10:30:00.000Z",

  "walletBalance": 190000000,

  "timestamp": "2024-01-15T10:30:00.000Z"

}


POST /api/v1/address

Создание нового сохраненного адреса с данными для Travel Rule.

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

Параметр

Тип

Обязательно

Описание

currency

string

Нет

Валюта (например, "XBt", "USDt").

network

string

Да

Блокчейн-сеть.

address

string

Да

Адрес назначения.

name

string

Да

Имя или метка для этого адреса.

memo

string

Нет

Пропустить ввод 2FA при выводе средств (по умолчанию: false).

skipConfirm

boolean

Нет

Пропустить подтверждение по email при выводе средств (по умолчанию: false). Включение этой опции требует подтверждения через email.

skip2FA

boolean

Нет

Пропустить ввод 2FA при выводе средств (по умолчанию: false).

otpToken

string

Нет

Токен 2FA для подтверждения настройки skip2FA. Если не указан, настройку skip2FA можно подтвердить через email.

beneficiary

object

Да

Данные бенефициара (см. схему ниже).

vasp

object

Да

Данные VASP (см. схему ниже).

Схема бенефициара

Поле

Тип

Обязательно

Описание

type

string

Да

Тип перевода: "SELF" (самому себе) или "THIRD_PARTY" (третьему лицу).

entityType

string

Условно

Тип лица: "INDIVIDUAL" (физическое лицо) или "CORPORATE" (юридическое лицо).

Обязательно, если поле type имеет значение "THIRD_PARTY".

firstName

string

Нет

Имя (для физических лиц).

lastName

string

Условно

Фамилия

Обязательно, если получатель — физическое лицо (третье лицо).

fullName

string

Условно

Полное юридическое наименование

Обязательно, если получатель — юридическое лицо (компания).

Схема VASP

Поле

Тип

Обязательно

Описание

addressType

string

Да

Тип адреса: "HOSTED" (биржевой/кастодиальный), "UNHOSTED" (личный/некастодиальный) или "UNKNOWN".

id

string

Условно

Идентификатор VASP.

Обязателен для типа "HOSTED", если не предоставлены поля name и website.

source

string

Условно

Источник идентификатора VASP.

Обязателен, если указано поле id.

name

string

Условно

Название VASP.

Обязательно для типа "HOSTED", если не указан id.

website

string

Условно

URL веб-сайта VASP.

Обязательно для типа "HOSTED", если не указан id.

Пример запроса: персональный аппаратный кошелек

POST /api/v1/address

{

  "currency": "XBt",

  "network": "Bitcoin",

  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",

  "name": "My Ledger",

  "skipConfirm": true,

  "beneficiary": {

    "type": "SELF"

  },

  "vasp": {

    "addressType": "UNHOSTED"

  },

  "otpToken": "123456"

}

Пример запроса: Биржевой адрес с VASP ID

POST /api/v1/address

{

  "currency": "XBt",

  "network": "Bitcoin",

  "address": "3J98t1WpEZ73CNmYviecrnyiWrnqRhWNLy",

  "name": "Binance Hot Wallet",

  "beneficiary": {

    "type": "SELF"

  },

  "vasp": {

    "addressType": "HOSTED",

    "id": "did:vasp:binance",

    "source": "NOTABENE_ADDRESS_HASH"

  }

}

Пример запроса: Третье лицо на бирже

POST /api/v1/address

{

  "currency": "USDt",

  "network": "Ethereum",

  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",

  "name": "Supplier Payment Address",

  "beneficiary": {

    "type": "THIRD_PARTY",

    "entityType": "CORPORATE",

    "fullName": "Global Crypto Services Inc"

  },

  "vasp": {

    "addressType": "HOSTED",

    "name": "Coinbase",

    "website": "https://www.coinbase.com"

  }

}

Ответ

{

  "id": 12345,

  "currency": "XBt",

  "network": "Bitcoin",

  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",

  "name": "My Ledger",

  "memo": null,

  "skipConfirm": false,

  "skipConfirmVerified": false,

  "skip2FA": false,

  "skip2FAVerified": false,

  "verified": false,

  "cooldownExpires": null,

  "created": "2024-01-15T10:30:00.000Z",

  "userId": 123456

}


Полный обзор изменений и подробности вы найдете в нашем блоге и FAQ.

Если у вас возникнут вопросы по поводу обновлений, пожалуйста, свяжитесь с командой поддержки.

Чтобы не пропустить новые листинги и обновления продуктов, присоединяйтесь к нашим онлайн комьюнити. Актуальную информация также можно найти в Twitter, блоге и разделе новости на сайте.

АВТОР

BitMEX

ТЕГИ

APITravel Rule