编译和报告API
1)任命
Compliance API-用于以下目的的单一接口:- AML/响应游戏(RG)的事件收集和验证(游戏/支付/身份验证)。
- 进行检查(KYC/KYB,制裁/RER,资金来源,年龄)。
- 形成市场监管报告(定期和临时报告)。
- 维护审计日志并执行Legal Hold。
- 与提供商(PSP,KYC交易所,制裁清单)和国家门户网站共享数据。
结果:减少了操作负载,加快了报告的编写,确保了可跟踪性和符合当地法规。
2)覆盖范围(scope)
识别和验证:KYC/KYB状态,验证级别,文档。
AML/制裁/PEP:筛选,交易监控,STR/SAR,Alertes。
负责任的游戏(RG):限制,自我体验,"冷静",行为风险量表。
付款和交易:存款/收款,收款,奖金机制。
报告:GGR/税收,球员/会议注册,营销限制,安全事件。
审核和存储:不变逻辑(WORM),法律保留,DSAR/RTBF。
3)消费者和数据制造商
消费者:监管机构,内部合规性/风险,BI/DWH,SecOps,金融。
制造商:iGaming前端/后端、PSP/水彩、 KYC提供商、防冻、CRM、附属网络。
4)建筑参考
1.Edge/API-шлюз (mTLS, OAuth2/OIDC, rate-limit, WAF).
2.合并服务(业务规则,提供商编排,规范化)。
3.事件总线(Kafka/Redpanda)是SIEM/DWH/档案馆的粉丝。
- 用于快速查询/聚合的联机(PostgreSQL/ClickHouse)。
- 不变工件和报告的归档(Object Storage+WORM)。
- 5.审核和可观察性:OpenTelemetry(trace_id),Logs索引,dashbords。
- 6.提供商连接器:KYC,制裁,RG模块,带有电子签名的门户网站。
5)主要终点(v1)
5.1 KYC/KYB和制裁
"POST/v1/kyc/check"-KYC验证请求(偶数)。
"GET/v1/kyc/{user_id}/status"-当前级别和有效期。
"POST/v1/sanctions/screen"-制裁/RER筛选。
"GET/v1/sanctions/{user_id}/hits"-匹配/上报。
5.2 AML和事务监控
"POST/v1/aml/transaction"-发送事件(deposit/withdraw/bet/payout)。
`GET /v1/aml/alerts?state=open'是开放的Alerts/案例。
"POST/v1/aml/str"-STR/SAR的形成和提交(按市场)。
5.3 Responsible Gaming (RG)
"POST/v1/rg/self-exclusion"-设置/解除自我体验。
"GET/v1/rg/limits/{user_id}-限额"(存款/利率/时间)。
"POST/v1/rg/assess"-行为风险评估。
5.4报告和登记册
"POST/v1/reports/generate"-报告的生成(类型、周期、管辖权)。
"GET/v1/reports/{report_id}-状态,加载工件(PDF/CSV/JSON), hash。
"GET/v1/registries/{type}"-具有分页功能的注册表(球员,会议,奖金,GGR)。
5.5审计和法律运作
"GET/v1/audit/events"-事件采样(ECS/OCSF字段过滤器)。
"POST/v1/legal/hold"-在对象/文件夹中安装/删除Legal Hold。
"POST/v1/privacy/dsar"-启动DSAR、状态、数据包导出。
6)数据模型(缩写)
6.1交易事件(JSON)
json
{
"idempotency_key": "trx-8b1a9953",
"timestamp": "2025-11-01T16:02:11Z",
"user": {"id":"U-12345","dob":"1999-04-21","country":"EE"},
"transaction": {
"id": "T-778899",
"type": "deposit",
"amount": {"value": 200. 00, "currency": "EUR"},
"method": "card",
"psp_ref": "PSP-222-ABC"
},
"context": {
"ip": "198. 51. 100. 10",
"device_id": "d-9af0",
"session_id": "s-2233",
"trace_id": "f4c2..."
},
"labels": {"market": "EE", "affiliate": "A-77"}
}
6.2 KYC结果
json
{
"user_id": "U-12345",
"level": "L2",
"status": "verified",
"expires_at": "2026-04-21",
"checks": [
{"type":"document","result":"pass"},
{"type":"liveness","result":"pass"},
{"type":"pep_sanctions","result":"no_hit"}
],
"provider": {"name":"KYCX","reference":"KYCX-4455"}
}
6.3报告说明
json
{
"report_id": "RPT-EE-GGR-2025Q3",
"type": "ggr_quarterly",
"jurisdiction": "EE",
"period": {"from":"2025-07-01","to":"2025-09-30"},
"status": "ready",
"artifact": {
"format": "CSV",
"size_bytes": 183442,
"sha256": "c9b1f...e21",
"download_url": "urn:reports:RPT-EE-GGR-2025Q3"
},
"notes": "Rounded to cents; FX=ECB daily"
}
7)安全和准入
身份验证:OAuth2/OIDC(客户端,JWT),可选mTLS。
授权:RBAC/ABAC;跨域的单个语句("aml:write","kyc:read","reports:generate")。
加密:TLS 1。2+ in-transit;通过KMS/CMK进行休息;JWE用于敏感字段。
PII最小化: 存储最小值;伪装PAN/IBAN;化名"user"。pseudo_id`.
访问日志:审核所有"敏感"尾随读物,Alerta用于批量卸载。
法律保管和保存:报告和STR的WORM存储;5-7年保管政策(按市场)。
8)转化与兼容性
URI转化:'/v1','/v2';次要变化-通过可扩展字段。
脱离政策:≥ 6至12个月的支持;标题"Sunset","Deprecation"。
电路:JSON Schema+OpenAPI;合同在CI中得到验证。
迁移:适配器/功能标志,过渡期间的双向兼容性。
9)可靠性: 相容性和"正好有一天"
"POST"中的Idempotency-Key(存储密钥≥ 24-72小时)。
通过总线+接收重复数据消除(event id/hash)进行在线交付。
Outbox/Inbox模式用于集成,指数停顿后继和喷射器。
顺序:确定性的"user_id"/"account_id"分期密钥。
10)分割,过滤器,搜索
分离:基于cursor("page_token","limit<=1000")。
过滤器:按司法管辖区,时期,状态,提供商,风险评估。
全文搜索:用于审计/注册表(字段的有限子集)。
导出:异步,大小限制,用哈希签名准备存档。
11)限制和配额
按客户端/路线(例如100 rps burst,1000 rpm sustained)。
重度报告(贷款/每天)的预算限制。
N+1防护:batchi和聚合后端。
限制历史样本的深度(例如≤ 24个月在线,接下来是存档)。
12)Dashbords和SLO
Ingest lag p95 <30秒;KYC成功>99%;STR-SLA-发送≤ 24小时。
API可用性≥ 99。9%;Latency p95 <300 ms供阅读;<800 ms用于记录。
报告存储成本/GB;Ack-rate通知监管机构。
小部件:AML Alert热卡,KYC漏斗,按国家/地区发布报告,STR队列。
13)司法管辖区: mapping和template
市场报告模板(字段,格式,频率):"EE","LT","LV","RO","MT","UK"等。
Mapping术语(GGR/NGR,奖金,存款限制,年龄控制)。
定时区/日历本地化;FX源固定;DST影响标签。
图形目录: 'reports/{jurisdiction}/{type}/{version} .schema。json`.
14)错误处理(单一格式)
json
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests",
"request_id": "req-7f91",
"hint": "Reduce RPS or request higher quota",
"retry_after": 30
}
}
Частые коды: `INVALID_SCHEMA`, `NOT_AUTHORIZED`, `LEGAL_HOLD_ACTIVE`, `PROVIDER_TIMEOUT`, `REPORT_NOT_READY`.
15)测试和认证
合同测试(OpenAPI →测试客户端生成)。
按司法管辖区划分的虚拟文件集,用于报告的黄金文件。
Logs中PII字段的"黑名单";机密泄漏的静态分析。
定期进行DR演习,以恢复报告档案。
16)示例
16.1报告生成
查询:http
POST /v1/reports/generate
Content-Type: application/json
Authorization: Bearer <token>
json
{
"type": "ggr_monthly",
"jurisdiction": "EE",
"period": {"from":"2025-10-01","to":"2025-10-31"},
"format": "CSV",
"notify": ["compliance@company"],
"parameters": {"include_bonus_breakdown": true}
}
回答
json
{"report_id":"RPT-EE-GGR-2025-10","status":"processing","eta_seconds":120}
16.2 STR/SAR发送
json
{
"case_id": "AML-2025-0091",
"user_id": "U-12345",
"reason": "Structuring deposits under threshold",
"evidence": ["txn:T-778899","txn:T-778900"],
"attachments": ["urn:doc:kyc:U-12345:v3"],
"jurisdiction": "EE"
}
16.3自我排序
json
{
"user_id":"U-12345",
"type":"national_register",
"action":"enable",
"effective_from":"2025-11-01",
"effective_to":"2026-11-01"
}
17)内置审核和不变性
自称:调用客户端的"request_id","trace_id" scope。
报告包签名(SHA-256)+哈希注册表;定期锚定。
用于监管卸载和STR的WORM存档。
规则和模板配置的历史记录(策略更改日志↔链接)。
18)流程和RACI(简述)
R:Compliance Platform(开发/运营)团队。
A:合规之头/CISO(政策,预算,优先事项)。
C:法律/DPO,财务,体系结构,数据。
I:产品、支持、合作伙伴(PSP/KYC)。
19)实施路线图
MVP(4-6周):1.'/v1/kyc/check ","/v1/aml/transaction","/v1/reports/generate"(关键模板2-3)。
2.OAuth2+rate-limit+基本幂等。
3.在Object Storage中存档带有哈希签名的报告。
4.Dashboard SLO和任务队列。
第二阶段(6至12周):- 管辖范本(5-8个市场),STR/SAR,RG端口,DSAR。
- 提供聚合服务(CUS/制裁),retrai,dedupe。
- Legal Hold策略、WORM、高级角色。
- 报告/AML规则的Rule-as-Code,更改模拟器。
- 多影子(B2B2C,品牌/皮肤),配额和计费。
- 沙盒和外部集成商认证。
20)类型错误以及如何避免它们
按市场划分的方案:集中目录,自动链接方案。
无偶然性:输入"idempotency_key"和重复数据消除窗口。
博客中的秘密:ingest上的过滤器,静态分析。
长时间在线报告:异步处理按键状态和通知。
弱的RBAC:分开"read_reports"、"generate_reports"、"admin"。
货币/时间区:固定'fx_source'、'timezone'、存储UTC。
21)词汇表(简短)
KYC/KYB-物理/侏儒鉴定。个人。
AML/STR/SAR-反洗钱/可疑活动/举报。
RG是负责任的游戏。
GGR/NGR是游戏的毛收入/净收入。
WORM-不可变存储(write-once)。
规则即代码-作为具有测试/验证的代码的规则。
22)结果
编译和报告API是iGaming操作与监管机构要求之间的稳定,安全和标准化的层。遵守本文的原则(严格的计划,安全的集成,相等性,不变的审计,管辖模式和SLO)可确保可预测性,快速通过检查并降低关键市场的风险。