🔗 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 Entegrasyon Dokümantasyonu

NosPay ↔ AllHavale entegrasyonunun tam teknik dokümantasyonu. AllHavale platformunun NosPay altyapısına bağlanması için gerekli tüm bilgiler aşağıda detaylı olarak listelenmiştir.

📄 Detaylı Dokümantasyon Sayfası

Tam Dokümantasyonu Aç →

Sidebar navigasyonlu, profesyonel API dokümantasyonu

🌐 Base URL & Bağlantı Bilgileri

Production URL: https://allhavale.nospay.net/api

Tüm endpoint'ler /api/allhavale/ prefix'i altında sunulmaktadır.
AllHavale tarafından sağlanan x-api-key ve x-secret-key değerleri ile kimlik doğrulama yapılır.

🔑 Kimlik Doğrulama (Authentication)

Zorunlu HTTP Header'lar

Tüm isteklerde aşağıdaki header'lar eksiksiz iletilmelidir:

HeaderDeğerAçıklama
x-api-keystringNosPay tarafından sağlanan API anahtarı
x-secret-keystringNosPay tarafından sağlanan gizli anahtar
Content-Typeapplication/jsonPOST isteklerinde zorunlu

🔐 Hash Hesaplama & Doğrulama

SHA-256 Hash Formülü

SHA-256(x-api-key + x-secret-key + transactionId + amount)

Kurallar:
transactionId — AllHavale tarafındaki işlem ID'si (string)
amount — Gönderilen tutar birebir aynı kullanılmalı (100100.0)
• Sonuç: 64 karakter lowercase hex string
• Miktar değişimlerinde hash yeniden hesaplanmalıdır
• Doğrulama: crypto.timingSafeEqual() (timing-safe comparison)

📡 Endpoint Listesi

MethodEndpointAçıklamaAuthHash
GET /api/allhavale/active-accounts Aktif banka hesaplarını listele
POST /api/allhavale/create-deposit-transaction Yatırım işlemi oluştur
POST /api/allhavale/create-withdraw-transaction Çekim işlemi oluştur
POST /api/allhavale/cancel-withdraw-transaction Çekim iptali
GET /api/allhavale/transactions Mutabakat işlem listesi

A. Aktif Banka Hesapları

GET /api/allhavale/active-accounts

Yatırım almaya uygun aktif hesapları döner. Boş dizi dönerse sistem pasif alınır.

Response:
AlanTipZorunluAçıklama
statusbooleantrue = başarılı
messagestringBilgi mesajı
accountsarrayHesap listesi (en az 1)
accounts[].idstringHesap kimliği (ACC prefix)
accounts[].accountNumberstringIBAN adresi
accounts[].accountNamestringHesap sahibi adı
accounts[].isActivebooleanAktiflik durumu
accounts[].limits.minDepositAmountnumberMin yatırım (TL)
accounts[].limits.maxDepositAmountnumberMax yatırım (TL)

B. Yatırım İşlemi Oluşturma

POST /api/allhavale/create-deposit-transaction

Yatırım talebi oluşturur, uygun banka hesabı seçilir ve bilgileri döner.

Request Body:
AlanTipZorunluAçıklama
transactionIdstringİşlem ID (unique)
amountnumberTutar (TL)
playerFullNamestringOyuncu adı soyadı
playerPlayerIdstringOyuncu kimliği
callbackUrlstringSonuç bildirim URL'si
hashstringSHA-256 hash

Response:
AlanTipAçıklama
statusbooleantrue = oluşturuldu
accountNamestringHesap sahibi (kullanıcıya gösterilir)
accountNumberstringIBAN (kullanıcıya gösterilir)
accountBankNamestringBanka adı
messagestringBilgi mesajı

C. Çekim İşlemi Oluşturma

POST /api/allhavale/create-withdraw-transaction

Çekim talebi oluşturur. Oyuncunun IBAN'ına gönderim yapılacak.

Request Body:
AlanTipZorunluAçıklama
transactionIdstringİşlem ID (unique)
amountnumberTutar (TL)
playerFullNamestringOyuncu adı soyadı
playerPlayerIdstringOyuncu kimliği
playerAccountNumberstringOyuncu IBAN (gönderim yapılacak)
callbackUrlstringSonuç bildirim URL'si
hashstringSHA-256 hash

