GambleHub एकीकरण गाइड
1) अवलोकन और बातचीत मॉडल
GambleHub iGaming सेवाओं (गेम प्रदाताओं, भुगतान द्वार, KYC/AML, बोनस इंजन, रिपोर्टिंग) के लिए एक एकत्रीकरण मंच है। साझेदार एकीकरण दो मोड में संभव है:- एपीआई प्रदाता: आप GambleHub API (बटुआ, बोनस, रिपोर्ट) कहते हैं।
- बाहरी प्रदाता: हम आपके वेबहूक/एंडपॉइंट (बैलेंस, लेनदेन, केवाईसी) को कॉल करते हैं।
1. एज/एपीआई (REST/gRPC, वेबहूक)
2. घटनाएँ (घटना बस: दांव/भुगतान/बटुआ/आईसीसी)
3. रिपोर्टिंग (API + S3/SFTP निर्यात)
4. संचालन (घटनाएं, एसएलओ, एसएलए क्रेडिट)
2) वातावरण, डोमेन और आईपी
संविदात्मक एसएलए संविदा में निर्धारित है। आईपी अपडेट पहले से प्रकाशित होते हैं। Allowist की अनुमति दें।
3) प्रमाणीकरण और प्राधिकरण
हम तीन तंत्रों का समर्थन करते हैं (संविदा के तहत आवश्यक एक का चयन करें):- OAuth2 क्लाइंट क्रेडेंशियल्स: सर्वर-टू-सर्वर ('स्कोप': 'बटुआ:' पढ़ें ',' बटुआ: लिखें ',' शर्त: लिखें ',' रिपोर्ट: पढ़ें ').
- JWT (जारीकर्ता = GambleHub): RS256 हस्ताक्षर, JWKS समापन बिंदु में कुंजी।
- mTLS: इंग्रेस स्तर पर आपसी टीएलएस प्रमाणीकरण (अनुपालन के अनुरोध पर)।
POST /oauth2/token grant_type=client_credentials&scope=wallet:write bet:write
→ { "access_token": "...", "token_type": "Bearer", "expires_in": 3600 }
प्रत्येक कॉल पर स्कोप चेक किए जाते हैं। उच्च जोखिम वाले संचालन (भुगतान) के लिए, चरण-अप का उपयोग किया जाता है: एक अलग गुंजाइश और, वैकल्पिक रूप से, आईपी/एएसएन के लिए बाध्यकारी।
4) वर्शनिंग और संगतता
पथ: '/v1/... ', '/v2/'... (प्रमुख संस्करण असंगत है)।
योजना के विस्तार (नए वैकल्पिक क्षेत्र) के माध्यम से मामूली और विस्तार परिवर्तन।
कमी - नोटिस के साथ 90 दिन।
वेबहुक को 'एक्स-जीएच-इवेंट-वर्जन: 1' शीर्षक के साथ रखा गया है।
5) सीमाएं, कोटा और पहचान
दर सीमा हेडर द्वारा दी जाती है:- 'एक्स-रेटलिमिट-लिमिट', 'एक्स-रेटलिमिट-शेष', 'एक्स-रेटलिमिट-रीसेट'।
- 429 'रेट्री-आफ्टर' (सेकंड) के साथ लौटता है।
- सभी असुरक्षित तरीकों को 'Idempotency-Key' (TTL 24-72 h) की आवश्यकता होती है। एक समान प्रश्न को दोहराने से मूल परिणाम लौटता है ('409' संघर्ष पर)।
6) त्रुटि मानक
एकीकृत RFC 7807 प्रारूप ('अनुप्रयोग/समस्या + 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"}]
}
पुनर्प्राप्य: 5xx/ 503/504/429 (с 'Retry-After')। गैर-पुनर्प्राप्य: 400/401/403/404/409/ 422/410/415/412।
7) डेटा स्कीमा (कोर)
7. 1 खिलाड़ी
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 सत्र
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 बटुआ/लेनदेन
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 दर/भुगतान
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 बोनस
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 टुकड़े)
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) वेबहूक (GambleHub टू पार्टनर)
घटनाओं को क्रम में भेजा जाता है, 'सामग्री-प्रकार: एप्लिकेशन/json', शीर्षक:- 'एक्स-जीएच-इवेंट': 'प्लेयर। 'सेशन' बनाया। शुरू किया 'bet। रखा 'bet। बसे 'वॉलेट। बदल गया 'kyc। अद्यतन 'rg। झंडा फहराया '
- 'एक्स-जीएच-इवेंट-आईडी': अद्वितीय यूयूआईडी
- 'X-GH-Signation': 'sha256 =
' - 'एक्स-जीएच-रेट्री': प्रयास नहीं
- 'एक्स-जीएच-इवेंट-वर्जन': '1'
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"
}
}
मेजबान प्रतिक्रिया - केवल 2xx को एक सफलता माना जाता है। अन्यथा - रिट्राई: घातीय बैकऑफ (1s, 3s, 10s, 30, 2m, 10m, 30m; अधिकतम 24 घंटे)। Deduplication के लिए 'X-GH-Event-Id' का उपयोग करें।
हस्ताक्षर सत्यापन (छद्म):text expected = base64(hmac_sha256(request_body, SHARED_SECRET))
header = split(X-GH-Signature, '=')[1]
assert header == expected
10) नकद प्रवाह क्रम (बटुआ प्रवाह)
1. जमा (PSP → वॉलेट। ऋण)
2. शर्त (पकड ़/अधिकृत - प्रत्यक्ष डेबिट)
3. निपटान (रिलीज़होल्ड; 'जीत '/' हार '/' शून्य')
4. निकासी (बटुआ)। डेबिट → पीएसपी)
होल्ड बैलेंस और मल्टी-वॉलेट (वास्तविक/बोनस) समर्थित हैं।
11) सैंडबॉक्स और परीक्षण परिदृश्य
टेस्ट खिलाड़ी: 'p _ sbx _', मुद्राएँ' EUR 'USD' CAD '।
खेल प्रदाता अनुकरण करते हैं: जीत/हार/शून्य, छूट, देरी।
KYC सैंडबॉक्स: पासपोर्ट टेम्पलेट पर 'सत्यापित' विफल 'समीक्षा' प्रतिक्रियाएं।
PSP सैंडबॉक्स: статусы 'अधिकृत' declined 'उलट'।
अनिवार्य परीक्षण मामलों का सेट:- बैलेंस शीट Stavka→vyplata→sverka
- पुलबैक/शून्य दौर
- री-बोली पर पहचान
- रीट्रे और बाद में डीडुप्लिकेशन के साथ वेबहुक की विफलता
- 429 और सही 'रीट्री-आफ्टर'
- क्लाइंट-साइड घातीय बैकऑफ के साथ 5xx
12) सुलह और रिपोर्टिंग
सुलह एपीआई
yaml
GET /v1/reports/reconciliation? from=...&to=...&scope=wallet bets
→ CSV/JSON: { player_id, bet_id, stake, win, currency, balance_delta, provider }
दैनिक सारांश: टर्नओवर, जीजीआर/एनजीपी, प्रदाता, भू/मुद्रा टूटना।
निर्यात: हस्ताक्षरित अभिव्यक्ति और फ़ाइल हैश (SHA256) के साथ।
रिपोर्टिंग समय क्षेत्र: यूटीसी (जब तक कि अनुबंध में अन्यथा निर्दिष्ट नहीं)।
13) अवलोकन और एसएलओ
SLI: API ≥ 99 की सफलता। 95% (28 डी), महत्वपूर्ण तरीकों के लिए p95 विलंबता, वेबहुक वितरण सफलता।
गलत बजट पर बर्न-अलर्ट (तेज/धीमी)।
सहसंबंध ट्रेस करें: प्रतिक्रियाओं/लॉग में 'ट्रेस _ आईडी', निशान के लिए ड्रिलडाउन।
स्थिति पृष्ठ: एज, वॉलेट, बेट्स, वेबहूक, पीएसपी, केवाईसी घटक।
14) सुरक्षा और अनुपालन
पीआईआई न्यूनतम करना; पैन/रहस्य लॉग/वेबहूक में निषिद्ध हैं।
गुप्त-प्रबंधन और प्रमुख रोटेशन।
आरजी (जिम्मेदार जुआ): स्व-बहिष्करण/सीमा झंडे के परिणामस्वरूप दांव/भुगतान का स्वचालित इनकार होना चाहिए।
AML/KYC: 'kyc' घटनाएँ। अद्यतन ',' aml। अलर्ट 'सदस्यता द्वारा उपलब्ध हैं; अपने सिस्टम में या हमारे मॉड्यूल के माध्यम से निर्णय लें।
GDPR/DSAR: कानूनी अनुरोधों के लिए खिलाड़ी के व्यक्तिगत डेटा को अपलोड करने/हटाने के लिए समापन बिंदु।
mTLS और HSTS उत्पादन वातावरण में डिफ़ॉल्ट रूप से सक्षम हैं।
15) प्रदर्शन और कोटा
प्रति साझेदार अनुशंसित बजट (डिफ़ॉल्ट):- आरपीएस: 50 (फट 100)
- समवर्ती वेबहूक: 10
- शरीर का आकार: ≤ 256 KB (गेमिंग इवेंट्स), ≤ 64 KB (वॉलेट)
आरपीएस पूर्वानुमान/वॉल्यूम निर्दिष्ट करते हुए खाता प्रबंधक के माध्यम से योजना के उन्नयन का अनुरोध करें।
16) परिवर्तन और रिलीज प्रबंधन
विंडो बदलें: अनुसूचित कार्य - निर्धारित समय पर, अधिसूचना ≥ 5 कार्य दिवस।
संस्करण प्रवासन: संक्रमण अवधि के दौरान दोहरे-लेखन/दोहरे-पढ़े।
सीआई अनुबंध परीक्षण: JSON स्कीमा, आवश्यक क्षेत्र, स्थिर 'error _ code'।
कैनरी: नई सुविधाओं के लिए यातायात का क्रमिक समावेश।
17) एकीकरण प्रमाणन (चेक-सूची)
कार्यात्मक:- बोली/भुगतान पंजीकरण/शून्य
- सभी राइट-एंडपॉइंट पर पहचान
- सही 429/5xx + बैकऑफ प्रोसेसिंग
- वेबहुक हस्ताक्षर सत्यापन, एक्स-जीएच-इवेंट-आईडी डीडुप्लिकेशन
- घटनाओं की श्रृंखला के बाद संतुलन सामंजस्य (जीत/हार)
- सुलह रिपोर्ट आपके डेटा से सहमत हैं
- वेबहुक रिट्रीट लागू हैं
- क्लाइंट टाइमआउट ≤ 10c, कुल प्रयास ≤ 30c
- निर्भरता पर सर्किट-ब्रेकर
- गुप्त प्रबंधक में रहस्यों का भंडारण
- लॉग में पीआईआई संस्करण
- आरजी/एएमएल झंडे वास्तविक समय में माने जाते हैं
18) अक्सर इस्तेमाल किए जाने वाले परिदृश
18. पहचान के साथ 1 दर पंजीकरण
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 असफल वेबहुक सफलता के बाद
1. आपका सर्वर अनुपलब्ध → 5xx → बैकऑफ़रेट्रो है।
2. वसूली के बाद - एक ही 'एक्स-जीएच-इवेंट-आईडी' लें - डुप्लिकेट को अनदेखा करने के लिए बाध्य हैं।
18. 3 प्रदाता का आंशिक क्षरण
हम 503 वापस करेंगे; बैकऑफ के साथ दोहराएं।
लंबे गिरावट के साथ - प्रदाता के अंकन को रोकें और इंक। स्मार्ट-रूटिंग (यदि अनुबंध में)।
19) DevEx और समर्थन
पोर्टल: कुंजी, उपयोग, वेबहूक, डिलीवरी लॉग, एसएलओ डैशबोर्ड, निर्यात रिपोर्ट।
वेबहूक रीप्ले: डेट रेंज/आईडी द्वारा पुनर्वितरण।
घटनाएं: टिकट का ऑटो-निर्माण, युद्ध-कक्ष, पोस्टमॉर्टम 48 घंटे।
संचार: # partners-station चैनल/मेल ऑन-कॉल 24 × 7 (एंटरप्राइज)।
20) ऑनबोर्डिंग योजना (2-4 सप्ताह)
1. सप्ताह 1: कुंजी जारी करना, सैंडबॉक्स कनेक्शन, आधार परिदृश्य (शर्त/भुगतान/पर्स)।
2. सप्ताह 2: वेबहूक और सुलह, आरजी/केवाईसी फ्लैग्स, लोड टेस्ट, 429/5xx व्यवहार।
3. सप्ताह 3: रिपोर्टिंग (सुलह, अपलोड), सुरक्षा (हस्ताक्षर, रहस्य), अनुबंध परीक्षण।
4. सप्ताह 4: प्रमाणन, बिक्री में कैनरी-समावेश, निगरानी, संपर्क मैट्रिक्स।
21) मिनी-एफएक्यू
क्या मेरे पास जीआरपीसी हो सकती है?
जी हां, अनुरोध पर; HTTP त्रुटि कोड मानचित्रण विनिर्देश में प्रदान किया गया है।
रेट्रो डेटा कैसे प्राप्त करें?
वाया 'सामंजस्य' रिपोर्ट (/से तिथि तक) या अपलोड S3/SFTP।
मैं अपनी सीमाओं को कैसे उठाऊं?
पोर्टल/खाता प्रबंधक के माध्यम से पूर्वानुमान आरपीएस/प्रतिस्पर्धात्मकता का संके
संतुलन की सच्चाई का स्रोत क्या माना जाता है?
GambleHub वॉलेट लेनदेन लॉग + दैनिक सामंजस्य।
कुल
GambleHub के साथ एकीकरण एक स्पष्ट अनुबंध पर बनाया गया है: स्थिर एपीआई और योजनाएं, हस्ताक्षरित वेबहूक, पहचान और रिट्रेज़, पारदर्शी सीमा और रिपोर्टिंग, साथ ही सुरक्षा और अनुपालन आवश्यकताएं। इस गाइड और सर्टिफिकेशन चेकलिस्ट का पालन करके, आप जल्दी से बाजार में पहुंच जाएंगे, बिना विसंगतियों के विश्वसनीय नकदी प्रवाह और लगातार रिपोर्ट प्रदान करेंगे।