Responsible gaming
Translator note: machine-translated baseline. Needs human review by a native UK speaker. EN source is canonical.
casinocrm.io enforces RG features at two layers: (1) inbound webhooks з casino платформи дзеркалять state у CRM, (2) CRM-side enforcement ніколи не пише self-excluded гравцеві незалежно від platform support — capability_mock pattern.
Feature catalogue
self_exclusion - permanent або time-bound block
cooldown_period - cooling-off після triggering події
deposit_limit_daily - cap per-day deposit
deposit_limit_weekly
deposit_limit_monthly
loss_limit_daily - cap per-day net losses
loss_limit_weekly
loss_limit_monthly
session_limit_minutes - max session duration
reality_check - periodic in-session reminder
session_cooldown - mandatory пауза між sessions
affordability_check - KYC-bound spend cap (UK style)
Tenant config picks які features enabled (license defaults give starting point); adapter декларує, що supports на platform side.
Зберігання state
players.responsible_gaming_state (JSONB) — heterogeneous limits + self-exclusion details:
{
"self_excluded": {
"until": null, // permanent
"set_at": "2026-05-08T...",
"reason": "responsible_gaming_request",
"actor_kind": "admin"
},
"limits": {
"deposit_limit_daily": { "amount_subunit": 10000, "currency": "EUR", "set_at": "..." },
"session_limit_minutes": { "value": 60, "set_at": "..." }
},
"session": { "started_at": null, "minutes_used_today": 0 }
}
Плюс mirror columns для fast lookup: players.rg_self_excluded (bool) + players.rg_self_excluded_until (timestamp або null).
Capability_mock — CRM-side enforcement
Campaign-enqueue path фільтрує self-excluded гравців прямо в SQL:
WHERE deleted_at IS NULL
AND (rg_self_excluded = false OR rg_self_excluded_until < now())
AND ...
Цей filter застосовується незалежно від того, чи adapter supports self-exclusion. Self-excluded гравець ніколи не отримує message з CRM — навіть якщо платформа не enforce-ить на своєму боці, навіть якщо оператор забуде wire webhook.
Той самий pattern для journey send_message + manual admin sends.
Platform webhook events
POST /v1/adapters/:slug/webhooks/bonus-events (або future dedicated /rg-events endpoint) приймає:
self_exclusion.requested— player initiated self-exclusion на платформіself_exclusion.set/self_exclusion.lifted/self_exclusion.expireddeposit_limit.set/deposit_limit.reached/deposit_limit.resetsession_limit.warning/session_limit.exceededreality_check.triggered/reality_check.acknowledgedcooldown.entered
State-sync mutates responsible_gaming_state JSONB + mirror columns де applicable.
License-driven defaults
Operator picks license → casinocrm.io auto-suggests RG features:
- Nevis —
self_exclusiononly - Curaçao — +
deposit_limit_daily+deposit_limit_monthly - MGA — full RG suite (limits + reality checks)
- UK GamCom — MGA +
affordability_check+session_cooldown - CZ — MGA +
session_cooldown(5-min mandatory пауза після session)
Це рекомендації. Operator може override будь-що per tenant — casinocrm.io не enforces regulatory compliance (job вашої compliance team).