Bakiye

7 görüntülenme Markdown

Ön ödemeli bakiyeyi, hareketlerini ve tahsilat ayarlarını veren üç uç.

Genel Bakış

Cüzdan hesabın ön ödemeli bakiyesini tutar. Fatura ödemede kullanılabilir ve istenirse yenilemeler kendiliğinden buradan tahsil edilir.

Üç uç üç soruyu yanıtlar: ne kadar param var, para nereye gitti ve tahsilat nasıl çalışsın.

Cüzdanın kendi para birimi vardır ve bu, profildeki görüntü tercihinden ayrıdır. Tutarları her zaman yanıtın içindeki para birimiyle birlikte okuyun.

Referans

Cüzdan Durumunu Okuma

get/api/v1/client/balance
Balance/GetBalance her zaman taze

Cüzdanı, otomatik ödeme ayarını ve uyarı kurulumunu tek çağrıda döndürür.

Dönen alanlar data — 4
balanceobjectCüzdandaki tutar. Her okumada tazedir, önbellekten gelmez.
low_balanceboolBakiye uyarı eşiğinin altında mı.
auto_payobjectOtomatik ödeme durumu.
from_balanceboolYenilemeler cüzdandan tahsil edilsin mi.
availableboolKurulum bunu sunuyor mu. Operatörün bakiye modülüne bağlıdır.
backup_cardobjectCüzdan yetmediğinde çekilecek kart. Numara, marka ve son dört hane taşır.
alertobjectDüşük bakiye uyarısı.
enabledboolUyarı açık mı.
thresholdobjectUyarı eşiği. Cüzdanın para biriminde gelir.
recipientsobject[]Uyarıyı alacaklar. Numarası sıfır olan satır hesabın sahibidir ve kapatılamaz; diğerleri fatura adresleridir.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/client/balance' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/client/balance', {
  headers: { Authorization: `Bearer ${clientKey}` },
});

const { data } = await res.json();
if (data.low_balance) promptTopUp(data.balance);
$ch = curl_init('https://panel.ornek.com/api/v1/client/balance');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Cuzdanin para birimi profildeki GORUNTU biriminden farkli olabilir; tutari kendi biriminde okuyun.
$w = Kernel::internal('client:Balance/GetBalance', ['owner_id' => $uid])['data'];
$amount = $w['balance']['amount'];
$cur    = $w['balance']['currency'];

Cüzdan Hareketlerini Okuma

get/api/v1/client/balance/transactions
Balance/GetBalanceTransactions anahtarın sahibi

Cüzdana giren ve çıkan tutarları en yeniden başlayarak döndürür.

Sorgu 4
pageintKaçıncı sayfa.
limitintSayfa başına satır. En çok 100.
typestringYön süzgeci: giren ya da çıkan.
searchstringHareketin açıklamasında arar.
Dönen alanlar data[] — 6 + meta — 4
transaction_idintHareketin numarası.
typestringYönü: giren ya da çıkan.
amountobjectTutar ve para birimi.
descriptionstringHareketin notu. Çoğunlukla fatura numarası taşır.
invoice_idintKapatılan faturanın numarası. Hareket bir faturayı kapattıysa dolar.
created_atstringHareketin anı.
totalintToplam hareket. Meta altında döner.
pageintBulunulan sayfa.
limitintSayfa boyutu.
next_pageintSonraki sayfa. Son sayfada sıfır.
Hatalar 2
type_invalid422Yön süzgeci iki değerden biri değil.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/client/balance/transactions?type=down&limit=50' \
  -H "Authorization: Bearer $CLIENT_KEY"
const url = new URL('https://panel.ornek.com/api/v1/client/balance/transactions');
url.searchParams.set('type', 'down');

const res = await fetch(url, { headers: { Authorization: `Bearer ${clientKey}` } });
const { data, meta } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/balance/transactions?type=down');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Hareket TARIHSEL bir kayittir: iade sonrasi eski satir silinmez, ters yonlu yeni satir eklenir.
$rows = Kernel::internal('client:Balance/GetBalanceTransactions',
    ['owner_id' => $uid, 'type' => 'down'])['data'];
$paid = array_column($rows, 'invoice_id');

