Feature Toggles

This guide lists every feature toggle, what it actually hides or blocks, how toggles depend on each other, and which license plan each one needs.

Changing a Toggle

Navigate to Settings → Features in the admin sidebar. Each toggle shows its label, a short description, and a switch. A change is broadcast to connected clients through the feature_toggles_updated WebSocket event.

Required permission: settings:edit.

Hiding something in the client doesn’t always block it on the server. The table below separates the two, and Toggles With Limited Enforcement lists the gaps.

Toggle Reference

When a route is gated with the standard check, a disabled toggle returns 403 with AUTHORIZATION_ERROR, and a toggle outside your plan returns 403 with FEATURE_TIER_RESTRICTED.

LabelKeyPlanDefaultClient effect when offServer effect when off
CashiercashierStarterOnHides the player cashier link and page, the admin Deposits, Withdrawals, All Transactions, Balance Adjustment, and Financial Analytics items, and the Cashier settings tabBlocks all of /api/v1/cashier
TournamentstournamentsProOnHides the lobby tab, admin Tournaments item, and ticket options in admin formsBlocks /api/v1/lobby/tournaments. Admin table creation refuses TOURNAMENT mode.
Private GamesprivateGamesProOnHides the lobby tab and admin Private Tables itemBlocks /api/v1/private-games
ChatchatStarterOnHides chat at the tableChat messages are refused with CHAT_DISABLED
BonusesbonusesProOnHides the profile tab and admin Bonuses itemBlocks admin bonus and bonus-credit routes and player bonus routes. Bonus triggers don’t fire.
AffiliatesaffiliatesEnterpriseOnHides the player link and dashboard, and the admin Affiliates and Affiliate Fraud itemsBlocks admin affiliate routes and player /affiliate routes
AgentsagentsEnterpriseOnHides the player link, admin agent items, and the Agents settings tabBlocks /api/v1/agent and admin agent routes
Virtual ChipsvirtualChipsStarterOnHides play-money balances and optionsVirtual balance operations are refused. Admin and private table creation refuse VIRTUAL_CHIPS mode.
Real MoneyrealMoneyStarterOnHides real-money balances and optionsReal balance credit, debit, transfer, and set operations are refused. Admin and private table creation refuse REAL_MONEY mode.
RegistrationregistrationStarterOnHides the sign-up link and redirects the register page to loginBlocks POST /api/v1/auth/register
Email VerificationemailVerificationProOnNoneNone. See below.
Two-Factor AuthtwoFactorAuthProOffNoneAdmin login requires a 2FA challenge when on. See below.
Maintenance ModemaintenanceStarterOffShows the maintenance overlay, except to admins and moderatorsSee Maintenance Mode
BotsbotsProOnHides the admin bot itemsBlocks bot-changing admin routes and suspends running bots
Game HistorygameHistoryStarterOnHides the admin Game History itemNone. See below.
Fraud AlertsfraudAlertsProOnHides the admin Fraud Alerts and Fraud Cases items and pagesBlocks admin fraud alert and fraud case routes
KYC VerificationkycVerificationProOnHides the admin KYC Verification and Sanctions Checks items and pagesBlocks admin verification and sanctions routes
AML ReviewsamlReviewsEnterpriseOnHides the admin AML Reviews item and pageBlocks admin AML routes
ChargebackschargebacksEnterpriseOnHides the admin Chargebacks item and pageBlocks admin chargeback routes
CouponscouponsProOnHides the admin Coupons item and pageBlocks admin coupon routes
Game SchedulergameSchedulerEnterpriseOffHides the admin Game Scheduler itemNone. See below.
Developer APIdeveloperApiEnterpriseOffHides the admin developer itemsBlocks /api/v1/developer and POST /api/v1/auth/exchange. Outbound developer webhooks stop.

Toggles With Limited Enforcement

These toggles do less than their label or description suggests. Don’t rely on them as a security or compliance control.

No effect

ToggleFinding
Email VerificationNothing in the server or the client reads this toggle, and it does not require email verification. Whether verification is required comes from the registration and account approval settings.

Admin menu only

ToggleFinding
Game HistoryOnly removes the admin menu item. Hand history routes for admins and players stay available, and history keeps being recorded.
Game SchedulerOnly removes the admin menu item. The admin scheduler routes remain available, and the scheduler’s own configuration decides whether it runs.

Partial

