Skip to content

Obtenir l’historique AML ​

Récupérez une liste paginée des contrôles AML créés par l’utilisateur authentifié. Utilisez les filtres pour limiter par statut.

POST /v1/aml-checks/history

Requête ​

Paramètres ​

ChampTypeObligatoireDescription
pageintegerNonNuméro de page (par défaut : 1, minimum : 1)
per_pageintegerNonÉléments par page (par défaut : 10, plage : 1-50)
statusstringNonFiltrer par statut AML (voir tableau)

Valeurs de statut ​

ValeurDescription
pendingContrôle créé et en attente de traitement
processingContrôle en cours de traitement
completedContrôle terminé avec succès
failedContrôle échoué en raison d’erreurs
expiredContrôle expiré avant l’obtention d’un résultat
skippedContrôle non exécuté et non facturé (par exemple, une adresse sans activité on-chain) ; il ne comporte aucun verdict de risque

Le filtre accepte processing et expired, mais les contrôles ne sont actuellement enregistrés qu’avec les statuts pending, completed, skipped ou failed.

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "page": 1,
  "per_page": 10,
  "status": "completed"
}'

# 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/history" \
  -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({
  page: 1,
  per_page: 10,
  status: 'completed'
});

// 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/history',
  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([
  'page' => 1,
  'per_page' => 10,
  'status' => 'completed'
]);

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

// Envoyer la requête API
$ch = curl_init('https://api.trxup.com/v1/aml-checks/history');
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({
  'page': 1,
  'per_page': 10,
  'status': 'completed'
})

# 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/history',
  headers=headers,
  data=request_body
)

print(response.json())

Réponse ​

La réponse fournit les métadonnées de pagination ainsi qu’un tableau de contrôles AML au même format que les autres endpoints.

Champs de la réponse ​

ChampTypeDescription
codeintegerCode de réponse (0 = succès)
request_idstringIdentifiant unique de la requête
resultobjectRésultat paginé
result.pageintegerNuméro de page
result.per_pageintegerNombre d’éléments retournés
result.totalintegerNombre total de contrôles correspondant au filtre
result.itemsarrayListe des contrôles AML
result.items[].idstringIdentifiant du contrôle AML
result.items[].typestringType de service AML (address ou hash)
result.items[].addressstringAdresse analysée
result.items[].networkstringCode du réseau blockchain, tel qu’écrit dans la liste des réseaux pris en charge (par ex. TRX, TetherOMNI)
result.items[].statusstringStatut actuel (pending, processing, completed, failed, expired, skipped)
result.items[].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.items[].risk_levelstring|nullNiveau de risque textuel (low, medium, high)
result.items[].blacklistbooleanIndique si une correspondance sur liste noire est détectée
result.items[].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.items[].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.items[].risk_factors[].labelstringLibellé anglais de la catégorie (non traduit)
result.items[].risk_factors[].groupstringGroupe de risque de la catégorie : low, medium ou high
result.items[].risk_factors[].scorenumberPart des fonds liée à cette catégorie, de 0 à 1, arrondie à 3 décimales
result.items[].checked_atstringHorodatage de création du contrôle (ISO 8601)
result.items[].hashstringHash analysé (uniquement pour hash)
result.items[].directionstringCôté de la transaction analysé, deposit ou withdrawal (uniquement pour hash)

La liste complète des clés de catégorie, avec leurs libellés et leurs groupes, figure dans Catégories de facteurs de risque.

Exemple de réponse ​

json
{
  "code": 0,
  "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
  "result": {
    "page": 1,
    "per_page": 2,
    "total": 5,
    "items": [
      {
        "id": "1042",
        "type": "hash",
        "address": "TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D",
        "network": "TRX",
        "status": "completed",
        "risk_score": "64.30",
        "risk_level": "high",
        "blacklist": true,
        "risk_factors": [],
        "checked_at": "2024-03-25T11:14:48+00:00",
        "hash": "E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2",
        "direction": "withdrawal"
      },
      {
        "id": "1041",
        "type": "address",
        "address": "TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D",
        "network": "TRX",
        "status": "pending",
        "risk_score": null,
        "risk_level": null,
        "blacklist": false,
        "risk_factors": [],
        "checked_at": "2024-03-25T11:12:03+00:00"
      }
    ]
  }
}

Erreurs possibles ​

Code d’erreurKeyDescription
1authErreur d’authentification (token ou signature incorrects)
2invalid_service_or_paramsParamètres de pagination ou de statut invalides
500internal_server_errorErreur interne du serveur

Tron Energy API Documentation