Skip to content

Verificare lo stato AML ​

Recupera lo stato corrente e la valutazione del rischio di un controllo AML esistente. I dati vengono aggiornati quando sono disponibili nuove informazioni.

POST /v1/aml-checks/check

Richiesta ​

Parametri ​

CampoTipoObbligatorioDescrizione
idstringSìIdentificativo del controllo AML
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "id": "1042"
}'

# Calcola la firma
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Esegui la richiesta API
curl -X POST "https://api.trxup.com/v1/aml-checks/check" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'your_api_token';
const apiSecret = 'your_api_secret';
const requestBody = JSON.stringify({
  id: '1042'
});

// Calcola la firma
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Esegui la richiesta API
axios({
  method: 'post',
  url: 'https://api.trxup.com/v1/aml-checks/check',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
php
<?php
$apiToken = 'your_api_token';
$apiSecret = 'your_api_secret';
$requestBody = json_encode([
  'id' => '1042'
]);

// Calcola la firma
$signature = hash('sha256', $requestBody . $apiSecret);

// Esegui la richiesta API
$ch = curl_init('https://api.trxup.com/v1/aml-checks/check');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer ' . $apiToken,
  'X-Signature: ' . $signature,
  'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
python
import hashlib
import json
import requests

api_token = 'your_api_token'
api_secret = 'your_api_secret'
request_body = json.dumps({
  'id': '1042'
})

# Calcola la firma
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Esegui la richiesta API
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.trxup.com/v1/aml-checks/check',
  headers=headers,
  data=request_body
)

print(response.json())

Risposta ​

Restituisce i dettagli del controllo AML con i dati di rischio più aggiornati. Se il controllo è ancora pending, il server richiede di nuovo il risultato prima di rispondere, quindi ogni chiamata restituisce lo stato più recente; continua a interrogare finché lo stato non cambia.

Campi della risposta ​

CampoTipoDescrizione
codeintegerCodice di risposta (0 = successo)
request_idstringIdentificatore univoco della richiesta
resultobjectDati del controllo AML
result.idstringIdentificativo del controllo AML
result.typestringTipo di servizio AML (address oppure hash)
result.addressstringIndirizzo analizzato
result.networkstringCodice della rete blockchain come scritto nell’elenco delle reti supportate (ad es. TRX, TetherOMNI)
result.statusstringStato corrente (pending, processing, completed, failed, expired, skipped)
result.risk_scorestring|nullPunteggio di rischio come stringa con due decimali (ad es. "12.50"), oppure null finché non è disponibile un punteggio
result.risk_levelstring|nullLivello di rischio testuale (low, medium, high)
result.blacklistbooleanIndica se è stata rilevata una corrispondenza in blacklist
result.risk_factorsarrayCategorie di rischio a cui sono collegati i fondi, ordinate per score decrescente, una voce per categoria; [] vuoto se non è stata segnalata alcuna categoria (ad esempio finché il controllo non è completato)
result.risk_factors[].namestringChiave della categoria, una di quelle elencate in Categorie dei fattori di rischio; una categoria fuori da questo elenco viene segnalata come other
result.risk_factors[].labelstringEtichetta inglese della categoria (non tradotta)
result.risk_factors[].groupstringGruppo di rischio della categoria: low, medium o high
result.risk_factors[].scorenumberQuota dei fondi collegata a questa categoria, da 0 a 1, arrotondata a 3 decimali
result.checked_atstringTimestamp di creazione del controllo (ISO 8601)
result.hashstringHash analizzato (solo per i controlli hash)
result.directionstringLato della transazione analizzato, deposit o withdrawal (solo per i controlli hash)

Categorie dei fattori di rischio ​

risk_factors[].name è sempre una di queste chiavi. Una categoria fuori da questo elenco viene segnalata come other. label è sempre in inglese: fa parte della risposta, non è una traduzione.

namelabelgroup
enforcement_actionEnforcement Actionhigh
ransomRansomhigh
dark_marketDark Markethigh
dark_serviceDark Servicehigh
illegal_serviceIllegal Servicehigh
mixerMixerhigh
scamScamhigh
gamblingGamblinghigh
stolen_coinsStolen Coinshigh
exchange_fraudulentFraudulent Exchangehigh
child_exploitationChild Exploitationhigh
sanctionsSanctionshigh
terrorism_financingTerrorism Financinghigh
malwareMalwarehigh
infrastructure_as_a_serviceInfrastructure-as-a-Servicemedium
decentralized_exchange_contractDecentralized Exchange Contractmedium
unnamed_serviceUnnamed Servicemedium
atmATMmedium
risky_exchangeRisky Exchangemedium
p2p_exchange_mlrisk_highP2P Exchange (High Risk)medium
liquidity_poolsLiquidity Poolsmedium
exchangeExchangelow
merchant_servicesMerchant Serviceslow
walletWalletlow
minerMinerlow
paymentPaymentlow
marketplaceMarketplacelow
p2p_exchangeP2P Exchangelow
seized_assetsSeized Assetslow
otherOtherlow

Esempio di risposta ​

json
{
  "code": 0,
  "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
  "result": {
    "id": "1042",
    "type": "address",
    "address": "TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D",
    "network": "TRX",
    "status": "completed",
    "risk_score": "12.50",
    "risk_level": "medium",
    "blacklist": false,
    "risk_factors": [
      {
        "name": "exchange",
        "label": "Exchange",
        "group": "low",
        "score": 0.9
      },
      {
        "name": "p2p_exchange_mlrisk_high",
        "label": "P2P Exchange (High Risk)",
        "group": "medium",
        "score": 0.1
      }
    ],
    "checked_at": "2024-03-25T10:42:12+00:00"
  }
}

Per un controllo hash, hash e direction seguono checked_at:

json
{
  "code": 0,
  "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
  "result": {
    "id": "1043",
    "type": "hash",
    "address": "TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D",
    "network": "TRX",
    "status": "completed",
    "risk_score": "3.20",
    "risk_level": "low",
    "blacklist": false,
    "risk_factors": [],
    "checked_at": "2024-03-25T10:44:31+00:00",
    "hash": "E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2",
    "direction": "deposit"
  }
}

Possibili errori ​

Codice erroreKeyDescrizione
1authErrore di autenticazione (token o firma non validi)
2invalid_service_or_paramsParametri non validi (id mancante o vuoto)
30aml_check_not_foundControllo AML non trovato, oppure appartiene a un altro account
500internal_server_errorErrore interno del server

Tron Energy API Documentation