Skip to content

Создать проверку AML

Создает новую AML-проверку для адреса кошелька или конкретного хеша транзакции. При отправке запроса списывается необходимая сумма, а ответ содержит текущий статус проверки.

POST /v1/aml-checks/new

Запрос

Параметры

ПолеТипОбязательноеОписание
typestringДаТип AML-сервиса: address или hash
networkstringДаКод сети блокчейн (см. таблицу)
addressstringДаВалидный адрес выбранной сети. Для type = hash — адрес получателя.
hashstringУсловное*Валидный хеш выбранной сети. Обязателен, если type = hash
directionstringУсловное**Направление транзакции (deposit или withdrawal). Обязательно, если type = hash. Если средства поступают на ваш адрес — deposit (вы получаете). Если уходят на внешний адрес — withdrawal (вы отправляете).

* Только для проверок по хешу.
** Только для проверок по хешу. По умолчанию deposit, если не указано.

Типы сервисов

ТипОписание
addressПроверка адреса кошелька и расчет его риск-профиля
hashПроверка отдельного хеша транзакции с учетом направления движения средств

Поддерживаемые сети

КодСеть
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"
}'

# Подпись
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Запрос
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'
});

// Подпись
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Запрос
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);

// Подпись
$signature = hash('sha256', $requestBody . $apiSecret);

// Запрос
$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'
})

# Подпись
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Запрос
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())

Пример запроса для хеша

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

# Подпись
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Запрос
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'
});

// Подпись
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Запрос
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);

// Подпись
$signature = hash('sha256', $requestBody . $apiSecret);

// Запрос
$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'
})

# Подпись
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Запрос
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())

Ответ

Ответ содержит идентификатор AML-проверки и последние данные по рискам. Если проверка еще выполняется, статус остается pending или processing до появления итогового результата.

Поля ответа

ПолеТипОписание
codeintegerКод ответа (0 = успех)
resultobjectДанные AML-проверки
result.idstringИдентификатор AML-проверки
result.typestringТип AML-сервиса (address или hash)
result.addressstringПроверяемый адрес
result.hashstringПроверяемый хеш (только для hash)
result.directionstringНаправление транзакции (deposit или withdrawal), если применимо
result.networkstringКод сети блокчейн
result.statusstringСтатус проверки (pending, processing, completed, failed)
result.risk_scorefloatРиск-балл
result.risk_levelstringУровень риска (low, medium, high)
result.blacklistbooleantrue, если обнаружено совпадение с черными списками
result.risk_factorsarrayСписок факторов риска
result.checked_atstringВремя создания проверки (ISO 8601)

Пример ответа

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

Возможные ошибки

Код ошибкиОписание
1Ошибка аутентификации (неверный токен или подпись)
2Некорректный сервис или параметры
5Кошелек не найден
6Недостаточно средств для проверки
35Сервис недоступен для проекта
500Внутренняя ошибка сервера

Tron Energy API Documentation