Hata kodları
İki tür hata vardır. Operatör API’si HTTP durum kodu ve code ile yanıt verir. Cüzdan callback’lerinde ise siz iş kuralı hatasını HTTP 200 ve gövdedeki code ile bildirirsiniz.
API hataları
Operatör API’sinin hata gövdesi code, message ve request_id alanlarını taşır; koda göre details (örn. details.source, details.fields, details.reason) ve 429’da retry_after eklenir. message İngilizcedir, Accept-Language: tr ile Türkçe gelir; iş mantığını code üzerine kurun. Destek talebi açarken request_id (X-Boss-Request-Id yanıt başlığıyla aynı) değerini paylaşın.
{
"code": "GAME_DISABLED",
"message": "This game cannot be opened right now.",
"request_id": "req_01HF3Q2P",
"details": { "source": "site_rule" }
}| Kod | HTTP | Ne zaman |
|---|---|---|
| INVALID_SIGNATURE | 401 | İmza başlıkları eksik veya imza doğrulanamadı |
| TIMESTAMP_SKEW | 401 | X-Timestamp ±30 sn dışında veya sayı değil |
| CREDIT_LIMIT | 402 | Launch: kredi limiti aşıldı |
| OPERATOR_SUSPENDED | 402 | Launch: operatör askıda veya Canlı’da production onayı yok |
| IP_NOT_ALLOWED | 403 | IP izin listesinde değil |
| SCOPE_MISSING | 403 | Anahtarın kapsamı yetmiyor |
| MODULE_DISABLED | 403 | Gerekli modül kapalı (details.module; launch’ta details.source: module) |
| GAME_DISABLED | 403 | Launch: oyun bu sitede açılamıyor; neden details.source’ta (Oyun başlatma) |
| SITE_DISABLED | 403 | Launch: site kapalı veya Canlı’da çağrılan site Canlı durumda değil |
| MARKET_RESTRICTED | 403 | Launch: sitenin pazar kurallarına uygun RTP varyantı yok |
| NOT_FOUND | 404 | Kayıt yok |
| REQUEST_ID_CONFLICT | 409 | Aynı X-Request-Id, farklı istek |
| SITE_REQUIRED | 422 | Operatör geneli anahtar ve birden çok site: site_id gerekli |
| VALIDATION_ERROR | 422 | Eksik veya geçersiz alan (details.fields), eksik X-Request-Id (details.field) ya da iş kuralı (details.reason) |
| CURRENCY_NOT_SUPPORTED | 422 | Para birimi desteklenmiyor |
| RTP_VARIANT_NOT_OFFERED | 422 | Launch: rtp_variant oyunda yok (details.offered) |
| SCOPE_DENIED | 403 | Site veya kayıt anahtarınızın kapsamı dışında. Bilinmeyen ya da başka operatörün site_id’si her uçta bu kodu alır |
| PLAYER_BLOCKED | 403 | Launch: oyuncu kısıtlı |
| FRAUD_CLOSURE | 403 | Fraud kuralıyla kapatılan oyun API’den açılamaz |
| COUNTRY_BLOCKED | 403 | Launch, demo, oyun ayrıntısı: oyun veya sağlayıcı oyuncunun ülkesini yasaklıyor |
| COUNTRY_REQUIRED | 403 | Launch: oyunda ülke yasağı var, oyuncunun ülkesi bilinmiyor; country gönderin |
| DEMO_NOT_AVAILABLE | 404 | Demo: sağlayıcı demo sunmuyor |
| REQUEST_IN_PROGRESS | 409 | Aynı X-Request-Id hâlâ işleniyor; biraz sonra tekrar edin |
| MANUAL_LOCKED | 409 | Takılı tur: elle seçenek kilit açılmadan. Önce escalate |
| ITEM_RESOLVED | 409 | Takılı tur: kalem zaten çözüldü |
| APPROVAL_PENDING | 409 | Takılı tur: bekleyen onay var |
| TX_NOT_RESENDABLE | 409 | Takılı tur: işlem bu durumda yeniden gönderilemez |
| TX_CHANGED | 409 | Takılı tur: işlem bu sırada değişti, yeniden okuyup karar verin |
| NO_TRANSACTION | 409 | Takılı tur: bu çözüm için turda uygun işlem yok |
| CAMPAIGN_CLOSED | 409 | Free round: kampanya bitmiş veya iptal edilmiş |
| CAMPAIGN_CHANGED | 409 | Free round: kampanya bu sırada durum değiştirdi (başladı veya açıldı), tekrar edin |
| GRANT_CLOSED | 409 | Free round: oyuncunun hakkı kullanılmış, süresi dolmuş, iptal edilmiş veya sağlayıcı reddetmiş (details.status) |
| BUDGET_WARNING | 409 | Free round: eklenen oyuncularla tahmini maliyet bütçe uyarısını aşıyor; Sahibiniz portaldan ekler |
| FREEROUND_ADD_PLAYERS_UNSUPPORTED | 409 | Free round: sağlayıcı açık kampanyaya oyuncu eklemeyi desteklemiyor |
| PROVIDER_CANCEL_UNSUPPORTED | 409 | Free round: sağlayıcı tek oyuncu iptalini desteklemiyor; kampanyanın tamamını iptal edin |
| REFERENCE_CONFLICT | 409 | Free round: aynı reference ile farklı içerikte kampanya daha önce açılmış |
| PROMO_LIMITS_MISSING | 409 | Free round: platformun promosyon sınırları tanımlı değil; kampanya açılamaz. Boss Hub desteğine yazın |
| LAUNCH_TOKEN_EXPIRED | 410 | launch_url süresi doldu veya kullanıldı |
| FILE_TOO_LARGE | 413 | İstek gövdesi 2 MB’tan büyük |
| UNSUPPORTED_MEDIA_TYPE | 415 | Gövdeli istekte Content-Type application/json değil |
| INVALID_JSON | 422 | Gövde JSON olarak okunamadı |
| INVALID_CURSOR | 422 | cursor önceki yanıttan gelmiyor |
| DATE_RANGE_INVALID | 422 | Rapor: from, todan önce değil |
| DATE_RANGE_TOO_LONG | 422 | Rapor: aralık 366 günden uzun; işlem akışı: 31 günden uzun (details.max_days) |
| DATE_IN_FUTURE | 422 | Günlük mutabakat: gelecek bir gün için toplam gönderilemez |
| LIMIT_RANGE_INVALID | 422 | Limit: en az, en çoktan büyük veya sıfır |
| LIMIT_DEFAULT_INVALID | 422 | Limit: varsayılan bahis aralık dışında |
| LIMIT_OUT_OF_RANGE | 422 | Limit: üst katmanın aralığından çıkıyor |
| TRANSACTION_REQUIRED | 422 | Takılı tur: birden çok açık kalem var, transaction_id gerekli |
| ACTION_NOT_ALLOWED | 422 | Takılı tur: bu çözüm bu sorunda kullanılamaz |
| OUTCOME_NOT_ALLOWED | 422 | Takılı tur: bu sonuç bu sorunda kullanılamaz |
| OPERATOR_CONFIRMATION_REQUIRED | 422 | Takılı tur: elle ödenmiş kazancın iptali operator_confirmed ister |
| TRANSACTION_MISMATCH | 422 | Takılı tur: işlem kimliği kalemle uyuşmuyor |
| RATE_LIMITED | 429 | Dakikalık istek limiti aşıldı |
| INTERNAL_ERROR | 500 | Boss Hub’da beklenmeyen hata. Ayrıntı dönmez; aynı X-Request-Id ile tekrar edebilirsiniz, sürerse request_id ile destek talebi açın |
| PROVIDER_NOT_CONNECTED | 503 | Sağlayıcı bağlı değil |
| PROVIDER_UNAVAILABLE | 503 | Sağlayıcıya ulaşılamıyor |
| WALLET_UNAVAILABLE | 503 | Oyun açılışı: cüzdanınız authenticate çağrısına HTTP 200 + JSON vermedi. details.wallet_call ve details.wallet_status: çağrı yapıldıysa portalda Entegrasyon > Cüzdan sağlığı hata listesindeki etiket (http_<kod>, timeout, network, invalid_signature, unparseable, code_unknown_status); çağrı yapılamadıysa not_configured (cüzdan ayarı yok) veya signing_unavailable (imza anahtarı yok), bunlar portal listesinde görünmez |
| MAINTENANCE | 503 | Bakım |
| NOT_READY | 503 | /health/ready: veritabanı veya Redis yanıt vermiyor ya da sunucu kapanıyor (details) |
Sağlayıcı kodları (provider_code)
Oyun açılışında (/s/{token}) sağlayıcı oturumu açamazsa 503 PROVIDER_UNAVAILABLE gelir; sağlayıcı bir kod verdiyse details.provider_code’ta durur. EGT oyunlarında kod oyun köprüsünündür. Liste bugünkü kodlardır ve büyüyebilir; tanımadığınız kodu geçici sayın, oyuncuya yeni launch önerin, sürerse request_id ile destek talebi açın.
| provider_code | Anlam | Ne yapmalı |
|---|---|---|
| BRIDGE_WORKER_UNAVAILABLE, BRIDGE_WORKER_TIMEOUT, BRIDGE_WORKER_FAILED, SERVICE_STOPPING | Köprü bu site için o an hazır değil (başlıyor, yeniden başlıyor ya da yoğun) | Birkaç saniye sonra yeni launch |
| SOURCE_UNAVAILABLE, LIVE_CONNECTOR_NOT_CONFIGURED, JACKPOT_SOURCE_UNAVAILABLE | Köprünün EGT bağlantısı ya da jackpot kaynağı o an kullanılamıyor | Yeni launch; sürerse destek |
| LAUNCH_REPLAYED | Aynı açılış köprüye ikinci kez geldi | Yeni launch |
| SCOPE_MISMATCH, UNKNOWN_GAME, CURRENCY_NOT_SUPPORTED, BOSS_ENVIRONMENT_MISMATCH | Site, oyun, para birimi ya da ortam köprüde tanımlı değil (yapılandırma) | Destek: siteyi, oyunu ve para birimini bildirin |
| BRIDGE_LAUNCH_FAILED | Köprü oyunu açamadı, daha ayrıntılı kod yok | Yeni launch; sürerse destek |
Cüzdan yanıt kodları
Bu kodları siz döndürürsünüz. İş kuralı hatası HTTP 200 ile gider; gövdede status: ERROR ve code bulunur. Bakiye biliniyorsa balance ekleyin.
{
"status": "ERROR",
"code": "INSUFFICIENT_FUNDS",
"balance": 0.40
}| Kod | Anlam | Kullanım |
|---|---|---|
| INSUFFICIENT_FUNDS | Bakiye yetersiz | bet; kazanç iadesinde rollback |
| INVALID_TOKEN | Oturum geçersiz/süresi dolmuş | authenticate, balance, bet. win ve rollback’te dönmeyin |
| INVALID_SIGNATURE | İmza doğrulanamadı | Tüm çağrılar |
| DUPLICATE_TRANSACTION | Aynı işlem farklı içerikle | bet, win, rollback |
| PLAYER_BLOCKED | Oyuncu kısıtlı / self-exclusion | Tüm çağrılar |
| LIMIT_EXCEEDED | Sorumlu oyun limiti aşıldı | bet, win, rollback |
| TRANSACTION_ROLLED_BACK | Bu işlem için iptal kaydınız var | bet, win. rollback’te “zaten geri alınmış” demektir |
| INTERNAL_ERROR | Operatör hatası | Tüm çağrılar |
Yanıt sınıfları
Boss Hub her yanıtı üç sınıftan birine koyar: temiz OK, temiz iş reddi veya belirsiz. Belirsiz, para hareketinin olup olmadığı bilinmiyor demektir. Bahiste belirsizlik otomatik rollback ile çözülür; win ve rollback takvimle tekrar edilir.
| Yanıt | Sınıf | bet | win | rollback |
|---|---|---|---|---|
| 200 OK, kimlik ve para birimi tutuyor | Temiz OK | Kabul | Kabul | Kabul, kaynak işlem geri alındı |
| 200 ERROR: INSUFFICIENT_FUNDS, LIMIT_EXCEEDED, PLAYER_BLOCKED, INVALID_TOKEN | Temiz iş reddi | Reddedilir | Tekrar yok, win_rejected kaydı | Tekrar yok, rollback_rejected kaydı |
| Aynı kodlar, önceki deneme belirsiz | Belirsiz | Otomatik rollback | Takvimle tekrar; biterse win_rejected | Takvimle tekrar; biterse kayıt açılır |
| TRANSACTION_NOT_FOUND (HTTP 409 veya 200) | Rollback için temiz iş reddi | Belirsiz sayılır | Belirsiz sayılır | Sözleşme ihlali, rollback_rejected kaydı |
| TRANSACTION_ROLLED_BACK | Temiz (iptal kaydı) | Reddedilir, uyarı | Reddedilir, win_rejected, uyarı | OK sayılır: zaten geri alınmış |
| DUPLICATE_TRANSACTION | Belirsiz | Otomatik rollback, duplicate_conflict kaydı | Takvim durur, duplicate_conflict kaydı | Win ile aynı |
| INVALID_SIGNATURE | Belirsiz | Otomatik rollback, alarm | Takvimle tekrar, alarm | Win ile aynı |
| Zaman aşımı, bağlantı hatası, 5xx, INTERNAL_ERROR | Belirsiz | Süre bütçesi içinde tekrar, sonra otomatik rollback | Takvimle tekrar | Takvimle tekrar |
| 200 ama gövde çözülemiyor, currency eksik veya tutmuyor, transaction_id tutmuyor, balance geçersiz | Belirsiz | Aynı + alarm | Aynı + alarm | Aynı + alarm |
| WAF 403, diğer 3xx ve 4xx, 429 | Belirsiz | Aynı | Aynı | Aynı |
| Bilinmeyen hata kodu | Belirsiz | Aynı + alarm | Aynı + alarm | Aynı + alarm |
Tekrar takvimi
| Çağrı | Takvim | Bitince |
|---|---|---|
| bet | Senkron, beklemesiz. İlk deneme + 2 tekrar, her biri 3 sn (portalda 5 sn ve 3 tekrar seçilebilir). Toplam süre bütçesi en çok 20 sn. | Otomatik rollback |
| win | T0, +30 sn, +2 dk, +10 dk, +30 dk. Toplam 5 deneme. | 4. denemeden sonra tur takılı olur, 5. denemeden sonra elle çözüm |
| rollback | Win ile aynı. | Bahis rollback’inde bet_timeout, kazanç rollback’inde rollback_rejected kaydı |
| win (tutar 0) | Win ile aynı; reddedilirse tekrar yok. | Kayıt açılmaz, tur ve fatura etkilenmez |