Skip to content

Créer un contrôle AML

Crée un nouveau contrôle AML pour une adresse de portefeuille ou un hash de transaction spécifique. La requête réserve immédiatement les fonds nécessaires et renvoie l’état actuel du contrôle.

POST /v1/aml-checks/new

Requête

Paramètres

ChampTypeObligatoireDescription
typestringOuiType de service AML : address ou hash
networkstringOuiCode du réseau blockchain (voir tableau)
addressstringOuiAdresse valide pour le réseau sélectionné. Pour type = hash, il s’agit de l’adresse de destination.
hashstringConditionnel*Hash valide pour le réseau sélectionné. Requis lorsque type = hash
directionstringConditionnel**Direction de la transaction (deposit ou withdrawal). Requis lorsque type = hash. Si les fonds arrivent sur votre adresse, c’est un dépôt (vous recevez). S’ils partent vers une adresse externe, c’est un retrait (vous envoyez).

* Uniquement pour les contrôles de hash.
** Uniquement pour les contrôles de hash. Par défaut deposit si omis.

Types de service disponibles

TypeDescription
addressAnalyse une adresse et calcule son profil de risque
hashAnalyse un hash de transaction unique, y compris la direction d’entrée/sortie

Réseaux pris en charge

CodeRéseau
TRXTRON
BTCBitcoin
ETCEthereum Classic
LTCLitecoin
BSCBNB Chain
XRPRipple
MATICPolygon
ADACardano
XLMStellar
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "type": "address",
  "network": "ETH",
  "address": "0x6Dc1f03B1d2c27D6c741832F4AA83322D41De7Ea"
}'

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

# Envoyer la requête API
curl -X POST "https://api.tronzap.com/v1/aml-checks/new" \
  -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({
  type: 'address',
  network: 'ETH',
  address: '0x6Dc1f03B1d2c27D6c741832F4AA83322D41De7Ea'
});

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

// Envoyer la requête API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/aml-checks/new',
  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([
  'type' => 'address',
  'network' => 'ETH',
  'address' => '0x6Dc1f03B1d2c27D6c741832F4AA83322D41De7Ea',
], JSON_UNESCAPED_SLASHES);

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

// Envoyer la requête API
$ch = curl_init('https://api.tronzap.com/v1/aml-checks/new');
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({
  'type': 'address',
  'network': 'ETH',
  'address': '0x6Dc1f03B1d2c27D6c741832F4AA83322D41De7Ea'
})

# 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.tronzap.com/v1/aml-checks/new',
  headers=headers,
  data=request_body
)

print(response.json())

Exemple de requête pour un hash

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "type": "hash",
  "network": "BTC",
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
  "hash": "E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2",
  "direction": "withdrawal"
}'

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

# Envoyer la requête API
curl -X POST "https://api.tronzap.com/v1/aml-checks/new" \
  -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({
  type: 'hash',
  network: 'BTC',
  address: 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh',
  hash: 'E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2',
  direction: 'withdrawal'
});

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

// Envoyer la requête API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/aml-checks/new',
  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([
  'type' => 'hash',
  'network' => 'BTC',
  'address' => 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh',
  'hash' => 'E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2',
  'direction' => 'withdrawal'
], JSON_UNESCAPED_SLASHES);

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

// Envoyer la requête API
$ch = curl_init('https://api.tronzap.com/v1/aml-checks/new');
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({
  'type': 'hash',
  'network': 'BTC',
  'address': 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh',
  'hash': 'E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2',
  'direction': 'withdrawal'
})

# 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.tronzap.com/v1/aml-checks/new',
  headers=headers,
  data=request_body
)

print(response.json())

Réponse

La réponse renvoie l’identifiant du contrôle AML et les dernières données de risque connues. Si le contrôle est toujours en cours, le statut reste pending ou processing jusqu’au résultat final.

Champs de la réponse

ChampTypeDescription
codeintegerCode de réponse (0 = succès)
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.hashstringHash analysé (uniquement pour hash)
result.directionstringDirection de la transaction (deposit ou withdrawal) le cas échéant
result.networkstringCode du réseau blockchain
result.statusstringStatut du contrôle (pending, processing, completed, failed)
result.risk_scorefloatScore de risque
result.risk_levelstringNiveau de risque textuel (low, medium, high)
result.blacklistbooleantrue si une correspondance sur liste noire est détectée
result.risk_factorsarrayListe des facteurs de risque
result.checked_atstringHorodatage de création du contrôle (ISO 8601)

Exemple de réponse

json
{
  "code": 0,
  "result": {
    "id": "01jq7h6bvf6p5t1amnz6y3n8c4",
    "type": "address",
    "address": "0x6Dc1f03B1d2c27D6c741832F4AA83322D41De7Ea",
    "network": "ETH",
    "status": "completed",
    "risk_score": 12.5,
    "risk_level": "medium",
    "blacklist": false,
    "risk_factors": [
      {
        "name": "p2p_exchange_mlrisk_high",
        "label": "P2P Exchange (High Risk)",
        "group": "medium",
        "score": 0.796
      },
      {
        "name": "exchange",
        "label": "Exchange",
        "group": "low",
        "score": 0.203
      }
    ],
    "checked_at": "2024-03-25T10:42:12Z"
  }
}

Erreurs possibles

Code d’erreurDescription
1Erreur d’authentification (token ou signature incorrects)
2Service ou paramètres invalides
5Portefeuille introuvable
6Fonds insuffisants pour exécuter le contrôle
35Service indisponible pour votre projet
500Erreur interne du serveur

Tron Energy API Documentation