Logo GH

RubyPlay - Overview and Integration

Overview

RubyPlay is an HTML5 slot studio with a focus on series and "collecting" economies (symbol collection, multipliers, respin/hold-and-win). Notable lines include "Immortal Ways" and tiered jackpot titles. Clients are light, they start quickly in mobile WebViews. Typical integration: SSO → launch-URL, BET/WIN/JACKPOT wallet, JS bridge events for analytics/CRM/promo.

Who fits: operators/aggregators who need a showcase with "serial" content delivery, predictable exploitation, high rotation of releases and ready-made promotional hooks (missions, tournaments, drops).

Portfolio and user experience

Content and Mechanics

Video slots: 5 × 3/6 × N; lines/ways, cascades (on parts of games), xN multipliers, expanding/stacked/walking wilds.
Collect/Hold-and-Win/Respin: collect coins/tokens with fix prizes, repeat backs, mini/major/mega levels.
Serial features (e.g. Immortal Ways): additional columns/character tracks, enhanced collections and progressions.
Bonus modes: freespins with special symbols/upgrades of drums, pick-bonus, "ladders" of multipliers.
Buy Feature/Bonus Buy: Enabled by title and jurisdiction.
Jackpots: fixed/local/network - by connection configuration.

UX/UI

HTML5 client: fast FCP/TTI, economical assets, stable FPS on mobile.
Readable pay tables, visual progress counters/collections, round history.
L10n: multilingual/multicurrency, local number/date formats and RG messages.

Technology and performance

Client: Canvas/WebGL, lazy-load assets, sprite/audio compression, critical resource preload.
Delivery: CDN/edge caching, TTL managed, backup launch/CDN domains (failover).
Network: TLS 1. 2 +, HTTP/2 +, target latency to nearest PoP <150-200 ms.
Mobile: correct resume after folding, CPU/battery savings; resistance to short-term breaks.

Math, RTP and Limits

RTP pools: usually ≈96 %/ ≈94 %/ ≈92% (and other options) - selection at the build/catalog level for the market and contract.
Volatility: from low/medium (classic) to high (collect/hold-and-win/multipliers). Volatility/Hit Rate badges are recommended on display.
Limits: min/max rate, auto-spin limits, session timeouts and RG limits by jurisdiction.
Currencies: calculation in minor units (integer), correct rounding according to local norms.

Integration model (high-level)

1. The player → the front of the operator → SSO/JWT (short TTL).
2. Operator/Aggregator API ↔ RubyPlay API: create session, get 'launch _ url'.
3. Client (iFrame/new window) ↔ Game Server: game client + JS bridge (postMessage/SDK).
4. Wallet operator API: BET (auth-debit), WIN/PAYOUT (credit), JACKPOT_PAYOUT, rare adjustments.
5. BI/Reports: analytical events, round/transaction uploads, reconciliation.

Environmental requirements

Security: IP-allowlist S2S, request/response signing, key/secret rotation, strict CSP for iFrame domains.
Reliability: retrai with exponential pause, per player/session queues, key deadlock, sticky routing.
Compatibility: current Chrome/Edge/Safari/Firefox, iOS/Android WebView.

Create and start a session (pseudo-REST)

Request:

POST /api/v1/sessions
Authorization: Bearer <operator-key>
{
"player_id": "u_74251",
"currency": "EUR",
"locale": "ru-RU",
"game_id": "rubyplay_<slug>" ,//series/slot: ImmortalWays _, etc.
"return_url": "https://operator. example. com/casino/return",
"limits": { "bet_min_minor": 100, "bet_max_minor": 500000 },
"flags": { "buy_feature": false, "autoplay": true },
"tags": { "vip_level": 1, "aff_id": "AFF-821" }
}
Answer:

{
"session_id": "sess_b93f...",
"launch_url": "https://rp. example. com/launch? sess=sess_b93f...",
"expires_in": 3600
}

Client launch: 'launch _ url' in iFrame/window; heartbeat/reauth supported; events across the JS bridge (ACK/NACK).

Wallet API and idempotency

Main flows

BET (auth-debit): rate freeze/write-off → 'APPROVED/DECLINED' (+ balance/reason).
WIN/PAYOUT (credit): Credits winnings/jackpots → returns final balance.
ADJUST/REVOKE: exceptional adjustments with full audit trail.

Delivery Guarantees

Header'X-Idempotency-Key '(TTL ≥ 24 h), deadlock on the operator side.
Queues per player/session → guaranteed order; DLQ for conflicts.
Correlation 'round _ id '/' bet _ id '/' session _ id'.

Example of payment:

POST /wallet/payouts
Idempotency-Key: 12f0-...
{
"player_id": "u_74251",
"round_id": "r_2025_11_02_20_06_11",
"amount_minor": 167000,
"currency": "EUR",
"reason": "round_win"
}

JS Bridge and Gaming Events

Клиент → оператор: `GAME_INIT`, `SPIN/BET`, `WIN`, `FEATURE_TRIGGER`, `BONUS_START/END`, `COLLECT`, `RESPIN`, `JACKPOT_HIT`, `ERROR`.
Transport: 'postMessage '/SDK, ACK/NACK acknowledgements, strict' origin 'validation and/nonce signature.
Purpose: analytics, CRM triggers, campaign connection (free rounds/missions/tournaments/drops), dynamic banners.

