Boss HubBoss HubDocs
Sürüm notlarıDurum
Seamless Wallet/win

Kazanç (credit)

Callback · Sağlayıcı → Operatör
POST{callback_url}/win

Tur kazanç ürettiğinde Boss Hub, tutarı oyuncunun bakiyesine eklemeniz için bu uç noktayı çağırır. Kazanç kesindir: yanıt alınamazsa tur iptal edilmez, istek takvimle tekrar edilir.

Başlıklar

BaşlıkAçıklama
Content-Typeapplication/json
X-Operator-IdOperatör kimliğiniz
X-TimestampUnix saniye. ±30 sn dışını reddedin
X-Signaturehex(HMAC_SHA256(secret, ts + "." + "POST" + "." + path + "." + body)). path, callback adresinizin taban yolu dahil tam yoludur, örn. /bossgaming/bet. Bkz. İmza
X-Request-IdBu çağrının kimliği. Tekrar denemelerde aynı kalır
X-Api-KeyCallback’i imzalayan API anahtarınız. Birden çok anahtarınız varsa doğru secret’ı seçer

Gövde parametreleri

transaction_idstringzorunlu
Benzersiz işlem kimliği, idempotency anahtarı. Oyun kazancında tx_<tur>-w1, jackpot ödemesinde -j1 gibidir; kimliği ayrıştırmayın.
round_idstringzorunlu
Oyun turu. Aynı tura ait bet/win işlemlerini bağlar.
session_idstringzorunlu
launch ile açılan oyun oturumu.
player_idstringzorunlu
Operatör tarafındaki oyuncu kimliği.
game_idstringzorunlu
Oyun kodu, örn. sultans-ember.
amountdecimal(18,2)zorunlu
Eklenecek tutar, oturum para biriminde; iki ondalıklı JSON sayısı. Sıfır kazançlı turda 0. Boss Hub kampanyasının free round kazancında kampanyanın kazanç tavanı uygulanmış olabilir; sağlayıcının kendi free round’una Boss Hub tavan uygulamaz. Gelen tutarı ekleyin.
currencyISO 4217zorunlu
USD (varsayılan), EUR, TRY.
site_idstring
Site kodu, örn. site_mrd01. Aynı callback adresini paylaşan siteleri ayırt eder.
round_closedboolean
true ise tur bu kazançla kapanıyor. Çağrı oluşturulduğu andaki değerdir, tekrarlarda değişmez.
created_atdate-time
İşlemin oluştuğu an (UTC).
is_freeroundboolean
true ise free round kazancıdır; bakiyeye normal şekilde eklenir. Boss Hub kampanyasında campaign_id dolu, sağlayıcının kendi free round’unda null gelir.
campaign_idstring | null
Boss Hub free round kampanyası. Oyun kazancında ve sağlayıcının kendi free round’unda null.
freeround_grant_idstring
Yalnız free round kazancında: oyuncunun kampanyadaki hakkının kimliği.
jackpotobject | null
Jackpot ödemesiyse (Boss Hub havuzu veya sağlayıcının jackpot’ı) dolu gelir: pool_id ve level. Eşleşen Boss Hub havuzu yoksa pool_id sağlayıcının bağlantı kodudur. Jackpot ödemesi ayrı bir windir (-j1); Boss Hub havuzu düşüşünde round_closed false, sağlayıcı jackpot’ında true olabilir. EGT oyunlarında jackpot ödemeleri şu an kapalıdır: Jackpot havuzları.
promoobject | null
Promosyon kredisiyse dolu gelir: type (tournament), id (turnuva kimliği) ve rank (sıra). Oyun kazancında null.
Idempotency: Aynı transaction_id ile ikinci kez gelen istekte bakiyeyi tekrar artırmayın; ilk yanıtı aynen döndürün, güncel bakiyeyi değil. Bu kural yalnız işlenmiş sonuç içindir: reddettiğiniz bir kimlik yeniden gelirse baştan değerlendirin.
Token süresi: Oyuncunun token’ı veya oturumu dolmuş olsa da kazancı kabul edin; INVALID_TOKEN dönmeyin. Aksi hâlde oyuncu kazandığı parayı alamaz.
POST /bossgaming/win HTTP/1.1
Content-Type: application/json
X-Operator-Id: op_meridyen
X-Timestamp: 1762344004
X-Signature: 41c9de…7a30
X-Request-Id: req_01HF3KA7
X-Api-Key: pk_test_…

