Проверка адреса
Синхронно проверяет блокчейн-адрес, сохраняет запись и возвращает полный обезличенный отчёт в теле ответа 201. Идентификатор проверки (id) используйте для повторного получения отчёта и выгрузки PDF — см. Отчёты и PDF.
/api/v1/aml/checks
Проверить блокчейн-адрес
Body
| Name | Type | Required | Description |
|---|---|---|---|
address
|
string
|
required | Блокчейн-адрес. Максимум 120 символов. |
network
|
string
|
optional |
Сеть адреса: tron, ethereum, bitcoin, litecoin и т.д. Максимум 20 символов. Если не указана — сеть определяется по формату адреса; для адресов, валидных в нескольких сетях (например EVM-совместимых), указывайте явно.
|
Responses
{
"data": {
"id": "b7e4c1a2-3f5d-4e8a-9c1b-2d6f7a8e0b3c",
"address": "TXYZ1234567890abcdefGHIJKLmnop",
"network": "tron",
"risk_score": 64,
"risk_level": "high",
"report": {
"risk_score": 64,
"risk_level": "high",
"recommendation": "reject",
"signals": {
"sanctioned": false,
"watchlisted": false,
"watchlist_category": null,
"community_reports": 4,
"high_risk_counterparties": 1,
"fatf_country": true,
"is_stablecoin_contract": false,
"defi_exposure_score": 24
},
"factors": [
{ "code": "cluster_risk", "label": "Кластерный риск", "score": 4 },
{ "code": "direct_exposure", "label": "Прямая экспозиция к рисковым адресам", "score": 14 },
{ "code": "anomaly_ml", "label": "Поведенческие ML-аномалии", "score": 64 }
],
"networks": [
{
"network": "tron",
"native_balance": 0,
"tx_count": 231,
"first_tx_at": null,
"last_tx_at": null,
"is_contract": false
}
],
"balances": {
"USDT": 0,
"USDC": 0,
"tx_count": 231,
"account_age_days": 512
},
"checked_at": "2026-07-13T10:24:00+00:00",
"sandbox": true
},
"pricing": { "markup_pct": 0 },
"report_url": "https://fin-os.io/api/v1/aml/checks/b7e4c1a2-3f5d-4e8a-9c1b-2d6f7a8e0b3c/report.pdf",
"created_at": "2026-07-13T10:24:00+00:00"
}
}
Поле report.sandbox присутствует и равно true только в sandbox-ответах; в live его нет.
Вердикт: score → level → recommendation
risk_score (0–100) отображается в risk_level по порогам, а risk_level — в готовую рекомендацию recommendation. Соответствие уровня и рекомендации одинаково в обоих окружениях. Для быстрых правил на своей стороне полагайтесь именно на recommendation.
| Name | Type | Required | Description |
|---|---|---|---|
0–39
|
low
|
optional |
recommendation: allow — пропустить.
|
40–59
|
medium
|
optional |
recommendation: review — на ручную проверку.
|
60–79
|
high
|
optional |
recommendation: reject — отклонить.
|
80–100
|
critical
|
optional |
recommendation: block — заблокировать.
|
signals.sanctioned = true) и при risk_level: critical рекомендация всегда block. Такие адреса блокируйте жёстко на своей стороне — не полагайтесь только на «мягкие» пороги.
signals
Плоский набор булевых и числовых сигналов — самые «читаемые» поля для быстрых правил на вашей стороне.
report.signals
| Name | Type | Required | Description |
|---|---|---|---|
sanctioned
|
bool
|
optional | Адрес найден в санкционных списках. |
watchlisted
|
bool
|
optional | Адрес найден в watchlist. |
watchlist_category
|
string|null
|
optional |
Категория watchlist-совпадения (например high_risk_entity) или null.
|
community_reports
|
int
|
optional | Число публичных жалоб сообщества на адрес. |
high_risk_counterparties
|
int
|
optional | Число контрагентов с высоким риском. |
fatf_country
|
bool
|
optional | Связь с юрисдикцией из индикаторов FATF. |
is_stablecoin_contract
|
bool
|
optional | Адрес является контрактом стейблкоина. |
defi_exposure_score
|
int|null
|
optional |
Оценка экспозиции к DeFi (0–100) или null.
|
factors
Разложение скоринга по факторам. Каждый элемент — { code, label, score }, где score — вклад фактора (0–100). Состав массива зависит от адреса и может пополняться, поэтому обрабатывайте его как список, а не как фиксированный набор ключей. Возможные коды:
report.factors[].code
| Name | Type | Required | Description |
|---|---|---|---|
cluster_risk
|
string
|
optional | Кластерный риск. |
direct_exposure
|
string
|
optional | Прямая экспозиция к рисковым адресам. |
community_reports
|
string
|
optional | Публичные жалобы сообщества. |
balance_risk
|
string
|
optional | Риск по балансу и активности. |
fatf_indicators
|
string
|
optional | Юрисдикционные индикаторы (FATF). |
historical_coin_risk
|
string
|
optional | Исторический риск актива. |
anomaly_ml
|
string
|
optional | Поведенческие ML-аномалии. |
loo_toxicity
|
string
|
optional | Токсичность окружения. |
multihop_trace
|
string
|
optional | Многоступенчатая трассировка. |
bridge_contamination
|
string
|
optional | Контаминация через кросс-чейн мосты. |
defi_exposure
|
string
|
optional | DeFi-экспозиция. |
time_of_day_pattern
|
string
|
optional | Временной паттерн активности. |
velocity_decay
|
string
|
optional | Затухание скорости операций. |
token_mix_entropy
|
string
|
optional | Энтропия набора токенов. |
realtime_security
|
string
|
optional | Реал-тайм проверка безопасности контракта. |
intelligence_verdicts
|
string
|
optional | Сводные вердикты разведданных. |
deprecated_stablecoins
|
string
|
optional | Устаревшие стейблкоины. |
networks и balances
report.networks[] — агрегаты активности по каждой затронутой сети.
report.networks[]
| Name | Type | Required | Description |
|---|---|---|---|
network
|
string
|
optional |
Сеть: tron, ethereum, bitcoin, litecoin и т.д.
|
native_balance
|
number
|
optional | Баланс нативной монеты сети. |
tx_count
|
int
|
optional | Число транзакций в этой сети. |
first_tx_at
|
datetime|null
|
optional |
Первая транзакция (ISO 8601) или null.
|
last_tx_at
|
datetime|null
|
optional |
Последняя транзакция (ISO 8601) или null.
|
is_contract
|
bool
|
optional | Адрес — смарт-контракт. |
report.balances — сводные балансы и метрики по адресу.
report.balances
| Name | Type | Required | Description |
|---|---|---|---|
USDT
|
number
|
optional | Баланс USDT. |
USDC
|
number
|
optional | Баланс USDC. |
tx_count
|
int
|
optional | Совокупное число транзакций. |
account_age_days
|
int|null
|
optional |
Возраст адреса в днях или null.
|
pricing
pricing.markup_pct — процент наценки, применяемый к базовой стоимости проверки в вашем контуре. Без активного мерчант-профиля или на базовом тарифе — 0.