Appearance
(Operator implements, optional) Receive the details of a closed round
POST
/doGameRoundReport
Sends the most important details of a gameround after the round has been closed, for reporting and historical purposes. The operator has to request that this endpoint be enabled; otherwise nothing is sent.
Fields to sign (in order): secret, X-H-AUTH-ID, X-H-TIMESTAMP.
Authorizations
hiziAuthId
Operator ID. Sent on every request in both directions, and part of every signature.
Type
API Key (header: X-H-AUTH-ID)
hiziAuthSignature
Signature of the request, sent on every request in both directions.
OpenAPI cannot express an HMAC-over-computed-string scheme natively, so this is modelled as an apiKey header. The value is not a static key: it is the base64-encoded SHA-256 HMAC digest of a defined, ordered set of request fields joined with a hash character (#).
The first three fields are always the shared secret, the X-H-AUTH-ID header and the X-H-TIMESTAMP header; the remaining fields differ per operation and are listed in each operation's description under "Fields to sign". For doTransactions the per- transaction hashes (and non-zero amounts) are appended in exactly the order the transactions appear in the payload.
The secret is retrieved by logging in to the hizi.io backoffice, which also provides sample implementations. Including the timestamp in the signature is what makes it safe to share the secret without ever sending it.
Type
API Key (header: X-H-AUTH-SIG)
hiziTimestamp
ISO 8601 timestamp of the request (UTC recommended, e.g. 2020-01-21T14:48:04Z). Sent on every request in both directions and always included in the signature.
Type
API Key (header: X-H-TIMESTAMP)
Request Body
application/json
JSON "gameRoundDetail": { "hash": "123e4567-e89b-12d3-a456-426655440000", "mode": "string", "game": "string", "operator": "string", "status": "string", "player": "string", "language": "en", "currency": "EUR", "environment": "string", "timestamp": "2020-01-21T14:48:04Z", "baseStake": 1200, "totalBetAmount": 1200, "totalPayedAmount": 1200, "totalWinAmount": 1200, "dataStored": { "additionalProperties": "string" }, "ticketUsed": true, "balanceAfter": 1200, "transactions": [ { "type": "string", "isFirstDebit": true, "amount": 1200, "discountAmount": 1200, "discountCampaignId": "string", "currency": "EUR", "hash": "123e4567-e89b-12d3-a456-426655440000", "timestamp": "2020-01-21T14:48:04Z", "reason": "string", "freePlayStake": 1200, "freePlayUsed": true, "serial": "string", "payed": 1200, "balanceAfter": 1200 } ], "additionalProperties": "string" }
{
}
Responses
Success. The documented sample response is an empty JSON object; an errorCode object may be present but is ignored on a 200 unless X-H-ERROR-ID is also set.
application/json
JSON "errorCode": { "id": 1, "msg": "player id unknown", "clientmsg": "You reached your daily betting limit!" }, "additionalProperties": "string"
{
}