Conformitate și raportare API
1) Scop
API de conformitate - o singură interfață pentru:- Colectarea și validarea evenimentelor (jocuri de noroc/plată/autentificare) pentru AML/Joc Responsabil (RG).
- Inspecții (KYC/KYB, sancțiuni/PEP, surse de fonduri, vârstă).
- Raportarea reglementară (periodică și ad-hoc) pe piață.
- Menținerea jurnalelor de audit și executarea Legal Hold.
- Schimbul de date cu furnizorii (PSP, schimburi KYC, liste de sancțiuni) și portaluri de stat.
Rezultatul: reducerea operațiunilor aeriene, raportarea mai rapidă, trasabilitatea și conformitatea locală.
2) Domeniul de aplicare
Identificare și verificare: statusuri KYC/KYB, niveluri de verificare, documente.
AML/sancțiuni/PEP: screening, monitorizarea tranzacțiilor, STR/SAR, alerte.
Jocul responsabil (RG): limite, auto-excludere, „cool-off”, scale de risc comportamental.
Plăți și tranzacții: depozite/retrageri, chargeback, mecanica bonusului.
Raportare: RGG/taxe, registrul jucătorilor/sesiunilor, restricții de marketing, incidente de securitate.
Audit și stocare: busteni imuabili (WORM), Legal Hold, DSAR/RTBF.
3) Consumatorii și producătorii de date
Consumatori: autorități de reglementare, conformitate internă/risc, BI/DWH, SecOps, finanțe.
Producători: fronturi/backend iGaming, PSP/acquiring, furnizori KYC, anti-fraudă, CRM, rețele afiliate.
4) Referință arhitecturală
1. Edge/API- шлюз (mTLS, OAuth2/OIDC, rate-limit, WAF).
2. Servicii de conformitate (reguli de afaceri, orchestrare furnizor, normalizare).
3. Event bus (Kafka/Redpanda) - fan-out în SIEM/DWH/arhivă.
- Online (PostgreSQL/ClickHouse) pentru interogări/agregări rapide.
- Archive (Object Storage + WORM) pentru artefacte și rapoarte imuabile.
- 5. Audit și observabilitate: OpenTelemetry (trace_id), jurnale de indexare, tablouri de bord.
- 6. Conectori furnizori: KYC, sancțiuni, module RG, portaluri de stat cu semnătură electronică.
5) Criteriile finale principale (v1)
5. 1 KYC/KYB și sancțiuni
„POST/v1/kyc/check” - cerere de verificare KYC (idempotent).
'GET/v1/kyc/{ user _ id }/status' - nivelul actual și data expirării.
„POST/v1/sancțiuni/ecran” - sancțiune/PEP screening.
'GET/v1/sancțiuni/{ user _ id }/hits' - meciuri/escaladări.
5. 2 Monitorizarea AML și a tranzacțiilor
'POST/v1/aml/transaction' - trimiterea unui eveniment (depunere/in cadrul/pariu/plata).
"GET/v1/aml/alerte? state = open '- alerte/cazuri deschise.
„POST/v1/aml/str” - formarea si depunerea STR/SAR (pe piata).
5. 3 Joc Responsabil (RG)
„POST/v1/rg/autoexcludere” - set/eliminare auto-excludere.
'GET/v1/rg/limite/{ user _ id}' - limite (depozit/rată/timp).
„POST/v1/rg/evalua” - evaluarea riscului de comportament.
5. 4 Raportare și registre
„POST/v1/reports/generate” - generarea raportului (tip, perioadă, jurisdicție).
'GET/v1/reports/{ report _ id}' - status, artefact download (PDF/CSV/JSON), hash.
'GET/v1/registers/{ type}' - înregistrări (jucători, sesiuni, bonusuri, GGR) cu paginare.
5. 5 Audit și tranzacții juridice
'GET/v1/audit/evenimente' - selectarea evenimentelor (filtru după câmpurile ECS/OCSF).
'POST/v1/legal/hold' - set/remove Legal Hold on the object/folder.
'POST/v1/privacy/dsar' - start DSAR, statusuri, pachete de export.
6) Modele de date (abreviat)
6. 1 Evenimentul tranzacției (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 Rezultatul 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 Descrierea raportului
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) Securitate și acces
Autentificare: OAuth2/OIDC (acreditări client, JWT), opțional mTLS.
Autorizatie: RBAC/ABAC; domenii separate pe domenii ('aml: write', 'kyc: read', 'reports: generate').
Criptare: TLS 1. 2 + în tranzit; în repaus prin KMS/CMK; JWE pentru câmpuri sensibile.
Minimizare PII: minim de stocare; Masca PAN/IBAN aliasing 'user. pseudo_id'.
Jurnalul de acces: auditul tuturor lecturilor punctelor finale „sensibile”, alerte pentru încărcări în masă.
Deținerea și păstrarea legală: depozitarea WORM pentru rapoarte și STR; 5-7 ani politici de retenție (pe piață).
8) Versioning și compatibilitate
URI versioning: „/v1 ”, „/v2”; modificări minore - prin câmpuri extensibile.
Politica de amortizare: ≥ 6-12 luni de sprijin; titluri „Apus de soare”, „Depreciere”.
Scheme: JSON Schema + OpenAPI; contractele sunt validate în CI.
Migrații: adaptoare/feature-flags, compatibilitate bidirecțională pentru perioada de tranziție.
9) Fiabilitate: idempotență și „exact o dată”
Idempotency-Key in 'POST' (tastele magazinului ≥ 24-72 ore).
Cel puțin o dată de livrare prin autobuz + primi eliminarea duplicatelor (eveniment id/hash).
Outbox/Inbox-model pentru integrări, retrai cu pauză exponențială și jitter.
Ordine: user _ id/account _ id chei de partiționare pentru determinism.
10) Paginare, filtre, căutare
Pagination: cursor-based ('page _ token', 'limit <= 1000').
Filtre: pe jurisdicție, perioadă, statut, furnizor, evaluare a riscurilor.
Căutare full-text pentru audit/registre (subset limitat de câmpuri).
Export: asincron, limita de dimensiune, pregătirea unei arhive cu o semnătură hash.
11) Restricții și cote
Rate-limite per client/traseu (ex. 100 rps izbucni, 1000 rpm susținute).
Limitele bugetare ale rapoartelor grele (credite/zi).
N + 1 protecţie: loturi şi criterii finale agregate.
Limitarea adâncimii eșantioanelor istorice (de exemplu, ≤ 24 de luni online, denumită în continuare arhivă).
12) Tablouri de bord și SLO-uri
Ingera lag p95 <30 sec; Succes KYC> 99%; STR-SLA - dispecerat ≤ 24 de ore.
API ≥ 99 disponibilitate. 9%; Latență p95 <300 ms pentru citire; <800 ms pentru înregistrare.
Cost/GB de stocare a rapoartelor; Notificări ack-rate către autoritățile de reglementare.
Widget-uri: harta de căldură de alertă AML, pâlnie KYC, eliberarea rapoartelor de țară, coada STR.
13) Jurisdicții: Cartografiere și modele
Șabloane de raport de piață (câmpuri, formate, frecvență): „EE”, „LT”, „LV”, „RO”, „MT”, „UK” etc.
Cartografiere pe termen lung (GGR/NGR, bonusuri, limite de depozit, controlul vârstei).
Localizarea zonelor orare/calendarelor; Fixați eticheta FX Impact DST.
Directorul Schema: 'rapoarte/{ jurisdicția }/{ tipul }/{ versiunea} .schema. Json '.
14) Manipularea erorilor (format unic)
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) Testarea și certificarea
Teste de contract (OpenAPI → generarea de clienți de testare).
Seturi de fixare în funcție de jurisdicție, fișiere de aur pentru raportare.
„Liste negre” de câmpuri PII în jurnalele; analiza statică a scurgerilor secrete.
Exerciții regulate DR pentru a restabili arhivele raportului.
16) Exemple
16. 1 Generarea raportului
Anchetă
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}
}
Răspuns
json
{"report_id":"RPT-EE-GGR-2025-10","status":"processing","eta_seconds":120}
16. 2 STR/SAR trimite
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 Autoexcluderea
json
{
"user_id":"U-12345",
"type":"national_register",
"action":"enable",
"effective_from":"2025-11-01",
"effective_to":"2026-11-01"
}
17) Audit încorporat și imutabilitate
Autologation: 'request _ id',' trace _ id', calling client, scope.
Semnarea pachetelor de raport (SHA-256) + registru hash; ancorarea periodică.
Arhiva WORM pentru încărcări de reglementare și STR.
Istoricul configurațiilor de reguli și șabloane (politica de schimbare jurnal ↔ link-ul).
18) Procese și RACI (pe scurt)
R: Echipa Platformei de Conformitate (Dezvoltare/Operațiuni).
R: Șef de conformitate/CISO (politici, bugete, priorități).
C: Legal/DPO, Finanțe, Arhitectură, Date.
I: Produs, Suport, Parteneri (PSP/KYC).
19) Foaia de parcurs privind implementarea
MVP (4-6 săptămâni):1. „/v1/kyc/check ”, „/v1/aml/transaction”, „/v1/reports/generate ”(2-3 modele cheie).
2. OAuth2 + limita ratei + idempotența inițială.
3. Arhiva rapoartelor în Stocarea obiectelor cu semnătură hash.
4. Tabloul de bord SLO și cozi de sarcini.
Faza 2 (6-12 săptămâni):- Șabloane jurisdicționale (5-8 piețe), STR/SAR, RG-endpoints, DSAR.
- Agregarea furnizorilor (CUS/sancțiuni), retrai, dedupe.
- Politici legale Hold, WORM-uri, roluri extinse.
- Regula-ca-cod pentru rapoarte/reguli AML, schimba simulator.
- Multi-chirie (B2B2C, mărci/piei), cote și facturare.
- Sandbox și certificare pentru integratori externi.
20) Erori tipice și cum să le evitați
Divergența schemelor de piață: director centralizat, scheme auto-scame.
Fără idempotență - Type 'idempotency _ key' și fereastra de eliminare a duplicatelor.
Secrete în jurnalele: filtre de ingerare, analiză statică.
Rapoarte lungi on-line: face asincron cu status-trăgând și notificări.
RBAC slab: post 'read _ reports',' generate _ reports', 'admin'.
Monedă/fus orar: fixați 'fx _ source', 'fus orar', stocați UTC.
21) Glosar (scurt)
KYC/KYB - identificarea persoanelor fizice/juridice.
AML/STR/SAR - anti-spălare/activitate suspectă/raport.
RG este un joc responsabil.
GGR/NGR - Venituri brute/nete din jocuri.
WORM - scriere-o dată de stocare.
Rule-as-Code - reguli ca cod cu teste/versioning.
22) Linia de jos
API-ul de conformitate și raportare este un strat stabil, sigur și standardizat între operațiunile iGaming și cerințele de reglementare. Respectarea principiilor din acest articol (sisteme stricte, integrare sigură, idempotență, audit imuabil, șabloane jurisdicționale și SLO) asigură predictibilitatea, trecerea rapidă a auditurilor și atenuarea riscurilor pe piețele cheie.