Cüzdan Ayarlarını Değiştirme

patch/api/v1/client/balance/settings
Balance/UpdateBalanceSettings faturaları etkiler

Otomatik ödemeyi ve düşük bakiye uyarısını ayarlar.

Gövde 4
auto_pay_from_balanceboolYenilemeler cüzdandan tahsil edilsin mi. Bu değiştiğinde açık yenileme faturaları yeni tercihe göre yeniden ele alınır.
backup_card_idintCüzdan yetmediğinde çekilecek kart. Sıfır göndermek kart zincirini tümüyle kaldırır.
alertobjectUyarı bloğu. Açık ve eşik alanlarını taşır; açarken pozitif bir eşik gerekir.
alert_recipientsint[]Uyarıyı alacak fatura adresi numaraları. Liste yerine geçer; hesabın sahibi burada yer almaz, her zaman alır.
Dönen alanlar data — 4
dataobjectGüncel cüzdan durumu. Okuma ucuyla aynı şekildedir.
Hatalar 6
not_found404Yedek kart bu hesabın kayıtlı kartlarından biri değil.
nothing_to_update422Gövdede güncellenebilir alan yok.
auto_pay_invalid422Otomatik ödeme alanı doğru türde değil.
card_expired422Yedek kartın süresi dolmuş.
alert_invalid422Uyarı bloğu bozuk ya da eşik eksik.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PATCH 'https://panel.ornek.com/api/v1/client/balance/settings' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"auto_pay_from_balance":true,"alert":{"enabled":true,"threshold":50}}'
const res = await fetch('https://panel.ornek.com/api/v1/client/balance/settings', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    alert: { enabled: true, threshold: 50 },
    alert_recipients: [84],
  }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/balance/settings');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PATCH',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['auto_pay_from_balance' => true]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Alici listesi YERINE GECER: bir adresi eklemek icin once acik olanlari okuyup birlestirin.
$cur = Kernel::internal('client:Balance/GetBalance', ['owner_id' => $uid])['data'];
$on  = array_column(array_filter($cur['alert']['recipients'],
    fn ($r) => $r['enabled'] && ! $r['owner']), 'id');

$on[] = $newAddressId;
Kernel::internal('client:Balance/UpdateBalanceSettings',
    ['owner_id' => $uid, 'alert_recipients' => $on]);

Tuzaklar

Cüzdanın para birimi görüntü tercihi değildir

Cüzdan kendi para biriminde yaşar; profildeki para birimi yalnız tutarların nasıl gösterileceğini söyler. İkisi farklı olabilir ve bakiyeyi görüntü birimiyle yorumlamak yanlış rakam üretir. Uyarı eşiği de cüzdanın birimini kullanır.

Alıcı listesi yerine geçer

Uyarı alıcılarını yazmak listeyi üzerine yazar: göndermediğiniz adres uyarı almayı bırakır. Bir adres eklemek isterken yalnız onu göndermek diğerlerini kapatır. Hesabın sahibi bu listeye girmez ve her koşulda uyarı alır.

Otomatik ödemeyi değiştirmek açık faturalara dokunur

Yenilemelerin cüzdandan tahsil edilmesini açmak ya da kapatmak o anda açık olan yenileme faturalarını da yeni tercihe göre ele alır. Yani gelecek için bir ayar sayılmaz; bekleyen tahsilatlar hemen etkilenir. Bakiyenin yeterli olduğundan emin olun.

Yedek kart cüzdan yetmediğinde devreye girer

Yedek kart cüzdanın yerine değil ardından çalışır: önce bakiye denenir, yetmezse kart çekilir. Sıfır göndermek zinciri tümüyle kaldırır ve tahsilat başarısız olduğunda hizmet askıya alınabilir. Kartın süresi dolmuşsa kaydetme reddedilir.

Hareketler geçmişi olduğu gibi tutar

Cüzdan hareketleri silinmez ya da düzeltilmez; bir iade eski satırı kaldırmaz, ters yönde yeni bir satır ekler. Bakiyeyi hareketleri toplayarak hesaplamak yerine cüzdan durumundan okuyun; o değer her çağrıda tazedir.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.