Logo GH

GambleHub Entegrasyon Kılavuzu

1) Genel bakış ve etkileşim modeli

GambleHub, iGaming hizmetleri (oyun sağlayıcıları, ödeme ağ geçitleri, KYC/AML, bonus motoru, raporlama) için bir toplama platformudur. Ortak entegrasyonu iki modda mümkündür:
  • API sağlayıcısı: GambleHub API'sini (cüzdan, bonuslar, raporlar) çağırırsınız.
  • Harici sağlayıcı: webhook'larınızı/uç noktalarınızı (bakiye, işlemler, KYC) çağırıyoruz.
Seviyeler:

1. Edge/API (REST/gRPC, Webhooks)

2. Etkinlikler (etkinlik otobüsü: bahisler/ödemeler/cüzdan/ICC)

3. Raporlama (API + S3/SFTP dışa aktarma)

4. İşlemler (olaylar, SLO, SLA kredileri)

2) Ortamlar, etki alanları ve IP

ÇarşambaAPI tabanıWebhooks (bizden)Giden IP'mizSLA
Sandbox'https ://sandbox. api. Gamblehub. io ''https ://< your _ domain >/webhooks/... '`203. 0. 113. 10/31`En iyi çaba
Evreleme'https ://staging. api. Gamblehub. io 'Yukarıdaki gibi`198. 51. 100. 40/29`99. 5%
Üretim'https ://api. Gamblehub. io 'Yukarıdaki gibi`192. 0. 2. 16/28`99. 9%

Sözleşme SLA'sı sözleşmede sabittir. IP güncellemeleri önceden yayınlanır. Allowlist'e izin ver.

3) Kimlik doğrulama ve yetkilendirme

Üç mekanizmayı destekliyoruz (sözleşme kapsamında gerekli olanı seçin):
  • OAuth2 İstemci Kimlik Bilgileri: sunucudan sunucuya ('scope': 'wallet: read', 'wallet: write', 'bet: write', 'report: read').
  • JWT (yayıncı = GambleHub): RS256 imza, JWKS uç noktasındaki anahtarlar.
  • mTLS: Giriş düzeyinde karşılıklı TLS kimlik doğrulaması (uyumluluk isteği üzerine).
Bir token elde etme örneği (OAuth2):

POST /oauth2/token grant_type=client_credentials&scope=wallet:write bet:write
→ { "access_token": "...", "token_type": "Bearer", "expires_in": 3600 }

Her aramada kapsamlar kontrol edilir. Yüksek riskli işlemler (ödemeler) için, adım atma kullanılır: ayrı bir kapsam ve isteğe bağlı olarak IP/ASN'ye bağlanır.

4) Sürüm oluşturma ve uyumluluk

Yol:'/v1/... ','/v2/...' (ana sürüm geri uyumsuz).
Küçük ve genişleyen değişiklikler - planın genişletilmesi yoluyla (yeni isteğe bağlı alanlar).
Düşüşler - bildirim ile 90 gün.
Webhook'lar 'X-GH-Event-Version: 1' başlığı ile çevrilmiştir.

5) Sınırlar, kotalar ve idempotency

Hız limitleri başlıklar tarafından verilir:
  • 'X-RateLimit-Limit', 'X-RateLimit-Kalan', 'X-RateLimit-Sıfırlama'.
  • 429, 'Retry-After' (saniye) ile geri döner.
  • Tüm güvenli olmayan yöntemler 'Idempotency-Key' (TTL 24-72 h) gerektirir. Aynı sorguyu tekrarlamak orijinal sonucu döndürür (çakışmada '409 IDEMP_REPLAY').

6) Hata standartları

Birleştirilmiş RFC 7807 formatı ('uygulama/problem + json'):
json
{
"type": "https://docs. gamblehub. io/errors/validation_failed",
"title": "Validation failed",
"status": 422,
"error_code": "VAL_001",
"trace_id": "a1b2c3...",
"retriable": false,
"errors": [{"field":"amount","code":"min","message":"Must be >= 1"}]
}

