Skip to content

Implemented by you: return the game configuration for a currency

GET
/getGameConfiguration

Optional in general, but mandatory if freeplays are to be
supported
, and mandatory for some operators. Returns the game
configuration, including the allowed stakes.

Apply currencyMultiplier once, here, when building the stake
ladder:

stakes = baseStakes.map(s => s * currencyMultiplier)

The same factor scales maxStake / minStake / maxPackageStake. The
resulting stakes are the amounts the player actually stakes, in
player-currency minor units. Do not apply the multiplier a second
time to the debitInformation / creditInformation amounts you later
send to the RGS.

Signing: this call is signed by the RGS over the ordered field list
[ secret, X-H-AUTH-ID, X-H-TIMESTAMP, currency ] joined with #
not over the request.

Authorizations

V2AuthId

Game provider ID assigned by hizi.io (Hinterzimmer). Identifies which
shared secret the signature must be verified against. Mandatory on
every game engine / RGS call.

Type
API Key (header: X-H-AUTH-ID)
+
V2Signature

HMAC signature of the request. OpenAPI cannot express a computed
signature, so the scheme is modelled as an apiKey header; the value
is derived per request as follows.

You need a shared secret, which you can retrieve by logging in to the
hizi.io backoffice with your credentials. The signature is a
base64-encoded SHA-256 HMAC digest of a defined set of request
parameters, joined with a hash character (#). This allows the secret
to be shared without ever being sent in the request. A timestamp
(X-H-TIMESTAMP) must also be supplied as a request header and is part
of the signed data.

Outbound (you → hizi.io RGS) — the fields signed are the
serialised JSON body and the timestamp:

X-H-AUTH-SIG = base64(
  HMAC_SHA256( secret, [ JSON.stringify(body), X-H-TIMESTAMP ].join('#') )
)

See the Signing appendix for a complete
reference implementation.

Inbound (hizi.io RGS → your backendQueue) — same primitive, but
the RGS signs a fixed, per-endpoint ordered list of scalar fields
and the body is not hashed. The secret is used both as the HMAC key
and as the first element of the signed string:

X-H-AUTH-SIG = base64( HMAC_SHA256( secret, fields.join('#') ) )
endpoint fields (in order)
GET /getGameConfiguration [ secret, X-H-AUTH-ID, X-H-TIMESTAMP, currency ]
POST /getGameResult [ secret, X-H-AUTH-ID, X-H-TIMESTAMP, gameRound ]

A wrong signature is reported as HTTP 401 / error code 1001
(SIGNATUREWRONG) and must not be retried.

The header family is shared with the Operator API, which documents the
same base64/SHA-256-HMAC/#-joined construction; the set of signed
fields
differs per API and per direction, so do not assume a signer
written for one is reusable for the other without checking the field
list.

Type
API Key (header: X-H-AUTH-SIG)
+
V2Timestamp

ISO 8601 timestamp of the request (e.g. 2023-01-26T11:28:21.429Z).
Mandatory, and included in the signed data of X-H-AUTH-SIG.

Type
API Key (header: X-H-TIMESTAMP)

Parameters

Query Parameters

currency*

ISO currency code the configuration is requested for. This value is part of the signed string.

Type
string
Required
Example"EUR"
currencyMultiplier*

FX-style factor for the currency (e.g. EUR 1, USD 1, BRL 6,
JPY 150) to be applied once when building the stake ladder.

Type
number
Required
Example1
gameCode*

Game code the configuration is requested for.

Type
string
Required
Example"game-bells"

Responses

The game configuration. stakes, currency, currencyMultiplier,
expectedRtp, maxPayoutOdds and the top-level gameCode are
mandatory (confirmed against the original red-highlighted source);
everything else in config is documented-but-optional.

application/json
JSON
{
  
"config": {
  
  
"stakes": [
  
  
  
0
  
  
],
  
  
"currency": "EUR",
  
  
"currencyMultiplier": 0,
  
  
"expectedRtp": 96.19,
  
  
"oneHundredXOdds": 0,
  
  
"maxWinOdds": 0,
  
  
"maxPayout": 0,
  
  
"maxPayoutOdds": 0,
  
  
"maxExposure": 0,
  
  
"calculatedMaxExposure": 0,
  
  
"operator": "string",
  
  
"winlineCount": 0,
  
  
"additionalProperties": "string"
  
},
  
"gameCode": "game-bells"
}

Samples

Powered by VitePress OpenAPI