Logo GH

GambleHubインテグレーションガイド

1)概要と相互作用モデル

GambleHubは、iGamingサービス(ゲームプロバイダー、決済ゲートウェイ、KYC/AML、ボーナスエンジン、レポート)の集約プラットフォームです。パートナー統合は2つのモードで可能です:
  • APIプロバイダー:GambleHub API(ウォレット、ボーナス、レポート)を呼び出します。
  • 外部プロバイダ:webhooks/endpoints(残高、トランザクション、KYC)を呼び出します。
レベル:

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

2.イベント(イベントバス:ベット/ペイアウト/ウォレット/ICC)

3.レポート(API+S3/SFTPエクスポート)

4.オペレーション(インシデント、SLO、 SLAクレジット)

2)環境、ドメイン、IP

水曜日(水曜日)APIベースWebhooks(私たちから)アウトバウンドIPSLA
サンドボックス(Sandbox)'https ://sandbox。API。ギャンブルハブだ。IO"'https:///webhooks/……'`203.0.113.10/31`最善の努力
ステージング'https://ステージング。API。ギャンブルハブだ。IO"上記のように`198.51.100.40/29`99.5%
プロダクション'https ://api。ギャンブルハブだ。IO"上記のように`192.0.2.16/28`99.9%

契約SLAは契約で固定されています。IPアップデートは事前に公開されています。Allow Allowlist。

3)認証と認証

私たちは3つのメカニズムをサポートしています(契約の下で必要なものを選択してください)

OAuth2 Client Credentials: server-to-server ('scope': 'wallet: read'、 'wallet: write'、 'bet: write'、 'report: read')。
JWT (issuer=GambleHub): RS256署名、JWKSエンドポイント内のキー。
mTLS:入力レベルでの相互TLS認証(コンプライアンス要求時)。

トークンの取得例(OAuth2):

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

各コールでスコープがチェックされます。ハイリスクなオペレーション(支払い)では、ステップアップが使用されます。別のスコープと、オプションでIP/ASNにバインドされます。

4)バージョン管理と互換性

パス:'/v1/……'、'/v2/'……(メジャーバージョンは互換性がありません)。
スキーム(新しいオプションフィールド)の拡張を通じて、マイナーで拡大する変更。
減算-通知で90日。
Webhookは「X-GH-Event-Version: 1」というタイトルでバージョン管理されています。

5)制限、クォータ、idempotency

レート制限はヘッダーによって与えられます:
  • 'X-RateLimit-Limit'、 'X-RateLimit-Remaining'、 'X-RateLimit-Reset'。
  • 429は'Retry-After'(秒)で返します。
  • すべての安全でないメソッドには'Idempotency-Key' (TTL 24-72 h)が必要です。同じクエリを繰り返すと、元の結果が返されます(競合時の'409 IDEMP_REPLAY')。

6)エラー標準

統一されたRFC 7807フォーマット('application/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"}]
}

Retriable: 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) Webhooks(パートナーへのGambleHub)

イベントは'Content-Type: application/json'、ヘッダーの順にディスパッチされます:
  • 'X-GH-Event':'プレイヤー。'session'を作成しました。ベットを始めた。'betを配置しました。落ち着いたウォレット。'kycを変更しました。'rgを更新しました。フラグ付き"
  • 'X-GH-Event-Id':ユニークなUUID
  • 'X-GH-Signature': 'sha256='
  • 'X-GH-Retry':試行なし
  • 'X-GH-Event-Version': '1'
例'bet。 settled':
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だけです。さもなければ-retrai:指数関数的なバックオフ(1s、 3s、 10s、 30s、 2m、 10m、 30m;最大24時間)。重複除外には'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.ベット(hold/authorizeの直接デビット)

3.決済(リリースホールド;'win'/'lose'/'void')

4.出金(ウォレット。デビット→PSP)

ホールドバランスとマルチウォレット(リアル/ボーナス)がサポートされています。

11)サンドボックスとテストシナリオ

テストプレーヤー:'p_sbx _'、通貨'EUR 'USD' CAD'。
ゲームプロバイダがエミュレート:勝利/失う/無効、割引、遅延。
KYCサンドボックス:パスポートテンプレートの'検証'失敗'レビュー'応答。
PSPサンドボックス:'authorized' captured 'declined' reversed'。

必須テストケースのセット:
  • バランスシートStavka→vyplata→sverka
  • プルバック/ボイドラウンド
  • 再入札時のIdempotency
  • リトレイとその後の重複除外によるWebhookの障害
  • 429と正しい'再試行後'
  • クライアント側の指数関数的なバックアップ機能を備えた5xx

12)和解と報告

和解API

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

毎日の概要:ターンオーバー、GGR/NGP、プロバイダ、地理/通貨の内訳。
エクスポート:署名付きマニフェストとファイルハッシュ(SHA256)でS3/SFTPします。
レポートのタイムゾーン:UTC(契約で特に指定されていない限り)。

