Portal — Hesap & İşlemler
- Taban yol
/api/portal/v1/wallet/me- Kimlik
- Publishable key (
pk_live_…) → OTP → müşteri oturumu. Oturum son kullanıcıya aittir, merchant'a değil; yalnız o kullanıcının kendi verisine erişir. - Yetki
- Oturumun kendisi yetkidir; kullanıcı yalnız kendi kaydına erişir.Step-up: para çıkaran işlemlerde oturum tek başına yetmez; OTP kodu ya da güvenilir aksiyon token'ı istenir.
- Çapraz yüzey
- Bu yüzey son kullanıcı içindir; merchant sunucunuz bu uçları çağırmaz. Sunucu tarafı için s2s API'ye bakın.
Bu uçlar /api/portal/v1/wallet/me/* altındadır ve yalnızca oturum sahibinin kendi verisine erişir. Kullanıcı kimliği istekte taşınmaz — oturumdan çözülür.
İstek gövdesine endUserId benzeri bir alan koymayı beklemeyin. Portal uçları hedef kullanıcıyı oturumdan alır; bu, bir kullanıcının başkasının cüzdanını hedefleyebilmesini yapısal olarak imkânsız kılar.
Hesap ve bakiye
GET /me # profil
GET /me/balances # tüm hesapların bakiyesi
GET /me/wallets # cüzdanlar
POST /me/wallets/{id}/accounts # yeni para birimi hesabı { currency }
GET /me/limits # limit durumu (operationType, currency ile filtre)
GET /me/kyc-level # seviye ve açık yeteneklerBakiye yükleme
POST /me/topups/card # { creditWalletAccountId, amount, currency, returnUrl?, saved…Token? }
GET /me/topups/{id}
GET /me/deposit-instructions
POST /me/deposit-instructions # { walletAccountId, currency? }Kart yüklemesi hosted form ya da 3D Secure yönlendirmesi döner; ayrıntı Bakiye Yükleme.
deposit-instructions uçları bir banka entegrasyonu gerektirir. Entegrasyon bağlı değilken talimat üretilemez. Durum: Yol Haritası.
Transfer
POST /me/transfers/w2w/quote
POST /me/transfers/w2w
POST /me/transfers/w2w/{id}/completeAynı üç adımlı desen IBAN transferi için de geçerlidir (/me/transfers/w2iban/*) — bkz. Transfer.
Para çekme
POST /me/withdrawals/bank/quote
POST /me/withdrawals/bank
POST /me/withdrawals/bank/{id}/complete
GET /me/withdrawals/{id}Banka entegrasyonu gerektirir. Durum: Yol Haritası.
Ödeme
POST /me/payment-code # kasada gösterilecek tek kullanımlık kod üret
DELETE /me/payment-code # kodu iptal et
POST /me/payments/{requestId}/approve
GET /me/payments/{id}QR
POST /me/qr # tahsilat kodu üret
GET /me/qr # kodlarım
GET /me/qr/{id}
GET /me/qr/{id}/image
DELETE /me/qr/{id} # iptal
POST /me/qr/parse # okunan kodu çözümle
POST /me/qr/pay # QR ile öde
POST /me/qr/pay/{qrId}/completeKişi rehberi
GET /me/contacts
POST /me/contacts # { alias, contactPhone? | contactWalletNo? }
PUT /me/contacts/{id}
DELETE /me/contacts/{id}
POST /contacts/phonebook-check # { phone? | walletNo? }phonebook-check, kullanıcının rehberindeki kişilerden hangilerinin cüzdanı olduğunu göstermek içindir.
Rehber eşleştirmesini kullanıcının açık onayıyla yapın ve tüm rehberi toplu göndermeyin. Okuma yanıtlarında telefon numaraları maskeli döner.
Yetkilendirme (mandate)
Bir işletmenin kullanıcı adına düzenli tahsilat yapabilmesi için kullanıcı yetki verir:
GET /me/authorizations/consent-text # gösterilecek onay metni
GET /me/authorizations # verilen yetkiler
POST /me/authorizations # { businessEndUserId? | businessWalletNo?, channel?, otpDestination, locale? }
POST /me/authorizations/{id}/confirm # { otpCode }
DELETE /me/authorizations/{id} # yetkiyi geri alconsent-text ucunu mutlaka kullanın — kullanıcıya gösterdiğiniz onay metni, yetkinin kapsamıyla birebir aynı olmalıdır. Kendi yazdığınız bir metin, kapsam değiştiğinde sessizce yanlış hâle gelir.
Kullanıcıya verdiği yetkileri listeleyip tek dokunuşla geri alma imkânı sunun.
Sadakat
GET /me/cashback
GET /me/cashback/eligible
GET /me/loyalty/balance
GET /me/loyalty/history
POST /me/loyalty/redeem # { loyaltyProgramId, walletAccountId, points, idempotencyKey }
GET /me/tier
GET /me/badgesAyrıntı: Sadakat & Cashback.
Fatura ve fatura ödeme
GET /me/invoices
GET /me/invoices/{id}
POST /me/invoices/{id}/pay
POST /me/bills/inquire # { billerCode, subscriberNo }
POST /me/bills/pay
GET /me/billsFatura ve fatura ödeme akışları sırasıyla yayın ve fatura kurumu entegrasyonu beklemektedir. Durum: Yol Haritası.
İşlemler ve dekont
GET /me/operations # cursor sayfalama, status/walletAccountId filtresi
GET /me/operations/{id}
GET /me/operations/{id}/receipt
GET /me/operations/exportÜcret sorgulama
POST /me/fees/quote # { operationType, currency, amount }Tutar yazıldıkça çağırıp kullanıcıya toplam tutarı gösterin.
Yaygın hatalar
| Durum | Sebep | Çözüm |
|---|---|---|
| Başka kullanıcının verisi gelmiyor | Beklenen davranış | Portal yalnız kendi verisini döner; tenant geneli için s2s kullanın |
| Para işlemi reddediliyor | Step-up eksik | otpCode / trustedActionToken gönderin |
| Yetki metni ile kapsam uyuşmuyor | Kendi metniniz kullanılmış | consent-text ucunu kullanın |
| Bazı uçlar hiç çalışmıyor | O yeteneğin entegrasyonu bağlı değil | Yol Haritası |