Logo GH

GambleHub集成指南

1)浏览和交互模型

GambleHub是iGaming服务(游戏提供商,支付网关,KYC/AML,奖励引擎,报告)的聚合平台。合作伙伴集成可以通过两种模式进行:
  • API提供商:您调用GambleHub API(钱包、奖金、报告)。
  • 外部供应商:我们调用您的webhook/enpoints(资产负债表、交易、KYC)。
级别:

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

2.事件(活动巴士:费率/付款/钱包/CUS)

3.报告(API+导出S3/SFTP)

4.运营(事件,SLO,SLA贷款)

2)环境、域和IP

星期三API基地Webhuki(来自我们)我们的出站IPSLA
Sandbox`https://sandbox.api.gamblehub.io`"https://<您的域>/webhooks/……"`203.0.113.10/31`best-effort
Staging`https://staging.api.gamblehub.io`如上所述`198.51.100.40/29`99.5%
Production`https://api.gamblehub.io`如上所述`192.0.2.16/28`99.9%

合同SLA记录在合同中。IP更新会提前发布。允许Allowlist。

3)认证和授权

支持三种机制(选择合同要求的机制):
  • OAuth2 Client Credentials:服务器对服务器('scope'--"wallet: read", 'wallet: write", 'bet: write", 'report: read")。
  • JWT(issuer=GambleHub):标题,j RS256 WKS端点中的密钥。
  • mTLS:相互的TLS身份验证,在无损级别上(应合规要求)。
获得令牌(OAuth2)的示例:

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

每次呼叫都会检查Scopes。对于高风险操作(付款),使用步进式:单独的scope,以及可选的IP/ASN绑定。

4)转化与兼容性

路径:'/v1/……','/v2/……'(主要版本向后不兼容)。
次要和扩展更改-通过电路扩展(新的可选字段)。
撤销-在90天内通知。
Webhooks的标题是"X-GH-Ivent-Version:1"。

5)限制,配额和平均水平