Response: { "status": true, "message": "Çekim işlemi alındı." }

D. Çekim İptali

POST /api/allhavale/cancel-withdraw-transaction

Bekleyen çekim işlemini iptal eder. Sadece pending durumundaki işlemler iptal edilebilir.

Request: { "transactionId": "..." }
Response: { "status": true, "message": "Withdrawal request cancelled" }

⚠️ Zaten onaylanmış/reddedilmiş işlemler iptal edilemez.

E. İşlem Listesi (Mutabakat)

GET /api/allhavale/transactions?date=YYYY-MM-DD&page=1&limit=500

Gün sonunda mutabakat için belirli tarihteki tüm işlemleri listeler.

Query Parametreleri:
ParametreTipAçıklama
datestringYYYY-MM-DD formatında tarih
pagenumberSayfa numarası (≥ 1)
limitnumberSayfa başına işlem (1-1000)

Response Items:
AlanTipAçıklama
items[].transactionIdstringİşlem referans ID
items[].amountnumberİşlem tutarı
items[].unixTimenumberUnix timestamp
items[].statusstringAPPROVED / REJECTED
totalnumberToplam işlem sayısı

📤 Callback Mekanizması

İşlem Sonuç Bildirimi

İşlem onay/red sonrası, NosPay tarafından AllHavale'nin callbackUrl'sine POST isteği gönderilir.

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

Callback Payload:
AlanTipZorunluAçıklama
statusstringAPPROVED veya REJECTED
hashstringSHA-256 hash (amount değişirse yeni tutar ile)
amountnumberOnaylanan/reddedilen tutar
fullNamestringOyuncu adı soyadı
playerIdstringOyuncu kimliği
typestringDEPOSIT veya WITHDRAW
notestringAçıklama / red sebebi

⚠️ Hata Kodları

HTTP KoduDurumAçıklama
200✅ Başarılıİşlem başarıyla tamamlandı
400⚠️ Bad RequestEksik/geçersiz parametreler, limit dışı tutar
401🔒 UnauthorizedGeçersiz API key/secret veya hash hatası
403🚫 ForbiddenOyuncu engel listesinde (block list)
404❓ Not Foundİşlem bulunamadı
409⚡ ConflictDuplicate transactionId
429🚦 Rate LimitedDakika başına istek limiti aşıldı
500💥 Server ErrorSunucu hatası
503🔧 UnavailableAktif hesap veya dealer bulunamadı

📏 Limitler & Kısıtlamalar

Limit TürüDeğerAçıklama
Yatırım MinDinamik (admin ayarı)AllHavale'ye özel min yatırım tutarı
Yatırım MaxDinamik (admin ayarı)AllHavale'ye özel max yatırım tutarı
Çekim MinDinamik (admin ayarı)AllHavale'ye özel min çekim tutarı
Çekim MaxDinamik (admin ayarı)AllHavale'ye özel max çekim tutarı
Rate LimitDinamik (admin ayarı)Dakika başına max yatırım talebi
Response Süresi< 500msAşılırsa sistem pasif alınır

📝 Önemli Notlar

⚠️ Dikkat Edilmesi Gerekenler

1. Duplicate Koruması: Aynı transactionId ile birden fazla işlem oluşturulamaz (409 döner).

2. Block List: Engel listesindeki oyuncular (playerPlayerId ile eşleşme) yatırım/çekim yapamaz (403 döner).

3. Kasa Koruma: Bayi bakiyesi limiti aşınca otomatik kilitlenir, /active-accounts'ta görünmez.

4. Smart Distribution: Yatırımlar aktif bayiler arasında round-robin dağıtılır. Tüm bayiler dolduğunda sayaçlar sıfırlanır.

5. Otomatik İptal: Bekleyen yatırımlar belirlenen süre sonunda otomatik reddedilir ve callback gönderilir.

6. Callback Timeout: Callback gönderimi 10 saniye timeout ile yapılır. Başarısız olursa log'lanır.

📋 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      │                        │
       │<──────────────────────│                        │