Yeniden başlatılabilir: 5xx/ 503/504/429 (с 'Retry-After'). Yeniden kullanılamaz: 400/401/403/404/409/ 422/410/415/412.

7) Veri şemaları (çekirdek)

7. 1 Oyuncu

json
{
"player_id": "p_123",
"country": "CA",
"currency": "CAD",
"rg_flags": {"self_excluded": false, "limits": {"daily_loss": 100}},
"kyc_status": "verified    pending    failed"
}

7. 2 Oturum

json
{
"session_id": "s_789",
"player_id": "p_123",
"started_at": "2025-11-03T17:55:00Z",
"ip": "203. 0. 113. 5",
"device": {"ua":"...", "os":"Android", "model":"..."}
}

7. 3 Cüzdan/İşlemler

json
{
"txn_id": "t_001",
"player_id": "p_123",
"type": "deposit    withdrawal    bet    win    bonus    adjustment",
"amount": "12. 34",
"currency": "EUR",
"balance_after": "123. 45",
"metadata": {"provider":"psp_x","request_id":"r_456"}
}

7. 4 Oran/ödeme

json
{
"bet_id": "b_456",
"player_id": "p_123",
"game_id": "g_777",
"stake": "1. 50",
"currency": "EUR",
"placed_at": "2025-11-03T17:58:10Z",
"round_id": "rnd_aa1",
"provider": "StudioX"
}
json
{
"settlement_id": "st_456",
"bet_id": "b_456",
"win_amount": "3. 75",
"settled_at": "2025-11-03T17:59:02Z",
"outcome": "win    lose    void"
}

7. 5 Bonus

json
{
"bonus_id": "bo_900",
"player_id": "p_123",
"type": "freespin    cash    wagered",
"state": "issued    active    expired    consumed",
"wagering": {"target": "100. 00","progress":"45. 20","currency":"EUR"}
}

8) REST API (OpenAPI parçaları)

yaml paths:
/v1/wallet/balance/{player_id}:
get:
summary: Get wallet balance security: [{ oauth2: [wallet:read] }]
responses:
'200': { description: OK }
'401': { $ref: '#/components/responses/Problem' }
'404': { $ref: '#/components/responses/Problem' }

/v1/wallet/transactions:
post:
summary: Create wallet transaction security: [{ oauth2: [wallet:write] }]
parameters:
- name: Idempotency-Key in: header required: true schema: { type: string }
responses:
'201': { description: Created }
'409': { $ref: '#/components/responses/Problem' }
'422': { $ref: '#/components/responses/Problem' }

/v1/bets:
post:
summary: Register bet security: [{ oauth2: [bet:write] }]
responses:
'201': { description: Created }
'422': { $ref: '#/components/responses/Problem' }

9) Webhooks (GambleHub'dan İş Ortağına)

Olaylar sırayla gönderilir, 'Content-Type: application/json', başlıklar:
  • 'X-GH-Event': 'player. created 'session. Start 'bet. placed 'bet. yerleşmiş 'wallet. 'kyc değişti. güncellenmiş'rg. sarkmış '
  • 'X-GH-Event-Id': benzersiz UUID
  • 'X-GH-Signature': 'sha256 = '
  • 'X-GH-Retry': Deneme Hayır
  • 'X-GH-Event-Version': '1'
Örnek 'bet. setted':
json
{
"event": "bet. settled",
"occurred_at": "2025-11-03T18:00:12Z",
"data": {
"settlement_id": "st_456",
"bet_id": "b_456",
"player_id": "p_123",
"win_amount": "3. 75",
"currency": "EUR",
"outcome": "win"
}
}

Ana bilgisayar yanıtı - sadece 2xx bir başarı olarak kabul edilir. Aksi takdirde - retrai: üstel geri çekilme (1s, 3s, 10s, 30s, 2m, 10m, 30m; Maksimum 24 saat). Veri tekilleştirme için 'X-GH-Event-Id' kullanın.

İmza doğrulaması (sözde):
text expected = base64(hmac_sha256(request_body, SHARED_SECRET))
header  = split(X-GH-Signature, '=')[1]
assert header == expected

10) Nakit akışı emri (Cüzdan akışı)

