Skip to content

Web Games Integration Documentation

Partner integration documentation for the web games service.

Changes

DateVersionDescription
18.05.170.1Creation of the documentation
20.04.260.2Documentation updated: removed unsupported methods, removed live_slot, updated GetListGames, clarified language, and added supported currencies

Introduction

This document describes the partner integration flow for the web games service.

It covers the methods required to get the game list, launch the demo mode, and launch real-money games through partner-side authorization.

Overview

  • Protocol: HTTPS
  • Public service methods use GET
  • Partner API methods use POST
  • POST request body format: application/json
  • Successful response: code = 0

Integration flow

  1. The partner requests the list of available games using GET /GetListGames
  2. The partner opens a game using GET /game
  3. For real-money launch, the partner side must expose the POST /Authorization method

Request signature

All signatures use md5.

The signature string must be built as:

text
<MethodName>/ + <value1> + <value2> + ... + <api_key>

Important:

  • there are no separators between values
  • the slash after the method name is required
  • the value order must exactly match the method definition

Example signature helper:

js
function calcSignature(method, data, apiKey) {
  let sign = method + '/';

  for (const key in data) {
    sign += data[key];
  }

  sign += apiKey;

  return crypto.createHash('md5').update(sign).digest('hex');
}

1. GetListGames

Returns the list of games available to the partner.

Request

GET /GetListGames

Parameters:

FieldTypeRequiredDescription
partner_idintYesPartner identifier
typestringYesGame type. Supported value: web_slot
hashstringYesmd5("GetListGames/" + partner_id + type + api_key)

Example:

text
GET /GetListGames?partner_id=<partner_id>&type=web_slot&hash=<md5_signature>

Successful response

json
{
  "code": 0,
  "message": "Ok",
  "games": [
    {
      "id": 11,
      "title": "Chicago Deluxe",
      "url": "/game",
      "icon": "/icon/novomatic-deluxe/206x206/chicago_deluxe.jpg",
      "class": "Novomatic Deluxe"
    }
  ]
}

Response fields:

FieldTypeDescription
codeintResult code
messagestringResult description
gamesarrayList of games
games[].idintGame identifier
games[].titlestringGame title
games[].urlstringGame launch URL
games[].iconstringGame icon URL
games[].classstringGame category or class

Response codes

CodeDescription
0Success
10Hash mismatch
15Unavailable type
101Partner is not found
1Internal Error

2. Game launch

Use GET /game to launch a game.

Request

GET /game

Parameters:

FieldTypeRequiredDescription
partner_idintYesPartner identifier
game_idintYesGame identifier
languagestringNoGame language. This parameter is optional
currencystringYesPlayer currency
player_id`intstring`For real-money mode
tokenstringFor real-money modeOne-time player token

Desktop and mobile launch

For desktop, the game is typically opened inside an iframe.

For mobile, it is recommended to open the direct game URL.

Demo mode

Use the DMO currency to launch the demo version.

Example:

text
GET /game?partner_id=<partner_id>&game_id=<game_id>&language=eng&currency=DMO

Real-money mode

Example:

text
GET /game?partner_id=<partner_id>&player_id=<player_id>&game_id=<game_id>&language=eng&currency=<currency>&token=<token>

For real-money launch, the partner must provide player_id and token.

Result

On success, the service returns the HTML page of the game.

Response codes

CodeDescription
12Game is not found
13Partner API return null
101Partner is not found
102Currency is not found
1Internal Error

3. Authorization

This method must be implemented on the partner side for real-money game launch.

Request

POST <partner_api_url>/Authorization

Request body:

json
{
  "player_id": "<player_id>",
  "game_id": "<game_id>",
  "token": "<token>",
  "hash": "<md5_signature>"
}

Signature:

text
md5("Authorization/" + player_id + game_id + token + api_key)

Successful response

json
{
  "code": 0,
  "message": "Ok",
  "player_id": 42,
  "currency": "RUB",
  "nick": "Player42",
  "balance": 10000.12,
  "external_session": "session-123"
}

Response fields:

FieldTypeDescription
codeintResult code
messagestringResult description
player_id`intstring`
currencystringPlayer currency
nickstringPlayer nickname
balancenumberPlayer balance
external_sessionstringOptional external session identifier

Response codes

CodeDescription
0Success
10Hash mismatch
11Player not found
14Non-valid token
1Internal Error

4. Supported currencies

Currently, 122 currency codes are supported:

AED, ALL, AMD, AOA, ARS, AUD, AZN, BAM, BDT, BGN, BHD, BOB, BRL, BSX, BTC, BYN, CAD, CDF, CFA, CHF, CLP, CNY, COP, CZK, DASH, DEEX, DKK, DMO, DOP, DTC, DZD, EGP, ETB, ETH, EUR, FAU, FBu, GAME, GBP, GEL, GHS, GMC, GMD, GNF, HC, HKD, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JOD, JPY, KES, KGS, KM, KRW, KWD, KZT, LBP, LTC, MAD, MDL, MKD, MMK, MNT, MVR, MXN, MYR, MZN, NGN, NIS, NOK, NZD, OMR, PEN, PHP, PICK, PKR, PLN, PRB, PYG, QAR, RON, RSD, RUB, RUR, SAR, SDG, SEK, SGD, THB, TJS, TMT, TND, TRY, TWD, TZS, UAH, UGX, USD, USDC, USDT, UYU, UZS, VEF, VND, XAF, XEM, XMR, XOF, ZAR, ZEC, ZMW, ZWL, mBT, mETH, uBTC

Notes:

  • DMO is used for demo launch
  • additional currencies can be added on request