Rate limits的标题是:
  • `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`.
  • 429返回"Retry-After"(秒)。
  • 所有不安全的方法都需要"Idempotency-Key"(TTL 24-72小时)。重复相同的查询将返回原始结果(冲突时为'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`).Non-retriable: 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`: `player.created|session.started|bet.placed|bet.settled|wallet.changed|kyc.updated|rg.flagged`
  • "X-GH-Ivent-Id":独特的UUID
  • `X-GH-Signature`: `sha256=`
  • "X-GH-Retry":尝试No
  • `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:指数后端(1 s,3 s,10 s,30 s,2 m,10 m,30 m;最多24小时)。要重复数据消除,请使用"X-GH-Invent-Id"。

签名验证(伪版):
text expected = base64(hmac_sha256(request_body, SHARED_SECRET))
header  = split(X-GH-Signature, '=')[1]
assert header == expected

10)现金流量顺序(钱包流)

1.deposit (PSP → wallet.credit)

2.bet (hold/authorize или direct debit)

3.settlement (release hold; `win`/`lose`/`void`)

4.withdrawal (wallet.debit → PSP)

支持固定资产负债表和多钱包(真实/奖金)。

11)沙盒和测试场景

测试玩家:"p_sbx_",货币为"EUR" USD "CAD"。
游戏提供商模拟:win/lose/void,折扣,延迟。
KYC sandbox:对护照模板的"验证"失败的"评论"的回应。

PSP sandbox: статусы `authorized|captured|declined|reversed`.

强制性测试案例集:
  • Stavka→vyplata→sverka资产负债表
  • 回滚/void回合
  • 重复投注时的Idempotency
  • 通过转发和随后的重复数据消除来运行webhook
  • 429和正确的"Retry-After"
  • 5xx在客户端具有指数后端

12)核对和报告

Reconciliation 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,提供商,地理/货币削减。
导出:带有签名清单和文件哈希的S3/SFTP (SHA 256)。
报告时间:UTC(除非合同另有规定)。

13)可观察性和SLO

SLI: API ≥ 99的成功。95% (28d), p95 latency用于关键技术,成功交付webhook。
Burn-alerts(快速/慢),预算错误。
跟踪相关性:答案/逻辑中的"trace_id",drilldown到轨道。
状态页面:Edge、Wallet、Bets、Webhooks、PSP、KYC组件。

14)安全和合规性

PII最小化;禁用PAN/博客/网络中的秘密。
秘密管理和密钥轮换。
RG (Responsible Gambling):自我排序/限制标志应导致自动拒绝利率/付款。
AML/KYC:kyc事件。updated`, `aml.警告"可通过订阅获得;在您的系统中或通过我们的模块做出决定。
GDPR/DSAR:根据法律要求卸载/删除玩家个人数据的终端。
mTLS和HSTS默认包含在prod环境中。

15)生产力和配额

推荐的合作伙伴预算(默认值):
  • RPS: 50 (burst 100)
  • Concurrent webhooks: 10
  • 体型:≤ 256 KB(游戏赛事),≤ 64 KB(钱包)

通过帐户经理请求计划升级,指定RPS/卷预测。

16)变更和发行管理

Change windows:计划工作-按计划,通知≥ 5个工作日。
Version migration:过渡时期的双写作/双读。
CI中的合同测试:JSON电路,强制字段,稳定的"error_code"。
金丝雀:逐步纳入流量以适应新的景象。

17)集成认证(检查列表)

功能性:
  • 注册费率/付款/void
  • 所有write-enpoint的幂等
  • 正确处理429/5xx+backoff
  • Webhook签名验证、"X-GH-Invent-Id"重复数据消除'
  • 在一系列事件之后核对资产负债表(win/lose)
  • reconciliation报告与您的数据趋同
可靠性:
  • webhook retrai实现
  • 客户Taymauts ≤ 10 c,一般尝试≤ 30 c
  • 成瘾巡回赛决胜局
安全/合规性:
  • 秘密管理器中的秘密
  • Logs中的PII修订版
  • RG/AML标志实时计入

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 Fail webhook,随后成功

1.5 xx →后端→服务器不可用。
2.恢复后-接受相同的"X-GH-Ivent-Id" →必须忽略重复。

18.3部分供应商降解

我们将返回503;与backoff重复。
长期降解-提供商的停止标记和智能路由插件(如果合同中有)。

19) DevEx和支持

门户:keys, usage, webhooks,交付日志,SLO dashboards,导出报告。
Webhooks replay: 按日期/ID范围重新交付。
事件:自动创建tiket,战争室,验尸室≤ SEV-1 48小时。
通讯:#partners-status频道/呼叫邮件24 × 7(企业)。

20)划船计划(2-4周)

1.第1周:发行钥匙,sandbox连接,基本方案(投注/付款/钱包)。
2.第二周:webhooks和对账,RG/KYC标志,负载测试,429/5xx行为。
3.第3周:报告(重组,卸载),安全(签名,保密),合同测试。
4.第4周:认证,金丝雀包括在销售中,监视,接触矩阵。

21) Mini-FAQ

gRPC可以吗?
是的,应要求;规格中提供了对HTTP错误代码的映射。

如何获取复古数据?

通过"reconciliation"报告("from/to"日期)或卸载S3/SFTP。

如何提高限制?
通过门户/帐户管理器指示预测的RPS/竞争力。

什么是平衡真理的来源?
交易钱包杂志GambleHub+每日对账(reconciliation)。

底线

与GambleHub的集成建立在一个明确的合同基础上:稳定的API和电路,签名的webhooks,等效性和转发,透明的限制和报告以及安全和合规性要求。按照本指南和认证单,您将通过提供可靠的现金流量和一致的报表而迅速进入计划。

Contact

联系我们

如需任何咨询或支持,请随时联系我们。我们随时准备提供帮助!

Telegram
@Gamble_GC
开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

您的姓名 可选
Email 可选
主题 可选
消息内容 可选
Telegram 可选
@
如果填写 Telegram,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。