Skip to content

AML kontrolü oluştur ​

Bir cüzdan adresi veya belirli bir işlem hash'i için yeni bir AML taraması oluşturur. Kontrolün ücreti, kontrol başladığında bakiyenizden ayrılır ve yanıt kontrolün kendisini döndürür.

POST /v1/aml-checks/new

İstek ​

Parametreler ​

AlanTürZorunluAçıklama
typestringEvetAML servis türü: address veya hash
networkstringEvetBlockchain ağ kodu (aşağıdaki tablo)
addressstringEvetSeçilen ağ için geçerli adres. type = hash için, işleme katılan ve tarafı incelenen adrestir (bkz. direction).
hashstringKoşullu*Seçilen ağın biçiminde işlem hash'i (TRX: 64 onaltılık karakter, 0x öneki olmadan; Ethereum ve diğer EVM ağları: 0x ve 64 onaltılık karakter; her ağın biçimi aşağıdaki tablodaki örnekte gösterilir). type = hash olduğunda zorunlu
directionstringKoşullu**address için işlemin hangi tarafının inceleneceği: deposit — fonlar bu adrese geliyor, withdrawal — fonlar bu adresten çıkıyor. type = hash olduğunda zorunlu

* Yalnızca hash kontrolleri için.
** Yalnızca hash kontrolleri için. Varsayılan değer yoktur: geçerli bir direction içermeyen hash kontrolü reddedilir.

Desteklenen servis türleri ​

TürAçıklama
addressCüzdan adresini tarar ve risk profilini hesaplar
hashTek bir işlemi, adreslerinden birinin tarafından tarar (deposit veya withdrawal)

Desteklenen ağlar ​

KodAğÖrnek adresÖrnek hash
TRXTRONTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6tfd4f300e12040089f624353cdfe7c2ae7ed2378fa65c7e5cce60f69cb1d43bab
BTCBitcoinbc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
ETHEthereum0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
BSCBNB Chain0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
SOLSolanaTokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW
TONTONEQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2Nfd4f300e12040089f624353cdfe7c2ae7ed2378fa65c7e5cce60f69cb1d43bab
MATICPolygon0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
ARBArbitrum0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
BASEBase0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
OPOptimism0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
AVAXAvalanche C-Chain0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
LTCLitecoinLQTpS3VaYTjCr4s9Y1t5zbeY26zevf7Fb34a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
XRPRipplerHb9CJAWyB4rj91VRWn96DkukG4bwdtyThE3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879
ALGOAlgorandVCMJKWOY5P5P7SKMZFFOCEROPJCZOTIJMNIYNUCKH7LRO45JMJP6UYBIJAUITN53MFMO6QHK6GCAUMF5MXBJG4OB6S3VCHTGFY5PQGHNWJ5NWQ
APTAptos0x00000000000000000000000000000000000000000000000000000000000000010x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
BCHBitcoin Cashbitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
BSVBitcoin SV1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
ADACardanoaddr1qx2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzer3n0d3vllmyqwsx5wktcd8cc3sq835lu7drv2xwl2wywfgse35a3x8a5a6f0e9c5d7c4e1b62ef2b36d03b34f2b0b6f9f6c7e7a3d55b0f5c8a3b2c1d
CELOCelo0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
DOGEDogecoinDH5yaieqoZN36fDVciNyRueRGvGLR3mr7L4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
ETCEthereum Classic0x742d35Cc6634C0532925a3b844Bc454e4438f44e0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
NEARNEARalice.near6zgh2u9DqHHiXzdy9ouTP7oGky2T4nugqzqt9wJZwNFm
DOTPolkadot15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp50x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b
XLMStellarGAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN73389e9f0f1a65f19736cacf544c2e825313e8447f569233bb8db39aa607c8889
TetherOMNITether (Omni)1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
XTZTezostz1VSUr8wwNhLAzempoch5d6hLRiTh8CjcjbonvsLP3JFZia2mzZKWaFuFkWg2L5p3BDUhzh5Kr6CiDDN3rtQ1D
ZECZcasht1Rv4exT7bqhZqi2j7xz8bUHDMxwosrjADU4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b

