API de complacência e relatórios
1) Destino
A API da complacência é uma interface única para:- Coleta e validação de eventos (jogo/pagamento/autenticação) para AML/Resolvível Gaming (RG).
- Inspeções (KYC/KYB, sanções/RER, fontes de fundos, idade).
- A formação de relatórios regulatórios (periódicos e ad-h.) sobre os mercados.
- Fazer registros de auditoria e execução do Legal Hold.
- Compartilhamento de dados com provedores (PSP, bolsas KYC, listas de sanções) e portais gos.
Resultado: diminui a carga operacional, acelera a elaboração dos relatórios, garante a rastreabilidade e a conformidade com as normas locais.
2) Área de alcance (scope)
Identificação e verificação: KYC/KYB estatais, níveis de verificação, documentos.
AML/sanções/PEP: screening, monitoramento de transações, TR/SAR, alertas.
Jogo responsável (RG): limites, auto-exclusão, «cool-off», escalas comportamentais de risco.
Pagamentos e transações: depósitos/conclusões, chargeback, mecânicos de bónus.
Relatórios: GGR/impostos, registros de jogadores/sessões, restrições de marketing, incidentes de segurança.
Auditoria e armazenamento: logs imutáveis (WORM), Legal Hold, DSAR/PTBF.
3) Consumidores e fabricantes de dados
Consumidores: reguladores, interna Compliance/Risk, BI/DWH, SecOps, finanças.
Fabricantes: frentes/backends iGaming, PSP/Aquairing, fornecedores KYC, antifrode, CRM, redes afiliadas.
4) Árbitro arquitetônico
1. Edge/API-шлюз (mTLS, OAuth2/OIDC, rate-limit, WAF).
2. Serviço de complacência (Regras de Negócios, Orquestra de Provedores, Normalização).
3. Pneu de evento (Kafka/Redpanda) - fã-out no SIEM/DWH/arquivo.
- Operacional (PostgreSQL/ClickHouse) para consultas rápidas/agregações.
- Arquivo (Object Armazenamento + WORM) para artefatos e relatórios imutáveis.
- 5. Auditoria e observabilidade: OpenTelemetry (trace _ id), indexação de logs, dashboard.
- 6. Conectores de provedores: KYC, sanções, módulos RG, portais gos com assinatura e-mail.
5) Endpoints básicos (v1)
5. 1 KYC/KYB e sanções
'POST/v1/kyc/check' - Pedido de verificação KYC (Idumpotent).
'GET/v1/kyc/1962 user _ id a./status' é o nível e a validade atuais.
'POST/v1/sanções/screen' - screening de sanções/RER.
'GET/v1/Sanções/Se _ D.N.G.G.T./hits' - Correspondências/escalações.
5. 2 AML e monitoramento de transações
'POST/v1/aml/transmissão' - Envio de evento (deposit/withdraw/bet/payout).
`GET /v1/aml/alerts? state = open '- alertas/malas abertas.
'POST/v1/aml/strr' - formação e fornecimento de TR/SAR (mercado).
5. 3 Responsible Gaming (RG)
'POST/v1/rg/self-exclusion' - instalação/levantamento de auto-exclusão.
'GET/v1/rg/limits/se _ id _ drive' - limites (depósito/taxa/hora).
'POST/v1/rg/assess' é uma avaliação de risco de comportamento.
5. 4 Relatórios e registros
'POST/v1/reports/generate' - geração de relatório (tipo, período, jurisdição).
'GET/v1/relatórios/\relatório _ id a.' - status, carregamento de artefato (PDF/CSV/JSON), hash.
'GET/v1/registries/diante de' - registros (jogadores, sessões, bónus, GGR) com paginação.
5. 5 Auditoria e transações legais
'GET/v1/auditoria/events' é uma amostra de eventos (filtro por campo ECS/OCSF).
'POST/v1/legal/hold' - instalar/retirar o Legal Hold por objeto/pasta.
'POST/v1/private/dsar' - iniciar DSAR, estatais, exportação de pacotes.
6) Modelos de dados (reduzido)
6. 1 Evento de transação (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 Resultado 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 Descrição do relatório
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) Segurança e acesso
Autenticação: OAuth2/OIDC (cliente credentals, JWT), opcionalmente mTLS.
Autorização: RBAC/ABAC; scopes individuais por domínio ('aml: write', 'kyc: read', 'reports: generate').
Criptografia: TLS 1. 2+ in-transit; at-rest via KMS/CMK; JWE para campos sensíveis.
Minimização PII - armazenamento mínimo; mascarar PAN/IBAN; pseudônimo 'user. pseudo_id`.
Registro de acesso: auditoria de todas as leituras de endpoint sensíveis, alertas de descarga em massa.
Legal Hold e Retensivo: Armazenamento WORM para relatórios e TR; políticas de armazenamento de 5 a 7 anos (mercados).
8) Versionização e compatibilidade
Versionização URI: '/v1 ', '/v2'; alterações menores - através de campos extensíveis.
Deprecation-policy: ≥ 6-12 meses de suporte; «Sunset», «Deprecation».
Esquemas: JSON Schema + OpenAPI; os contratos são validados na CI.
Migrações: adaptadores/funções-bandeiras, compatibilidade bilateral para o período de transição.
9) Confiabilidade: Idempotidade e «Exatamente um dia»
Idempotency-Key em 'POST' (armazenar chaves ≥ 24-72 h).
At-least-once entrega através de pneu + dedução na recepção (event id/hash).
Outbox/Inbox-pattern para integrações, retais com pausa exponencial e jitter.
Ordem: chaves de partilha 'user _ id '/' account _ id' para o determinismo.
10) Paginação, filtros, pesquisa
Paginação: cursor-based ('page _ tocen', 'limit <= 1000').
Filtros por jurisdição, período, status, provedor, avaliação de risco.
Pesquisa em texto completo: para auditorias/registros (subconjunto de campos limitado).
Exportação: asincrona, limite de tamanho, preparação de arquivo com assinatura hash.
11) Restrições e quotas
Rate-limits per cliente/rota (por exemplo, 100 rps burst, 1000 rpm sustained).
Budet-limits para relatórios pesados (créditos/dia).
Proteção contra N + 1: batches e endpoints agregados.
Limite a profundidade das amostras históricas (por exemplo, ≤ 24 m online, a seguir o arquivo).
12) Dashboards e SLO
Ingest lag p95 <30 segundos; Sucesso KYC> 99%; TR-SLA - Envio ≤ 24 h.
Disponibilidade API ≥ 99. 9%; Latency p95 <300 ms para leitura; <800 ms para gravar.
Custo/GB armazenamento de relatórios; Ack-rate notificações aos reguladores.
Widgets: quente-mapa de alertas AML, vórtice KYC, emissão de relatórios por país, fila de TR.
13) Jurisdição: mapping e modelos
Modelos de relatórios de mercado (campos, formatos, frequência): «EE», «LT», «LV», «RO», «MT», «UK», etc.
Termos Mupping (GGR/NGR, bônus, limites de depósito, controle de idade).
Localização de temporizão/calendário; a fixação da origem FX; marca de influência DST.
O diretório de diagramas é: 'reports/a.jurisdictiva.r.j. de processo json`.
14) Processamento de erros (formato único)
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) Testes e certificação
Testes contratuais (OpenAPI → geração de clientes de teste).
Kits de ficstur por jurisdição, golden-files para relatórios.
«Listas negras» de campos PII nos logs; análise estática de fugas de segredos.
Exercícios DR regulares de recuperação de arquivos de relatórios.
16) Exemplos
16. 1 Geração de relatório
Consulta
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}
}
Resposta
json
{"report_id":"RPT-EE-GGR-2025-10","status":"processing","eta_seconds":120}
16. 2 TR/SAR envio
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 Auto-exclusão
json
{
"user_id":"U-12345",
"type":"national_register",
"action":"enable",
"effective_from":"2025-11-01",
"effective_to":"2026-11-01"
}
17) Auditoria integrada e imutabilidade
Loging automático: 'request _ id', 'trace _ id', o cliente que chama, scope.
Assinatura de pacotes de relatórios (SHA-256) + registro de hash; Anistia periódica.
Arquivo WORM para downloads regulatórios e TR.
Histórico de configuração de regras e modelos (registro de alterações de políticas ↔ links).
18) Processos e RACI (em resumo)
R: Comando da Plataforma Completa (Desenvolvimento/Operações).
A: Head of Compliance/CISCO (políticas, orçamentos, prioridades).
C: Legal/DPO, Finanças, Arquitetura, Data.
I: Produto, Suporte, Associados (PSP/KYC).
19) Mapa de trânsito de implementação
MVP (4-6 semanas):1. '/v1/kyc/check ', '/v1/aml/direction', '/v1/reports/generate '(2-3 modelos-chave).
2. OAUTh2 + rate-limit + idempotidade básica.
3. Arquivo de relatórios no Objeto de armazenamento com assinatura hash.
4. Dashboard SLO e filas de tarefas.
Fase 2 (6-12 semanas):- Modelos jurisdicionais (5-8 mercados), TR/SAR, RG-endpoint, DSAR.
- Unidade de fornecimento (CUS/sanções), retraí, dedupe.
- Políticas Legal Hold, WORM, papéis avançados.
- Rule-as-Código para relatórios/regras AML, simulador de alterações.
- Multi-tenência (B2B2C, marcas/skins), quotas e billing.
- Caixa de areia e certificação para integradores externos.
20) Erros típicos e como evitá-los
Os circuitos de mercado incluem um catálogo centralizado, auto-lint.
Não há idempotidade: digite 'idempotency _ key' e uma janela de dedução.
Segredos em logs: filtros em ingest, análise estática.
Longos relatórios online, faça asincrona com status e notificações.
RBAC fraco: espalhe 'read _ reports', 'generate _ reports', 'admin'.
Moeda/Timzon: Fixe «fx _ fonte», «timezone», armazene UTC.
21) Glossário (breve)
KYC/KYB - identificação física/yur. caras
AML/TR/SAR - contra lavagem/atividade suspeita/denúncia.
RG é um jogo responsável.
GGR/NGR - receita bruta/neta dos jogos.
WORM - Armazenamento imutável (write-once).
Rule-as-Code - regras como código de teste/versionagem.
22) Resultado
A API de complacência e relatórios é uma camada sustentável, segura e normalizada entre as operações de iGaming e as exigências dos reguladores. O cumprimento dos princípios deste artigo (esquema rigoroso, integração segura, idempotidade, auditoria imutável, modelos jurisdicionais e SLO) garante previsibilidade, verificação rápida e redução de riscos em mercados-chave.