
В поисковой выдаче по запросу “как создать API ключ обменника” обычно стоят гайды бирж: полный доступ, права на вывод и секрет в чат поддержке. У RevBit схема другая. Для курса и простой заявки HMAC-ключ не нужен. Для API v2 выпускают пару ключей, ограничивают IP сервера и один раз сохраняют секрет у себя. Вы выберете контур, создадите ключ по документации, проверите тестовый вызов и будете знать, как отозвать его без повторной публикации секрета.
Быстрый ответ: Сначала решите, хватает ли публичного API v1. Затем войдите в аккаунт RevBit с активной сессией. Потом создайте ключ с именем и списком IP своего сервера и сразу сохраните secretKey в секрет-хранилище. В запрос кладут HMAC-подпись, не сам секрет. Если секрет уже засветился, остановите вызовы, попросите B2B-поддержку деактивировать ключ и выпустите новый.
API здесь похож на набор адресов, по которым программа спрашивает курс или создаёт заявку без виджета. HMAC – это подпись запроса секретным ключом, как печать на конверте: сервер видит, что запрос ваш, но сам секрет в письме не едет. Не копируйте шаблон биржи: в публичной документации RevBit нет прав Read, Trade и Withdraw.
1. Отделите публичный API v1 от API v2 с HMAC-ключом
Курс без ключа, HMAC только для v2
На хабе API RevBit два контура. API v1 отдаёт курсы и простое создание заявки без ключа и без IP-whitelist. API v2 нужен интегратору: уникальный ключ, управление заказами, наценка и подпись HMAC SHA256. Хаб датирован 11 сентября 2024; на 16 сентября 2026 текст тот же. HMAC не берите “на всякий случай”: лишняя пара ключей – ещё один секрет.
| Задача | Нужен ли ключ | Что подписывать |
|---|---|---|
| Получить публичный курс | Нет | Ничего: GET без HMAC |
| Создать простую заявку v1 | Нет | Без подписи; referrerId относится к партнёрке, не к ключу |
| Работать с API v2 | Да: publicKey и secretKey | Три заголовка и HMAC-SHA256 |
| Создать сам ключ | Нужна cookie-сессия входа | Это вход в аккаунт, не HMAC боевого v2 |
Вердикт: Делайте ключ v2 только если интеграция требует подписанных запросов. Не выпускайте HMAC ради курса. Для публичного GET и простой заявки откройте документацию API v1.
2. Войдите в аккаунт и создайте ключ с whitelist IP
Сначала сессия входа, потом IP сервера
Создание ключа в документации идёт через HTTP, а не через выдуманное меню кабинета. Для вызовов /api/v1/users/* нужна активная authorization cookie: сайт помнит, что вы вошли. Без этой сессии ключ не создать.
Запрос: POST /api/v1/users/generate-api-key. В JSON передайте name, whiteListIp как массив IP вашего сервера и isActive: true. WhiteListIp – белый список адресов, с которых сервер примет вызовы этим ключом. Не копируйте чужие IP и не оставляйте список “на потом”.
В ответе приходят apiId, name, isActive, publicKey, secretKey, whiteListIp и createdAt. SecretKey показывают только в этот момент. Сэмпловые ключи из документации не используйте как рабочие. Практический минимум: понятное имя, только IP своего сервера, ключ активен. Не шарьте одну пару на тест и прод. Если B2B-доступа нет, напишите на marketing@revbit.net или support@revbit.net без секретов.
Делать: задать whitelist до первого вызова. Не делать: угадывать пункты меню и копировать UI Binance или Bybit.
3. Сохраните HMAC-секрет один раз в своём хранилище
Секрет пишут в хранилище, не в тикет
Пара ключей – это не один токен. PublicKey – идентификатор, его кладут в заголовок. SecretKey – HMAC-секрет, симметричный ключ подписи. Его показывают один раз при создании. Список GET /api/v1/users/list-api-key отдаёт publicKey и IP, но не secretKey. Если секрета уже нет под рукой, не ищите его в кабинете: выпускайте новый ключ.
Сразу запишите секрет в секрет-хранилище или в переменную окружения сервера. Переменная окружения – настройка вне кода, её не публикуют в репозитории. Не вставляйте секрет в Git, фронтенд, URL, образ Docker, лог CI, скриншот, Telegram, email и тикет. HMAC не шифрует тело запроса, его используют вместе с HTTPS. Секрет на странице браузера можно вытащить из кода. В запрос уходит только подпись.
Делать: сохранить secretKey до закрытия ответа. Не делать: слать HMAC “чтобы быстрее подключили”, даже в официальный канал.
4. Проверьте тестовый подписанный вызов до боевого объёма
Без авторизации API v2 отвечает 403 Forbidden, то есть “доступ запрещён”. Сначала ключ, затем подпись. Каждый запрос v2 несёт заголовки x-api-public-key, x-api-timestamp и x-api-signature.
| Заголовок | Что класть | Чего не класть |
|---|---|---|
| x-api-public-key | Ваш publicKey | Не secretKey |
| x-api-timestamp | UNIX-время; в образце доки это миллисекунды | Не пустая строка и не время “на глаз” |
| x-api-signature | HMAC-SHA256 в Base64 | Не сам секрет и не подпись от другого тела |
Строка для подписи: сначала timestamp, затем JSON-тело запроса, потом publicKey. Ключ HMAC – secretKey. Digest, то есть готовая подпись, пишется в Base64. Образец вызова: POST /api/v2/orders/public/create. Сверяйте канон на хабе API RevBit. Тест – с малой нагрузкой. Каркас заголовков не обещает успешный обмен: адрес, сеть и лимиты сверяйте отдельно. Для Python смотрите SDK RevBit: pip install revbit-sdk, поля api_public и api_secret вне кода.
Типичный 403: нет или неверны три заголовка, запрос не с IP из whitelist, ключ неактивен, либо строка подписи не совпала с телом.
Делать: один тестовый вызов с сервера из whitelist. Не делать: гонять боевой объём, пока не сходятся заголовки и IP.
5. Отзовите ключ через поддержку, если секрет уже засветился
Утечка – секрет в чате, логе, репозитории, скрине или тикете. Не “доиспользуйте” старый ключ. Сначала прекратите вызовы, затем запросите деактивацию, потом выпустите новый ключ с новым whitelist и положите новый секрет только в хранилище сервера.
Удаление, смена IP, настройки вроде min/max markup и деактивация в публичной доке описаны как обращение в B2B customer support, не как кнопка в кабинете. Не ищите delete-api-key и не просите “восстановить” secretKey: его не восстанавливают.
Пишите в официальный канал поддержки RevBit как B2B-интеграция. Назовите apiId, name или publicKey, дату и где засветился секрет. Сам HMAC, seed-фразу и ключи кошелька не кладите.
Делать: остановить старый ключ и заменить хранилище. Не делать: оставлять старый секрет рядом с новым.
6. Отделите API-наценку от партнёрской программы
Ключ API не включает вас в партнёрку. Партнёрка – доля от дохода сервиса с обменов по реферальной ссылке. Markup в API и SDK – наценка интегратора поверх курса. Не собирайте гибрид “API-партнёрка” вокруг одного ключа.
| Критерий | Партнёрская программа | API v2 с HMAC |
|---|---|---|
| Задача | Приводить обмены по своей ссылке | Подписывать запросы своего сервиса |
| Что выдают | Кабинет партнёра и referrerId | Пару ключей и whitelist IP |
| Где старт | Гайд по подключению партнёрки | Хаб документации API |
| Чего не делать | Считать HMAC пропуском в кабинет | Путать markup с реферальной долей |
Если нужна партнёрка, откройте гайд по партнёрской программе RevBit. Если нужна интеграция, вернитесь к хабу API.
Делать: выбрать один продукт под задачу. Не делать: смешивать рефералку и HMAC-ключ.
7. Соберите финальный чеклист и выберите следующий шаг
Как проходит выпуск ключа:
Сначала сверьте задачу с хабом API. Затем войдите в аккаунт. Потом создайте ключ с IP сервера, сохраните secretKey и сделайте один тестовый подписанный вызов. При утечке остановите старый ключ и запросите деактивацию.
- Шаг 1: Сверьте задачу: курс и публичная заявка закрываются API v1 без ключа.
- Шаг 2: Войдите в аккаунт RevBit, чтобы была активная cookie-сессия.
- Шаг 3: Вызовите generate-api-key с name, whiteListIp своего сервера и isActive true.
- Шаг 4: Сразу сохраните secretKey в секрет-хранилище; publicKey оставьте как идентификатор.
- Шаг 5: Проверьте list-api-key: есть publicKey и IP, нет secretKey.
- Шаг 6: Сделайте один тестовый вызов v2 с тремя заголовками и HMAC-SHA256.
- Шаг 7: При 403 сверьте заголовки, IP из whitelist и канон строки подписи.
- Шаг 8: Если секрет засветился, остановите ключ, напишите в официальную B2B-поддержку без HMAC и выпустите новый.
Если интеграция не нужна и вы меняете крипту вручную, откройте виджет RevBit и не выпускайте ключ. Жителей ЕС и ЕЭЗ сервис не обслуживает.
Частые вопросы
Чем API v1 RevBit отличается от v2?
v1 отдаёт публичный курс и простое создание заявки без ключа. v2 требует ключ, IP-whitelist и HMAC-SHA256. Без заголовков v2 отвечает 403. Если нужен только курс, ключ не выпускайте.
Нужен ли HMAC-ключ, чтобы просто получить курс?
Нет. Смотрите публичный GET /api/v1/rates/public/one в документации API v1. Параметры пары, сети и суммы передаются без HMAC и без whitelist.
Можно ли отправить HMAC-секрет в Telegram поддержке?
Нет. Официальной поддержке не нужны seed, приватный ключ и HMAC-секрет. Для отзыва назовите apiId, name или publicKey. Секрет в чат не кладите.
Что делать, если ключ уже попал в лог или чат?
Прекратите вызовы этим ключом. Запросите деактивацию через официальную B2B-поддержку. Выпустите новый ключ с новым whitelist и положите секрет только в хранилище сервера.
Почему в списке ключей нет secretKey?
Секрет показывают один раз при создании. Восстановить его через list-api-key или скрин нельзя. Если строка потеряна, выпускайте новый ключ.
Какие права выдавать ключу RevBit?
В публичной доке нет биржевых Read, Trade и Withdraw. Задайте своё имя, только IP вашего сервера и isActive true. Не шарьте одну пару на dev и prod.
Почему на API v2 приходит 403?
Сверьте заголовки x-api-public-key, x-api-timestamp и x-api-signature, IP из whitelist и активность ключа. Строка подписи: timestamp, затем JSON тела, потом publicKey. Тест делайте с сервера из списка.