ToggleNot covered
Two-Factor AuthThe description says it enables user 2FA, but player 2FA routes and Telegram login don’t read it. It controls only admin login. While it is off, which is the default, admin login does not ask for a 2FA code, even from an admin who has enrolled.
CouponsPOST /api/v1/cashier/redeem-coupon doesn’t check it, so players can still redeem coupons while it is off.
KYC VerificationThe player /api/v1/cashier/verification routes and KYC-tier withdrawal limits don’t check it.
Fraud AlertsOnly the admin routes check it. Fraud detection code doesn’t read it.
AML ReviewsOnly the admin routes check it.
ChargebacksOnly the admin routes check it.
TournamentsAdmin /api/v1/admin/tournaments routes don’t check it.
Private GamesAdmin private table routes don’t check it.
AffiliatesAdmin affiliate fraud routes don’t check it.
Developer APIAdmin developer routes under /api/v1/admin don’t check it.
RegistrationTelegram auto-provisioning doesn’t check it. See Telegram Mini App Authentication.

Maintenance Mode

When Maintenance Mode is on:

  • These paths stay available: /health, /api/v1/health, /metrics, /api/v1/analytics, /api/v1/admin, /api/v1/auth, and /api/v1/config.
  • Other requests after that point return 503 with maintenance: true. This includes /api/v1/webhooks and /api/v1/plugins, so payment webhooks are refused during maintenance.
  • New WebSocket connections from non-admins receive a MAINTENANCE error and are disconnected.
  • A push notification is sent when the toggle is turned on.

The REST check caches the setting for up to 10 seconds, so a change may take that long to apply.

Admin REST calls outside the paths above, such as the lobby, also receive 503. The admin bypass in this check depends on a user that hasn’t been authenticated yet at that point in the request.

Dependencies Between Toggles

The server doesn’t change one toggle because of another. Turning one off won’t update the others, but these features do interact:

FeatureAlso needsWhy
Coupon redemption by playersCashierThe route lives under /api/v1/cashier
Player KYC document uploadCashierThe route lives under /api/v1/cashier
Telegram Stars and other depositsCashierDeposits are requested through /api/v1/cashier
ChatEnable Chat in the game settingsBoth this toggle and the game setting must be on
Real-money tablesReal MoneyChecked when an admin or player creates the table
Play-money tablesVirtual ChipsChecked when an admin or player creates the table
Private tablesPrivate Games, plus Real Money or Virtual ChipsThe chosen mode is checked at creation
Tournament tablesTournamentsChecked when an admin creates the table
Ticket options in bonus, coupon, and balance adjustment formsTournamentsClient options are filtered
Currency options in bonus, coupon, and balance adjustment formsReal Money, Virtual ChipsClient options are filtered
Sanctions ChecksKYC VerificationShares this toggle
Fraud CasesFraud AlertsShares this toggle

Bots also have a server-level switch. Setting the FEATURE_BOTS environment variable to false stops bots from playing even when the Bots toggle is on.

Plan Restrictions

The Plan column shows the lowest plan that includes each toggle: Starter, Pro, or Enterprise. Enforcement uses the signed feature list from your license, and the plan names are for display.

  • Locked toggles: On the Features tab, a toggle outside your plan shows a lock icon and Available on {{plan}} plan, and its switch is disabled.
  • Enabling: Enabling a locked feature through the API returns FEATURE_TIER_RESTRICTED (403). Importing a settings backup with a locked feature enabled fails in the same way.
  • Downgrades: When a verified license change removes a feature, it is turned off automatically and connected clients are told.
  • Gated routes: Routes using the standard check test the plan first, then the toggle.
  • No verified feature list: In production, no feature is allowed by plan until the license supplies a signed list.

See License & Updates.

API Endpoints

MethodPathPermissionDescription
GET/api/v1/config/featuresPublicCurrent toggle values
GET/api/v1/admin/general/featuressettings:viewToggles with plan information
GET/api/v1/admin/general/features/keysAdminAll toggle keys
GET/api/v1/admin/general/features/:featureAdminOne toggle’s value
PATCH/api/v1/admin/general/featuressettings:editUpdate several toggles
POST/api/v1/admin/general/features/:feature/enablesettings:editEnable a toggle
POST/api/v1/admin/general/features/:feature/disablesettings:editDisable a toggle
POST/api/v1/admin/general/features/:feature/togglesettings:editFlip a toggle

An unknown key returns INVALID_FEATURE (400).

Try the live demo Pricing

Have questions about Poker Engine? We reply fast.