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

POST /apiv2/screening ​

สั่งการตรวจสอบ AML สำหรับที่อยู่บล็อกเชน: รูปแบบการตอบกลับเดียวสำหรับทุกผู้ให้บริการและทุกสถานะของคำสั่งซื้อ, ตัวเลขทศนิยมอยู่ในรูปแบบสตริง และรูปแบบข้อผิดพลาดที่เป็นหนึ่งเดียว

URL ของ Endpoint ​

POST https://netts.io/apiv2/screening

Headers ของคำขอ ​

ส่วนหัวจำเป็นคำอธิบาย
Content-Typeใช่application/json
X-API-KEYใช่คีย์ API ของคุณจากแดชบอร์ด Netts
X-Idempotency-Keyไม่คีย์ของคุณเองสำหรับการลองใหม่ได้อย่างปลอดภัย ดูที่ การทำงานแบบ Idempotency

เนื้อหาของคำขอ ​

json
{
    "address": "YOUR_ADDRESS_HERE",
    "network": "trx",
    "provider": "elliptic",
    "wait_for_result": true
}

พารามิเตอร์ ​

พารามิเตอร์ชนิดข้อมูลจำเป็นคำอธิบาย
addressstringใช่ที่อยู่ที่ต้องการตรวจสอบ ความยาว 10–128 ตัวอักษร
networkstringใช่ทิกเกอร์เครือข่าย ทิกเกอร์ที่แต่ละผู้ให้บริการครอบคลุมมีระบุไว้โดย GET /apiv2/screening/providers
providerstringใช่elliptic หรือ bitok ไม่มีค่าเริ่มต้น
wait_for_resultbooleanไม่true จะรอผลลัพธ์นานสูงสุด 15 วินาที ค่าเริ่มต้นคือ false
languagestringไม่ภาษาของรายงาน รองรับเฉพาะ en

ฟิลด์ที่ไม่รู้จักจะถูกปฏิเสธ Body ที่มีฟิลด์ซึ่งไม่ได้อยู่ในตารางด้านบนจะส่งกลับ 400 พร้อมรหัส 4001

provider จำเป็นต้องระบุและไม่มีค่าเริ่มต้น คุณเป็นผู้เลือกผู้ให้บริการที่คุณต้องการชำระเงินเสมอ

provider เป็นสตริงรูปแบบอิสระในสกีมา ไม่ใช่ประเภทแจกแจง (enumeration) ในปัจจุบันยอมรับได้สองค่า; การเพิ่มผู้ให้บริการรายที่สามจะต้องไม่ทำให้เกิดความเสียหายสำหรับผู้ที่ตรวจสอบการตอบกลับตามสกีมา รายการปัจจุบัน เครือข่ายที่แต่ละผู้ให้บริการครอบคลุม และสเกลคะแนนที่แต่ละรายใช้มาจาก GET /apiv2/screening/providers

ตัวอย่างคำขอ ​

cURL — รอผลลัพธ์ ​

bash
curl -X POST https://netts.io/apiv2/screening \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: your_api_key" \
  -d '{
    "address": "YOUR_ADDRESS_HERE",
    "network": "trx",
    "provider": "elliptic",
    "wait_for_result": true
  }'

cURL — ยอมรับและทำโพลลิ่ง ​

bash
curl -X POST https://netts.io/apiv2/screening \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: your_api_key" \
  -d '{
    "address": "YOUR_ADDRESS_HERE",
    "network": "trx",
    "provider": "bitok"
  }'

การตอบกลับจะเป็น 202 Accepted พร้อมส่วนหัว Location ที่ชี้ไปยังคำสั่งซื้อ

Python ​

python
import requests
from decimal import Decimal

url = "https://netts.io/apiv2/screening"
headers = {
    "Content-Type": "application/json",
    "X-API-KEY": "your_api_key",
}
payload = {
    "address": "YOUR_ADDRESS_HERE",
    "network": "trx",
    "provider": "elliptic",
    "wait_for_result": True,
}

response = requests.post(url, headers=headers, json=payload)

