GET /apiv2/screening/
Получить заказ на проверку в любом статусе. Запрос бесплатный и может выполняться так часто, как вам требуется.
Это контракт версии 2. Он заменяет собой GET /apiv2/aml/{order_id}, который продолжает работать.
URL эндпоинта
GET https://netts.io/apiv2/screening/{client_order_id}Заголовки запроса
| Заголовок | Обязательный | Описание |
|---|---|---|
| X-API-KEY | Да | Ваш API-ключ из панели управления Netts |
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
| client_order_id | string | Идентификатор, полученный при создании заказа: A, за которой следуют 14 шестнадцатеричных символов |
Параметры запроса
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| format | string | json | Формат представления результата. json — единственное допустимое значение |
Формат представления является свойством запроса, а не заказа. В версии 1 он фиксировался при создании заказа, поэтому проверку, запрошенную как JSON, нельзя было прочитать ни в каком другом виде.
Существует только один формат представления, и это JSON. Параметр сохранен для того, чтобы добавление второго формата в будущем не привело к нарушению обратной совместимости; сейчас любое другое значение возвращает 4001. Отчет представляет собой лишь визуализацию данных, которые у вас уже имеются в полном объеме, а самостоятельная генерация отчета дает вам возможность использовать собственное брендирование, язык и оформление. См. Отчеты.
Примеры запросов
cURL
curl https://netts.io/apiv2/screening/A90D21F68C9AEA2 \
-H "X-API-KEY: your_api_key"Python — опрос до завершения проверки
import time
import requests
headers = {"X-API-KEY": "your_api_key"}
url = "https://netts.io/apiv2/screening/A90D21F68C9AEA2"
while True:
body = requests.get(url, headers=headers).json()
status = body["order"]["status"]
if status in ("completed", "failed", "skipped"):
break
time.sleep(2)
print(status, body["risk"]["level"], body["risk"]["score"])Ответ
200 OK с тем же телом, что и у POST /apiv2/screening, при любом статусе заказа. Набор полей не зависит от статуса: блоки, по которым еще нет данных, заполняются значениями null и пустыми списками, а не исключаются.
Ответы, содержащие результат проверки, отправляются с заголовком Cache-Control: private, no-store.
Незавершенная проверка
{
"schema_version": 2,
"order": {
"client_order_id": "A90D21F68C9AEA2",
"status": "pending",
"api_version": "v2",
"cache_hit": false,
"created_at": "2026-09-13T08:14:29.614988Z",
"started_at": null,
"completed_at": null
},
"request": { "address": "YOUR_ADDRESS_HERE", "network": "trx", "provider": "elliptic" },
"billing": {
"charged": true, "price_usdt": "0.98", "base_amount": "2.882421",
"markup_amount": "0", "charged_amount": "2.882421", "charged_currency": "TRX",
"exchange_rate": "0.33999200", "payment_status": "pending"
},
"precheck": { "activity_checked": true, "activity_status": "active", "source": "tron-address-checker" },
"check": {
"provider": "elliptic", "provider_check_id": null, "checked_at": null,
"status": "pending", "provider_status": null
},
"risk": {
"score": null, "scale": { "min": 0, "max": 10 }, "level": "none",
"level_source": "computed", "provider_level": null, "policy": "netts-risk-v1",
"by_direction": { "source": null, "destination": null }
},
"sanctions": null,
"exposure": [],
"rules": [],
"entities": [],
"primary_entity": null,
"sanctioned_entities": [],
"wallet": { "inflow_usd": null, "outflow_usd": null },
"provider_data": { }
}Адрес без активности
Адрес, который ни разу не использовался в блокчейне, не отправляется провайдеру и не оплачивается. Заказ существует, поэтому результат можно прочитать:
{
"order": {
"client_order_id": "AC4F9BC45A79323",
"status": "skipped",
"started_at": null,
"completed_at": null,
"reason": "address_inactive"
},
"billing": { "charged": false, "charged_amount": "0", "payment_status": "not_charged" },
"precheck": { "activity_checked": true, "activity_status": "inactive", "source": "tron-address-checker" },
"check": { "status": "not_performed", "provider_check_id": null, "checked_at": null }
}Здесь показаны только изменяющиеся блоки; остальные присутствуют со значениями null и пустыми списками, как и обычно.
Ошибки
Формат соответствует RFC 9457, Content-Type: application/problem+json. Полный список кодов приведен на странице POST.
| Код | HTTP | Условие |
|---|---|---|
4003 | 400 | Идентификатор не состоит из A и следующих за ней 14 шестнадцатеричных символов |
4040 | 404 | Заказ не найден |
4010 / 4011 | 401 | API-ключ отсутствует, либо передан неподходящий ключ или IP |
Заказ, принадлежащий другому аккаунту, возвращает 404, а не 403. В противном случае сам код ответа подтверждал бы существование чужого идентификатора.
{
"type": "https://doc.netts.io/api/v2/errors/order-not-found",
"title": "Order not found",
"status": 404,
"detail": "Order not found",
"instance": "/apiv2/screening/AFFFFFFFFFFFFFF",
"code": 4040
}Лимиты запросов
Общие для всех остальных путей AML: 5 запросов в секунду, 150 в минуту. Опрос статуса бесплатен, но учитывается в лимите — интервала в две секунды между запросами более чем достаточно.
Смотрите также
- POST /apiv2/screening — заказ проверки
- GET /apiv2/screening/history — получение нескольких проверок одновременно в краткой форме