13)観察可能性およびSLO

SLI: API ≥ 99の成功。95% (28d)、重要な方法のp95レイテンシ、webhook配信の成功。
誤った予算でのバーンアラート(高速/遅い)。
トレース相関:レスポンス/ログの'trace_id'、トレースへのドリルダウン。
ステータスページ:エッジ、ウォレット、ベット、Webhooks、 PSP、 KYCコンポーネント。

14)安全性とコンプライアンス

PIIの最小化;PAN/secretsはログ/webhookで禁止されています。
秘密管理およびキーの回転。
RG(責任あるギャンブル):自己排除/制限フラグはベット/支払いを自動的に拒否する必要があります。
AML/KYC: 'kyc'イベント。'、'amlを更新しました。alert'はサブスクリプションで利用できます。あなたのシステムまたは私達のモジュールを通して決定をして下さい。
GDPR/DSAR:法的要求のためにプレイヤーの個人データをアップロード/削除するためのエンドポイント。
mTLSとHSTSは、デフォルトで本番環境で有効になっています。

15)性能およびクォータ

パートナーごとの推奨予算(デフォルト):
  • RPS: 50(バースト100)
  • 同時Webhook: 10
  • ボディサイズ:≤ 256 KB(ゲームイベント)、≤ 64 KB(ウォレット)

RPS予測/ボリュームを指定して、アカウントマネージャを通じてプランのアップグレードを要求します。

16)変更およびリリース管理

変更ウィンドウ:スケジュールされた作業-スケジュール、通知≥ 5営業日。
バージョンの移行:移行期間中にデュアルライト/デュアルリード。
CI契約テスト:JSONスキーマ、必須フィールド、安定した'error_code'。
カナリア:新機能のトラフィックを徐々に含める。

17)統合認証(チェックリスト)

機能的:
  • 入札/支払登録/無効
  • すべての書き込みエンドポイントに対するIdempotency
  • 正しい429/5xx+バックオフ処理
  • Webhook署名検証、X-GH-Event-Id重複除外
  • 一連のイベント後のバランス調整(勝敗)
  • 和解レポートはあなたのデータに同意します
信頼性:
  • Webhookのリトリートが実装されている
  • クライアントのタイムアウト≤ 10c、合計試行≤ 30c
  • 依存関係の回路遮断器
セキュリティ/コンプライアンス:
  • シークレットマネージャーに秘密を保存する
  • ログのPIIエディション
  • RG/AMLフラグはリアルタイムで考慮されます

18)頻繁に使用されるシナリオ

18.1 idempotencyによるレート登録


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失敗したWebhookに続いて成功

1.あなたのサーバーは利用できません→5xx→バックオフレトロ。
2.リカバリ後-同じ'X-GH-Event-Id'→を取ると重複を無視する義務があります。

18.3プロバイダの部分的な劣化

私達は503を払い戻します;バックオフで繰り返す。
長い劣化で-プロバイダのマーキングを停止し、税込。スマートルーティング(契約の場合)。

19) DevExおよびサポート

ポータル:キー、使用法、webhook、配達記録、SLOのダッシュボード、輸出レポート。
Webhooksリプレイ:日付範囲/IDによる再納品。
インシデント:チケットの自動作成、戦争部屋、死後≤ SEV-1 48時間。
コミュニケーション:#partners-status channel/mail on-call 24 × 7 (Enterprise)。

20)搭乗プラン(2〜4週間)

1.週1:キー発行、サンドボックス接続、ベースシナリオ(ベット/ペイ/財布)。
2.Week 2: Webhooks and Reconcilations、 RG/KYC Flags、 Load Tests、 429/5xx Behavior。
3.第3週:報告(和解、アップロード)、セキュリティ(署名、秘密)、契約テスト。
4.第4週:販売、モニタリング、コンタクトマトリックスにおける認証、カナリア含有。

21) ミニFAQ

gRPCは使えますか?
はい、要求あり次第;HTTPエラーコードマッピングは仕様書に記載されています。

レトロデータを取得する方法?
「和解」レポート(日付から/日付まで)またはS3/SFTPをアップロードします。

制限を解除するにはどうすればよいですか?
予測RPS/競争力を示すポータル/アカウントマネージャーを通じて。

平衡の真理の源と考えられるものは何ですか?
GambleHubウォレットトランザクションログ+毎日の和解。

合計

GambleHubとの統合は、安定したAPIとスキーム、署名されたwebhook、 idempotencyとretray、透明な制限とレポート、セキュリティとコンプライアンスの要件など、明確な契約に基づいて構築されています。このガイドと認証チェックリストに従うことで、あなたはすぐに市場に到達し、信頼性の高いキャッシュフローと矛盾なく一貫したレポートを提供します。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

Telegram
@Gamble_GC
統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。