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
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| type | string | Evet | AML servis türü: address veya hash |
| network | string | Evet | Blockchain ağ kodu (aşağıdaki tablo) |
| address | string | Evet | Seçilen ağ için geçerli adres. type = hash için, işleme katılan ve tarafı incelenen adrestir (bkz. direction). |
| hash | string | Koş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 |
| direction | string | Koş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ür | Açıklama |
|---|---|
| address | Cüzdan adresini tarar ve risk profilini hesaplar |
| hash | Tek bir işlemi, adreslerinden birinin tarafından tarar (deposit veya withdrawal) |
Desteklenen ağlar
| Kod | Ağ | Örnek adres | Örnek hash |
|---|---|---|---|
| TRX | TRON | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t | fd4f300e12040089f624353cdfe7c2ae7ed2378fa65c7e5cce60f69cb1d43bab |
| BTC | Bitcoin | bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq | 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b |
| ETH | Ethereum | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| BSC | BNB Chain | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| SOL | Solana | TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA | 5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW |
| TON | TON | EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N | fd4f300e12040089f624353cdfe7c2ae7ed2378fa65c7e5cce60f69cb1d43bab |
| MATIC | Polygon | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| ARB | Arbitrum | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| BASE | Base | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| OP | Optimism | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| AVAX | Avalanche C-Chain | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| LTC | Litecoin | LQTpS3VaYTjCr4s9Y1t5zbeY26zevf7Fb3 | 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b |
| XRP | Ripple | rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh | E3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879 |
| ALGO | Algorand | VCMJKWOY5P5P7SKMZFFOCEROPJCZOTIJMNIYNUCKH7LRO45JMJP6UYBIJA | UITN53MFMO6QHK6GCAUMF5MXBJG4OB6S3VCHTGFY5PQGHNWJ5NWQ |
| APT | Aptos | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| BCH | Bitcoin Cash | bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a | 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b |
| BSV | Bitcoin SV | 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa | 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b |
| ADA | Cardano | addr1qx2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzer3n0d3vllmyqwsx5wktcd8cc3sq835lu7drv2xwl2wywfgse35a3x | 8a5a6f0e9c5d7c4e1b62ef2b36d03b34f2b0b6f9f6c7e7a3d55b0f5c8a3b2c1d |
| CELO | Celo | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| DOGE | Dogecoin | DH5yaieqoZN36fDVciNyRueRGvGLR3mr7L | 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b |
| ETC | Ethereum Classic | 0x742d35Cc6634C0532925a3b844Bc454e4438f44e | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| NEAR | NEAR | alice.near | 6zgh2u9DqHHiXzdy9ouTP7oGky2T4nugqzqt9wJZwNFm |
| DOT | Polkadot | 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5 | 0x0f61ba2c923f4113a91eec9a9ce6145866e18b91dab5d2899dbe586a1847652b |
| XLM | Stellar | GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7 | 3389e9f0f1a65f19736cacf544c2e825313e8447f569233bb8db39aa607c8889 |
| TetherOMNI | Tether (Omni) | 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa | 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b |
| XTZ | Tezos | tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb | onvsLP3JFZia2mzZKWaFuFkWg2L5p3BDUhzh5Kr6CiDDN3rtQ1D |
| ZEC | Zcash | t1Rv4exT7bqhZqi2j7xz8bUHDMxwosrjADU | 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b |
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.
#!/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}"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
$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;
?>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
#!/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}"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
$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;
?>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ı
| Alan | Tür | Açıklama |
|---|---|---|
| code | integer | Yanıt kodu (0 = başarı) |
| request_id | string | Benzersiz istek tanımlayıcısı |
| result | object | AML kontrol verileri |
| result.id | string | AML kontrol kimliği |
| result.type | string | AML servis türü (address veya hash) |
| result.address | string | İncelenen adres |
| result.network | string | Desteklenen ağlar listesinde yazıldığı biçimiyle blockchain ağ kodu (ör. TRX, TetherOMNI) |
| result.status | string | Kontrol durumu (pending, processing, completed, failed, expired, skipped) |
| result.risk_score | string|null | Risk skoru; iki ondalık basamaklı bir dize (ör. "12.50") veya henüz skor yoksa null |
| result.risk_level | string|null | Risk seviyesi (low, medium, high) |
| result.blacklist | boolean | Kara listede eşleşme olup olmadığını gösterir |
| result.risk_factors | array | Fonları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[].name | string | Kategori anahtarı; Risk faktörü kategorileri bölümünde listelenen anahtarlardan biri; bu listenin dışındaki bir kategori other olarak bildirilir |
| result.risk_factors[].label | string | Kategorinin İngilizce adı (çevrilmez) |
| result.risk_factors[].group | string | Kategorinin risk grubu: low, medium veya high |
| result.risk_factors[].score | number | Fonların bu kategoriyle bağlantılı payı; 0 ile 1 arasında, 3 ondalık basamağa yuvarlanmış |
| result.checked_at | string | Kontrolün oluşturulma zamanı (ISO 8601) |
| result.hash | string | İncelenen hash (yalnızca hash için) |
| result.direction | string | İş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
{
"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:
{
"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
addressişleme katılmıyorsa kontrol reddedilir2koduyla (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
2koduyla (The screening service could not check this address; nothing was charged, anahtarinvalid_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,networkveaddress, hash kontrolleri için ayrıca aynıhashvedirection— ö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 kodu | Key | Açıklama |
|---|---|---|
| 1 | auth | Kimlik doğrulama hatası (geçersiz token veya imza) |
| 2 | invalid_service_or_params | Geç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 |
| 5 | wallet_not_found | Cüzdan bulunamadı |
| 6 | insufficient_funds | Kontrol için bakiye yetersiz |
| 35 | service_unavailable | Bu 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 |
| 500 | internal_server_error | Sunucu hatası |
| 503 | temporarily_unavailable | Özdeş bir kontrol hâlâ çalışıyor (HTTP 503); ücret alınmadı, kısa bir süre sonra tekrar deneyin |