1. Depozito (PSP - cüzdan. Kredi)

2. Bahis (hold/yetkilendirme или otomatik ödeme)

3. Yerleşim (serbest bırakma bekletmesi; 'win'/' lose'/' void')

4. para çekme (cüzdan. debit PSP)

Tutma bakiyeleri ve çoklu cüzdanlar (gerçek/bonus) desteklenir.

11) Sandbox ve test senaryoları

Test oyuncuları: 'p _ sbx _', para birimleri' EUR 'USD' CAD '.
Oyun sağlayıcıları taklit eder: kazan/kaybet/geçersiz kıl, indirimler, gecikmeler.
KYC sanal alanı: Pasaport şablonlarında 'doğrulanmış' başarısız 'inceleme' yanıtları.
PSP sandbox: статусы 'yetkilendirilmiş' yakalandı 'ifadesi' düzeltildi '.

Zorunlu test örnekleri kümesi:
  • Bilanço Stavka ^ vyplata ^ sverka
  • Geri çekilme/boşluk yuvarlak
  • Yeniden teklifte idempotency
  • Webhook'un retrays ve sonraki veri tekilleştirme ile başarısızlığı
  • 429 ve doğru 'Retry-After'
  • 5xx istemci tarafı üstel yedekleme ile

12) Mutabakatlar ve Raporlama

Mutabakat API'si

yaml
GET /v1/reports/reconciliation? from=...&to=...&scope=wallet    bets
→ CSV/JSON: { player_id, bet_id, stake, win, currency, balance_delta, provider }

Günlük özetler: cirolar, GGR/NGP, sağlayıcılar, jeo/para birimi dökümü.
Dışa aktarma: İmzalı manifestoları ve dosya karmalarını (SHA256) içeren S3/SFTP.
Raporlama saat dilimi: UTC (sözleşmede aksi belirtilmedikçe).

13) Gözlemlenebilirlik ve SLO

SLI: API ≥ 99'un başarısı. %95 (28d), kritik yöntemler için p95 gecikme süresi, webhook teslim başarısı.
Hatalı bir bütçede yanma uyarıları (hızlı/yavaş).
Trace korelasyonu: Yanıtlarda/günlüklerde 'trace _ id', izlere drilldown.
Durum sayfası: Kenar, Cüzdan, Bahisler, Web Kitapları, PSP, KYC bileşenleri.

14) Güvenlik ve uyumluluk

PII minimizasyonu; PAN/sırlar günlüklerde/webhook'larda yasaktır.
Gizli yönetim ve anahtar rotasyonu.
RG (Sorumlu Kumar): Kendi kendini dışlama/limit bayrakları, bahislerin/ödemelerin otomatik olarak reddedilmesine neden olmalıdır.
AML/KYC: 'kyc' etkinlikleri. Güncelleme ',' aml. Uyarı 'abonelikle kullanılabilir; Sisteminizde veya modülümüz aracılığıyla kararlar verin.
GDPR/DSAR: Yasal talepler için oyuncunun kişisel verilerini yüklemek/silmek için son noktalar.
mTLS ve HSTS varsayılan olarak üretim ortamında etkinleştirilir.

15) Performans ve kotalar

İş ortağı başına önerilen bütçe (varsayılan):
  • RPS: 50 (burst 100)
  • Eşzamanlı webhook'lar: 10
  • Gövde boyutu: ≤ 256 KB (oyun etkinlikleri), ≤ 64 KB (cüzdan)

RPS tahminini/hacimlerini belirten hesap yöneticisi aracılığıyla planın yükseltilmesini isteyin.

16) Değişim ve Sürüm Yönetimi

Pencereleri değiştirin: zamanlanmış çalışma - zamanında, bildirim ≥ 5 iş günü.
Sürüm geçişleri: Geçiş döneminde çift yazma/çift okuma.
CI sözleşme testleri: JSON şeması, gerekli alanlar, kararlı 'error _ code'.
Kanarya: yeni özellikler için trafiğin kademeli olarak dahil edilmesi.

