🔗 AllHavale API Test Paneli

NosPay ↔ AllHavale Entegrasyon Test Aracı — Tüm endpoint'leri test edin

⚙️ API Yapılandırması

📋 Aktif Hesaplar
💰 Yatırım Oluştur
💸 Çekim Oluştur
❌ Çekim İptali
📊 Mutabakat
🔐 Hash Hesapla
📖 Dokümantasyon
GET /api/allhavale/active-accounts

Aktif Banka Hesapları Listesi

Yatırım almaya uygun aktif banka hesaplarını listeler. AllHavale bu endpoint'i kullanarak sisteminizin aktifliğini kontrol eder ve işlemleri doğru hesaplara yönlendirir.

Authentication: x-api-key ve x-secret-key header'ları gereklidir.

Response Formatı:
status — true/false
accounts[].id — Hesap ID (ACC prefix'li)
accounts[].accountNumber — IBAN
accounts[].accountName — Hesap sahibi adı
accounts[].isActive — Aktiflik durumu
accounts[].limits.minDepositAmount — Minimum yatırım
accounts[].limits.maxDepositAmount — Maksimum yatırım
POST /api/allhavale/create-deposit-transaction

Yatırım İşlemi Oluştur

AllHavale'den gelen yatırım talebi. Sistem uygun bir banka hesabı seçer ve bilgileri döner. Kullanıcı bu hesaba havale/EFT yaparak yatırım işlemini tamamlar.

Hash Formülü: SHA-256(x-api-key + x-secret-key + transactionId + amount)

🔐 Hash Otomatik Hesaplanacak

Formül: SHA-256(apiKey + secretKey + transactionId + amount)

Hash hesaplanmadı — alanları doldurun
POST /api/allhavale/create-withdraw-transaction

Çekim İşlemi Oluştur

AllHavale'den gelen çekim talebi. Oyuncunun kazancını kendi banka hesabına çekmesi için işlem oluşturulur. Admin onayı sonrası havale yapılır ve callback ile bildirilir.

Hash Formülü: SHA-256(x-api-key + x-secret-key + transactionId + amount)

🔐 Hash Otomatik Hesaplanacak

Formül: SHA-256(apiKey + secretKey + transactionId + amount)

Hash hesaplanmadı — alanları doldurun
POST /api/allhavale/cancel-withdraw-transaction

Çekim İptali

Bekleyen (pending) bir çekim işlemini anında iptal eder. Sadece henüz onaylanmamış veya reddedilmemiş işlemler iptal edilebilir. İptal edilen işlem "rejected" statüsüne geçer.

GET /api/allhavale/transactions

İşlem Listesi (Mutabakat / Reconciliation)

Belirli bir tarihteki tüm AllHavale işlemlerini listeler. Gün sonunda mutabakat için kullanılır. Hem yatırım hem çekim işlemleri birleşik olarak döner.

Query Parametreleri: date (YYYY-MM-DD), page, limit

Response Formatı:
items[].transactionId — İşlem referans ID
items[].amount — İşlem tutarı (TL)
items[].unixTime — Unix timestamp
items[].status — APPROVED / REJECTED
total — Toplam işlem sayısı

🔐 SHA-256 Hash Hesaplayıcı

AllHavale API'sinde kullanılan hash değerini hesaplar.
Formül: SHA-256(x-api-key + x-secret-key + transactionId + amount)

Bu hash, her işlem isteğinde güvenlik doğrulaması için kullanılır. Gönderilen hash ile sunucu tarafında hesaplanan hash eşleşmelidir.

Sonuç

Girdi: (boş)

📖 AllHavale API Dokümantasyonu

NosPay ↔ AllHavale entegrasyonunun tam teknik dokümantasyonu.

🔑 Authentication (Kimlik Doğrulama)

Tüm isteklerde aşağıdaki header'lar zorunludur:
x-api-key — AllHavale tarafından sağlanan API anahtarı
x-secret-key — AllHavale tarafından sağlanan gizli anahtar

Bu değerler system_settings tablosunda veya .env dosyasında saklanır:
allhavale_api_key
allhavale_secret_key
🔐 Hash Doğrulama

Yatırım ve çekim işlemlerinde güvenlik hash'i zorunludur:
Formül: SHA-256(x-api-key + x-secret-key + transactionId + amount)
Sonuç: 64 karakter lowercase hex string
Karşılaştırma: timing-safe comparison kullanılır

⚠️ Önemli: Amount değeri string olarak birebir kullanılır. "1000" ile "1000.00" farklı hash üretir!

Endpoint Listesi

Method Endpoint Açıklama Auth
GET /api/allhavale/active-accounts Aktif banka hesaplarını listele ✅ Header
POST /api/allhavale/create-deposit-transaction Yatırım işlemi oluştur ✅ Header + Hash
POST /api/allhavale/create-deposit-transaction Çekim işlemi oluştur ✅ Header + Hash
POST /api/allhavale/cancel-withdraw-transaction Çekim iptali ✅ Header
GET /api/allhavale/transactions Mutabakat işlem listesi ✅ Header

Callback Mekanizması

📤 Callback Gönderimi

İşlem onay/red sonrası AllHavale'nin callbackUrl'sine otomatik bildirim gönderilir:

Callback Payload:
status — "APPROVED" veya "REJECTED"
hash — SHA-256 doğrulama hash'i
amount — Onaylanan tutar
fullName — Oyuncu adı
playerId — Oyuncu ID
type — "DEPOSIT" veya "WITHDRAW"
note — Açıklama

Callback Header'ları:
Content-Type: application/json
x-api-key — API Key
x-secret-key — Secret Key

Hata Kodları

HTTP Code Durum Açıklama
200✅ Başarılıİşlem başarıyla tamamlandı
400⚠️ Bad RequestEksik veya geçersiz parametreler
401🔒 UnauthorizedGeçersiz API key/secret veya hash
404❓ Not Foundİşlem bulunamadı
409⚡ ConflictDuplicate transactionId
500💥 Server ErrorSunucu hatası
503🔧 UnavailableAktif hesap/dealer yok

"0" Değeri Sorunu Açıklaması

⚠️ Gaming Platformlarında "0" Görünme Sorunu

Gaming Platforms sayfasında "0" değerlerinin görünmesi şu sebeplerden kaynaklanabilir:

1. commission_rate = 0.00: Veritabanında commission_rate alanı DEFAULT 0.00 olarak tanımlıdır. Platform eklenirken komisyon oranı girilmezse "0" olarak kalır.

2. balance_sync / auto_withdraw = 0: Boolean alanlar MySQL'de 0/1 olarak saklanır. Frontend'de doğru şekilde checkbox olarak gösterilmektedir ancak ham veri "0" olarak görünebilir.

3. daily_deposit_used / distribution_used = 0: Yeni eklenen platformlarda henüz işlem yapılmadığı için sayaçlar sıfırdır.

Çözüm: Platform düzenleme ekranından komisyon oranını güncelleyin (örn: 2.50). Boolean değerler için checkbox'ları işaretleyin.

📋 Akış Diyagramı

┌─────────────┐         ┌──────────────┐         ┌─────────────┐
│  AllHavale  │         │    NosPay    │         │    Admin    │
│  (Partner)  │         │   (Sistem)   │         │  (Onaylayıcı)│
└──────┬──────┘         └──────┬───────┘         └──────┬──────┘
       │                       │                        │
       │  1. GET /active-accounts                       │
       │──────────────────────>│                        │
       │  ← accounts listesi  │                        │
       │<──────────────────────│                        │
       │                       │                        │
       │  2. POST /create-deposit-transaction           │
       │──────────────────────>│                        │
       │  ← accountName, IBAN  │                        │
       │<──────────────────────│                        │
       │                       │                        │
       │                       │  3. Havale geldi       │
       │                       │  (Otomatik/Manuel)     │
       │                       │───────────────────────>│
       │                       │                        │
       │                       │  4. Admin onaylar      │
       │                       │<───────────────────────│
       │                       │                        │
       │  5. Callback (APPROVED/REJECTED)               │
       │<──────────────────────│                        │
       │                       │                        │
       │  6. POST /create-withdraw-transaction          │
       │──────────────────────>│                        │
       │  ← status: true       │                        │
       │<──────────────────────│                        │
       │                       │  7. Admin havale yapar │
       │                       │───────────────────────>│
       │                       │<───────────────────────│
       │                       │                        │
       │  8. Callback (APPROVED)│                       │
       │<──────────────────────│                        │
       │                       │                        │
       │  9. GET /transactions (Mutabakat)              │
       │──────────────────────>│                        │
       │  ← items listesi      │                        │
       │<──────────────────────│                        │