Error Codes All error status codes used in the 155.io API
This page lists all error status codes used across the API.
Status Description INVALID_SIGNATURERequest signature validation failed. Check your signing implementation.
Status Description EXTERNAL_SERVICE_TIMEOUT_ERRORRequest to external service timed out. Retry the request.
Errors returned by our endpoints.
Status HTTP Code Description UNKNOWN_OPERATOR404 No operator exists for the provided operatorId
Status HTTP Code Description VALIDATION_ERROR400 Invalid request (missing required fields, invalid format) FREEBETS_NOT_ENABLED400 Freebets feature not enabled for your operator. Contact us to enable. PLAYER_NOT_FOUND404 Player with the provided clientPlayerId does not exist REWARD_ALREADY_EXISTS409 A reward with this clientRewardId already exists UNKNOWN_ERROR500 Internal server error
Status HTTP Code Code Description REWARD_NOT_FOUND404 9001 No reward exists for the provided clientRewardId REWARD_CANNOT_BE_CANCELLED409 9006 At least one freebet has been used — reward cannot be cancelled REWARD_NOT_STARTED409 9007 Reward was scheduled for a future startTime and freebets hadn't been generated yet. The reward is transitioned to cancelled — treat this as a successful cancellation UNKNOWN_ERROR500 — Internal server error
Errors you should return from your endpoints. All operator API responses must use HTTP 200 with the error status in the JSON body.
Always return HTTP 200, even for error responses. Our system checks the HTTP status code and treats any non-200 response as a transport-level failure, which may trigger retries or rollbacks before the response body is parsed.
Status Description SESSION_EXPIRED_ERRORPlayer session has expired PLAYER_NOT_FOUND_ERRORPlayer does not exist SESSION_NOT_FOUND_ERRORSession does not exist UNKNOWN_ERRORAny other error
Status Description INSUFFICIENT_BALANCE_ERRORPlayer does not have enough balance for this bet DUPLICATE_TRANSACTION_ERRORTransaction ID already exists (idempotency) BONUS_ERRORBet does not pass bonus rules BET_LIMIT_REACHED_ERRORPlayer has reached their betting limit VALIDATION_ERRORMissing or invalid mandatory fields UNKNOWN_ERRORBet could not be registered
Status Description DUPLICATE_TRANSACTION_ERRORTransaction ID already exists (idempotency) VALIDATION_ERRORMissing or invalid mandatory fields UNKNOWN_ERRORWin could not be registered
Status Description DUPLICATE_TRANSACTION_ERRORTransaction ID already exists (idempotency) VALIDATION_ERRORMissing or invalid mandatory fields UNKNOWN_ERRORRollback could not be processed
Any status not listed above is treated the same as UNKNOWN_ERROR.
These internal errors may occur when a player attempts to use a freebet. They are handled by 155.io and the player will see an appropriate message.
Code Error Description 16010 FREEBET_INSUFFICIENT_AMOUNTFreebet amount is less than the minimum bet requirement 16011 FREEBET_NOT_APPLICABLE_FOR_GAMEFreebet is restricted to specific games and cannot be used on this game 16012 FREEBET_CURRENCY_MISMATCHFreebet currency does not match the game/bet currency 16013 FREEBETS_NOT_ENABLEDFreebets are not enabled for this operator
All error responses should include the status field and echo back the requestId and clientPlayerId:
{
"status" : "ERROR_CODE_HERE" ,
"requestId" : "original-request-id" ,
"clientPlayerId" : "player-id"
}
All responses must be signed with the X-Marbles-Signature header, including error responses.