Skip to main content
iEXWallet AML позволяет вашей CMS скринить криптоадреса и транзакции на риск (санкции, скам, даркнет, миксеры и т.п.) через те же ключи API, что и кошелёк — отдельная интеграция с AML-провайдером не нужна. Платформа сама выбирает подключённого провайдера и скрывает его внутренние детали (код провайдера, его идентификаторы проверки, сырой ответ наружу не отдаются). Этот раздел — про скрин по требованию: вы сами передаёте адрес или хэш транзакции и получаете оценку риска. Если же вам нужен AML-результат уже принятого депозита (скрин адреса отправителя выполняется платформой автоматически), смотрите AML по депозиту.
AML — лицензируемая возможность. Если она не включена на вашем инстансе, эндпоинты вернут 403 с кодом LICENSE_REQUIRED. Подключение и настройка AML-провайдера выполняются на стороне оператора (Админка → AML → Провайдеры).
Аутентификация — та же HMAC-подпись, что и у депозитов/выплат (см. Аутентификация). Ответы — в конверте { "ok": true, "data": ... } либо { "ok": false, "error": {...} }. К AML применяется тот же per-site rate-limit, что и к остальному Public API.

Эндпоинты

Синхронный или асинхронный результат

Скрин выполняется через внешнего провайдера и в общем случае асинхронный. На POST платформа создаёт проверку и сразу возвращает её текущее состояние:
  • если провайдер ещё считает — придёт status: "pending"; тогда опрашивайте GET /v1/public/aml/checks/{uuid}, пока статус не станет терминальным;
  • если результат уже готов (или валюта не поддерживается) — POST сразу вернёт терминальный статус (success, failed, error или skipped).
Терминальные статусы: success, failed, error, skipped. Риск-оценку (riskScore/riskLevel) несёт только success. Обычно результат готов за несколько секунд. Подробно про трактовку статусов и уровней риска — Уровни риска и статусы.
Не опрашивайте GET /checks/{uuid} в тугом цикле. Достаточно интервала в несколько секунд: запрос на чтение реконсилит pending-проверку у провайдера, поэтому слишком частый опрос только расходует ваш rate-limit без пользы.

Список доступных валют

Возвращает allowlist валют подключённого провайдера. Каждый элемент описывает поддерживаемую валюту в терминах сети и символа провайдера. Пустой список означает, что провайдер ещё не синхронизировал список валют — скрин при этом всё равно возможен, но неподдерживаемая валюта/сеть вернётся как skipped.
Поле symbol здесь — это символ валюты у провайдера (например USDT, TRX). В теле POST /checks вы передаёте код актива платформы в поле assetCode (например USDT_TRC20) — см. Справочники активов и сетей. Это разные идентификаторы: один описывает валюту у AML-провайдера, второй — актив в каталоге кошелька.

Поля валюты

string
Код сети (например TRON, ETHEREUM).
string
Символ валюты у провайдера (например USDT, TRX).
string
Человекочитаемое название валюты.
string | null
Адрес контракта токена. null — нативная валюта сети.
boolean
true, если это токен (есть contractAddress), иначе нативная валюта.

Запустить скрин

Скринит адрес (по умолчанию) или транзакцию через подключённого провайдера. Возвращает созданную проверку: либо pending (опрашивайте по uuid), либо сразу терминальный статус.

Тело запроса

string
required
Сеть адреса или транзакции. Допустимые значения соответствуют каталогу сетей платформы (например TRON, TON, ETHEREUM, BSC, POLYGON, BITCOIN, LITECOIN, XRP, SOLANA). Если сеть не поддерживается провайдером — проверка завершится статусом skipped.
string
required
Адрес для скрина (до 255 символов). Обязателен для checkMethod address и both.
string
Код актива платформы (как в справочнике активов), например USDT_TRC20. Если не указан — берётся нативная валюта сети. Для токенов влияет на то, какой контракт скринится. До 64 символов.
string
Хэш транзакции (до 255 символов). Нужен для checkMethod transaction и both.
string
Метод скрина: address, transaction или both. По умолчанию — transaction, если задан txHash, иначе address.
Передавайте заголовок X-Idempotency-Key (UUID). Повтор с тем же ключом не потратит лишнюю квоту провайдера и вернёт ту же проверку. Идемпотентность скоупится по сайту и кешируется на 1 час. См. Идемпотентность.

Получить результат

Возвращает текущее состояние проверки по её uuid. Если она ещё pending — платформа дёргает провайдера и реконсилит статус, поэтому именно этим эндпоинтом вы дожидаетесь готового результата. Структура data — та же, что у POST выше.

Поля проверки

string
Публичный идентификатор проверки. По нему опрашивайте результат.
string
Жизненный цикл проверки: pending, success, failed, error, skipped. См. Уровни риска и статусы.
string
Сеть, переданная в запросе.
string
Код актива (явный из запроса либо нативная валюта сети, подставленная платформой).
string
Проверяемый адрес.
string | null
Хэш транзакции, если передавался, иначе null.
string
Применённый метод: address, transaction или both.
string | null
Риск-скор 0100 строкой (например "12.50"). null, если status не success.
string | null
low, medium, high или severe. null, если status не success. См. Уровни риска.
string | null
Категория риска с максимальным весом (например mixer, sanctions, scam, darknet).
object | null
Карта категорий риска и их весов 0..1. null, если провайдер их не вернул.
string | null
Ссылка на полный отчёт провайдера, если доступна.
string | null
Публичная share-ссылка на отчёт, если доступна.
string | null
Причина для статусов skipped, error, failed (например валюта не в allowlist или сбой провайдера). null для success/pending.
string
Когда проверка создана (ISO-8601).
string | null
Когда проверка завершена (ISO-8601). null, пока pending.

Частые ошибки

Полный перечень кодов и формат конверта ошибки — на странице Ошибки.

Частые вопросы

skipped означает, что валюта или сеть не входит в allowlist подключённого провайдера (или провайдер явно объявил их неподдерживаемыми). Это не значит «адрес чистый» — оценки риска нет. Причина указана в поле reason. Проверьте, что валюта присутствует в GET /v1/public/aml/currencies.
Здесь вы скрините произвольный адрес или транзакцию по своему запросу. AML по депозиту (/aml/deposit-checks) — это read-only выдача результата скрина, который платформа выполняет автоматически над адресом отправителя входящей транзакции при приёме депозита.
Раз в несколько секунд достаточно. Результат обычно готов за единицы секунд. Каждый GET по uuid реконсилит статус у провайдера, поэтому слишком частый опрос только расходует rate-limit.
Нет, один запрос — одна валюта. Чтобы проскринить адрес как держателя токена, передайте assetCode токена (например USDT_TRC20). Без assetCode берётся нативная валюта сети.