if response.status_code in (200, 202):
    body = response.json()
    print("Order:", body["order"]["client_order_id"])
    print("Status:", body["order"]["status"])
    if body["risk"]["score"] is not None:
        # แปลงตัวเลขของผู้ให้บริการเป็น Decimal เสมอ ห้ามแปลงเป็น float
        print("Score:", Decimal(body["risk"]["score"]), "of", body["risk"]["scale"]["max"])
    print("Level:", body["risk"]["level"], "-", body["risk"]["level_source"])
    print("Charged:", body["billing"]["charged_amount"], body["billing"]["charged_currency"])
else:
    problem = response.json()
    print(problem["code"], problem["title"], "-", problem["detail"])

รหัสการตอบกลับ ​

สถานการณ์รหัสส่วนหัว
สร้างคำสั่งซื้อแล้ว การตรวจสอบกำลังดำเนินการอยู่เบื้องหลัง202 AcceptedLocation: /apiv2/screening/{client_order_id}
มีผลลัพธ์อยู่ในการตอบกลับ (wait_for_result)200 OK—
นำผลลัพธ์จากการตรวจสอบล่าสุดมาใช้ซ้ำ ไม่มีการเรียกเก็บเงิน200 OK—
ที่อยู่ไม่มีกิจกรรมบนบล็อกเชน ไม่มีการเรียกเก็บเงิน200 OK—
ข้อผิดพลาดดูที่ ข้อผิดพลาดContent-Type: application/problem+json

การตอบกลับที่มีผลการตรวจสอบจะถูกส่งมาพร้อมกับ Cache-Control: private, no-store

การตอบกลับ ​

json
{
  "schema_version": 2,
  "order": {
    "client_order_id": "A90D21F68C9AEA2",
    "status": "completed",
    "api_version": "v2",
    "cache_hit": false,
    "created_at": "2026-09-13T08:14:29.614988Z",
    "started_at": "2026-09-13T08:14:30.288251Z",
    "completed_at": "2026-09-13T08:14:34.993174Z"
  },
  "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": "b4903a5d-9f22-4075-b51b-beb40b419b97",
    "checked_at": "2026-09-13T08:14:32.144000Z",
    "status": "completed",
    "provider_status": "complete"
  },
  "risk": {
    "score": "0.9634087310611608",
    "scale": { "min": 0, "max": 10 },
    "level": "low",
    "level_source": "computed",
    "provider_level": null,
    "policy": "netts-risk-v1",
    "by_direction": {
      "source": "0.12332156899576921",
      "destination": "0.9634087310611608"
    }
  },
  "sanctions": {
    "self": false,
    "self_entities": null,
    "exposure": {
      "entity": "HTX (formerly Huobi) - Post-Sanctions - UK Sanctions List - 26 May 2026",
      "category": "Exchange",
      "share_fraction": "0.004409451392423414",
      "proximity": "indirect",
      "hops": 3,
      "direction": "source",
      "rule_name": "Sanctioned, TF & CSAM"
    },
    "items": []
  },
  "exposure": [
    {
      "category": "Exchange",
      "share_fraction": "0.1888065152442461",
      "direction": "source",
      "hops": 2,
      "is_screened_address": false,
      "entities": [
        { "name": "Binance", "category": "Exchange", "is_vasp": true,
          "is_primary": true, "is_after_sanction_date": null }
      ]
    }
  ],
  "rules": [
    { "name": "Sanctioned, TF & CSAM", "type": "exposure", "level": null,
      "score": "0.061426483114820525", "share_fraction": null, "category": null,
      "proximity": null, "direction": "source", "detected_at": null }
  ],
  "entities": [
    { "name": "Unknown", "category": "Unknown", "is_vasp": null,
      "is_primary": true, "is_after_sanction_date": false }
  ],
  "primary_entity": {
    "name": "Unknown", "category": "Unknown", "is_vasp": null,
    "is_primary": true, "is_after_sanction_date": false
  },
  "sanctioned_entities": [],
  "wallet": {
    "inflow_usd": "354663.6116669158",
    "outflow_usd": "80248.63081808022"
  },
  "provider_data": { }
}

ชุดฟิลด์จะไม่มีการเปลี่ยนแปลง ​

