AML — лицензируемая возможность. Если она не включена на вашем инстансе, эндпоинты вернут
403
с кодом LICENSE_REQUIRED. Подключение и настройка AML-провайдера выполняются на стороне оператора
(Админка → AML → Провайдеры).{ "ok": true, "data": ... } либо { "ok": false, "error": {...} }. К AML
применяется тот же per-site rate-limit, что и к остальному Public API.
Эндпоинты
| Метод | Путь | Назначение |
|---|---|---|
GET | /v1/public/aml/currencies | какие валюты можно скринить |
POST | /v1/public/aml/checks | запустить скрин адреса или транзакции |
GET | /v1/public/aml/checks/{uuid} | получить и опросить результат |
Синхронный или асинхронный результат
Скрин выполняется через внешнего провайдера и в общем случае асинхронный. НаPOST платформа
создаёт проверку и сразу возвращает её текущее состояние:
- если провайдер ещё считает — придёт
status: "pending"; тогда опрашивайтеGET /v1/public/aml/checks/{uuid}, пока статус не станет терминальным; - если результат уже готов (или валюта не поддерживается) —
POSTсразу вернёт терминальный статус (success,failed,errorилиskipped).
success, failed, error, skipped. Риск-оценку (riskScore/riskLevel)
несёт только success. Обычно результат готов за несколько секунд. Подробно про трактовку статусов и
уровней риска — Уровни риска и статусы.
Список доступных валют
skipped.
Поле
symbol здесь — это символ валюты у провайдера (например USDT, TRX). В теле POST /checks
вы передаёте код актива платформы в поле assetCode (например USDT_TRC20) — см.
Справочники активов и сетей. Это разные идентификаторы: один описывает валюту у
AML-провайдера, второй — актив в каталоге кошелька.Поля валюты
Код сети (например
TRON, ETHEREUM).Символ валюты у провайдера (например
USDT, TRX).Человекочитаемое название валюты.
Адрес контракта токена.
null — нативная валюта сети.true, если это токен (есть contractAddress), иначе нативная валюта.Запустить скрин
pending (опрашивайте по uuid), либо сразу терминальный статус.
Тело запроса
Сеть адреса или транзакции. Допустимые значения соответствуют каталогу сетей платформы
(например
TRON, TON, ETHEREUM, BSC, POLYGON, BITCOIN, LITECOIN, XRP, SOLANA).
Если сеть не поддерживается провайдером — проверка завершится статусом skipped.Адрес для скрина (до 255 символов). Обязателен для
checkMethod address и both.Код актива платформы (как в справочнике активов), например
USDT_TRC20. Если не
указан — берётся нативная валюта сети. Для токенов влияет на то, какой контракт скринится.
До 64 символов.Хэш транзакции (до 255 символов). Нужен для
checkMethod transaction и both.Метод скрина:
address, transaction или both. По умолчанию — transaction, если задан
txHash, иначе address.Получить результат
uuid. Если она ещё pending — платформа дёргает
провайдера и реконсилит статус, поэтому именно этим эндпоинтом вы дожидаетесь готового результата.
Структура data — та же, что у POST выше.
Поля проверки
Публичный идентификатор проверки. По нему опрашивайте результат.
Сеть, переданная в запросе.
Код актива (явный из запроса либо нативная валюта сети, подставленная платформой).
Проверяемый адрес.
Хэш транзакции, если передавался, иначе
null.Применённый метод:
address, transaction или both.Риск-скор
0–100 строкой (например "12.50"). null, если status не success.Категория риска с максимальным весом (например
mixer, sanctions, scam, darknet).Карта категорий риска и их весов
0..1. null, если провайдер их не вернул.Ссылка на полный отчёт провайдера, если доступна.
Публичная share-ссылка на отчёт, если доступна.
Причина для статусов
skipped, error, failed (например валюта не в allowlist или сбой провайдера). null для success/pending.Когда проверка создана (ISO-8601).
Когда проверка завершена (ISO-8601).
null, пока pending.Частые ошибки
| HTTP | error.code | Когда возникает | Что делать |
|---|---|---|---|
403 | LICENSE_REQUIRED | AML не лицензирован на инстансе | Обратитесь к оператору, чтобы включить фичу AML |
400 | PROVIDER_UNAVAILABLE | Ни один AML-провайдер не включён в настройках | Оператор должен подключить и включить провайдера |
404 | NOT_FOUND | Проверки с таким uuid нет (или она чужого сайта) | Проверьте uuid из ответа POST |
400 | VALIDATION_FAILED | Невалидное тело (нет network/address, неверный enum) | Сверьтесь с таблицей полей выше |
401 | INVALID_SIGNATURE / TIMESTAMP_SKEW | Подпись не сошлась или часы разъехались (±300с) | См. Аутентификация |
403 | IP_NOT_WHITELISTED | IP сервера не в whitelist | Добавьте IP в Админке |
429 | RATE_LIMITED | Превышен per-site лимит | См. Rate limits |
Частые вопросы
Почему пришёл skipped, а не success?
Почему пришёл skipped, а не success?
skipped означает, что валюта или сеть не входит в allowlist подключённого провайдера (или провайдер
явно объявил их неподдерживаемыми). Это не значит «адрес чистый» — оценки риска нет. Причина
указана в поле reason. Проверьте, что валюта присутствует в GET /v1/public/aml/currencies.В чём разница между этим разделом и AML по депозиту?
В чём разница между этим разделом и AML по депозиту?
Здесь вы скрините произвольный адрес или транзакцию по своему запросу. AML по депозиту
(
/aml/deposit-checks) — это read-only выдача результата скрина, который платформа выполняет
автоматически над адресом отправителя входящей транзакции при приёме депозита.Как часто опрашивать pending-проверку?
Как часто опрашивать pending-проверку?
Раз в несколько секунд достаточно. Результат обычно готов за единицы секунд. Каждый
GET по uuid
реконсилит статус у провайдера, поэтому слишком частый опрос только расходует rate-limit.Можно ли скринить токен и нативную валюту одним запросом?
Можно ли скринить токен и нативную валюту одним запросом?
Нет, один запрос — одна валюта. Чтобы проскринить адрес как держателя токена, передайте
assetCode
токена (например USDT_TRC20). Без assetCode берётся нативная валюта сети.