GH GambleHub

<报告的正式名称>

1)目的和范围

规范所有许可证和市场的监管报告的收集、形成和提交。该文档定义:
  • 报告目录和时间表;
  • 数据格式和模式;
  • 验证和质量控制规则;
  • 传输和接收确认渠道;
  • 角色和RACI,文物杂志和复古。
💡 Disclamer:具体字段/时间取决于许可证条款。最终表格由Legal/Compliance批准。

2)角色和RACI

Owner: Head of Compliance-批准版本、优先级(A)。
Schema Steward(DWH Lead):支持电路和mapping(R)。
生产者:AML/RG/Payments/Game Ops-数据源(R)。
QA/DQ:数据质量团队-验证,测试套件(R)。
法律:规范的解释,变更的协调(C)。
安全/DPO:PII/别名,交付渠道(C)。
Reporting Ops:卸载、签名、发送、确认(R)。

3)报告目录(类)

1.游戏报告-投注/获胜/资产负债表/会话,RTP,诚实。
2.财务-存款/提取,保留,税收,GGR/NGR,chargebacks。
3.AML/CFT-可疑交易,RER/制裁,风险单位。
4.负责任的游戏(RG)-自我排序,限制,干预。
5.事件-可用性,泄漏,通知和时间表。
6.营销/关联公司-流量来源,广告限制(如果需要许可证)。
7.技术-药房,RNG版本,标识/配置哈希,审核日志。

每个报告都用卡片描述(§4)。

4)报告卡(模板)


ID: REP- <code >/Version: v <MAJOR. MINOR >/Owner: <role>
Jurisdiction/License: <e.g. MT/MGA B2C, GB/UKGC, SE/Spelinspektionen>

5) Data formats: standards

5. 1 CSV/TSV

Encoding: UTF-8 without BOM.
Delimiter: ',' (CSV), or '\t '(TSV).
Escape '' around delimited/line feed fields.
Decimal separator: '.'; Date/Time - ISO-8601 'YYYY-MM-DDThh: mm: ssZ'.

Example (CSV, rates):

report_date,player_id_hash,game_code,currency,stake,win,round_id,session_id,geo,ts_utc

2025-10-31,4b1c...a9,EGT_40SUPERC,EUR,1.00,0.00,rd_789,ss_123,DE,2025-10-31T15:02:11Z


5. 2 XML

Namespace fixed; XSD validation.
Null values as empty element with'nil = "true" 'attribute.

5. 3 JSON

JSON Lines for large offloads; JSON Schema v2020-12.
Timezones - UTC; sums - decimal with string representation.

5. 4 XLSX

Used only if prescribed by the regulator. The sheet template and column names are fixed.

6) Core dictionaries

6. 1 Common fields

'report _ date '(DATE, UTC) - key date (aggregation window).
'operator _ id '(STRING) - ID of the license/operator.
'player _ id _ hash '(STRING) - hashed player ID (salt per jurisdiction).
'geo '(STRING, ISO-3166-1 alpha-2) is the country of the player/session.
`currency` (STRING, ISO-4217).
'ts _ utc '(TIMESTAMP) is the moment of the event.

6. 2 Gaming

`game_code`, `provider_code`, `round_id`, `session_id`, `stake`, `win`, `bonus_flag`, `rtn_balance_before/after`, `rake`.

6. 3 Payments

`txn_id`, `method_code`, `psp_id`, `amount`, `fee`, `status`, `decline_reason`, `kya_level`, `chargeback_flag`.

6. 4 AML/RG

`risk_score`, `peps_hit`, `sanctions_hit`, `sar_id`, `rg_limit_type`, `rg_breach`, `self_exclusion`.

7) Jurisdictional features (examples)

