GET /apiv2/screening/
Lee una orden de screening en cualquier estado. La lectura es gratuita y puede repetirse tantas veces como desee.
Este es el contrato de la versión 2. Reemplaza a GET /apiv2/aml/{order_id}, que sigue funcionando.
URL del endpoint
GET https://netts.io/apiv2/screening/{client_order_id}Encabezados de solicitud
| Header | Required | Description |
|---|---|---|
| X-API-KEY | Sí | Su clave API del panel de control de Netts |
Parámetros de ruta
| Parameter | Type | Description |
|---|---|---|
| client_order_id | string | El identificador devuelto cuando se creó la orden: A seguido de 14 caracteres hexadecimales |
Parámetros de consulta
| Parameter | Type | Default | Description |
|---|---|---|---|
| format | string | json | Representación del resultado. json es el único valor aceptado |
La representación es una propiedad de la solicitud, no de la orden. En la versión 1 se fijaba al crear la orden, por lo que una verificación solicitada como JSON nunca podía leerse de otra forma.
Existe una sola representación, y es JSON. El parámetro se conserva para que añadir una segunda más adelante no sea un cambio disruptivo; hoy en día cualquier otro valor devuelve 4001. Un informe es una representación visual de datos que ya posee por completo, y generarlo usted mismo le permite utilizar su propia marca, su propio idioma y su propio diseño. Consulte Informes.
Ejemplos
cURL
curl https://netts.io/apiv2/screening/A90D21F68C9AEA2 \
-H "X-API-KEY: your_api_key"Python — consultar periódicamente hasta que finalice la verificación
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"])Respuesta
200 OK con el mismo cuerpo que POST /apiv2/screening, en cualquier estado de la orden. El conjunto de campos no depende del estado: los bloques que aún no tienen datos se rellenan con valores nulos y listas vacías en lugar de omitirse.
Las respuestas que contienen un resultado de screening se envían con Cache-Control: private, no-store.
Una verificación que no ha finalizado
{
"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": { }
}Una dirección sin actividad
Una dirección que nunca se ha utilizado en la blockchain no se envía al proveedor y no se cobra. La orden existe, por lo que el resultado puede leerse:
{
"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 }
}Aquí solo se muestran los bloques que cambian; el resto está presente con valores nulos y listas vacías como siempre.
Respuestas de error
El formato es RFC 9457, Content-Type: application/problem+json. La lista completa de códigos se encuentra en la página de POST.
| Code | HTTP | When |
|---|---|---|
4003 | 400 | El identificador no es A más 14 caracteres hexadecimales |
4040 | 404 | No existe dicha orden |
4010 / 4011 | 401 | Falta la clave API, o se trata de una clave o IP no aceptada |
Una orden que pertenece a otra cuenta responde 404, no 403. De lo contrario, el código de respuesta por sí solo confirmaría que el identificador de otra persona existe.
{
"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
}Límites de tasa
Compartidos con todas las demás rutas de AML: 5 solicitudes por segundo, 150 por minuto. Las consultas periódicas no tienen costo pero cuentan para el límite; dos segundos entre cada consulta es suficiente.
Véase también
- POST /apiv2/screening — solicitar una verificación
- GET /apiv2/screening/history — múltiples verificaciones a la vez, en formato abreviado