Skip to content

hizi.io -> Operator

This section describes the possible calls which can be made from the hizi.io backend to the operator backend. Please note that IP whitelisting might be in place.

getBalance - get a player’s balance

This call is used to query a player's balance at the operator. Note that two balances may be returned (real + bonus). Returning a bonus balance is optional and only required by certain legislation. In case a bonus balance is returned also the attribute “useBonusFirst” should be returned in order to display the usage of bonus or real money in case that is mandatory by legislation frameworks.

GET /getBalanceget the balance of a player
request Parameters (URI parameters)
attributetypemandatorynotes
playerIdstringYESID that identifies the player at the operators site
currencycurrencyYEScurrency for which the balance should be returned
gameCodestringNOIn case a game code is submitted, return freeplays and/or tickets allocated to that game/player. ID that identifies the game, same code as in getGameUrl call. See ticket / free play documentation for further information Appendix D - free plays and game tickets
externalSessionIdstringNOReference to a session id passed in getGameURL call
fields to sign (order is important)
secret + X-H-AUTH-ID + X-H-TIMESTAMP + playerId + currency + gameCode (if present)
mandatory request header fields
X-H-AUTH-ID, X-H-AUTH-SIG, X-H-TIMESTAMP
returned attributes
attributetypemandatorynotes
balancesarray of playerBalance objectsYESone or two entries can be returned, one of them has to be “real” money, “bonus” money might be returned optional
discountInfodiscountInfo structureNOOptional discount information, see Appendix E for details
useBonusFirstbooleanNO (defaults to true)true if bonus funds are to be used first, false if real money has to be used first. Note that this is just informational to be displayed in the games frontend if applicable by regulations
errorCodeerrorCodeNOin case an error occurred HTTP status should not be 200 and an additional error information can be returned
clientMessageclientmessageNOdefines a message box to be displayed in the game client. Can also be present when an error occurred.

Sample call to query a player's balance

Sample call, fields that have to be included in the signature are highlighted in redDescription
**GET /getBalance?playerId=1234567&currency=**EURAsk for a EUR balance
Sample response (success)Description
{ "useBonusFirst": "true", "balances": [{ "type": "real", "amount": 12000, "currency": "EUR" }, { "type": "bonus", "amount": 8010, "currency": "EUR" }] }Return a real money balance of EUR 120.00 and a bonus money balance of EUR 80.10 Bonus money has to be used first so the game would display a message “you are using bonus funds” if needed by legislation.
Sample response (error)Description
{ "errorCode": { "id": 1, "msg": "player id unknown" } }Return an error that player id was not found. Note that this call should not return HTTP code 200!

doTransactions - submit game transactions

This call is used to submit one or more transactions that happen in a game. All transactions refer to a gameround which is identified by a unique hash. Multiple transactions can be submitted in one call, however also multiple calls can happen. Each transaction is identified by a unique hash. This call has to be idempotent on these hashes.

Transactions should be processed in the order they are received, however a void operation for a debit transaction could be sent before the referred debit transaction is submitted, in that case the debit transaction, even if it is received after the void should be treated as voided.

If an error occurs in a debit transaction, subsequent credit transactions in the same request or the following requests should be declined and not processed. If at least one operation fails the HTTP return code should not be 200.

In case an initial debit request is received (isFirstDebit is set to true) and generates an error (like insufficient funds) the gameround should be treated as closed and no further debit / credit transactions should be accepted.

In case a follow up debit request is received (isFirstDebit is set to false) and generates an error (like insufficient funds) the debit transactions should not be performed, but the gameround should stay open and further debit / credit requests should be accepted. Note that you will never receive a debit request after an end command in a single call.

On return a player balance is expected indicating the new players balances after processing the transactions.

In case debit or credit transactions are received on a closed gameround and have not been processed before an error should be reported.

In case void calls are received they should be processed regardless of the state of the gameround.

Error handling for credit transactions

