GambleHub ինտեգրման ղեկավարությունը
1) Ակնարկ և փոխազդեցության մոդել
GambleHub-ը iGaming-ծառայությունների հավաքման պլատֆորմն է (խաղային պրովայդերներ, հիբրիդային դռներ, KYC/AML, բոնուսային շարժիչ, հաշվետվություններ)։ Գործընկերոջ ինտեգրումը հնարավոր է երկու ռեժիմում
API պրովայդեր 'Դուք զանգահարում եք API GambleHub (դրամապանակ, բոնուսներ, հաշվետվություններ)։
Էկստերնալ մատակարար 'մենք զանգահարում ենք ձեր webhuks/endpoints (հավասարակշռություն, գործարքներ, KYC)։
Մակարդակները
1. Edge/API (REST/gRPC, Webhooks)
2. Իրադարձությունները (event bus: տոկոսադրույքներ/վճարումներ/դրամապանակ/KUS)
3. Հաշվետվություններ (API + արտահանումը S3/SFTP)
4. Վիրահատություններ (, SLO, SLA վարկեր)
2) Միջավայր, ալյումինե և IP
Պայմանագրային SLA-ն գրանցվում է պայմանագրում։ IP նորարարությունները հրապարակվում են անմիջապես։ Թույլ տվեք Allowlist-ը։
3) Վավերացում և հեղինակային իրավունք
Աջակցում են երեք մեխանիզմներ (ընտրեք պայմանագրի պահանջվող)
OAuth2 Client Credentials: սերվերը k-108 («scope 'a: wallet: read: read: wallet: write», «bet: write», «read: read»)։
JWT (issuer = GambleHub): RS256 ստորագրությունը, JWKS Endpointe-ի բանալիները։
MTSA: փոխադարձ TRC-վավերացումը ingress մակարդակում (կոմպլանսի խնդրանքով)։
Տոկենի (OAuth2) ստանալու օրինակ
POST /oauth2/token grant_type=client_credentials&scope=wallet:write bet:write
→ { "access_token": "...", "token_type": "Bearer", "expires_in": 3600 }
Scopes-ը ստուգվում է յուրաքանչյուր զանգի վրա։ Բարձր օրգանական վիրահատությունների համար (վճարումներ) օգտագործվում է step-up 'առանձին scope և, oporations, IP/ASN։
4) Տարբերակումը և համատեղելիությունը
Ճանապարհը '«/v1/... », «/v2/...» (major տարբերակը անհամատեղելի է հետ)։
Մինորային և ընդարձակող փոփոխությունները 'սխեմայի ընդլայնման միջոցով (նոր oporational դաշտեր)։
Դեպրեսիաները 90 օրվա ընթացքում են։
Webhuks-ը տարբերակվում է «X-GH-Event-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 78.1 («applations/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) Webhuki (GambleHub-ից մինչև ամբիոն)
Իրադարձությունները գնում են հերթականությամբ, «Engent-Type: Application/json», վերնագրերը
`X-GH-Event`: `player. created|session. started|bet. placed|bet. settled|wallet. changed|kyc. updated|rg. flagged`
"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: էքսպոնենցիալ backoff (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) Դրամական հոսքի կարգը (Wallet flow)
1. deposit (PSP → wallet. credit)
2. bet (hold/authorize или direct debit)
3. settlement (release hold; `win`/`lose`/`void`)
4. withdrawal (wallet. debit → PSP)
Աջակցվում են hold-հավասարակշռությունները և մուլտֆիլմի դրամապանակները (իրական/բոնուսային)։
11) Ավազը և թեստային սցենարները
Թեստային խաղացողները ՝ «p _ sbx _», «CORR 'USD' III»։
Խաղային պրովայդերները էմուալացնում են 'win/lose/void, դիսկոնեկտներ, ուշացումներ։
KYC sandbox:
PSP sandbox: статусы `authorized|captured|declined|reversed`.
Պարտադիր թեստերի հավաքածու
Վճարման տոկոսադրույքը նվազեցնում է հավասարակշռությունը
Rapat/void of
Idempotency հիմնական տոկոսադրույքով
Bebhuck հետ գետերի և հաջորդ deduplication
429 և ճիշտ «Retry-After»
5xx էքսպոնենցիալ backoff հաճախորդի կողմում
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 ստորագրված մանիֆեստներով և ֆայլերի հեշերով (SHA256)։
Թայմզոնը նշում է. UTC (եթե այլ պայմանագրում չի համաձայնվում)։
13) Դիտարկումը և SLO-ն
SLI 'API 3899 հաջողությունը։ 95% (28d), p95 latency կրիտիկական մեթոդների համար, webhuks առաքման հաջողությունը։
Burn-aler.ru (fox/slow) սխալ տարբերակով։
Trace-հարաբերակցությունը '«trace _ id» պատասխաններում/logs, www.illdown ուղիների։
Կարգավիճակ-էջ 'Edge, Wallet, Bets, Webhooks, PSA, KYC բաղադրիչներ։
14) Անվտանգություն և ընկերակցություն
PII-նվազեցումը; արգելված PAN/գաղտնիքները/webhuks-ում։
Secret-international-ը և կոդավորման լուծումը։
RG (Responsible Gambling) 'ինքնության դրոշները/լիմիտները պետք է հանգեցնեն ավտոմատ մերժման տոկոսադրույքների/վճարումների մեջ։
AML/KYC 'իրադարձություններ' kyc. updated`, `aml. al.ru-ն հասանելի է բաժանորդագրությամբ; որոշումներ եք կայացնում ձեր համակարգում կամ մեր մոդուլի միջոցով։
GDPR/DSAR: Endpoints 'խաղացողի անձնական տվյալները իրավաբանական պահանջների համար։
MTSA-ը և HSTS-ը ներառված են լռելյայն միջավայրում։
15) Արտադրողականություն և քվոտաներ
Գործընկերոջ բյուջեն (լռելյայն)
RPS: 50 (burst 100)
Concurrent webhooks: 10
Մարմնի չափը ՝ 35256 KB (խաղային իրադարձություններ), 3864 KB (դրամապանակ)
Խնդրեք պլանի ապգրեյդը հաշիվ-մենեջերի միջոցով 'նշելով RPS/ծավալի կանխատեսումը։
16) Փոփոխությունների և թողարկումների կառավարումը
Change windows: Պլանավորված աշխատանք 'գրաֆիկով, ծանուցում 245 աշխատանքային օր։
Տարբերակիչ պարամետրեր ՝ dult-write/drix-read անցումային ժամանակահատվածում։
Euract թեստերը CI-ում 'JSON սխեմա, պարտադիր դաշտեր, կայուն «error _ code»։
Canary: աստիճանական ստանդարտ է նոր ֆիչի համար։
17) Մրցույթի սերտիֆիկացումը (Nok-list)
Ֆունկցիոնալ
- Տոկոսադրույքներ/վճարումներ/void/void/void/
- Idempotenty բոլոր write-endpointas
- Ճիշտ բուժումը 429/5xx + backoff
- Webhuks ստորագրության վերացումը, «X-GH-Event-Id 'deduplication»
- Հավասարակշռությունը մի շարք իրադարձություններից հետո (win/lose)
- Reconciliation հաշվետվությունները համընկնում են ձեր տվյալների հետ
Մոսկվան
- Retray Webhuks-ը իրականացվում է
- Հաճախորդների թայմաուտները 10s, ընդհանուր փորձ թիվ 30s
- Circuit-breaker կախվածության վրա
Անվտանգություն/բաղադրիչներ
- Գաղտնիքների պահպանումը գաղտնիքների կառավարման մեջ
- 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 Faile Webhuck-ը մեծ հաջողություններով
1. Ձեր սերվերը անհասանելի է www.5xx express backoff-ով։
2. Վերականգնումից հետո, նույն 'X-GH-Event-Id '-ը պետք է անտեսեք կրկնօրինակները։
18. 3 Պրովայդերի մասնակի քայքայումը
Մենք հավատում ենք 503; կրկնեք backoff-ից։
Երկար դեգրադացիայի դեպքում 'պրովայդերի և համի ստոպ մակնշումը: smart-routing (եթե պայմանագրում)։
19) DevEx-ը և աջակցությունը
Portal: բանալիներ, usage, webhuks, առաքման լոգներ, SLO dashbords, ռուսական արտահանումը։
Webhooks replay: Կրկնակի առաքում Dat/ID միջակայքում։
Միջադեպերը 'թիկետի նախկին ստեղծումը, war-room, հետմորտը 3848 ժամ SEV-1։
Հաղորդակցություն ՝ # partners-status ջրանցք/փոստ on-call 24 247 (Enterprise)։
20) Քաղցկեղի պլանը (2-4 շաբաթ)
1. Շաբաթը 1: 07-ին, sandbox-ի միացումը, հիմնական սցենարները (տոկոսադրույքը/վճարումը/դրամապանակը)։
2. Շաբաթը 2: webhuks և ծալքեր, RG/KYC դրոշներ, բեռի թեստեր, 429/5xx վարք։
3. Շաբաթը 3: Հաշվետվություններ (reconciliation, հեռացում), անվտանգություն (ստորագրություններ, գաղտնիքներ), պայմանագիր-թեստեր։
4. Շաբաթը 4: հավաստագրում, canary-2019-ը վաճառքում, բջիջներում, կոնտակտային մատրիցայում։
21) Mini-FAQ
Կարո՞ ղ եք gRPC-ն։
Այո, խնդրանքով։ HTTP-ի սխալների մապպինգը կատարվում է ճշգրտությամբ։
Ինչպե՞ ս ստանալ ռետրո տվյալները։
Զեկույցների միջոցով "reconciliation" (ամսաթվերը 'from/to ") կամ S3/SFTP արտադրությունը։
Ինչպե՞ ս բարձրացնել սահմանները։
Պորտալի/հաշիվ մենեջերի միջոցով, որը ցույց է տալիս կանխատեսելի RPS/մրցունակությունը։
Ի՞ նչ կարելի է համարել հավասարակշռության ճշմարտության աղբյուրը։
GambleHub + դրամապանակի գործարքային ամսագիր (reconciliation)։
Արդյունքը
GambleHub-ի հետ ինտեգրումը կառուցվում է հստակ պայմանագրով 'կայուն API և սխեմաներ, որոնք ստորագրվել են Webhuks, idempotenty և retray, թափանցիկ լիմիտներ և հաշվետվություններ, ինչպես նաև անվտանգության և համակարգչային պահանջներ։ Այս առաջնորդությանը և չեկի թերթերին հետևելով ՝ դուք արագ կմտնեք անցում ՝ ապահովելով հուսալի դրամական հոսքեր և հաշվետվություններ առանց տարաձայնությունների։