Promo: freespins, missions, tournaments, jackpots

Free Rounds / Free Spins

Issuance via Provider/Promo API or synchronization with bonus engine.
Parameters: fix. bet/denom, number of spins, expiration date, 'game _ id'.
Accounting: winnings in real/bonus-balance; vager - according to operator/market rules.

Missions/Events

"Play N spins," "win ≥ X ×," "activate feature M times," "collect K characters" - events' MISSION _ PROGRESS '.

Tournaments/leaderboards

Metrics: sum of winnings, max-multiplier, number of spins/collections; event'TOURNAMENT _ SCORE '.

Jackpots/Prize-drops

Multi-tier (mini/major/mega), mystery/prize-drops; 'seed/cap'parameters, multicurrency constraints.
Separate collback 'JACKPOT _ PAYOUT' with idempotency and pool details.

Geo-configuration and compliance

Geo directory: including/excluding titles, choosing an RTP profile, disabling Buy Feature/risk games, age/regional restrictions.
Responsible game: self-exclusion/timeouts/limits, local RG banners and cookies.
Data/PII: minimization and pseudonymization of identifiers; log storage periods; export at the request of regulators.
Certification: use of certified builds for target jurisdictions; part of the features may be limited to the market.

Monitoring, Reporting and SLAs

Key Metrics

Those: uptime API/Launch/CDN, p95 wallet collabs, asset download speed, JS bridge error rate.
Product: 'Launch → First Spin', 'Spin → Bonus', ARP (B) U, hold, ROI campaigns (freespins/missions/tournaments/drops).
Finance: share of retrays/deduplications, anomalies in amounts, nightly discrepancies.

Export/Reconciliation

Hourly/daily offloads (CSV/JSON/S3) by round/transaction/bonus/jackpot.
Reconciliation in minor units by'round _ id/bet _ id/session _ id '; auto-alerts to duplicates/omissions/" dumb" collbacks.

SLO/SLA Benchmarks

API uptime ≥ 99. 95%, CDN assets ≥ 99. 9%; p95 collbecs <500 ms (intraregional).
MTTR - according to the incident plan; separate SLOs for prime time/mass campaigns.

Security

Transport: TLS 1. 2+, HSTS; strict CSP for the iFrame domain.
Access: JWT/OAuth2 (client), IP-allowlist/signature/mTLS (S2S) if necessary, rotation of secrets.
Data: prohibition of open PII in the logs; tokenization/hash 'player _ id'; encryption at rest/backup at the operator.
Anti-fraud: anomalies in the frequency of spins/bets/collect events, multiple sessions, suspicious ASN/VPN; quotas/throttling/block lists.

Scalability and fault tolerance

Edge cache: manifests/assets/localizations - managed by TTL, manual disability on releases.
Rate-limits: per player/session/API endpoint; protection against "storms" of events.

Graceful degradation: simplifying assets/effects, reducing the frequency of events, banner "technical work."

Failover: backup launch/CDN domains; re-issue token without losing context.

Checklists

For development

  • Generation/validation of SSO tokens (short TTL, clock-skew protection).
  • Wallet API: idempotent debit/credit, signature, queues, DLQ.
  • JS bridge/SDK: events, ACK/NACK, secure 'origin'.
  • Promo API: freespins/missions/tournaments/drops; vager accounting.
  • Export: CSV/JSON/S3; completeness of fields (minor units, round/bet/session).

To start

  • Geo-directory, RTP profiles, disabling prohibited features.
  • SLO monitoring (API/CDN/Wallet/JS) + alerts.
  • Nightly reconciliation + duplicate/skip alerts.
  • RG/cookie banners, local requirements.
  • Incident Plan/Status Page.

FAQ (brief)

Running in iFrame? Yes, through 'launch _ url' with consistent CSP/' X-Frame-Options'.
Is Buy Feature available? By title and market; is configured.
Are there network jackpots? By configuration; payments come to individual 'JACKPOT _ PAYOUT'.
How to connect freespins/tournaments? Through Promo/Provider API + analytics events.
How do I choose RTP? At the build/catalog level for a specific jurisdiction and contract.

Total

RubyPlay combines a serial approach to slot design and a "gathering" economy, which gives a sustainable showcase and convenient promo scenarios. Following the described patterns (SSO/launch-URL, idempotent Wallet API, JS bridge, promotional campaigns, strict geo-configuration, monitoring and reconciliation), the operator receives a predictable content economy, regulatory compliance and peak stability.

Contact

Get in Touch

Reach out with any questions or support needs.We are always ready to help!

Start Integration

Email is required. Telegram or WhatsApp — optional.

Your Name optional
Email optional
Subject optional
Message optional
Telegram optional
@
If you include Telegram — we will reply there as well, in addition to Email.
WhatsApp optional
Format: +country code and number (e.g., +380XXXXXXXXX).

By clicking this button, you agree to data processing.