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

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

HeaderRequiredDescription
X-API-KEYSu clave API del panel de control de Netts

Parámetros de ruta

ParameterTypeDescription
client_order_idstringEl identificador devuelto cuando se creó la orden: A seguido de 14 caracteres hexadecimales

Parámetros de consulta

ParameterTypeDefaultDescription
formatstringjsonRepresentació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

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

Python — consultar periódicamente hasta que finalice la verificación

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

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

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

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:

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 }
}

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.

CodeHTTPWhen
4003400El identificador no es A más 14 caracteres hexadecimales
4040404No existe dicha orden
4010 / 4011401Falta 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.

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
}

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