ทุกบล็อกที่ระบุไว้ข้างต้นจะปรากฏในทุกการตอบกลับ ไม่ว่าจะเป็นผู้ให้บริการรายใดและไม่ว่าคำสั่งซื้อจะอยู่ในสถานะใดก็ตาม ข้อมูลที่ผู้ให้บริการไม่ได้ระบุไว้จะเป็น null; รายการที่ไม่มีข้อมูลจะเป็น [] ไม่ใช่ null; บล็อกที่ยังไม่มีข้อมูลจะถูกเติมด้วยค่าว่าง (nulls) แทนที่จะถูกตัดทิ้ง ตัวแยกวิเคราะห์ (parser) เดียวจึงสามารถจัดการการตรวจสอบที่เพิ่งยอมรับและการตรวจสอบเดียวกันนั้นเมื่อเสร็จสมบูรณ์ได้

สองสิ่งที่ส่งผลต่อโค้ดของคุณ:

  • ละเว้นฟิลด์ที่คุณไม่รู้จัก ฟิลด์ใหม่จะถูกเพิ่มเข้าไปในบล็อกเหล่านี้โดยไม่ต้องมีเวอร์ชันใหม่ การปฏิเสธฟิลด์ที่ไม่รู้จักถือเป็นข้อผิดพลาดฝั่งคุณ ไม่ใช่ของเรา
  • provider_data ไม่ได้เป็นส่วนหนึ่งของสัญญา (contract) โครงสร้างของมันจะขึ้นอยู่กับผู้ให้บริการ และจะเปลี่ยนไปเมื่อผู้ให้บริการเปลี่ยนไป ทุกสิ่งที่สัญญารับประกันจะอยู่ในบล็อกด้านบน

order ​

ฟิลด์ชนิดข้อมูลคำอธิบาย
client_order_idstringตัวระบุคำสั่งซื้อ ใช้สำหรับอ่านผลลัพธ์ในภายหลัง
statusstringpending, processing, completed, skipped, failed
api_versionstringสัญญาที่สร้างคำสั่งซื้อ
cache_hitbooleanเป็น true เมื่อผลลัพธ์ล่าสุดถูกนำมาใช้ซ้ำและไม่มีการเรียกเก็บเงิน
created_atstringRFC 3339, UTC, ไมโครวินาที
started_atstring | nullเวลาที่การเรียกผู้ให้บริการเริ่มต้นขึ้น มีค่าเป็น null สำหรับ skipped
completed_atstring | nullเวลาที่ผลลัพธ์มาถึง
errorstringมีเฉพาะสำหรับ failed: เหตุผลที่ล้มเหลว
reasonstringมีเฉพาะสำหรับ skipped: address_inactive

การประทับเวลาทั้งหมดเป็น UTC, RFC 3339 พร้อมคำต่อท้าย Z และมีความละเอียดระดับไมโครวินาที

billing ​

ฟิลด์ชนิดข้อมูลคำอธิบาย
chargedbooleanมีการหักเงินหรือไม่
price_usdtstringราคาตามรายการของผู้ให้บริการในหน่วย USDT
base_amountstringราคาคำสั่งซื้อในสกุลเงินที่เรียกเก็บ โดยไม่มีมาร์กอัปของบัญชีย่อย
markup_amountstringมาร์กอัปของบัญชีย่อย "0" สำหรับบัญชีตรง
charged_amountstringจำนวนเงินที่หักจริงจากยอดคงเหลือ
charged_currencystringTRX
exchange_ratestring | nullอัตราแลกเปลี่ยนที่ใช้ในการแปลง
payment_statusstringpaid, pending, failed, not_charged, postpaid

payment_status จะเป็น pending ในช่วงเวลาสั้นๆ หลังจากการตรวจสอบสำเร็จ: การเรียกเก็บเงินจะถูกกันไว้ก่อนและจะชำระบัญชีภายในหนึ่งชั่วโมง failed หมายถึงมีการคืนเงินแล้ว not_charged หมายถึงไม่มีการสร้างการเรียกเก็บเงินขึ้นเลย — ซึ่งเป็นผลลัพธ์ที่นำมาใช้ซ้ำหรือที่อยู่ที่ถูกข้าม postpaid — ดูที่ บัญชีแบบชำระเงินทีหลัง (Postpaid)

precheck ​

