Appearance
GET /apiv2/screening/
Consulte um pedido de screening em qualquer estado. A consulta é gratuita e pode ser repetida quantas vezes desejar.
Este é o contrato da versão 2. Ele substitui o GET /apiv2/aml/{order_id}, que continua funcionando.
URL do endpoint
GET https://netts.io/apiv2/screening/{client_order_id}Cabeçalhos da requisição
| Header | Required | Description |
|---|---|---|
| X-API-KEY | Sim | Sua chave de API do painel da Netts |
Parâmetros de caminho
| Parameter | Type | Description |
|---|---|---|
| client_order_id | string | O identificador retornado quando o pedido foi criado: A seguido por 14 caracteres hexadecimais |
Parâmetros de consulta
| Parameter | Type | Default | Description |
|---|---|---|---|
| format | string | json | Representação do resultado. json é o único valor aceito |
A representação é uma propriedade da requisição, não do pedido. Na versão 1 ela era fixada quando o pedido era criado, portanto uma verificação solicitada como JSON nunca poderia ser lida de outra forma.
Existe uma única representação, e ela é JSON. O parâmetro é mantido para que adicionar uma segunda posteriormente não seja uma alteração incompatível; hoje qualquer outro valor retorna 4001. Um relatório é uma renderização de dados que você já possui por completo, e renderizá-lo por conta própria oferece sua própria marca, seu próprio idioma e seu próprio layout. Consulte Relatórios.
Exemplos
cURL
bash
curl https://netts.io/apiv2/screening/A90D21F68C9AEA2 \
-H "X-API-KEY: your_api_key"Python — consultar periodicamente até que a verificação seja concluída
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"])Resposta
200 OK com o mesmo corpo de POST /apiv2/screening, em qualquer estado do pedido. O conjunto de campos não depende do estado: blocos que ainda não possuem dados são preenchidos com valores nulos e listas vazias, em vez de serem omitidos.
Respostas que contêm um resultado de screening são enviadas com Cache-Control: private, no-store.
Uma verificação que não está concluída
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": { }
}Um endereço sem atividade
Um endereço que nunca foi usado na blockchain não é enviado para o provedor e não é cobrado. O pedido existe, portanto o resultado pode ser lido:
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 }
}Apenas os blocos que mudam são mostrados aqui; os demais estão presentes com valores nulos e listas vazias como sempre.
Respostas de erro
O formato é RFC 9457, Content-Type: application/problem+json. A lista completa de códigos está na página do POST.
| Code | HTTP | When |
|---|---|---|
4003 | 400 | O identificador não é A seguido de 14 caracteres hexadecimais |
4040 | 404 | Pedido inexistente |
4010 / 4011 | 401 | Nenhuma chave de API fornecida, ou uma chave ou IP não aceito |
Um pedido pertencente a outra conta responde com 404, não com 403. Caso contrário, o código de resposta por si só confirmaria a existência do identificador de outra pessoa.
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
}Limites de taxa
Compartilhado com todas as outras rotas de AML: 5 requisições por segundo, 150 por minuto. Fazer polling não custa nada, mas conta para o limite — dois segundos entre consultas são mais que suficientes.
Veja Também
- POST /apiv2/screening — solicitar uma verificação
- GET /apiv2/screening/history — várias verificações de uma só vez, no formato resumido