A credit transaction should never fail with a 5xx error. If it fails with a 5xx error it will be retried immediately. If further requests are failing it will be queued and retried in increasing intervals. Note that as long the credit call is not accepted the player won't be able to play the game as the gameround is still open. If a credit transaction is answered with a non-repeatable error previous debit transactions will be voided and the gameround will further be treated as voided.

If a previous credit transaction was successful, no debit and credit transactions should be voided and the gameround will be treated as crashed and should be reconciled.

List of actions that can be submitted

The following actions can be received in a transaction. You will always get at least one debit and one end transaction.

actionnotesmandatory during lifetime of a gameround
debita player placed a wager (bet), if isFirstDebit is set to true this indicates the start of a new gameroundYES
credita player won an amountNO
voidIf a void call for a gameround is received no further calls should be processed / accepted and no end transaction is to be expected as the round will be marked as cancelledUpon receipt of a void call for a gameround, all subsequent calls must be rejected/ignored, and an end transaction should not be anticipated, as the round will be automatically marked as cancelled. Transactions submitted for a gameround that has been voided must be responded to with an HTTP status code of 400.NO
endThe gameround is closed and no further transactions should be accepted unless void operations. Note that in case a VOID action was sent the end actions is not mandatory (although it could have been sent in a call with a combined debit + end transaction)YES unless a VOID was sent

Flows for transactions

The following diagrams should explain the handling of transactions.

Flow of a debit operation

operator-api figure 4

Flow of a credit operation

operator-api figure 5


POST /doTransactionssubmit an array of gameTransactions
request Parameters (JSON payload)
attributetypemandatorynotes
playerIdstringYESID that identifies the player at the operators site
gameCodestringYESID that identifies the game played, same code as in getGameUrl call
gameRoundhashYESgameround that brackets all transactions
transactionsarray of gameTransactionsYESlist of transactions that should be conducted, this array has to hold a least one entry
transactionCountnumberYEScount of transactions included in that payload, this should be the same as the length of the array of submitted transactions, If that differs the call should be rejected with an error code 400 and an error id 16
serialUsedstringNOContains the serial of ticket / freeplay package used for first deposit in this gameround. This is only set when there is no first deposit transaction in that call as the information will be contained in the field “serial” in transactions data. This field is supplied for informational purposes only to link credit + end transactions to a serial used if these are sent in separate calls. Note: This has to be activated by setting the flag “addSerialToTransactions” in the operator settings
ticketInformationObject (see below)NOIf a package of ticket / freeplays is finished in that gamerounds contains information about that ticket / freeplay like total amount won Note: This has to be activated by setting the flag “addSerialToTransactions” in the operator settings
{ serial: string; stake: number; won: number; isFinal: boolean; used: number; }
externalSessionIdstringNOReference to a session id passed in getGameURL call Note: this property is only sent when originally passed to the RGS in the getGameURL call and the session is active. If the round is to be auto-closed by the RGS built in janitor there might not be a session active and therefore no externalSessionID is sent. The call should be processed regardless if an externalSessionId is sent or not!
fields to sign (order is important)
secret + X-H-AUTH-ID + X-H-TIMESTAMP + playerId + gameCode + gameRound + all transaction hashes and if applicable amounts submitted Fields to sign for transactions have always to be in the same sequence as they are submitted in transactions payload. See an example here for a debit/end and here for a debit/credit/end transaction E.g. hash of first transaction Amount of first transaction (no amount added if there is no amount or amount is 0 (zero) e.g. end or void operation or debit with a ticket supplied) Hash of second transaction (no amount added if there is no amount or amount is 0 (zero) e.g. end or void operation or debit with a ticket supplied)
mandatory request header fields
X-H-AUTH-ID, X-H-AUTH-SIG, X-H-TIMESTAMP
returned attributes
attributetypemandatorynotes
balancesarray of playerBalance objectsYESone or two entries can be returned, one of them has to be “real” money, “bonus” money might be returned optional. Balances should reflect the balance after processing the transactions.
discountInfodiscountInfo structureNOOptional discount information, see Appendix E for details
useBonusFirstbooleanNO (defaults to true)true if bonus funds are to be used first, false if real money has to be used first. Note that this is just informational to be displayed in the games frontend if applicable by regulations
errorCodeerrorCodeNO / YES (in case of error)in case an error occurred HTTP status should not be 200 this error information should be returned. In case any of the transmitted hashes was not processed correctly this information is mandatory! This information will be used for error message display in games frontends!
clientMessageclientmessageNOdefines a message box to be displayed inside the game client. Can also be sent when an error occurred.
hashesProcessedarray of json objectsYESarray of transaction hashes and the result of processing. This should also be returned in case an error occurred. Transaction hashes not in that list will be assumed to not processed and therefore be treated as an error. For details see here. The errorCode structure returned in the hashesProcessed will be logged!