ก่อนการตรวจสอบแบบมีค่าใช้จ่าย ที่อยู่จะได้รับการตรวจหากิจกรรมบนบล็อกเชน ที่อยู่ที่ไม่มีกิจกรรมจะไม่ถูกส่งไปยังผู้ให้บริการและจะไม่ถูกเรียกเก็บเงิน

ฟิลด์ชนิดข้อมูลคำอธิบาย
activity_checkedbooleanมีการตรวจสอบหรือไม่ false บนเครือข่ายที่ไม่มีการตรวจสอบนี้
activity_statusstringactive, inactive, unknown
sourcestring | nullชื่อของกลไก

unknown จะไม่หยุดการตรวจสอบแบบมีค่าใช้จ่าย: หากบริการตรวจสอบกิจกรรมไม่พร้อมใช้งาน ที่อยู่จะถือว่ามีกิจกรรม (active)

check ​

ฟิลด์ชนิดข้อมูลคำอธิบาย
providerstringผู้ให้บริการที่ทำการตรวจสอบ
provider_check_idstring | nullตัวระบุของผู้ให้บริการเอง — ให้อ้างอิงถึงตัวระบุนี้เมื่อมีการโต้แย้งผลลัพธ์กับพวกเขา
checked_atstring | nullเวลาที่ผู้ให้บริการสร้างผลลัพธ์
statusstringดูตารางด้านล่าง
provider_statusstring | nullข้อความของผู้ให้บริการเองโดยไม่มีการดัดแปลง
order.statuscheck.statusความหมาย
pendingpendingยอมรับคำสั่งซื้อแล้ว ยังไม่ได้เริ่มต้น
processingrunningผู้ให้บริการกำลังดำเนินการ
completedcompletedได้รับผลลัพธ์แล้ว
failedfailedถูกปฏิเสธก่อนหรือระหว่างการเรียกผู้ให้บริการ
skippednot_performedที่อยู่ไม่มีกิจกรรม ผู้ให้บริการไม่เคยถูกเรียกใช้และไม่มีการเรียกเก็บเงิน

risk ​

ฟิลด์ชนิดข้อมูลคำอธิบาย
scorestring | nullคะแนนของผู้ให้บริการเอง ในรูปแบบสตริงทศนิยม
scaleobjectmin และ max ของสเกลของผู้ให้บริการรายนั้น
levelstringnone, low, medium, high, severe
level_sourcestringcomputed — เราคำนวณระดับจากคะแนน; provider — ผู้ให้บริการเป็นผู้ระบุ
provider_levelstring | nullข้อความระดับของผู้ให้บริการเอง เมื่อมีการส่งกลับมา
policystringชื่อของนโยบายเกณฑ์คะแนน netts-risk-v1
by_directionobjectคะแนนที่แยกเป็น source และ destination เมื่อผู้ให้บริการมีการแยก

คะแนนจะไม่มีการปรับสเกลใหม่ Elliptic ใช้สเกล 0–10 และ BitOK ใช้สเกล 0–1 และ 7 ในสเกลหนึ่งไม่ได้มีความหมายเทียบเท่ากับ 0.7 ในอีกสเกลหนึ่ง สเกลจะถูกส่งมาในการตอบกลับเพื่อให้การผสานรวมที่เขียนขึ้นสำหรับผู้ให้บริการรายหนึ่งไม่แปลผลของผู้ให้บริการอีกรายผิดพลาดหลังจากการเปลี่ยนแปลงการกำหนดค่าเพียงจุดเดียว

ระดับความเสี่ยงจะใช้คำศัพท์ชุดเดียวกันทั่วทั้ง API ในกรณีที่ผู้ให้บริการระบุระดับของตนเองมา เราจะส่งต่อค่านั้นและแจ้งไว้ใน level_source; ในกรณีที่ไม่ได้ระบุ เราจะคำนวณระดับจากคะแนนโดยใช้เกณฑ์ของ netts-risk-v1 และระบุไว้แทน คำเดียวกันนี้จะปรากฏในการตอบกลับของ API, แดชบอร์ด และรายงาน PDF สำหรับการตรวจสอบเดียวกัน

exposure[], rules[], entities[] ​