TIP

Bu listedeki tüm ağlar taranır; ağ ne olursa olsun kontrol başına fiyat aynıdır. network büyük/küçük harfe duyarlı değildir (btc, BTC ile aynıdır); address ve hash seçilen ağın biçimine göre kontrol edilir. Projeniz için satışta olmayan bir kontrol türü (bkz. AML servislerini al) veya tarama hizmetinin şu anda alamadığı bir ağ için gönderilen istek 35 koduyla yanıtlanır ve hiçbir ücret alınmaz.

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "type": "address",
  "network": "TRX",
  "address": "TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D"
}'

# İmzayı hesapla
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# API isteği gönder
curl -X POST "https://api.trxup.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: 'TRX',
  address: 'TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D'
});

// İmzayı hesapla
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// API isteği gönder
axios({
  method: 'post',
  url: 'https://api.trxup.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' => 'TRX',
  'address' => 'TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D',
], JSON_UNESCAPED_SLASHES);

// İmzayı hesapla
$signature = hash('sha256', $requestBody . $apiSecret);

// API isteği gönder
$ch = curl_init('https://api.trxup.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': 'TRX',
  'address': 'TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D'
})

# İmzayı hesapla
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# API isteği gönder
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.trxup.com/v1/aml-checks/new',
  headers=headers,
  data=request_body
)

print(response.json())

Hash için örnek istek ​

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

# İmzayı hesapla
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# API isteği gönder
curl -X POST "https://api.trxup.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: 'TRX',
  address: 'TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D',
  hash: 'E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2',
  direction: 'withdrawal'
});

// İmzayı hesapla
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// API isteği gönder
axios({
  method: 'post',
  url: 'https://api.trxup.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' => 'TRX',
  'address' => 'TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D',
  'hash' => 'E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2',
  'direction' => 'withdrawal'
], JSON_UNESCAPED_SLASHES);

// İmzayı hesapla
$signature = hash('sha256', $requestBody . $apiSecret);

// API isteği gönder
$ch = curl_init('https://api.trxup.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': 'TRX',
  'address': 'TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D',
  'hash': 'E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2',
  'direction': 'withdrawal'
})

# İmzayı hesapla
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# API isteği gönder
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.trxup.com/v1/aml-checks/new',
  headers=headers,
  data=request_body
)

print(response.json())

Yanıt ​

Yanıt AML kontrolünü döndürür. Sonuç henüz tamamlanmadıysa durum pending olur: durum değişene kadar dönen id ile AML durumunu kontrol et endpoint'ini sorgulayın.

Yanıt alanları ​

AlanTürAçıklama
codeintegerYanıt kodu (0 = başarı)
request_idstringBenzersiz istek tanımlayıcısı
resultobjectAML kontrol verileri
result.idstringAML kontrol kimliği
result.typestringAML servis türü (address veya hash)
result.addressstringİncelenen adres
result.networkstringDesteklenen ağlar listesinde yazıldığı biçimiyle blockchain ağ kodu (ör. TRX, TetherOMNI)
result.statusstringKontrol durumu (pending, processing, completed, failed, expired, skipped)
result.risk_scorestring|nullRisk skoru; iki ondalık basamaklı bir dize (ör. "12.50") veya henüz skor yoksa null
result.risk_levelstring|nullRisk seviyesi (low, medium, high)
result.blacklistbooleanKara listede eşleşme olup olmadığını gösterir
result.risk_factorsarrayFonların bağlantılı olduğu risk kategorileri; score değerine göre büyükten küçüğe sıralı, kategori başına bir kayıt; hiçbir kategori bildirilmediyse boş [] (ör. kontrol henüz tamamlanmadıysa)
result.risk_factors[].namestringKategori anahtarı; Risk faktörü kategorileri bölümünde listelenen anahtarlardan biri; bu listenin dışındaki bir kategori other olarak bildirilir
result.risk_factors[].labelstringKategorinin İngilizce adı (çevrilmez)
result.risk_factors[].groupstringKategorinin risk grubu: low, medium veya high
result.risk_factors[].scorenumberFonların bu kategoriyle bağlantılı payı; 0 ile 1 arasında, 3 ondalık basamağa yuvarlanmış
result.checked_atstringKontrolün oluşturulma zamanı (ISO 8601)
result.hashstringİncelenen hash (yalnızca hash için)
result.directionstringİşlemin incelenen tarafı, deposit veya withdrawal (yalnızca hash için)