{
  "transaction_id": "tx_01HF3K9QZ2-w1",
  "round_id": "rnd_01HF3K9QZ2",
  "session_id": "ses_01HF3K7M",
  "site_id": "site_mrd01",
  "player_id": "u_88213",
  "game_id": "sultans-ember",
  "amount": 5.00,
  "currency": "USD",
  "is_freeround": false,
  "campaign_id": null,
  "jackpot": null,
  "promo": null,
  "round_closed": true,
  "created_at": "2026-11-05T14:22:09.480Z"
}
200Başarılı yanıt
{
  "status": "OK",
  "balance": 153.60,
  "currency": "USD",
  "operator_tx_id": "op_tx_9921845"
}
200Bu işlem için önce rollback geldi
{
  "status": "ERROR",
  "code": "TRANSACTION_ROLLED_BACK",
  "balance": 150.60
}

Yanıt kuralları

İş kuralı hatası da HTTP 200: Reddi (INSUFFICIENT_FUNDS, PLAYER_BLOCKED, LIMIT_EXCEEDED…) HTTP 200 gövdesinde status: ERROR ve code ile verin. HTTP 400, 402, 403, 409 veya 500 ile dönülen yanıt, gövdesinde ne yazarsa yazsın belirsiz sayılır: bahis tekrar edilir ve otomatik rollback gelir, kazanç ve rollback takvimle tekrar edilir, bakiye oyuna gitmez. Tek istisna rollback’te 409 TRANSACTION_NOT_FOUND’dur.
  • Başka her HTTP durumu (3xx, 4xx, 5xx, WAF veya bakım sayfası) da belirsizdir.
  • status: OK yanıtında currency zorunludur ve istekteki para birimiyle aynı olmalıdır. Eksik veya farklıysa yanıt belirsiz sayılır ve alarm üretilir.
  • balance: işlem sonrası bakiye; JSON sayısı (148.60) veya sayı metni ("148.60"), en çok iki ondalık, üs (1e3) yok. balance çağrısında zorunludur, diğerlerinde gönderin.
  • Kendi işlem kimliğinizi operator_tx_id alanında dönün. Yanıta transaction_id koyarsanız istektekiyle aynı olmalıdır.
  • Çözülemeyen gövde, bilinmeyen status veya code dışı bir hata belirsiz sayılır ve alarm üretir. Tanımadığınız istek alanlarını yok sayın.
  • İstekteki tutarlar her zaman iki ondalıklı JSON sayısıdır (2.00, 0.00), metin değildir. Gövdeyi kayıpsız okuyun, float kullanmayın.
HTTPYanıt gövdesiBoss Hub ne yapar
200{"status":"OK","balance":148.60,"currency":"USD","operator_tx_id":"op_tx_9921844"}Başarılı.
200{"status":"OK","balance":"148.60","currency":"USD"}Başarılı. balance sayı metni de olabilir; operator_tx_id isteğe bağlıdır.
200{"status":"ERROR","code":"INSUFFICIENT_FUNDS","balance":0.40}Temiz red. Bahis düşülmedi, tur başlamaz, rollback gelmez.
400{"status":"ERROR","code":"INSUFFICIENT_FUNDS"}Belirsiz: HTTP 200 değil, gövdeye bakılmaz. Bahis tekrar edilir, sonra otomatik rollback gelir.
200{"status":"OK","balance":148.60}Belirsiz + alarm: currency yok.
200{"status":"OK","balance":148.60,"currency":"EUR"}Belirsiz + alarm: istek USD idi, para birimi tutmuyor.
200{"status":"OK","balance":148.605,"currency":"USD"}Belirsiz + alarm: üç ondalık; en çok iki ondalık olur.
200{"status":"OK","balance":1.486e2,"currency":"USD"}Belirsiz + alarm: üslü sayı.
200{"status":"OK","transaction_id":"tx_other","balance":148.60,"currency":"USD"}Belirsiz + alarm: transaction_id istektekiyle aynı değil.
200{"status":"ERROR"}Belirsiz + alarm: code yok.

Oturum eşleme ve imza yolu

  • Yetki başlığı yok: Callback’lerde Authorization başlığı ve oyuncu token’ı yoktur. Çağrıyı yalnız X-Signature doğrular; token’ı yalnız authenticate taşır.
  • `session_id` ile eşleyin: authenticate isteği token ile session_id’yi birlikte getirir. Cüzdanınız token’a bağlıysa o anda session_id → token / oyuncu eşlemesini saklayın. balance, bet, win ve rollback aynı session_id’yi, launch’taki player_id’yi ve site_id’yi taşır.
  • Oturum kapanmış olabilir: win ve rollback oturumunuz veya token’ınız düştükten sonra da gelir; session_id artık canlı değil diye reddetmeyin. Oyuncuyu player_id ile bulun.
  • Ters vekil ve taban yol: İmza, Boss Hub’ın çağırdığı adresin tam yolu üzerindendir: callback adresiniz https://casino.example.com/bossgaming ise bahis /bossgaming/bet üzerinden imzalanır. Önünüzdeki vekil, API ağ geçidi veya çatı uygulamanın bağlama noktası öneki kesip uygulamanıza /bet iletiyorsa imzayı /bossgaming/bet ile yeniden kurun (önek ayarınızdan veya X-Forwarded-Prefix’ten) ya da öneki korumasını sağlayın. Boss Hub callback’e sorgu dizesi eklemez; alan adı imzaya girmez.