Structure of hashesProcessed

attributetypeallowed valuesmandatorynotes
hashhasha transaction hash submitted in the callYES
errorCodeerrorCodethe result of processing the transactionNOif not present processing of the call was successful

Retry Logic / Error handling

If a HTTP return code 5xx or a network error is received upon a doTransaction call containing debits no retries are made and a VOID transaction will be sent and the gameround will be marked as “canceled”

If a HTTP return code of 4xx is received upon a doTransaction call containing debits no retries are made and the gameround will be marked as “canceled”.

If the payload of the doTransaction call does not contain a debit but a credit the call will be retried on all error conditions until the call succeeded or the gameround stranded manually!

Scenarios and samples

The following paragraph describes some scenarios and sample calls.

Scenario 1: single shot gamerounds

Single shot game rounds are games where the outcome of the game is determined after the initial bet of the player (e.g. a normal spin). In this case all transactions are transmitted in a single call having 2 (in case of no win) or 3 (in case of a win) transactions. The initial debit should be treated as the start of a new game round. In case there is an error on the debit (e.g. no balance available) a possible credit call has to be forfeited and the gameround will be marked as closed and failed.

In case there is an error on credit and the http error code is >= 500 the call will be retried for a couple of times. In case error persists or the http error code is greater than 400 and less than 500 a void transaction for the debit will be sent and the gameround will be marked as closed and failed.

Following are some sample calls showing 2 cases with and without a win. All calls assume the initial balance of the player is EUR 10. Fields that have to be included in the signature are highlighted in red.