exposure[] แจกแจงเงินทุนตามหมวดหมู่ของคู่สัญญา rules[] แสดงรายการกฎของผู้ให้บริการที่ถูกเรียกใช้ entities[] แสดงรายการเอนทิตีที่ที่อยู่นั้นสังกัดอยู่; primary_entity จะเลือกหนึ่งรายการจากกฎที่กำหนดไว้ตายตัว — เอนทิตีที่ผู้ให้บริการทำเครื่องหมายว่าเป็นหลัก หากไม่มีให้เลือกรายการแรก หากไม่มีอีกให้เป็น null sanctioned_entities[] จะเก็บเอนทิตีจาก entities[] ที่ถูกตั้งค่าสถานะว่ายังใช้งานอยู่หลังจากวันที่ถูกคว่ำบาตร

ส่วนแบ่งเป็นเศษส่วน ไม่ใช่เปอร์เซ็นต์ ​

ทุกส่วนแบ่งในการตอบกลับจะเป็นฟิลด์เดียว คือ share_fraction ซึ่งเป็นสตริงทศนิยมระหว่าง "0" ถึง "1"

text
Elliptic รายงาน 31.574732212596924 %  ->  "share_fraction": "0.31574732212596924"
BitOK รายงาน    0.8488                ->  "share_fraction": "0.8488"

ผู้ให้บริการใช้หน่วยไม่ตรงกัน: ส่วนแบ่งความเกี่ยวข้องหนึ่งในสามเท่ากันจะส่งมาจากรายหนึ่งเป็น 31.57 และจากอีกรายหนึ่งเป็น 0.3157 ฟิลด์เดียวที่เก็บทั้งสองแบบจะไม่สามารถอ่านได้โดยไม่ทราบว่ามาจากผู้ให้บริการรายใด ตัวเลขของผู้ให้บริการเองในหน่วยของผู้ให้บริการเองจะคงอยู่ใน provider_data

ตัวเลขอยู่ในรูปแบบสตริง ​

ทุกตัวเลขที่มาจากผู้ให้บริการ — คะแนน, ส่วนแบ่ง, ปริมาณธุรกรรม USD และจำนวนเงินทุกรายการใน billing — จะเป็นสตริงทศนิยม

json
"score": "0.9634087310611608"

การแยกวิเคราะห์ค่าดังกล่าวเป็นตัวเลข JSON ใน JavaScript, Go หรือภาษาอื่นที่มีเลขทศนิยมแบบไบนารีจะได้ค่าประมาณกลับมา และค่าที่คุณพิมพ์จะไม่ตรงกับค่าที่ผู้ให้บริการออกให้อีกต่อไป แยกวิเคราะห์ฟิลด์เหล่านี้ด้วยชนิดข้อมูลทศนิยม: Decimal ใน Python, BigDecimal ใน Java, decimal.Decimal หรือสตริงใน JavaScript

ฟิลด์ที่เป็นของเราเองแทนที่จะเป็นของผู้ให้บริการ — scale.min, scale.max, hops — จะเป็นตัวเลข JSON ทั่วไป

การนำผลลัพธ์ล่าสุดมาใช้ซ้ำ ​

เมื่อคุณตรวจสอบที่อยู่ เครือข่าย และผู้ให้บริการเดียวกันซ้ำอีกครั้งภายใน 60 วินาที ผลลัพธ์ก่อนหน้าจะถูกส่งกลับและไม่มีการเรียกเก็บเงิน

แต่ละคำขอยังคงสร้างคำสั่งซื้อของตนเองพร้อมกับ client_order_id ของตนเอง; รายการที่นำมาใช้ซ้ำจะถูกทำเครื่องหมายเป็น "cache_hit": true และบล็อก billing จะรายงาน "charged": false พร้อม "payment_status": "not_charged" ตัวระบุของคำสั่งซื้อที่เป็นแหล่งที่มาของผลลัพธ์จะไม่ถูกเปิดเผย — เนื่องจากอาจเป็นของบัญชีอื่น

การนำกลับมาใช้ซ้ำจะเกิดขึ้นภายในบัญชีเดียวกันเท่านั้น ผลลัพธ์ที่ได้รับการตรวจสอบโดยผู้อื่นจะไม่ถูกส่งกลับมาให้คุณ

