Skip to content

Consulter le statut AML ​

Récupère le statut le plus récent et l’évaluation des risques pour une vérification AML existante. Les données sont actualisées dès que de nouvelles informations sont disponibles.

POST /v1/aml-checks/check

Requête ​

Paramètres ​

ChampTypeObligatoireDescription
idstringOuiIdentifiant du contrôle AML
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "id": "1042"
}'

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

# Envoyer la requête 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'
});

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

// Envoyer la requête 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'
]);

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

// Envoyer la requête 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'
})

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

# Envoyer la requête 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())

Réponse ​

Renvoie les détails du contrôle AML avec les données de risque les plus récentes. Si le contrôle est encore pending, le serveur redemande le résultat avant de répondre, de sorte que chaque appel renvoie l’état le plus récent ; continuez à interroger jusqu’à ce que le statut change.

Champs de la réponse ​

ChampTypeDescription
codeintegerCode de réponse (0 = succès)
request_idstringIdentifiant unique de la requête
resultobjectDonnées du contrôle AML
result.idstringIdentifiant du contrôle AML
result.typestringType de service AML (address ou hash)
result.addressstringAdresse analysée
result.networkstringCode du réseau blockchain, tel qu’écrit dans la liste des réseaux pris en charge (par ex. TRX, TetherOMNI)
result.statusstringStatut actuel (pending, processing, completed, failed, expired, skipped)
result.risk_scorestring|nullScore de risque sous forme de chaîne à deux décimales (par ex. "12.50"), ou null tant qu’aucun score n’est disponible
result.risk_levelstring|nullNiveau de risque textuel (low, medium, high)
result.blacklistbooleanIndique si une correspondance sur liste noire est détectée
result.risk_factorsarrayCatégories de risque auxquelles les fonds sont liés, triées par score décroissant, une entrée par catégorie ; [] vide si aucune catégorie n’a été signalée (par exemple tant que le contrôle n’est pas terminé)
result.risk_factors[].namestringClé de la catégorie, l’une de celles listées dans Catégories de facteurs de risque ; une catégorie hors de cette liste est signalée comme other
result.risk_factors[].labelstringLibellé anglais de la catégorie (non traduit)
result.risk_factors[].groupstringGroupe de risque de la catégorie : low, medium ou high
result.risk_factors[].scorenumberPart des fonds liée à cette catégorie, de 0 à 1, arrondie à 3 décimales
result.checked_atstringHorodatage de création du contrôle (ISO 8601)
result.hashstringHash analysé (uniquement pour hash)
result.directionstringCôté de la transaction analysé, deposit ou withdrawal (uniquement pour hash)

Catégories de facteurs de risque ​

risk_factors[].name est toujours l’une de ces clés. Une catégorie hors de cette liste est signalée comme other. Le label est toujours en anglais : il fait partie de la réponse, ce n’est pas une traduction.

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

Exemple de réponse ​

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

Pour un contrôle de hash, hash et direction suivent 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"
  }
}

Erreurs possibles ​

Code d’erreurKeyDescription
1authErreur d’authentification (token ou signature incorrects)
2invalid_service_or_paramsParamètres invalides (id manquant ou vide)
30aml_check_not_foundContrôle AML introuvable, ou il appartient à un autre compte
500internal_server_errorErreur interne du serveur

Tron Energy API Documentation