Appearance
GET /apiv2/screening/
Membaca pesanan screening dalam status apa pun. Membaca bersifat gratis dan dapat diulang sesering yang Anda inginkan.
Ini adalah kontrak versi 2. Kontrak ini menggantikan GET /apiv2/aml/{order_id}, yang tetap berfungsi.
URL Endpoint
GET https://netts.io/apiv2/screening/{client_order_id}Header Permintaan
| Header | Wajib | Deskripsi |
|---|---|---|
| X-API-KEY | Ya | API key Anda dari dasbor Netts |
Parameter Jalur
| Parameter | Tipe | Deskripsi |
|---|---|---|
| client_order_id | string | Pengidentifikasi yang dikembalikan saat pesanan dibuat: A diikuti oleh 14 karakter heksadesimal |
Parameter Kueri
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
| format | string | json | Representasi dari hasil. json adalah satu-satunya nilai yang diterima |
Representasi adalah properti dari permintaan, bukan dari pesanan. Pada versi 1 hal ini ditetapkan saat pesanan dibuat, sehingga pemeriksaan yang dipesan sebagai JSON tidak akan pernah dapat dibaca dengan cara lain.
Hanya ada satu representasi, yaitu JSON. Parameter ini dipertahankan agar penambahan representasi kedua nantinya tidak menjadi breaking change; saat ini nilai lainnya mengembalikan 4001. Laporan adalah render dari data yang sudah Anda miliki secara lengkap, dan merendernya sendiri memberi Anda branding Anda sendiri, bahasa Anda sendiri, serta tata letak Anda sendiri. Lihat Laporan.
Contoh Permintaan
cURL
bash
curl https://netts.io/apiv2/screening/A90D21F68C9AEA2 \
-H "X-API-KEY: your_api_key"Python — polling hingga pemeriksaan selesai
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"])Respons
200 OK dengan body yang sama seperti POST /apiv2/screening, pada setiap status pesanan. Kumpulan bidang tidak bergantung pada status: blok yang belum memiliki data diisi dengan null dan daftar kosong, alih-alih dihilangkan.
Respons yang memuat hasil screening dikirim dengan Cache-Control: private, no-store.
Pemeriksaan yang belum selesai
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": { }
}Alamat tanpa aktivitas
Alamat yang belum pernah digunakan di blockchain tidak akan dikirim ke penyedia dan tidak dikenakan biaya. Pesanan tetap ada, sehingga hasilnya dapat dibaca:
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 }
}Hanya blok yang berubah yang ditampilkan di sini; sisanya tetap ada dengan null dan daftar kosong seperti biasa.
Error
Formatnya adalah RFC 9457, Content-Type: application/problem+json. Daftar kode lengkap ada di halaman POST.
| Kode | HTTP | Kapan |
|---|---|---|
4003 | 400 | Pengidentifikasi bukan A ditambah 14 karakter heksadesimal |
4040 | 404 | Pesanan tidak ditemukan |
4010 / 4011 | 401 | Tidak ada API key, atau kunci atau IP tidak diterima |
Pesanan milik akun lain merespons 404, bukan 403. Jika tidak, kode respons saja akan mengonfirmasi bahwa pengidentifikasi milik orang lain memang ada.
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
}Batas Frekuensi
Berbagi batas dengan setiap jalur AML lainnya: 5 permintaan per detik, 150 per menit. Polling tidak dikenakan biaya tetapi diperhitungkan dalam batas — jeda dua detik antar polling sudah sangat cukup.
Lihat Juga
- POST /apiv2/screening — memesan pemeriksaan
- GET /apiv2/screening/history — banyak pemeriksaan sekaligus, dalam bentuk ringkas