การทำงานแบบ Idempotency ​

ส่ง X-Idempotency-Key พร้อมค่าของคุณเองเพื่อให้การลองใหม่ปลอดภัย: คีย์เดียวกันพร้อมกับ body เดียวกันจะส่งผลลัพธ์ที่บันทึกไว้กลับมาแทนที่จะสั่งการตรวจสอบครั้งที่สอง

สถานการณ์รหัสการตอบกลับ
คำขอแรกที่ใช้คีย์นี้ยังคงทำงานอยู่4094090
คีย์เดียวกัน แต่ Request Body ต่างกัน4094093
คีย์เดียวกัน Body เดียวกัน และเสร็จสิ้นไปแล้วรหัสที่บันทึกไว้การตอบกลับที่บันทึกไว้

หากคุณไม่ส่งส่วนหัวนี้ ระบบจะสร้างคีย์ให้คุณจากคีย์ API, ที่อยู่, ผู้ให้บริการ และที่อยู่ IP ของคุณ ภายในกรอบเวลาสองวินาที ซึ่งจะช่วยป้องกันการดับเบิลคลิกและการลองส่งใหม่จากเกตเวย์ แต่ไม่ป้องกันการทำซ้ำในอีกหนึ่งนาทีต่อมา: คำขอนั้นจะเป็นคำสั่งซื้อใหม่จริงๆ และจะถูกเรียกเก็บเงิน

ข้อผิดพลาด ​

ทุกข้อผิดพลาดที่เกิดขึ้นจากแอปพลิเคชันจะใช้ RFC 9457 พร้อม Content-Type: application/problem+json:

json
{
  "type": "https://doc.netts.io/api/v2/errors/insufficient-funds",
  "title": "Insufficient funds",
  "status": 403,
  "detail": "Insufficient funds. Required: 2.888742 TRX, Available: 1.203000 TRX",
  "instance": "/apiv2/screening",
  "code": 1004,
  "required_trx": "2.888742",
  "available_trx": "1.203000"
}

type, title, status, detail และ instance เป็นฟิลด์มาตรฐาน ตัวเลข code เป็นส่วนขยาย: ให้จับคู่การจัดการข้อผิดพลาดของคุณกับรหัสนี้ ฟิลด์เพิ่มเติมจะขึ้นอยู่กับข้อผิดพลาดและต้องละเว้นหากคุณไม่รู้จักฟิลด์เหล่านั้น

รหัสHTTPความหมาย
4000400Body ไม่ใช่ JSON ที่ถูกต้อง
4001400ฟิลด์ไม่ผ่านการตรวจสอบความถูกต้อง หรือมีการส่งฟิลด์ที่ไม่รู้จักมา
4002403ผู้ให้บริการนี้ไม่เปิดให้ใช้กับบัญชีของคุณ
4003400ตัวระบุคำสั่งซื้อมีรูปแบบไม่ถูกต้อง
4004400ผู้ให้บริการไม่รองรับเครือข่ายที่ร้องขอ
4010401ไม่มีคีย์ API
4011401คีย์ API หรือที่อยู่ IP ไม่ได้รับการยอมรับ
4040404ไม่พบคำสั่งซื้อ
4041404ไม่พบบัญชี
4090409คำขอที่ใช้คีย์ความไม่แปรเปลี่ยน (idempotency key) นี้ยังคงทำงานอยู่
4091409คำขอซ้ำซ้อน
4093409มีการใช้คีย์ความไม่แปรเปลี่ยนนี้กับ Body อื่น
1004403ยอดเงินคงเหลือไม่เพียงพอ
5000500ข้อผิดพลาดภายใน
5001500การเรียกเก็บเงินไม่สำเร็จ
5002500ไม่ได้สร้างคำสั่งซื้อ
5030503ผู้ให้บริการไม่พร้อมใช้งาน

ข้อผิดพลาดที่ไม่ได้ใช้รูปแบบนี้ ​

ความล้มเหลวบางอย่างเกิดขึ้นที่เกตเวย์ก่อนที่จะถึงแอปพลิเคชัน และจะยังคงรูปแบบของเกตเวย์เองไว้ ให้จัดการการตอบกลับใดๆ ที่มี Content-Type ไม่ใช่ application/problem+json เสมือนว่าเป็นกรณีเหล่านี้:

