AZA-ZPayA-ZPay banka transferi API’si

Para çekme

Oyuncu talebini kendi sitenizde doğruladıktan ve oyuncu bakiyesini rezerve ettikten veya düşürdükten sonra para çekme oluşturun.

İstek

POST /v1/withdrawals
Content-Type: application/json
X-Api-Key: pk_live_xxx
X-Timestamp: 1778940000
X-Signature: ...
{
  "amount": "250.00",
  "currency": "TRY",
  "externalReference": "casino-withdrawal-2042",
  "customer": {
    "id": "player-42",
    "username": "turbo_player",
    "fullName": "Ada Yilmaz"
  },
  "withdrawalAccount": {
    "bankName": "Garanti",
    "accountHolderName": "Player Name",
    "iban": "TR640006200027700006789011"
  }
}
Withdrawal isteği gönder
const payload = {
amount: '250.00',
currency: 'TRY',
externalReference: 'casino-withdrawal-2042',
customer: { id: 'player-42', username: 'turbo_player', fullName: 'Ada Yilmaz' },
withdrawalAccount: { bankName: 'Garanti', accountHolderName: 'Player Name', iban: 'TR640006200027700006789011' },
};
const path = '/v1/withdrawals';
const body = JSON.stringify(payload);
const response = await fetch('https://api.azpay.example' + path, {
method: 'POST',
headers: signAZPayRequest('POST', path, body),
body,
});
const result = await response.json();
if (!response.ok) throw new Error(result.error || 'Withdrawal başarısız');
return result.transaction.id;
<?php
$payload = [
  'amount' => '250.00',
  'currency' => 'TRY',
  'externalReference' => 'casino-withdrawal-2042',
  'customer' => ['id' => 'player-42', 'username' => 'turbo_player', 'fullName' => 'Ada Yilmaz'],
  'withdrawalAccount' => ['bankName' => 'Garanti', 'accountHolderName' => 'Player Name', 'iban' => 'TR640006200027700006789011'],
];
$path = '/v1/withdrawals';
$body = json_encode($payload, JSON_UNESCAPED_SLASHES);
$ch = curl_init('https://api.azpay.example' . $path);
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_HTTPHEADER => signAZPayRequest('POST', $path, $body), CURLOPT_POSTFIELDS => $body, CURLOPT_RETURNTRANSFER => true]);
$result = json_decode(curl_exec($ch), true);
$transactionId = $result['transaction']['id'];

Yanıt

Para çekme talepleri doğrudan A-ZPay onay sürecine düşer. Oyuncu için hosted sayfa yoktur.

{
  "transaction": {
    "id": "txn_...",
    "type": "withdrawal",
    "status": "waiting_confirmation",
    "amountCents": 25000,
    "playerAmountCents": 22500,
    "commissionCents": 2500,
    "balanceImpactCents": -25000
  }
}

Mutabakat

  • deduct_from_amount: ödeme tutarı komisyondan dolayı azalır.
  • fee_on_top: ödeme tutarı istenen tutar olarak kalır, partner bakiye etkisine ekstra ücret eklenir.

Onaydan önce A-ZPay, payout’u işleyen etkin banka hesabını kaydeder. Seçilen hesap işlem üzerinde saklanır ve withdrawal ledger kaydı oyuncuya ödenen tutarı o banka hesabı bakiyesinden düşer.

Withdrawal tutarı A-ZPay adminlerinin belirlediği platform geneli min/max dışındaysa API 400 döner ve operatör kuyruğu oluşturulmaz. A-ZPay’e göndermeden önce tutarı doğrulayın.

Partner site withdrawal.approved sonucunu başarılı ödeme, withdrawal.rejected sonucunu başarısız/iade olarak işlemelidir.