MT (MGA): monthly gaming aggregates: bets/winnings/RTP by title and provider; CSV/XLSX format currency code, split into "cash/bonus."
GB (UKGC): reports on RG (self-exclusion), marketing (channel compliance), incident notifications; CSV/XML preference, portal.
NL (KSA): detailed game events (often JSON/XML), strict time synchronization and fields for CRUKS (self-exclusion register).
SE (Spelinspektionen): Spelpaus integration, reports on RG interventions; CSV format, SFTP.
DE (GlüStV): rate/deposit limits and compliance, RG events; locale DE, but the numbers are '.'.
ES/PT/IT: monthly GGR aggregates/taxes/active players, XLSX/CSV; separate report on bonuses and advertising.

> The register for all markets is kept in Git/Confluence; any changes are recorded by the changelog.

8) Transmission channels and security

Regulator portals: downloading a file, obtaining a registry ID.
API: OAuth2/MTLS, quota, retray with idempotency.
SFTP: encryption in transit, PGP file signature, atomic calculation ('.part' → '.csv').
Mail (secure): only on demand, encrypted/signed.

Artifacts: receipts/receipt ID, checksums (SHA256), send logs.

9) Data quality control (DQ) and validation

9. 1 Check layers

1. Schema validation: types, mandatory, value domains.
2. Business rules: balanced identities ('opening + deposit − within − bet + win = closing ± adj'), valid RTP ranges.
3. Cross-source reconciliation: PSP vs. wallet vs. GL (general ledger).
4. Freshness: SLA window display updates; late events are marked and loaded.
5. Uniqueness: 'txn _ id', 'round _ id' are unique within the window.

9. 2 Model rules

`stake ≥ 0`, `win ≥ 0`; when 'bonus _ flag = 1' - a separate bucket.
`currency ∈ ISO-4217`; `geo ∈ ISO-3166-1`.
'ts _ utc'inside the report window; time zone - UTC only.
For returns, separate records with'amount <0'and'status = REFUND'.

10) Liniage and circuit versioning

Lineage: for each field - source (table/column), transformation (SQL/udf), owner.
Semantic Versioning:

MAJOR - incompatible changes (deleting/renaming fields).
MINOR - Add optional fields.
PATCH - Description/Validation Corrections.
Deviation Policy: double unloading period (old + new format) ≥ 1 reporting cycle.
Change Log: date, author, reason, jurisdictions affected.

11) Aliasing and PII

Hashing 'player _ id' with salt on jurisdiction; salt is stored in a secret storage.
Masking e-mail/phone, if required.
Access Profiles: PII only sees DPOs/Commissioners; export to portals - already with hashes.

12) Mapping Examples (DWH → Report)

Game unit (day, title, currency):

sql

SELECT

DATE_TRUNC('day', ts_utc) AS report_date,

game_code,

currency,

SUM(stake) AS stake_sum,

SUM(win) AS win_sum,

SAFE_DIVIDE(SUM(win), NULLIF(SUM(stake),0)) AS rtp

FROM fact_game_rounds

WHERE ts_utc >=:from AND ts_utc <:to

GROUP BY 1,2,3;


Payments (deposits/withdrawals/fees):

sql

SELECT

DATE_TRUNC('day', ts_utc) AS report_date,

method_code, psp_id, currency,

SUM(CASE WHEN type='DEPOSIT' THEN amount ELSE 0 END) AS deposits,

SUM(CASE WHEN type='WITHDRAWAL' THEN amount ELSE 0 END) AS withdrawals,

SUM(fee) AS fees

FROM fact_payments

WHERE ts_utc BETWEEN:from AND:to

GROUP BY 1,2,3,4;


13) Sample files

13. 1 Gaming Unit (CSV)

report_date,operator_id,game_code,currency,stake_sum,win_sum,rtp

2025-10-31,OP123,NET_STARBURST,EUR,125000.50,119800.00,0.9585


13. 2 RG Events (JSON Lines)

{"report_date":"2025-10-31","player_id_hash":"b93e...","rg_event":"SELF_EXCLUSION","duration_days":180,"ts_utc":"2025-10-31T09:11:02Z"}