สถานการณ์HTTPBody
ไม่มีคีย์ API หรือใช้คีย์ที่ไม่ได้รับการยอมรับ401{"detail":{"code":-1,"msg":"Invalid or missing API key"}}
เกินขีดจำกัดอัตราคำขอ429{"message":"API rate limit exceeded"}
เส้นทางไม่ถูกต้อง หรือเมธอดที่เส้นทางนั้นไม่ให้บริการ404 / 405{"detail":"Method Not Allowed"}

ขีดจำกัดอัตราคำขอ ​

5 คำขอต่อวินาที และ 150 คำขอต่อนาที โดยใช้ร่วมกันระหว่างเส้นทางการตรวจสอบทั้งหมด

บัญชีแบบชำระเงินทีหลัง (Postpaid) ​

บัญชีที่ใช้การเรียกเก็บเงินแบบชำระเงินทีหลังจะใช้เอนด์พอยต์, URL, ส่วนหัว และ Request Body เดียวกันกับผู้ใช้อื่นๆ ความแตกต่างอยู่ที่วิธีการชำระค่าตรวจสอบ:

  • ไม่มีการหักเงินจากเงินฝากของคุณ ราคาของการตรวจสอบที่เสร็จสมบูรณ์แต่ละครั้งในสกุลเงินดอลลาร์สหรัฐ (ตัวอย่างเช่น $0.98 สำหรับ Elliptic) จะถูกเพิ่มเข้าไปในยอดค้างชำระของบัญชีของคุณในสกุลเงินชำระบัญชีที่ตกลงกันไว้ในสัญญา คุณชำระตามใบแจ้งหนี้ตามข้อตกลงของคุณ
  • บัญชีของคุณจะมีวงเงินสินเชื่อ ตราบใดที่ยอดค้างชำระยังอยู่ภายในวงเงิน คำขอตรวจสอบจะได้รับการยอมรับแม้ว่าเงินฝากจะเป็นศูนย์ก็ตาม
  • เรียกเก็บเงินเฉพาะการตรวจสอบที่เสร็จสมบูรณ์เท่านั้น การตรวจสอบที่ล้มเหลว, ที่อยู่ไม่มีกิจกรรม (skipped) และผลลัพธ์ล่าสุดที่นำมาใช้ซ้ำจะไม่มีค่าใช้จ่าย

Netts จะเปิดใช้งานการเรียกเก็บเงินแบบชำระเงินทีหลังสำหรับบัญชีตามคำขอ

billing ของการตรวจสอบแบบชำระเงินทีหลัง ​

json
"billing": {
    "charged": false,
    "price_usdt": "0.98",
    "base_amount": "2.960725",
    "markup_amount": "0",
    "charged_amount": "2.960725",
    "charged_currency": "TRX",
    "exchange_rate": "0.33100000",
    "payment_status": "postpaid"
}
ฟิลด์คำอธิบาย
chargedfalse: ไม่มีการหักเงินจากเงินฝาก
price_usdtราคาของการตรวจสอบในสกุลเงินดอลลาร์สหรัฐ นี่คือจำนวนเงินที่เพิ่มเข้าไปในยอดค้างชำระของคุณ
charged_amountราคาเดียวกันในสกุลเงิน TRX สำหรับการอ้างอิง
payment_statuspostpaid สำหรับการตรวจสอบที่ล้มเหลวหรือถูกข้ามจะเป็น — not_charged

ถึงวงเงินสินเชื่อแล้ว (402) ​

json
{
  "type": "https://doc.netts.io/api/v2/errors/credit-limit-reached",
  "title": "Postpaid credit limit reached",
  "status": 402,
  "detail": "Postpaid credit limit reached.",
  "instance": "/apiv2/screening",
  "code": 1004,
  "payment_mode": "postpaid",
  "reason": "limit_reached"
}

คำสั่งตรวจสอบจะไม่ถูกสั่งการและไม่มีการเรียกเก็บเงิน คำขอตรวจสอบใหม่จะได้รับการยอมรับอีกครั้งเมื่อการชำระเงินของคุณได้รับการบันทึกหรือวงเงินของคุณได้รับการเพิ่มขึ้น