Tekrar takvimi

DenemeZamanNot
1T0İlk çağrı
2T0 + 30 sn
3T0 + 2 dk
4T0 + 10 dkBu da başarısızsa tur takılı olur, mutabakat kalemi açılır ve round.stuck gönderilir; tekrar sürer
5T0 + 30 dkSon deneme. Sonrası portaldan veya API’den elle çözüm

Her denemede gövde ve X-Request-Id aynıdır; yalnız X-Timestamp ile X-Signature değişir. Takvim içinde OK gelirse takılı kayıt kendiliğinden kapanır.

Sıfır kazanç

Turun hiçbir kazancı round_closed: true taşımadıysa Boss Hub tur kapanırken amount: 0 ve round_closed: true ile bir kazanç gönderir. Bu en iyi çaba bildirimidir: bakiye değişmez, OK dönün. Yanıtınız turu ve faturayı etkilemez: reddedilirse tekrar edilmez, belirsiz kalırsa takvimle tekrar edilir ve sonunda kalem açılmadan düşer.

Bahissiz kazanç

Bir win, sizde beti olmayan bir round_id ile gelebilir. Bunu reddetmeyin, kazanç gibi ekleyin; idempotency yine transaction_id iledir. Bahissiz kazanç iki durumda gelir: promosyon kredisi (aşağıda) ve sağlayıcının kendi yürüttüğü free round (Boss Hub kampanyası dışında, örneğin sağlayıcının oyun içinde verdiği dönüşler). İkincisinde tur Boss Hub’da doğrudan kapalı açılır: is_freeround: true, campaign_id: null, freeround_grant_id yok ve kampanya kazanç tavanı uygulanmaz.

{
  "transaction_id": "tx_01HF3M2C7D-w1",
  "round_id": "rnd_01HF3M2C7D",
  "session_id": "ses_01HF3K7M",
  "site_id": "site_mrd01",
  "player_id": "u_88213",
  "game_id": "sultans-ember",
  "amount": 3.40,
  "currency": "USD",
  "is_freeround": true,
  "campaign_id": null,
  "jackpot": null,
  "promo": null,
  "round_closed": true,
  "created_at": "2026-11-05T14:25:41.902Z"
}

Promosyon kredisi

Turnuva ödülü gibi promosyon kredileri de bu uçtan gelir. Promosyon kredisi bahissiz bir turda gelir: promo doludur, round_closed: true, is_freeround: false, jackpot: null. Tutarı kazanç gibi oyuncunun bakiyesine ekleyin. Aynı ödül için tek transaction_id gelir; idempotency, tekrar takvimi ve takılı tur kuralları aynıdır. Promosyon kredisi GGR’a ve faturaya girmez, günlük mutabakatta kazançlara sayılır.

Elle ödeme

Takılı bir kazancı elle ödeyecekseniz önce portalda Çöz deyin. Kilit açılınca tutarı aynı `transaction_id` ile kendi defterinize işleyin, sonra operatör ödedi seçin. Başka bir kimlik kullanırsanız geç gelen win ikinci kez ödenir.

Hata kodları

KodAnlamBoss Hub davranışı
PLAYER_BLOCKEDOyuncu kısıtlı / self-exclusionTekrar yok, tur takılı olur (win_rejected). Engel kalkınca aynı kimlikle yeniden gönderilebilir
LIMIT_EXCEEDEDSorumlu oyun limiti aşıldıTekrar yok, tur takılı olur (win_rejected)
INVALID_TOKENSözleşme ihlali: win token yüzünden reddedilmezTekrar yok, tur takılı olur (win_rejected)
INSUFFICIENT_FUNDSSözleşme dışı: kazanç bakiye yüzünden reddedilmezTekrar yok, tur takılı olur (win_rejected)
TRANSACTION_ROLLED_BACKBu işlem için iptal kaydınız varReddedilmiş sayılır, tur takılı olur (win_rejected), uyarı üretilir
DUPLICATE_TRANSACTIONAynı işlem farklı içerikleTakvim durur, manuel incelemeye düşer (duplicate_conflict)
INVALID_SIGNATUREİmza doğrulanamadıBelirsiz sayılır: takvim sürer, alarm üretilir. Secret döndürme kazancı kaybettirmez
INTERNAL_ERROROperatör hatasıBelirsiz sayılır: takvim sürer

Önceki bir deneme belirsiz kaldıysa reddiniz de belirsiz sayılır ve takvim sürer. Tüm yanıtların sınıflandırması: Hata kodları.

← ÖncekibetSonraki →rollback
Kazanç (credit) · Dokümanlar · Boss Hub