17) Entegrasyon sertifikası (Check-list)

Fonksiyonel:
  • Teklif/Ödeme Kaydı/geçersiz
  • Tüm yazma bitiş noktalarında idempotency
  • Doğru 429/5xx + geri alma işlemi
  • Webhook İmza Doğrulama, X-GH-Event-Id Veri Tekilleştirme
  • Bir dizi olaydan sonra denge uzlaşması (kazan/kaybet)
  • Mutabakat raporları verilerinizle aynı fikirde
Güvenilirlik:
  • Webhook geri çekilmeleri uygulanmaktadır
  • İstemci zaman aşımları ≤ 10c, toplam deneme ≤ 30c
  • Bağımlılıklarda devre kesici
Güvenlik/Uyumluluk:
  • Sırları Gizli Yöneticide Saklamak
  • Günlüklerde PII Sürümü
  • RG/AML bayrakları gerçek zamanlı olarak kabul edilir

18) Sık kullanılan senaryolar

18. 1 Idempotency ile kayıt oranı


POST /v1/bets
Idempotency-Key: bet-p_123-rnd_aa1-1

{ "player_id":"p_123","game_id":"g_777","stake":"1. 50","currency":"EUR","round_id":"rnd_aa1" }
→ 201 Created { "bet_id":"b_456" }

18. 2 Başarısız webhook ve ardından başarı

1. Sunucunuz kullanılamıyor - 5xx - backoff retro.
2. Kurtarmadan sonra - aynı 'X-GH-Event-Id' almak - kopyaları görmezden gelmek zorundadır.

18. 3 Sağlayıcının kısmi bozulması

503'ü iade edeceğiz; backoff ile tekrarlayın.
Uzun bozulma ile - sağlayıcının işaretlenmesini durdurun ve dahil. akıllı yönlendirme (sözleşmedeyse).

19) DevEx ve destek

Portal: anahtarlar, kullanım, webhook'lar, teslimat günlükleri, SLO panoları, dışa aktarma raporları.
Webhooks replay: tarih aralığı/ID göre yeniden teslim.
Olaylar: Bir biletin otomatik olarak oluşturulması, savaş odası, ölüm sonrası ≤ SEV-1 48 saat.
İletişim: # partners-status channel/mail on-call 24 × 7 (Enterprise).

20) Onboarding planı (2-4 hafta)

1. 1. Hafta: anahtar verme, sandbox bağlantısı, temel senaryolar (bahis/ödeme/cüzdan).
2. 2. Hafta: Web Kitapları ve Mutabakatlar, RG/KYC Bayrakları, Yük Testleri, 429/5xx Davranış.
3. 3. Hafta: Raporlama (mutabakat, yüklemeler), güvenlik (imzalar, sırlar), sözleşme testleri.
4. 4. Hafta: sertifikasyon, satışlara kanarya dahil etme, izleme, temas matrisi.

21) Mini-SSS

GRPC alabilir miyim?
Evet, istek üzerine; Belirtimde HTTP hata kodu eşlemesi sağlanır.

Retro veriler nasıl elde edilir?
'Mutabakat' raporları aracılığıyla (tarihlerden/tarihlerden) veya S3/SFTP yükleyin.

Sınırlarımı nasıl kaldırırım?
Tahmini RPS/rekabetçiliği gösteren portal/hesap yöneticisi aracılığıyla.

Denge gerçeğinin kaynağı olarak ne kabul edilir?
GambleHub cüzdan işlem günlüğü + günlük mutabakat.

Toplam

GambleHub ile entegrasyon net bir sözleşme üzerine inşa edilmiştir: istikrarlı API'ler ve şemalar, imzalı webhook'lar, idempotency ve retray'ler, şeffaf limitler ve raporlamanın yanı sıra güvenlik ve uyumluluk gereksinimleri. Bu kılavuzu ve sertifika kontrol listelerini takip ederek, güvenilir nakit akışları ve tutarsızlıklar olmadan tutarlı raporlar sağlayarak pazara hızlı bir şekilde ulaşacaksınız.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.