Once the operator successfully completes integration, iMoon performs tests using the test website and credentials previously provided by the operator in the questionnaire. We run both manual and automated tests to verify the accuracy of the integration and assess the operator's webhook response performance.
The bet status will be CASHBACK if the bet amount and the win amount
for a single bet are equal, signifying that the player neither won nor lost.
For instance, if a player bets $10 and receives $10 after the round,
the bet status will be CASHBACK Some operators may view
CASHBACKas a win, but you can categorize it as you see fit
internally.
The RollbackRequestItemStatus will be either BET or
WIN. Note that rolling back a WIN transaction is
currently not applicable to existing games but will be used for live sports
betting in the future.
For instance, if a player places a bet and
decides to cancel it before the round starts, iMoon will request the operator to
roll back the bet by calling the /rollback webhook.
In
another case, if the operator responds after the round has started due to high
latency or other reasons, the bet will be rejected. To ensure the funds are
returned to the user's balance, iMoon will call the /rollback webhook
for that bet.
You can access and play iMoon games live on the iMoon website at https://www.imoon.com
The countries with ISO restrictions are as follows:
Currently, iMoon supports "seamless wallet" integration.
If iMoon receives an INTERNAL_ERROR response for a
/bet request, the /rollback webhook will be triggered to
ensure the bet hasn't been deducted from the player or to reverse it if it has
been.
If the operator responds with an INTERNAL_ERROR for
/result or /rollback requests, a retry mechanism will be
triggered. This adheres to a set retry policy outlining time intervals and the
maximum number of retry attempts.
Default retry timings (in seconds,
following the previous attempt):
The brandId and brandName fields are optional parameters
for identifying your internal brands. If you operate multiple brands, you can
include these fields when sending /launch API request and when
sending /playerInfo Webhook Response. When you opt into using brands,
please make sure to provide brand values in both /launch API Request
and /playerInfo Webhook Response together (not only one). This allows
for the generation of brand-specific data and reports in your back office.
iMoon calls the playerInfo webhook immediately after each game is
launched. This request is used to collect details about the player, such as their
chosen currency and current balance.
iMoon supports nearly all currencies. Technically you're free to launch the game in any currency you choose, either initially or at any time in the future. However, some legal limits may apply.
To cancel an unresolved bet, we offer the "rollback" feature. If an unsettled bet
needs to be canceled, it can be handled through this function.
Regarding claiming a win, iMoon doesn't offer a separate method for
this. The operator will receive the results for all bets, regardless of their
status, through the result webhook. This includes details for
WON, LOST, and CASHBACK bets.
Refer to Free Bets section.
Yes, the operator can return the same balance for all. iMoon uses it to update the balance displayed in the game UI.
We don't provide swagger, instead we provide a Postman collection.
Notes: (A gaming session is any start of the game by the player. Such as a player
launches the game - a session runs. The player then closed the game and opened it
again - a new session runs) iMoon launch API accepts an optional
playerToken
parameter that will be returned to the operator with all subsequent requests
related to that launch. If the operator launches a player with a unique
playerToken for every launch, it will be the expected session ID.
iMoon doesn't take any action on this token, it's just a way for the operator to
track bets and results for each launch.
Player network disconnection is not an unexpected error. The round will proceed as intended like the player is in the game. The auto cash out will be applied as has been set by the player. The only difference is that the player won't be able to cash out manually.
Yes, the gameplay description is available in all of the games, usually marked by an information icon.
iMoon doesn't impose a bet limit on their end, but we strongly recommend that operators set limits based on their acceptable risk. We also offer the ability to set bet limits, such as minimum stake, maximum stake, and maximum win amount, on a per-currency basis.
Scenario 1:
If a player places a bet and decides to cancel it before the
round starts, the operator will receive a rollback request for that bet.
Scenario 2:
If iMoon sends a bet request to the operator and the
operator responds with an internal error or if the request takes longer than
expected (resulting in a timeout), iMoon will initiate a rollback request. This is
to ensure that the bet amount is either not deducted from the player's balance or,
if it has been deducted, is refunded.
Note: For Casino games, the
operator will not receive a rollback request for resolved bets.
The webhook authorization token is required by iMoon from the
operator and can be in various forms like JWT, UUID, or string, depending on the
operator's preferences. This token is used by iMoon to make calls to the
operator's webhooks. After the questionnaire is completed, iMoon provides the
operator with an API authentication token, which is a JWT needed for
calling iMoon's APIs.
In this context,
API refers to the endpoint that the operator consumes for launching
the game, such as the Launch and Games APIs provided by iMoon. On the
other hand, webhook refers to the URLs produced by the operator for
multiple functionalities like Player Info, Bet, Result, and Rollback. iMoon calls
these webhooks to enable the operator to update and report back on their internal
state.
Yes, all handled responses, whether indicating errors or success, will be returned with a 200 HTTP status code.
Yes, iMoon does support cryptocurrencies. However, legal terms should be applied.
The betAmount should be subtracted from the player's balance during
the bet request. Later, during the result request, the
winAmount should be added to the player's balance.
iMoon supports most of the major languages by default. If a specific language is required, iMoon is fully prepared to add it within a timeframe of 2-3 days.
The webhook responses are created by you, not by us. and this APIs must return
answer with http status 200. We have the /launch and
/games APIs, and the responses always return a 2xx status. For
/launch the 201 is the only handled status we have.
You can reach out to us, you will be guided to the client area.
The req.winners array contains a list of winners who are to receive
prizes. However, the req.winnersCount may not correspond to the
actual number of winners in the array, due to the tournament being international
and featuring players from various operators.
For instance, consider the outcome of a global tournament:
If you represent OperatorB, you would receive a tournament request like the following:
{
"winners": [
{
"bet": {
"betAmount": 10,
"betId": "00DE7A75-E416-4A3E-B721-000000000001",
"currency": "USD",
"gameId": "1001",
"playerId": "Player200",
"resolvedAt": 1696938100000,
"status": "WON",
"winAmount": 2031.4
},
"nickname": "Player200 nickname",
"playerId": "Player200",
"prizeWon": {
"amount": 1000000,
"amountInBetCurrency": 1000000,
"betCurrency": "USD",
"currency": "USD",
"prizeType": "MONETARY",
"title": "$1,000,000"
},
"winOdds": 203.14
}
],
"winnersCount": 3
}
This indicates that there were three winners globally, but only one belongs to
your platform. You are responsible for crediting the prize to that single player's
balance. The winnersCount is purely for information and requires no
action on your part.
When uniqueWinnerOnly is set to true, each participant
in the tournament is eligible to win only one prize. Conversely, if the value is
false, participants can secure multiple prizes.
The tournament winners are determined based on the highest cash-out multiplier achieved.
For example, let us say Player1 has cashed out at 200x and 201x, while Player2 and Player3 have cashed out at lower multipliers.
If uniqueWinnerOnly is set to true, the tournament
outcome will acknowledge Player1 solely for their top cash-out of 201x, granting
them the reward for being the first-place winner.
Conversely, if uniqueWinnerOnly is false, Player1 will
receive two awards, corresponding to the first and second-place wins.
Therefore, setting uniqueWinnerOnly to true corresponds
to a "Per Player Winner" approach, whereas setting it to false aligns
with a "Per Bet Winner" approach.
Yes, it is possible for a player holding one currency, such as USD, to participate in a tournament that awards prizes in another currency, like EUR.
The prizes are distributed in the currency specified by the tournament, regardless of the various currencies the participants may hold.
For the same tournamentId, an operator might receive more than one
Tournament Result webhook request.
In this scenario, the res.status should always be OK in
each corresponding response. INTERNAL_ERROR should not be returned by
the operator unless there was an actual internal error such as in processing the
request or awarding the winners.
The operator must reward each winning player only once regardless of how many webhook requests have been received.
Please refer to "Retry Policy" point in https://wiki.imoon.com/operator-webhook-endpoints.
Please refer to "Timeout Policy" point in https://wiki.imoon.com/operator-webhook-endpoints.
Please refer to "Idempotency" point in https://wiki.imoon.com/operator-webhook-endpoints.
If you notice an Open Bet (Bet has `/bet` webhook but no `/result` nor `/rollback` webhook) then please contact support. So we can either settle the bet or advise if there is an issue that requires a manual refund.
Tournament payouts are handled weekly. iMoon provides a list of winners, and payouts are either sent to the operator or deducted from the GGR invoice, with monthly adjustments. Contact your Account Manager for more information.
To participate in the tournament, bets must be placed within the tournament's start and end dates and meet the specified currency conditions. Each currency condition defines the eligible currency and its corresponding minimum bet amount. The tournament runs weekly from Monday 00:00:00 UTC to Sunday 23:59:59 UTC, with a $10,000 prize pool available each week. Operators may continue to participate and nominate players for prizes in subsequent weeks. Additionally, operators are required to follow tournament rules, including updating and displaying the tournament banner on their website (please contact support for Tournament Banner). Failure to comply may affect participation. For more information, please refer to https://imoon.com/company/tournament.