Skip to content
Translated page. The English version is the source of truth.

GET /apiv2/screening/

Đọc một đơn hàng sàng lọc ở bất kỳ trạng thái nào. Việc đọc là miễn phí và có thể được lặp lại bao nhiêu lần tùy ý.

Đây là hợp đồng phiên bản 2. Nó thay thế cho GET /apiv2/aml/{order_id}, vốn vẫn đang hoạt động.

URL điểm cuối

GET https://netts.io/apiv2/screening/{client_order_id}

Tiêu đề yêu cầu

HeaderBắt buộcMô tả
X-API-KEYKhóa API của bạn từ bảng điều khiển Netts

Tham số đường dẫn

Tham sốLoạiMô tả
client_order_idstringMã định danh được trả về khi đơn hàng được tạo: A theo sau là 14 ký tự thập lục phân

Tham số truy vấn

Tham sốLoạiMặc địnhMô tả
formatstringjsonĐịnh dạng hiển thị của kết quả. json là giá trị duy nhất được chấp nhận

Định dạng hiển thị là một thuộc tính của yêu cầu, không phải của đơn hàng. Ở phiên bản 1 nó được cố định khi đơn hàng được tạo, do đó một yêu cầu kiểm tra được đặt dưới dạng JSON sẽ không bao giờ có thể đọc theo bất kỳ định dạng nào khác.

Chỉ có một định dạng hiển thị duy nhất, và đó là JSON. Tham số này được giữ lại để việc bổ sung định dạng thứ hai sau này không tạo ra thay đổi gây lỗi (breaking change); hiện tại bất kỳ giá trị nào khác đều trả về 4001. Một báo cáo là việc kết xuất dữ liệu mà bạn đã có đầy đủ, và tự kết xuất dữ liệu giúp bạn có thương hiệu riêng, ngôn ngữ riêng và bố cục riêng của mình. Xem Báo cáo.

Yêu cầu mẫu

cURL

bash
curl https://netts.io/apiv2/screening/A90D21F68C9AEA2 \
  -H "X-API-KEY: your_api_key"

Python — thăm dò liên tục cho đến khi quá trình kiểm tra hoàn tất

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"])

Phản hồi

200 OK với phần thân tương tự như POST /apiv2/screening, ở mọi trạng thái của đơn hàng. Tập hợp các trường không phụ thuộc vào trạng thái: các khối chưa có dữ liệu sẽ được điền các giá trị null và danh sách rỗng thay vì bị bỏ sót.

Các phản hồi mang kết quả sàng lọc được gửi kèm với Cache-Control: private, no-store.

Một yêu cầu kiểm tra chưa hoàn tất

json
{
  "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": { }
}

Một địa chỉ không có hoạt động

Một địa chỉ chưa từng được sử dụng trên blockchain sẽ không được gửi tới nhà cung cấp và không bị tính phí. Đơn hàng vẫn tồn tại, vì vậy kết quả có thể đọc được:

json
{
  "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 }
}

Ở đây chỉ hiển thị các khối có thay đổi; phần còn lại vẫn xuất hiện với các giá trị null và danh sách rỗng như thường lệ.

Lỗi

Định dạng là RFC 9457, Content-Type: application/problem+json. Danh sách mã đầy đủ có tại trang POST.

HTTPKhi nào
4003400Mã định danh không phải là A kèm theo 14 ký tự thập lục phân
4040404Không có đơn hàng như vậy
4010 / 4011401Không có khóa API, hoặc khóa hay IP không được chấp nhận

Một đơn hàng thuộc về tài khoản khác sẽ trả về 404, không phải 403. Nếu không thì chỉ riêng mã phản hồi đã có thể xác nhận rằng mã định danh của người khác tồn tại.

json
{
  "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
}

Giới hạn tốc độ

Được chia sẻ với tất cả các đường dẫn AML khác: 5 yêu cầu mỗi giây, 150 yêu cầu mỗi phút. Việc thăm dò không tốn chi phí nhưng vẫn tính vào giới hạn — khoảng cách hai giây giữa các lần thăm dò là hoàn toàn thoải mái.

Xem thêm