รหัสข้อผิดพลาดของระบบชำระเงินทีหลัง ​

รหัสHTTPคำอธิบาย
1004402ถึงวงเงินสินเชื่อแบบชำระเงินทีหลังแล้ว
5032503ราคาไม่พร้อมใช้งานชั่วคราว
5034503ระบบการเรียกเก็บเงินไม่พร้อมใช้งานชั่วคราว — ไม่ยอมรับการตรวจสอบ
5036503การตรวจสอบวงเงินสินเชื่อไม่พร้อมใช้งานชั่วคราว — ให้ลองใหม่ภายหลัง

สำหรับการตอบกลับทั้งหมดข้างต้น จะไม่มีการสั่งการและไม่มีการเรียกเก็บเงิน

หมายเหตุ ​

  • การกำหนดราคา: ราคาคงที่ต่อการตรวจสอบหนึ่งครั้งสำหรับผู้ให้บริการแต่ละราย ดู GET /apiv2/screening/providers โดยหักจากยอด TRX ตามอัตราแลกเปลี่ยน ณ เวลาที่หักเงิน
  • เวลาในการประมวลผล: การตรวจสอบส่วนใหญ่จะเสร็จสิ้นภายในไม่กี่วินาที; ที่อยู่ที่มีประวัติยาวนานอาจใช้เวลานานถึงสามนาที ให้ใช้โหมดอะซิงโครนัสและอ่านผลลัพธ์ด้วย GET /apiv2/screening/{client_order_id}
  • ที่อยู่ที่ไม่มีกิจกรรม จะส่งคืน skipped และไม่มีการเรียกเก็บเงิน
  • การตอบกลับดิบของผู้ให้บริการจะไม่ถูกส่งกลับมา provider_data คือข้อมูลที่ได้รับการคัดกรองแล้ว; ฟิลด์ที่เป็นของบัญชีเรากับผู้ให้บริการแทนที่จะเป็นของที่อยู่ที่ถูกตรวจสอบจะไม่ถูกเผยแพร่ให้ใคร

รายงาน ​

เอนด์พอยต์นี้ส่งคืน JSON เท่านั้น ไม่มี PDF และไม่มี Markdown

ทุกองค์ประกอบของรายงานมีอยู่ในการตอบกลับแล้ว: บล็อกรวมและ provider_data การนำไปประมวลผลการแสดงผลฝั่งคุณจะทำให้คุณได้เอกสารตามที่ต้องการอย่างแท้จริง — ทั้งแบรนด์ของคุณ ภาษาของคุณ รูปแบบเลย์เอาต์ของคุณ — ซึ่งเป็นประเด็นสำคัญอย่างยิ่งหากคุณนำการตรวจสอบไปจำหน่ายต่อ เพราะรายงานที่มีชื่อของเราย่อมเป็นเอกสารที่ไม่เหมาะสมที่จะส่งต่อให้ลูกค้าของคุณเอง

หากคุณต้องการรายงานเพื่อใช้เป็นหลักฐานสำหรับบุคคลภายนอก — ธนาคาร หน่วยงานกำกับดูแล คู่สัญญา — พึงทราบว่า PDF ที่ไม่ได้ลงนามดิจิทัลไม่ใช่หลักฐานไม่ว่าใครจะเป็นผู้สร้างขึ้นก็ตาม เพราะสามารถแก้ไขได้ด้วยโปรแกรมแก้ไขข้อความภายในหนึ่งนาที สิ่งที่ตรวจสอบยืนยันได้จำเป็นต้องมีลายเซ็นดิจิทัลหรือหน้ายืนยันความถูกต้องแบบสาธารณะ ซึ่งนั่นเป็นอีกฟีเจอร์หนึ่ง หากเป็นกรณีนี้ โปรดแจ้งให้เราทราบถึงสิ่งที่คู่สัญญาของคุณต้องการ

อย่างไรก็ดี แดชบอร์ดของ Netts มีรายงาน PDF ที่มนุษย์อ่านได้สำหรับการตรวจสอบเดียวกันนี้ในสิบเจ็ดภาษา

ดูเพิ่มเติม ​