Kategori anahtarlarının adları ve gruplarıyla birlikte tam listesi Risk faktörü kategorileri bölümündedir.

Yanıt örneği ​

json
{
  "code": 0,
  "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
  "result": {
    "id": "1041",
    "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:40:05+00:00"
  }
}

Hash kontrolünde hash ve direction alanları checked_at alanından sonra gelir:

json
{
  "code": 0,
  "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
  "result": {
    "id": "1042",
    "type": "hash",
    "address": "TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D",
    "network": "TRX",
    "status": "pending",
    "risk_score": null,
    "risk_level": null,
    "blacklist": false,
    "risk_factors": [],
    "checked_at": "2024-03-25T10:42:12+00:00",
    "hash": "E3F2A1B66DBB9F0B24C4125229163944A7D91EB3F1AC5E409FFCEE0C81A913F2",
    "direction": "withdrawal"
  }
}

Ücretlendirme ve tekrarlanan istekler ​

  • Kontrolün ücreti, kontrol başladığında ayrılır. Kontrol çalıştırılamazsa — girdi reddedilirse veya hata bizim tarafımızdaysa — ayrılan tutar tamamen iade edilir.
  • Hash kontrolünde address işleme katılmıyorsa kontrol reddedilir 2 koduyla (The address was not found in this transaction) ve hiçbir ücret alınmaz.
  • Adres kontrolünde tarama hizmeti adresi kontrol etmeyi reddederse kontrol reddedilir 2 koduyla (The screening service could not check this address; nothing was charged, anahtar invalid_service_or_params, ayrıntı yok) ve hiçbir ücret alınmaz. Adresi kontrol edip daha sonra tekrar deneyin.
  • Aynı sorgunun bir saat içinde tekrarlanması — aynı type, network ve address, hash kontrolleri için ayrıca aynı hash ve direction — önceki kontrolü döndürür ve ücret alınmaz.
  • İlki hâlâ çalışırken gönderilen ikinci özdeş istek HTTP 503 (temporarily_unavailable) ile reddedilir ve hiçbir ücret alınmaz. Kısa bir süre sonra tekrar deneyin.

Olası hatalar ​

Hata koduKeyAçıklama
1authKimlik doğrulama hatası (geçersiz token veya imza)
2invalid_service_or_paramsGeçersiz parametreler; şu sırayla kontrol edilir: type; network (Unsupported network); address (Invalid address provided); hash kontrollerinde hash (Hash is required for hash checks) ve direction (Invalid direction value); address değeri işleme katılmayan bir hash kontrolünde The address was not found in this transaction (anahtar invalid_service_or_params.hash), hiçbir ücret alınmaz; tarama hizmetinin reddettiği bir adres kontrolünde The screening service could not check this address; nothing was charged (anahtar invalid_service_or_params), hiçbir ücret alınmaz
5wallet_not_foundCüzdan bulunamadı
6insufficient_fundsKontrol için bakiye yetersiz
35service_unavailableBu kontrol türü veya ağ projeniz için kullanılamıyor (örneğin projeniz için satışta olmayan bir kontrol türü); hiçbir ücret alınmaz
500internal_server_errorSunucu hatası
503temporarily_unavailableÖzdeş bir kontrol hâlâ çalışıyor (HTTP 503); ücret alınmadı, kısa bir süre sonra tekrar deneyin

Tron Energy API Documentation