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

Geri alma (rollback)

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

Boss Hub bir bahsi veya kazancı geri almanız için bu uç noktayı çağırır: bet yanıtı alınamadığında, sağlayıcı işlemi iptal ettiğinde veya onaylı bir sonuç iptalinde. Referans işlemi bilmiyorsanız bile OK dönün ve kaydedin.

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
Bu rollback’in benzersiz kimliği, idempotency anahtarı. Bahis iadesinde -r1, kazanç iadesinde -rw1, jackpot iadesinde -rj1 ile biter; kimliği ayrıştırmayın.
ref_transaction_idstringzorunlu
Geri alınacak bet veya win işleminin transaction_id değeri.
round_idstringzorunlu
İşlemin ait olduğu oyun turu.
player_idstring
Operatör tarafındaki oyuncu kimliği.
site_idstring
Site kodu, örn. site_mrd01. Aynı callback adresini paylaşan siteleri ayırt eder.
session_idstring
launch ile açılan oyun oturumu.
game_idstring
Oyun kodu, örn. sultans-ember.
amountdecimal(18,2)
Geri alınan tutar, oturum para biriminde; iki ondalıklı JSON sayısı.
currencyISO 4217
USD, EUR, TRY.
created_atdate-time
Rollback’in oluştuğu an (UTC).
Bilinmeyen işlem: Zaman aşımına uğrayan bir bahis sizde hâlâ işleniyor olabilir. ref_transaction_id bilinmiyorsa OK dönün ve kaydedin; aynı kimlikle sonradan gelen bet veya win için TRANSACTION_ROLLED_BACK döndürün. Aksi hâlde bahis işlenir ve oyuncu parasını kaybeder.
Idempotency: Aynı transaction_id aynı gövdeyle tekrar gelirse yeniden iade etmeyin; ilk yanıtı aynen döndürün, güncel bakiyeyi değil. Aynı kimlik farklı gövdeyle gelirse DUPLICATE_TRANSACTION dönün.
Token süresi: Oyuncunun token’ı veya oturumu dolmuş olsa da rollback’i kabul edin; INVALID_TOKEN dönmeyin.
POST /bossgaming/rollback HTTP/1.1
Content-Type: application/json
X-Operator-Id: op_meridyen
X-Timestamp: 1762344012
X-Signature: a60fd2…18be
X-Request-Id: req_01HF3KB3
X-Api-Key: pk_test_…

{
  "transaction_id": "tx_01HF3K9QZ2-r1",
  "ref_transaction_id": "tx_01HF3K9QZ2-b1",
  "round_id": "rnd_01HF3K9QZ2",
  "session_id": "ses_01HF3K7M",
  "site_id": "site_mrd01",
  "player_id": "u_88213",
  "game_id": "sultans-ember",
  "amount": 2.00,
  "currency": "USD",
  "created_at": "2026-11-05T14:22:40.015Z"
}
200İşlem geri alındı
{
  "status": "OK",
  "balance": 150.60,
  "currency": "USD",
  "operator_tx_id": "op_tx_9921846"
}
200Bilinmeyen işlem: OK, kayıt tutuldu
{
  "status": "OK",
  "balance": 150.60,
  "currency": "USD"
}
200Belirsiz hata: takvimle tekrar edilir
{
  "status": "ERROR",
  "code": "INTERNAL_ERROR"
}

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.

Bilinmeyen işlemin geri alınması

→ POST /bossgaming/rollback  transaction_id: tx_01HF3K9QZ2-r1  ref_transaction_id: tx_01HF3K9QZ2-b1
  (sizde tx_01HF3K9QZ2-b1 yok: bahis isteği hâlâ yolda veya hiç ulaşmadı)
← 200 {"status":"OK","balance":150.60,"currency":"USD"}
  (ve iptal kaydı tutun: tx_01HF3K9QZ2-b1)

→ POST /bossgaming/bet  transaction_id: tx_01HF3K9QZ2-b1  amount: 2.00
  (geç ulaşan bahis isteği)
← 200 {"status":"ERROR","code":"TRANSACTION_ROLLED_BACK","balance":150.60}
  (düşmeyin)

Ne zaman gelir, nasıl işlenir

  • Belirsiz bahis: bet tüm denemelerde (ilk deneme + seçtiğiniz tekrar sayısı) temiz yanıt almazsa, süre bütçesi dolarsa ya da INVALID_SIGNATURE veya DUPLICATE_TRANSACTION dönerse otomatik rollback oluşur. Son denemenin süresi dolmadan gönderilmez. Hiç gönderilmemiş bahis için rollback gitmez.
  • Kazanç iadesi: ref_transaction_id bir win olabilir. Bu durumda tutarı bakiyeden düşersiniz.
  • Kazançlı tur: Sizin OK verdiğiniz bir bahsin turunda ödenmiş veya ödenecek kazanç varsa bahis otomatik iade edilmez; çözüm bekleyen kalem açılır (rollback_after_win, jackpot düşen turda rollback_after_jackpot). Belirsiz bahis ise kazanç olsa da iade edilir. Sonuç iptal edilirse sıra önce kazançlar, en sonda bahislerdir. Bir adım başarısız olursa dizi durur.
  • Free round: Free round bahsinde amount 0’dır, rollback nakit iade etmez. Kullanılan dönüş oyuncuya geri verilir.
  • Tekrar: Rollback, win takvimiyle tekrar edilir. Gövde ve X-Request-Id her denemede aynıdır. Gövdede tanımadığınız alanları yok sayın.

Hata kodları

KodAnlamBoss Hub davranışı
TRANSACTION_ROLLED_BACKİşlem zaten geri alınmışOK sayılır
TRANSACTION_NOT_FOUNDHTTP 409 veya HTTP 200 + kod. Sözleşme ihlali: bilinmeyen işlemde OK dönülmeliTekrar yok, tur takılı olur (rollback_rejected)
PLAYER_BLOCKEDOyuncu kısıtlı / self-exclusionTekrar yok, tur takılı olur (rollback_rejected)
LIMIT_EXCEEDEDSorumlu oyun limiti aşıldıTekrar yok, tur takılı olur (rollback_rejected)
INSUFFICIENT_FUNDSBakiye yetersiz (kazanç iadesi)Tekrar yok, tur takılı olur (rollback_rejected)
INVALID_TOKENSözleşme ihlali: rollback token yüzünden reddedilmezTekrar yok, tur takılı olur (rollback_rejected)
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
INTERNAL_ERROROperatör hatasıBelirsiz sayılır: takvim sürer

4. denemeden sonra bahis rollback’inde bet_timeout, kazanç rollback’inde rollback_rejected kalemi açılır; takvim biterse kalem elle çözüme kalır. Tüm yanıtların sınıflandırması: Hata kodları.

← ÖncekiwinSonraki →Oyun listesi
Geri alma (rollback) · Dokümanlar · Boss Hub