Skip to content

Consultar status AML ​

Recupera o status mais recente e a avaliação de risco de uma verificação AML existente. Os dados são atualizados assim que novas informações ficam disponíveis.

POST /v1/aml-checks/check

Requisição ​

Parâmetros ​

CampoTipoObrigatórioDescrição
idstringSimIdentificador da verificação AML
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "id": "1042"
}'

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

# Chamada à 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'
});

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

// Chamada à 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'
]);

// Calcular assinatura
$signature = hash('sha256', $requestBody . $apiSecret);

// Chamada à 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'
})

# Calcular assinatura
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Chamada à 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())

Resposta ​

Retorna os detalhes da verificação AML com os dados de risco mais recentes. Se a verificação ainda estiver pending, o servidor solicita o resultado novamente antes de responder, então cada chamada retorna o estado mais recente; continue consultando até que o status mude.

Campos da resposta ​

CampoTipoDescrição
codeintegerCódigo de resposta (0 = sucesso)
request_idstringIdentificador único da requisição
resultobjectDados da verificação AML
result.idstringIdentificador da verificação AML
result.typestringTipo de serviço AML (address ou hash)
result.addressstringEndereço analisado
result.networkstringCódigo da rede blockchain como escrito na lista de redes suportadas (ex.: TRX, TetherOMNI)
result.statusstringStatus atual (pending, processing, completed, failed, expired, skipped)
result.risk_scorestring|nullPontuação de risco como string com duas casas decimais (ex.: "12.50"), ou null quando ainda não há pontuação
result.risk_levelstring|nullNível de risco textual (low, medium, high)
result.blacklistbooleanIndica se há correspondência em listas de bloqueio
result.risk_factorsarrayCategorias de risco às quais os fundos estão vinculados, ordenadas do maior para o menor score, uma entrada por categoria; [] vazio quando nenhuma categoria foi informada (por exemplo, enquanto a verificação não foi concluída)
result.risk_factors[].namestringChave da categoria, uma das listadas em Categorias de fatores de risco; uma categoria fora dessa lista é informada como other
result.risk_factors[].labelstringRótulo da categoria em inglês (não traduzido)
result.risk_factors[].groupstringGrupo de risco da categoria: low, medium ou high
result.risk_factors[].scorenumberParcela dos fundos vinculada a esta categoria, de 0 a 1, arredondada a 3 casas decimais
result.checked_atstringTimestamp de criação da verificação (ISO 8601)
result.hashstringHash da transação analisado (apenas verificações de hash)
result.directionstringLado da transação analisado, deposit ou withdrawal (apenas verificações de hash)

Categorias de fatores de risco ​

risk_factors[].name é sempre uma destas chaves. Uma categoria fora desta lista é informada como other. O label é sempre em inglês: faz parte da resposta, não é uma tradução.

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

Exemplo de resposta ​

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

Para uma verificação de hash, hash e direction vêm depois de 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"
  }
}

Possíveis erros ​

Código de erroKeyDescrição
1authErro de autenticação (token ou assinatura incorretos)
2invalid_service_or_paramsParâmetros inválidos (id ausente ou vazio)
30aml_check_not_foundVerificação AML não encontrada, ou pertence a outra conta
500internal_server_errorErro interno do servidor

Tron Energy API Documentation