{"report_date":"2025-10-31","player_id_hash":"c01a...","rg_event":"LIMIT_BREACH","limit_type":"LOSS_DAILY","amount":"200.00","ts_utc":"2025-10-31T13:45:22Z"}


13. 3 AML aggregate (XML, fragment)

xml

🚨 amlReport date="2025-10-31" operatorId="OP123" xmlns="urn:operator:aml:v1">
segment riskTier="HIGH" turnover="98500.00" currency="EUR"/>
pepsMatches count="2"/>
sanctionsMatches count="0"/>
/amlReport>

14)交货操作过程

1.窗口准备:freeze,聚合计算,延迟事件加载.
2.验证:schema+业务规则+reconciliation。
3.文件生成:名称中的模式版本('REP-GB-GAME-v1.3_2025-10-31.csv`).
4.标题/哈希:PGP+SHA256。
5.交付:门户/API/SFTP;接收记录(ID/收据)。
6.归档:原件+签名+报告存储库中的收据。
7.监视:"法规报告"(Reporting Regulatory Reporting)-"准备/发送/接受/错误"状态。
8.复古:错误/偏差分析,CAPA。

15)支票单

发货前

[]窗口和时间段的日期已确认。
[]所有验证均为"绿色",报告金额已与GL/PSP核对。
[]该方案的版本对应于注册表。
[]PII伪装/化名。
[]文件已签名/验证,哈希已固定。
[]监管机构的联系是最新的(门户网站可用)。

发送后

[]收到收据/ID,保存在存档中。
[]状态已在dashboard中更新。
[]验证器错误时的升级计划是一致的。

16)度量和SLO

时效:按时提交报告的百分比。
First-Try Acceptance:在没有修复的情况下接受的百分比。
DQ得分:无错误记录比例(计划/业务)。
Reconciliation Gap:与GL/PSP的绝对差异/百分比。
Lead Time to Report:从关闭窗口到提交的时间。
更改失败率(格式):回滚模式发行版的比例。

17)变更管理(政府)

对司法管辖区要求的季度审查;计划外-调节器升级。
电路变更的RFC:影响分析,兼容性,试运行到"沙箱"中。
MAJOR双上载≥ 1个循环。
发布时训练命令,更新花花公子和FAQ。

18)频繁的错误以及如何避免错误

不正确的时段:总是整合到UTC,分别存储本地。
四舍五入:使用十进制,统一银行四舍五入规则。
身份不一致:单一注册表"game_code","method_code","psp_id"。
数字/日期的本地化:仅ISO-8601和点作为十进制分隔符。
公开形式的PII:在商场和CI中检查口罩。

19)嵌入生态系统

与章节的联系:Dashbord编译,通知和时机,事件花花公子,危机管理,审计日志。
在事件机器人中:命令'/报告<jurisdiction> <report_id>'-获取模式和截止日期。
S1/S2时会将snapshot导出添加到工件包中。

20)实施计划(30天)

第一周

1.清点所有许可证监管报告。
2.创建卡(§4)和代码词典。
3.格式和传输链路的批准。

第二周
4.建立DWH和线性店面;主要验证。
5.生成试点文件(每个市场/类)。
6.设置签名/哈希和存档。

第3周
7.与"沙箱"门户/API/SFTP集成。
8.Dashbord状态和Alerta按截止日期。
9.Reporting Ops培训和支票单。

第四周
10.试点2-3份报告;收集回馈。
11.通过DQ/验证的 CAPA;调整方桉。
12.V1版本。0;修订时间表和单一截止日期日历。

相关部分:
违规通知和报告时限
Dashboard complians和监控
事件花花公子和剧本
危机管理和沟通
业务连续性计划(BCP)/DRP
运营审计日志
Contact

联系我们

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

Telegram
@Gamble_GC
开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

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

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