Skip to main content
Новое в 1.4.0 Если ваш обменник уже интегрирован с Heleket (готовый модуль CMS или собственный код), его можно переключить на iEXWallet без изменения кода: платформа отвечает на те же пути (/v1/payment, /v1/payout, /v1/wallet, …), принимает те же заголовки и отдаёт ответы в том же формате.
1

Замените базовый URL

https://api.heleket.com → адрес вашего инстанса iEXWallet (тот же хост, что у Public API).
2

Подставьте ключи

В поле merchant модуля укажите API id ключа из админки (Сайт → Ключи API), в поле API key — его секрет. Ключ должен быть со scope deposit_and_payout, если модуль делает выплаты/возвраты. Один и тот же ключ используется и для подписи запросов, и для проверки sign во входящих вебхуках.
3

Включите формат вебхуков Heleket

Админка → Сайт → «Изменить» → Формат вебхуковHeleket-совместимый. С этого момента все вебхуки сайта (в т. ч. созданные через нативный Public API) уходят в формате Heleket с полем sign.

Аутентификация

Тело — JSON. Для запросов без тела подпись считается от пустой строки; принимаются также варианты {} и []. Действуют IP-whitelist сайта/ключа и rate-limit сайта (заголовки X-RateLimit-*).

Ответы

Успех — { "state": 0, "result": … }; ошибка — { "state": 1, "message": "…" } (валидация — плюс errors), HTTP-статус как у нативного API (400/401/403/404/409/429).

Поддерживаемые эндпоинты

Не поддерживаются (ответ state: 1 с пояснением): QR-коды (/payment/qr, /wallet/qr), скидки (/payment/discount/*), переводы между кошельками (/transfer/*), wallet/block-address/refund (возвращайте каждый платёж через /v1/payment/refund), выбор валюты покупателем на hosted-странице (передавайте to_currency + network), is_subtract (сетевая комиссия всегда удерживается с hot-кошелька).

Статусы

Платежи: те же коды, что у Heleket (check, process, confirm_check, paid, paid_over, wrong_amount, wrong_amount_waiting, fail, cancel, system_fail, refund_process, refund_paid, refund_fail). Выплаты: check (создана / ждёт одобрения / в очереди), process (подписана / в сети), paid, fail, cancel.

Вебхуки в формате Heleket

POST JSON на url_callback (счёта / статического адреса / выплаты) или на callback_url сайта:
sign = md5( base64( JSON без поля sign ) + api_secret ), где секрет — ключ, которым сайт впервые обратился к совместимому API (он запоминается за сайтом); если таких запросов не было — callback-секрет сайта. Поле type: payment (счёт/депозит), wallet (платёж на статический адрес, wallet_address_uuid — его uuid), payout. Выплата: uuid, order_id, amount, merchant_amount, commission, is_final, status, txid, currency, network, payer_currency, payer_amount, sign.
Нативные заголовки (X-Signature, X-Event-Type, X-Event-Id, …) продолжают присылаться — их можно использовать для идемпотентности, но модули Heleket их игнорируют.

Что отличается

  • UUID платежа = uuid депозита в нативном API (GET /v1/public/deposits/{uuid} работает с ним же).
  • payment/list не фильтрует по датам (date_from/date_to игнорируются) — используйте cursor.
  • additional_data, discount, convert всегда null/0.
  • Балансы в /v1/balance — hot-кошельки платформы (нет «пользовательских» балансов).