Sample for a one shot game without a win
Sample call for a one shot game without a winDescription
POST /doTransactionssubmit a list of transaction
Sample payloadDescription
{ "playerId": "sampleplayer", "gameCode: "testgame", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "transactions": [ { "type": "debit", "isFirstDebit": true, "currency": "EUR", "hash": "13536977-5cfa-430b-a019-18430d61b48f", "amount": 200, "timestamp": "2020-01-21T14:48:04Z", "reason": "spin" }, { "type": "end", "hash": "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12", "timestamp": "2020-01-21T14:48:04Z" } ], "transactionCount": 2 }The player did a spin for 2 EUR and didn't win anything, as no start game round is present; the first debit indicates the start of a new round. The gameround is immediately closed.
debit / end example of fields to sign for transaction [ "13536977-5cfa-430b-a019-18430d61b48f", 200, "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12" ]These fields have to be appended to the fields used for calculation of signature
Sample response (success)Description
{ "balances": [{ "type": "real", "amount": 800, "currency": "EUR" }], "hashesProcessed": [{ "hash": "13536977-5cfa-430b-a019-18430d61b48f" } ,{ "hash": "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12" }] }Return a real money balance of EUR 8.
Sample for a one shot game with a single win
Sample call for a one shot game with a winDescription
POST /doTransactionssubmit a list of transaction
Sample payloadDescription
{ "playerId": "sampleplayer", "gameCode: "testgame", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "transactions": [ { "type": "debit", "isFirstDebit": true, "amount": 200, "currency": "EUR", "hash": "13536977-5cfa-430b-a019-18430d61b48f", "timestamp": "2020-01-21T14:48:04Z", "reason": "spin" }, { "type": "credit", "amount": 150, "currency": "EUR", "hash": "4fac9a5d-3662-4f85-88ad-8301681d4b61", "timestamp": "2020-01-21T14:48:04Z", "reason": "3 symbols in line 1" }, { "type": "end", "hash": "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12", "timestamp": "2020-01-21T14:48:04Z" } ], "transactionCount": 3 }The player made a spin for 2 EUR and won EUR 1.50, as no start game round is present the first debit indicates the start of a new round. The gameround is immediately closed.
debit/credit/end example of fields to sign for transaction [ "13536977-5cfa-430b-a019-18430d61b48f", 200, "4fac9a5d-3662-4f85-88ad-8301681d4b61", 150, "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12" ]This fields have to be appended to the fields used for calculation of signature
Sample response (success)Description
{ "balances": [{ "type": "real", "amount": 950, "currency": "EUR" }], "hashesProcessed": [{ "hash": "13536977-5cfa-430b-a019-18430d61b48f" } ,{ "hash": "4fac9a5d-3662-4f85-88ad-8301681d4b61" } ,{ "hash": "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12" }] }Return a real money balance of EUR 9.50

Scenario 2: multiple transaction calls for a gameround

Multiple doTransactions calls are made when outcome of the game cannot be determined after the initial bet of the player (e.g. a bonus round is entered or in game free spins are awarded). In this case all transactions are transmitted in multiple calls having 1 or 2 transactions. The first call will always be an initial debit call, wins and additional bets will be transmitted in separate calls. At the end of the gameround an end action will be transmitted or appended to the last credit call. In case there is an error on the initial debit (e.g. no balance available) the gameround will be marked as closed and failed. No further calls to this game round should be accepted (except end action).

In case there is an error on credit and the http error code is >= 500 the call will be retried for a couple of times. In case error persists or the http error code is greater than 400 and less than 500 a void transaction for the debit will be sent and the gameround will be marked as closed and failed.

In case an error is received on submitting an additional bet (isFirstDebit is false) no further action should be taken as the game could continue with a smaller stake (in this case a new debit transaction will be sent).

In case a second initial bet is received for the same gamer round hash it should always be answered with an error as the gameround has already been started. No further action should be taken.

Following is an example of a multi transaction call flow. All calls assume the initial balance of the player is EUR 10. Fields that have to be included in the signature are highlighted in red.


Sample for a gameround with multiple calls (6 calls in this example)
Sample call sequence for multiple calls within a gameround (in this case a basic game + a bonus round with an additional wagerDescription
Sample payloadDescription
Sample response (success)Description
Step 1 POST /doTransactionssubmit initial debit and start a new gameround
Sample payloadDescription
{ "playerId": "sampleplayer", "gameCode: "testgame", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "transactions": [ { "type": "debit", "isFirstDebit": true, "amount": 200, "currency": "EUR", "hash": "13536977-5cfa-430b-a019-18430d61b48f", "timestamp": "2020-01-21T14:48:04Z", "reason": "spin" } ], "transactionCount": 1 }user bets an initial 2 EUR
Sample response (success)Description
{ "balances": [{ "type": "real", "amount": 800, "currency": "EUR" }], "hashesProcessed": [{ "hash": "13536977-5cfa-430b-a019-18430d61b48f" }] }Return a real money balance of EUR 8.
Step 2 POST /doTransactionsuser won on the basic spin
Sample payloadDescription
{ "playerId": "sampleplayer", "gameCode: "testgame", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "transactions": [ { "type": "credit", "amount": 150, "currency": "EUR", "hash": "4fac9a5d-3662-4f85-88ad-8301681d4b61", "timestamp": "2020-01-21T14:48:04Z", "reason": "3 symbols in line 1" }, ], "transactionCount": 1 }user wins EUR 1.50 from basic spin
Sample response (success)Description
{ "balances": [{ "type": "real", "amount": 950, "currency": "EUR" }], "hashesProcessed": [{ "hash": "4fac9a5d-3662-4f85-88ad-8301681d4b61" }] }Return a real money balance of EUR 9.50.
Step 3 POST /doTransactionsuser places a continuation bet
Sample payloadDescription
{ "playerId": "sampleplayer", "gameCode: "testgame", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "transactions": [ { "type": "debit", "isFirstDebit": false, "amount": 170, "currency": "EUR", "hash": "2f1e3eeb-4330-4d26-87d8-4a72b3fdc4d6", "timestamp": "2020-01-21T14:48:04Z", "reason": "get more scatters bet for bonus round" } ], "transactionCount": 1 }user bets EUR 1.70 to get additional scatters in a bonus game
Sample response (success)Description
{ "balances": [{ "type": "real", "amount": 780, "currency": "EUR" }], "hashesProcessed": [{ "hash": "2f1e3eeb-4330-4d26-87d8-4a72b3fdc4d6" }] }Return a real money balance of EUR 7.80.
Step 4 POST /doTransactionsuser wins in a bonus game
Sample payloadDescription
{ "playerId": "sampleplayer", "gameCode: "testgame", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "transactions": [ { "type": "credit", "amount": 950, "currency": "EUR", "hash": "02ab706a-749a-4851-894b-ba48bec74ec4", "timestamp": "2020-01-21T14:48:04Z", "reason": "win in bonus game" }, ], "transactionCount": 1 }user wins EUR 9.50 in the bonus game
Sample response (success)Description
{ "balances": [{ "type": "real", "amount": 1730, "currency": "EUR" }], "hashesProcessed": [{ "hash": "02ab706a-749a-4851-894b-ba48bec74ec4" }] }Return a real money balance of EUR 17.30.
Step 5 POST /doTransactionsthe gameround is closed
Sample payloadDescription
{ "playerId": "sampleplayer", "gameCode: "testgame", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "transactions": [ { "type": "end", "hash": "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12", "timestamp": "2020-01-21T14:48:04Z" } ], "transactionCount": 1 }gameround is finished, no more debits and/or credits should be accepted
Sample response (success)Description
{ "balances": [{ "type": "real", "amount": 1730, "currency": "EUR" }], "hashesProcessed": [{ "hash": "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12" }] }Return a real money balance of EUR 17.30.
Step 4a (replaces 4+5) POST /doTransactionsthis is an alternative to steps 4 + 5 where the gameround is closed with the last credit
Sample payloadDescription
{ "playerId": "sampleplayer", "gameCode: "testgame", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "transactions": [ { "type": "credit", "amount": 950, "currency": "EUR", "hash": "02ab706a-749a-4851-894b-ba48bec74ec4", "timestamp": "2020-01-21T14:48:04Z", "reason": "win in bonus game" }, ], [ { "type": "end", "hash": "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12", "timestamp": "2020-01-21T14:48:04Z" } ], "transactionCount": 2 }user wins EUR 9.50 in the bonus game, then the gameround is finished, no more debits and/or credits should be accepted
Sample response (success)Description
{ "balances": [{ "type": "real", "amount": 1730, "currency": "EUR" }], "hashesProcessed": [{ "hash": "02ab706a-749a-4851-894b-ba48bec74ec4" },{ "hash": "b92f866a-5fe9-4ac1-ae0d-9f403dfe1a12" }] }Return a real money balance of EUR 17.30.

logEvent (optional)

This call is used to inform the operator of any events that might happen. This can be turned on/off by logging in with your credential to the hizi.io backoffice. An event is always bound to a player and optional to a gameround. Events might include big wins or other events that might happen during a game (free spins won, bonus level entered). Please refer to Appendix A for details on events

It is the operator responsibility to store this data. It is recommended to expose these events to the operator helpdesk as it might contain information about big wins or big stakes.

POST /logEventsubmit a event
request Parameters (JSON payload)
attributetypemandatorynotes
playerIdstringYESID that identifies the player at the operators site
gameRoundhashNOgameround that the event is bound to
eventTypestringYESa string describing the event
eventDatajsondataNOa json structure describing the event, please refer to Appendix A, which describes the possible values.
reasonstringNOoptional reason of this call
fields to sign (order is important)
secret + X-H-AUTH-ID + X-H-TIMESTAMP + playerId + (gameround if present in payload)
mandatory request header fields
X-H-AUTH-ID, X-H-AUTH-SIG, X-H-TIMESTAMP
returned attributes
attributetypemandatorynotes
errorCodeerrorCodeNOin case an error occurred HTTP status should not be 200 and additional error information can be returned

Sample call to submit an event

Fields that have to be included in the signature are marked in red.

Sample call to report a bonus winDescription
POST /logEventreport a bonus win
Sample payloadDescription
{ "playerId": "sampleplayer", "gameRound": "04d4e7fc-092b-459e-bd32-c41343b4af2a", "eventType": "BONUSROUND", "eventData": { "credit": { "amount": 950, "currency": "EUR" }, "freespins": 10 }, "reason": "Player got 10 freespins" }the player was awarded 10 in game free spins and has won EUR 9.50
Sample response (success)Description
{ }empty response

doGameRoundReport (optional)

This call sends game round details only after the round has been closed. The payload includes the most important details of a game round, which can be used for reporting and historical purposes.

The operator must request that this endpoint be enabled; otherwise, requests will not be sent out.

POST /doGameRoundReportsubmit game round detail (for closed game round)
request Parameters (JSON payload)
attributetypemandatorynotes
gameRoundDetailjsondataYESGame round payload
fields to sign (order is important)
secret + X-H-AUTH-ID + X-H-TIMESTAMP
mandatory request header fields
X-H-AUTH-ID, X-H-AUTH-SIG, X-H-TIMESTAMP
returned attributes
attributetypemandatorynotes
errorCodeerrorCodeNOin case an error occurred HTTP status should not be 200 and additional error information can be returned

Sample call to submit a game round

Fields that have to be included in the signature are marked in red.

Sample call to report a bonus winDescription
POST /doGameRoundReportSend a game round’s payload
Sample payloadDescription
{ "gameRoundDetail": { "hash": "789b5513cb1a499dba181c6091c57d36", "mode": "REAL", "game": "bg-olympus-gold-96", "operator": "internal_testoperator", "status": "closed", "player": "acfbf7980c4d4add8688c944c9c2a22a", "language": "EN", "currency": "EUR", "environment": "gmzp", "timestamp": "2025-07-08T13:22:01.874+00:00", "baseStake": 10, "totalBetAmount": 10, "totalPayedAmount": 10, "totalWinAmount": 15, "dataStored": {}, "ticketUsed": false, "balanceAfter": 9075, "transactions": [ { "hash": "789b5513cb1a499dba181c6091c57d36", "type": "debit", "amount": 10, "payed": 10, "isFirstDebit": true, "currency": "EUR", "timestamp": "2025-07-08T13:21:44.599Z", "balanceAfter": 9060 }, { "hash": "3ef71295e3924915aec018ee32d10e17", "type": "credit", "amount": 15, "payed": 15, "currency": "EUR", "timestamp": "2025-07-08T13:22:01.555Z", "balanceAfter": 9075 }, { "hash": "637310141d1c4fdf8dc8579e0b8dec21", "type": "end", "currency": "EUR", "timestamp": "2025-07-08T13:22:01.855Z", "balanceAfter": 9075 } ] } }Game round payload
Sample response (success)Description
{ }empty response

doGameRoundResult (optional)

This call sends the gameround result only after the round has been closed. The payload includes a HTML representation of a game result. The operator must request that this endpoint be enabled; otherwise, requests will not be sent out.

POST /doGameRoundResultsubmit game round result (for closed game round)
request Parameters (JSON payload)
attributetypemandatorynotes
gameCodestringYESGame code
msgstringYESBASE64 encoded HTML which can be used to display the game round. Buffer.from(body.msg,'base64').toString('utf-8');
gameRoundhashYESGame round Id
playerIdstringYESPlayer id
fields to sign (order is important)
secret + X-H-AUTH-ID + X-H-TIMESTAMP + gameRound + gameCode + playerId + msg
mandatory request header fields
X-H-AUTH-ID, X-H-AUTH-SIG, X-H-TIMESTAMP
returned attributes
attributetypemandatorynotes
errorCodeerrorCodeNOin case an error occurred HTTP status should not be 200 and additional error information can be returned

Sample call to submit a game round result

Fields that have to be included in the signature are marked in red.

Sample call to report a bonus winDescription
POST /doGameRoundResultSend a game round’s HTML result
Sample payloadDescription
{ "gameRound": "789b5513cb1a499dba181c6091c57d36", "playerId": "acfbf7980c4d4add8688c944c9c2a22a", "gameCode": "bg-olympus-gold-96", "msg": "<html>...</html>" }Game round payload
Sample response (success)Description
{ }empty response

reportAnimationEnd (optional)

This call is sent to the operator once the animation of the current gameround is finished and the spin / play button is active again and the player can start a new game. The call should never fail and always report HTTP 200 (success) back.

Usecase:

Gamerounds can be single Transaction and the gameround will be closed immediately in one doTransactions call client animations can still happen (so from a players point of view the game is still running). For certain legal frameworks where game start / end events are sent to a safe server to the regulator this call can be used to report correct game start / end events. This is mostly useful for German regulations.

The operator must request that this endpoint be enabled; otherwise, requests will not be sent out.

POST /reportAnimationEndsubmit game round detail (for closed game round)
request Parameters (JSON payload)
attributetypemandatorynotes
gameRoundhashYESGame round to be reported as finished
fields to sign (order is important)
secret + X-H-AUTH-ID + X-H-TIMESTAMP + gameRound
mandatory request header fields
X-H-AUTH-ID, X-H-AUTH-SIG, X-H-TIMESTAMP
returned attributes
attributetypemandatorynotes
errorCodeerrorCodeNOin case an error occurred HTTP status should not be 200 and additional error information can be returned

Sample call to submit a game round

Fields that have to be included in the signature are marked in red.

Sample call to report a bonus winDescription
POST /gameRoundGameround is finished (animation stopped)
Sample payloadDescription
{ "gameRound": "8a73676f4e5c4b4d8507b526f48b4f4d" }Game round payload
Sample response (success)Description
{ }empty response

ping

This call is used to test the availability of the operator's service. It can be called any time and should return an HTTP error code 200 to confirm operation. Additional performance data might be returned which can be used for extended monitoring.

In case of getting repeated errors on this call you will be notified via the hizi.io Backoffice.

GET /pingcall operator to confirm operation
request Parameters (URI parameters)
attributetypemandatorynotes
NONE
fields to sign (order is important)
secret + X-H-AUTH-ID + X-H-TIMESTAMP
mandatory request header fields
X-H-AUTH-ID, X-H-AUTH-SIG, X-H-TIMESTAMP
returned attributes
attributetypemandatorynotes
performanceDatajsondataNOadditional data that could be used for monitoring
errorCodeerrorCodeNOin case an error occurred HTTP status should not be 200 and an additional error information can be returned

Sample call to test availability of operator service

Sample call, fields that have to be included in the signature are highlighted in redDescription
GET /pingget operational status
Sample response (success)Description
{ "performanceData": { "status": "operational" } }got a success and return an optional status