GET /apiv2/screening/
อ่านข้อมูลคำสั่งตรวจคัดกรองในทุกสถานะ การอ่านข้อมูลไม่มีค่าใช้จ่ายและสามารถเรียกซ้ำได้บ่อยตามที่ต้องการ
นี่คือสัญญาเวอร์ชัน 2 ซึ่งเข้ามาแทนที่ GET /apiv2/aml/{order_id} ที่ยังคงใช้งานได้อยู่
URL ของ Endpoint
GET https://netts.io/apiv2/screening/{client_order_id}Headers ของคำขอ
| Header | จำเป็น | คำอธิบาย |
|---|---|---|
| X-API-KEY | ใช่ | คีย์ API ของคุณจากแดชบอร์ด Netts |
Path Parameters
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
| client_order_id | string | ตัวระบุที่ได้รับกลับมาเมื่อมีการสร้างคำสั่ง: A ตามด้วยอักขระเลขฐานสิบหก 14 ตัว |
Query Parameters
| พารามิเตอร์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| format | string | json | รูปแบบการแสดงผลลัพธ์ โดย json เป็นค่าเดียวที่ยอมรับ |
รูปแบบการแสดงผลเป็นคุณสมบัติของคำขอ ไม่ใช่ของคำสั่ง ในเวอร์ชัน 1 รูปแบบจะถูกกำหนดตายตัวเมื่อสร้างคำสั่ง ทำให้การตรวจสอบที่สั่งเป็น JSON ไม่สามารถอ่านในรูปแบบอื่นได้เลย
มีการแสดงผลเพียงรูปแบบเดียว และนั่นคือ JSON พารามิเตอร์นี้ยังคงถูกเก็บไว้เพื่อไม่ให้การเพิ่มรูปแบบที่สองในภายหลังกลายเป็นการเปลี่ยนแปลงที่ทำให้ระบบเดิมหยุดทำงาน (breaking change) โดยในปัจจุบันค่าอื่นใดจะส่งคืน 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 คำขอต่อนาที การดึงข้อมูลตรวจสอบสถานะ (polling) ไม่มีค่าใช้จ่ายแต่นับรวมในขีดจำกัด — เว้นระยะห่างสองวินาทีระหว่างแต่ละครั้งก็เพียงพอแล้ว
ดูเพิ่มเติม
- POST /apiv2/screening — สั่งตรวจคัดกรอง
- GET /apiv2/screening/history — รายการตรวจคัดกรองจำนวนมากพร้อมกันในรูปแบบย่อ