Odds
Odds
Table of Contents
1. Introduction
The integration of the Mobadoo odds feed can be divided into three parts: pre match, live and webhook odds.
Pre match: these are the odds of the matches before the match
Live: live odds
Webhook: gives us the information that the matches have suffered in the pre match phase
2. Status Quotas
Mobadoo has different states to define at the moment the probabilities are found. We list the following statuses for both PRE and LIVE.
OP: odd open (SI se permite realizar apuesta)
TD: odd trading (SI se permite realizar apuesta)
SP: odd suspended (Can not be bet)
CL: odd closed (Can not be bet)
In the following graph we have an evolution of the odd during the match in Pre-Match and Live-Match
The odds evolve from OP – SP – TD to the CL state, in which it is not allowed to return to any of the previous states
3. Life cycle proposed
Mobadoo proposes the call’s cycle to be done as described above, for a more comfortable and secure way.
As shown in the image, a generic call should be periodically done for obtaining the upcoming matches information. From each obtained match, its information, as well as its games information, must be extracted.
3.1 First step: video-games and markets
Previous to calls for every game’s matches, it is required to know the games and markets to be called.
For obtaining the actives video-games and be able to call each one of them, the following method should be used:
GET: https://api-stage.mobadoo.com/api/v1/videgames
This will provide the list of the account’s active games and, from it, the required information for executing the calls for each video-game, using the URL parameter
Listing of each video-game markets, once identified:
GET: https://api-stage.mobadoo.com/api/v1/lol/markets
3.2 Second Step: Matches list
For obtaining the list of matches, the following method should be used:
GET: https://api-stage.mobadoo.com/api/v1/lol/match/?limit=25&ordering=begin_at&date_range_before=2021-01-01T00:00:00Z&date_range_after=2021-01-15T23:59:59Z
It will provide the marches from upcoming days, and weeks, as it is determined in the specified date range. This call will give the matches IDs, for afterward extracting the odds, from the match and from the games that compone it.
Running over the matches list for obtainig their odds
Reading previous matches and adding the match ID to the odds for acquiring the information
GET: https://api-stage.mobadoo.com/api/v1/csgo/match/<id_of_the_match>/odd/
Reading the selected match games before acquiring their odds
GET: https://api-stage.mobadoo.com/api/v1/csgo/game/<id_of_the_game>/odd/
Players and matches information
To get the complete information of what happened in the match and in the played game, once the match ended, a call to the same match is made, and all the information of the teams and its members would be obtained.
A call for each games of the match should be made for receiving their statistics:
GET: https://api-stage.mobadoo.com/api/v1/csgo/game/<id_of_the_game
3.3 Third Step: Webhook
The webhook is a real time notification system of changes in the state of the matches’ data. This is functionality designed for keeping the pre-match information always updated.
This function objective is to avoid unnecessary calls to be made, but only when it is needed.
- Changes in the matches’ data: status, date modification, …
- Odds updates
The notification URL is configured on the user profile of the backoffice console, and the system will notify of the changes made to the matches’ information.
Desynchronization
In the case of a desynchronization, Mobadoo’s system will notify the need for data to be updated.
For updating the data, a new cycle of calls, explained in the life cycle section, and, once finished, Mobadoo should be informed, by using an endpoint, that the synchronization has ended.
The call to the endpoint is shown below:
GET: https://api-stage.mobadoo.com/api/v1/notifications/reset?token=XXXX
3.4 Fifth step: Live
Mobadoo uses live websocket connection for live.
For the integration of the live data, it is required a subscription to the matches of each game. The Live system is under subscription of each match for each video-game.
Each game will have the websocket format shown below:
wss://api-stage.mobadoo.com/ws/csgo-live?match_ids=559549&token=XXXXX
In the information of the match obtained previously and saved there is a parameter called has_live that tells us if that match is going to have live or not and thus be able to subscribe to the websocket
To subscribe to the games we can do it in two ways:
- Single match: match_ids = XXX
- Various matches:
- match_ids=XXX&match_ids=XXXX
- match_ids[]=XXXX, XXXX (you can’t just put one id, you always need several ids)
- Publicado en Documentation
Concepts
Concepts
1. Data hierarchy
For a better understanding of how eSports works, it is recommended to see its competition structure, for getting used to Mobadoo’s API.
The competition structure of games such as LOL, DOTA2, and CSGO, are very similar to traditional sports, such as Tennis, NBA and Football
Knowing that the structure that is being used in the API is the same for each videogame: LOL, DOTA2, CSGO, etc, speeds up the integration process. There are few exceptions, regarding specific details of certain video-games, such is the case of the weapons that would only be available in CSGO or LOL’s Champions, etc.
2. Match live cycle
In Mobadoo a match can go through different states as we offer in the graphic. The states are: NS, RU, FI, PT, CA
- Not Started (NS): The match is scheduled waiting to start.
- Running (RU): The match is running
- Finished (FI): The match its finished
- Postponed (PD): The match was reescheduled
- Canceled (CA): The match was canceled
- Publicado en Documentation
Pool
1. Introduction
The Quiniela integration is very simple because what is required to be integrated is a configuration of the quiniela templates that will be generated, that could be generated directly from the back office console, at https://dashboard.mobadoo.com.
2. Methods
The methods that are needed for the integration are:
- pool/: Quinielas’ list (Set of selected matches as defined in the settings)
- pool/{:id}: Quiniela information
- pool/{:id}/result: Quiniela resolution
- pool/running: Matches from an ongoing Quiniela
- pool/next: Matches of an upcoming Quiniela
- pool/templates: List of configured templates for generating Quiniela
- pool/templates/{:id}: Template information
- pool/templates/{:id}/generate: Quiniela generation based on the template ID.
- Publicado en Documentation
Wallet
Wallet
Table of Contents
1. Tickets Flowchart
The natural flow of a ticket would be ticket creation, its confirmation for assuring that it has been properly created, ticket resolution once the event has finished, and, in the exceptional case, the cancellation of the ticket.
The different states through which a ticket passes:
2. Possible configurations
Mobadoo’s WALLET allows a set of configurations for easing up the integration and for improving the performance of it, once the integration was done by our customer.
Such possible configurations can be managed from the back office console at https://dashboard.mobadoo.com/wallet/settings. Some of the configurations available are:
- Auto confirm tickets: this configuration provides the option of no deeding to implement the “confirm”, assuming that the ticket will be automatically confirmed.
- Auto resolve tickets: allowing the tickets to be automatically resolved, without needing to integrate the “/resolve”. This option requires a notification URL implemented, for the resolved tickets without the need to generate the calls
- market limit: the activation of the button is required for the tab to be shown, making available to place betting limits to betting markets for each video-game.
- player ban: the activation of the button is required for the tab to be shown, and making it possible to ban players if it is a suspicion of fraudulent activity.
3. Methods
The main methods designed for the complete integration of the wallet, are:
- /wallet/ticket/create (mandatory): use for ticket creation
- /wallet/ticket/confirm (optional): confirmation of the ticket creation on both sides
- /wallet/ticket/cancel (mandatory): tickets cancellation
- /wallet/ticket/resolve (optional): tickets resolution
- /wallet/ticket (optional): tickets consultation
- /wallet/ticket/<transaction_id> (optional): for collecting information of a ticket
4. Integration options
There several options for wallet integration, reducing the integration time, as well as calls’ quantity:
4.1 Option A (recommended)
In this option the autoconfirm and the auto-resolve of the wallet settings are activated, for then integrating the following methods:
- /wallet/ticket/create
- /wallet/ticket/cancel
- notifications’ URL
4.2 Option B
All methods to be implemented, but “confirm”. This option requires the implementation of the “resolve”
- /wallet/ticket/create
- /wallet/ticket/cancel
- /wallet/ticket/resolve
4.3 Option C
The full integration of all wallet’s methods for a higher control, from the gaming operator, of all communications.
- /wallet/ticket/create
- /wallet/ticket/confirm
- /wallet/ticket/cancel
- /wallet/ticket/resolve
5. Tickets information
For speeding up the integration, for consulting the tickets’ information, it is recommended to use the back office console, avoiding the need to implement the related methods,
Take note that for extracting the information, the implementation of the following methods is required:
- /wallet/ticket
- /wallet/ticket/<transaction_id>
6. Tips
This section describes the different tips available for each of Mobadoo’s contents. The data structure is the same, except when specific product selections are different.
6.1 Odds Tips
Regarding Odds, there are two options: simple and combination and need to be both implemented for giving service to all video-game betting.
6.1.1 Simple
Allows us to place single one-game bets, in other words, selecting one market only. Example:
{
"uuid": "YOUR USER ID",
"transaction_id": "YOUR TRANSACTION ID",
"currency": "EUR",
"tips": [
{
"product_type": "PRE",
"type": "SIMPLE",
"videogame": "lol",
"bet_amount": 10,
"selections": [
{
"match_id": 588790,
"match_name": "S04.E vs BTXL",
"odd_id": 1618858600658,
"quota": 2.380952380952381,
"spread": 100
}
]
}
]
}
6.1.2 Combined
Multiple selections of the same video-game
{
"uuid": "YOUR USER ID",
"transaction_id": "YOUR TRANSACTION ID",
"currency": "EUR",
"tips": [
{
"product_type": "PRE",
"type": "COMBINED",
"videogame": "lol",
"bet_amount": 10,
"selections": [
{
"match_id": 588790,
"match_name": "S04.E vs BTXL",
"odd_id": 1618858600658,
"quota": 2.380952380952381,
"spread": 100
},
{
"match_id": 588790,
"match_name": "S04.E vs BTXL",
"odd_id": 1618858600667,
"quota": 1.7241379310344827,
"spread": 100
}
]
}
]
}
6.2 Fantasy content tips
Roster generation by selection players
{
"uuid": "YOUR USER ID",
"transaction_id": "YOUR TRANSACTION ID",
"currency": "EUR",
"tips": [
{
"product_type": "FANTASY",
"type": "SIMPLE",
"videogame": "lol",
"bet_amount": 10,
"selections": [
{
"roster_id": 588790
},
{
"roster_id": 588791
},
{
"roster_id": 588793
},
{
"roster_id": 588794
},
{
"roster_id": 588795
}
],
"journey_id": 311
}
]
}
6.3 Pool content Tips
Picking selected matches for the Quiniela
{
"uuid": "YOUR USER ID",
"transaction_id": "YOUR TRANSACTION ID",
"currency": "EUR",
"tips": [
{
"product_type": "POOL",
"bet_amount": 0,
"pool_id": 937,
"selections": [
{
"market_id": "2",
"selection_id": 2,
"videogame": "dota2",
"match_id": "589497"
},
{
"market_id": "24",
"selection_id": 45,
"videogame": "dota2",
"match_id": "589497"
},
{
"market_id": "2",
"selection_id": 2,
"videogame": "dota2",
"match_id": "589525"
},
...
]
}
]
}
7. Error Codes
7.1 Generals
RS_ERROR_WALLET_NOT_CONFIGURED | ‘Lack of permissions for wallet access. Talk with your provider’, |
RS_ERROR_UNKNOWN | ‘UnknownError’, |
RS_ERROR_INVALID_VIDEOGAME | ‘No permission for accessing the video-game, or the video-game does not exist’, |
RS_ERROR_TRANSACTION_NOT_CONFIRMED | ‘The ticket has not been confirmed by the operator and can not be resolved’, |
RS_ERROR_INVALID_TIP_TYPE | ‘Unknown type of ticket’, |
RS_ERROR_INVALID_TIP_PRODUCT_TYPE | ‘Not valid product (TIP)’, |
RS_ERROR_TIP_MARKET_LIMIT | ‘Maximum allowed bet amount has been reached’, |
RS_ERROR_TIP_COMBINED_LIMIT | ‘Maximum combined bet has been reached’, |
RS_ERROR_MARKET_SELECTION | ‘Selected option does not exist for that match’, |
RS_ERROR_ODD_VALUE | ‘Invalid or outdated odd value’, |
RS_ERROR_ODD_INVALID_TYPE | ‘Invalid odd type’, |
RS_ERROR_INVALID_MATCH | ‘Unknown Match’, |
RS_ERROR_TIP_BET_AMOUNT_INVALID | ‘Invalid or non-received bet amount’, |
RS_ERROR_INVALID_GAME | ‘Unknown Game’, |
RS_ERROR_MARKET_CLOSED | ‘Market closed’, |
RS_ERROR_MISSING_UUID | ‘Wrong or missing UUID’, |
RS_ERROR_WRONG_CURRENCY | ‘Unkown currency’, |
RS_ERROR_USER_BANNED | ‘Banned User’, |
RS_ERROR_DUPLICATE_TRANSACTION | ‘Duplicated transaction’, |
RS_ERROR_MISSING_TRANSACTION | ‘TRANSACTION_ID missing’, |
RS_ERROR_MISSING_SELECTION | ‘Unknown selection’, |
RS_ERROR_ODD_SPREAD | ‘Wrong odd’s spread. Review setting at the back office console’, |
7.2 Transactions
RS_ERROR_TRANSACTION_ALREADY_CONFIRMED | ‘Transaction already confirmed’, |
RS_ERROR_TRANSACTION_ALREADY_CANCELED | ‘Transaction already canceled’, |
RS_ERROR_TRANSACTION_PREVIOUSLY_CANCELED | ‘Transaction previously canceled’, |
RS_ERROR_TRANSACTION_PREVIOUSLY_RESOLVED | ‘Transaction previously resolved’, |
RS_ERROR_TRANSACTION_NOT_RESOLVED | ‘Transaction not yet resolved’, |
RS_ERROR_TRANSACTION_DOES_NOT_EXIST | ‘TRANSACTION_ID does not exist’, |
7.3 Fantasy
RS_ERROR_FANTASY_NOT_CONFIGURED | ‘No Fantasy permission. Talk with the supplier’, |
RS_ERROR_FANTASY_INVALID_ROSTER_LENGTH | ‘Invalid amount of players’, |
RS_ERROR_FANTASY_INVALID_ROSTER_SELECTION | ‘Roster selection invalid’, |
RS_ERROR_FANTASY_INVALID_ROSTER_BUDGET | ‘Wrong roster budget’, |
RS_ERROR_FANTASY_JOURNEY_NOT_AVAILABLE_FOR_BETTING | ‘This journey does not allow betting’, |
7.4 Pool / Quiniela
RS_ERROR_INVALID_CURRENCY_POOL | ‘The betting pool does not allow this currency’, |
RS_ERROR_INVALID_POOL | ‘Betting Pool not valid’ |
- Publicado en Documentation
Webhook
Webhook
Table of Contents
1. Introduction
The webhook is a real time notification system of changes in the state of the matches’ data. This is functionality designed for keeping the pre-match information always updated.
This function objective is to avoid unnecessary calls to be made, but only when it is needed.
- Changes in the matches’ data: status, date modification, …
- Odds updates
The notification URL is configured on the user profile of the backoffice console, and the system will notify of the changes made to the matches’ information.
2. Desynchronization
In the case of a desynchronization, Mobadoo’s system will notify the need for data to be updated.
For updating the data, a new cycle of calls, explained in the life cycle section, and, once finished, Mobadoo should be informed, by using an endpoint, that the synchronization has ended.
The call to the endpoint is shown below:
GET: https://api-stage.mobadoo.com/api/v1/notifications/reset?token=XXXX
3 Models
In the webhook we will receive a series of models that will be as follows as detailed in the following points.
We have two main types:
- MODEL_CHANGE
- League
- Tournament
- Match
- Game
- TICKET_CHANGE
3.1 MODEL CHANGE
3.1.1 League
Information about changes in League type
{
"message": "MODEL_CHANGED",
"entity": "League",
"origin": "WS_LISTENER",
"videogame": "lol",
"result": {
"id": 4483,
"url": "https://iberiancup.lvp.global/",
"image_url": "https://images.mobadoo.com/images/league/image/4483/Iberiancup2020.png",
"slug": "league-of-legends-iberian-cup",
"name": "Iberian Cup",
"series": [
{
"id": 3069,
"begin_at": "2020-10-09T22:00:00Z",
"end_at": "2020-11-15T22:00:00Z",
"full_name": "2020",
"status": "finished",
"fantasy": false,
"year": 2020,
"slug": "league-of-legends-iberian-cup-2020",
"tier": "C-tier"
}
]
}
}
3.1.2 Serie
Information about changes in Serie type
{
"message": "MODEL_CHANGED",
"entity": "Serie",
"origin": "WS_LISTENER",
"videogame": "lol",
"result": {
"id": 3325,
"begin_at": "2021-02-04T23:00:00Z",
"end_at": "2021-03-13T23:00:00Z",
"full_name": "Spring 2021",
"season": "Spring",
"status": "postponed",
"fantasy": false,
"year": 2021,
"slug": "league-of-legends-lcs-spring-2021",
"league": {
"id": 4198,
"url": "https://nexus.leagueoflegends.com/en-us/esports/",
"image_url": "https://cdn.pandascore.co/images/league/image/4198/image.png",
"slug": "league-of-legends-lcs",
"name": "LCS"
},
"tournaments": [
{
"id": 5459,
"begin_at": "2021-02-05T23:00:00Z",
"end_at": "2021-03-15T01:00:00Z",
"name": "Regular Season",
"full_name": "LCS Spring 2021 Regular Season",
"winner_type": "Team",
"status": "finished",
"slug": "league-of-legends-lcs-spring-2021-split-regular-season"
}
],
"teams": [
{
"id": 311,
"name": "FlyQuest",
"acronym": "FLY",
"slug": "flyquest",
"image_url": "https://images.mobadoo.com/images/team/image/311/flyquest-academy-gx8a0xfs.png",
"players": [
{
"id": 1190,
"name": "Licorice",
"first_name": "Eric",
"last_name": "Ritchie",
"hometown": "Canada",
"role": "top",
"current_team": 311,
"slug": "licorice",
"image_url": "https://images.mobadoo.com/images/player/image/1190/220px_c9_licorice_2020_split_2.png"
}
...
]
}
...
],
"tier": "A-tier",
"odds": []
}
}
3.1.3 Tournament
Information about changes in Tournament type
{
"message": "MODEL_CHANGED",
"entity": "Tournament",
"origin": "WS_LISTENER",
"videogame": "codmw",
"result": {
"id": 5688,
"begin_at": "2021-04-07T20:00:00Z",
"end_at": "2021-04-12T00:30:00Z",
"name": "Major",
"full_name": "Call of Duty League Stage 2 2021 Major",
"winner_id": null,
"winner_type": "Team",
"prizepool": "500000 United States Dollar",
"status": "not_started",
"slug": "cod-mw-call-of-duty-league-stage-2-2021-major",
"league": {
"id": 4304,
"url": "https://callofdutyleague.com/en-us/",
"image_url": "https://images.mobadoo.com/images/league/image/4304/1200px-CallofDutyLeague.png",
"slug": "cod-mw-call-of-duty-league",
"name": "Call of Duty League"
},
"serie": {
"id": 3435,
"begin_at": "2021-03-18T17:00:00Z",
"end_at": "2021-04-12T01:00:00Z",
"full_name": "Stage 2 2021",
"season": null,
"status": "running",
"fantasy": false,
"winner_id": null,
"winner_type": null,
"year": 2021,
"slug": "cod-mw-call-of-duty-league-stage-2-2021",
"tier": "S-tier"
},
"matches": [
{
"id": 586687,
"begin_at": "2021-04-11T23:00:00Z",
"end_at": null,
"name": "Grand Final: TBD vs TBD",
"winner_id": null,
"forfeit": false,
"number_of_games": 9,
"draw": false,
"live_url": null,
"status": "not_started",
"slug": "2021-04-12-5c062a1a-3759-43a4-81ff-397e5a1b0f77",
"has_live": false,
"detailed_stats": false,
"ws_live_url": null,
"live_embed_url": null,
"official_stream_url": null
},
{
"id": 586686,
"begin_at": "2021-04-11T21:30:00Z",
"end_at": null,
"name": "Lower Bracket Final: TBD vs TBD",
"winner_id": null,
"forfeit": false,
"number_of_games": 5,
"draw": false,
"live_url": null,
"status": "not_started",
"slug": "2021-04-11-0472abfd-aae2-450a-a229-f90400bcf6c0",
"has_live": false,
"detailed_stats": false,
"ws_live_url": null,
"live_embed_url": null,
"official_stream_url": null
},
...
],
"teams": [],
"odds": []
}
}
3.1.4 Match
Information about changes in Match type
{
"message": "MODEL_CHANGED",
"entity": "Match",
"origin": "WS_LISTENER",
"videogame": "lol",
"result": {
"id": 579897,
"begin_at": "2021-03-22T11:16:23Z",
"end_at": "2021-03-22T11:54:50Z",
"name": "DRXC vs LSB",
"winner_id": 128344,
"forfeit": false,
"number_of_games": 1,
"draw": false,
"live_url": "https://www.twitch.tv/lck_challengers",
"status": "finished",
"slug": "drx-challengers-vs-liiv-sandbox-challengers-2021-03-22",
"league": {
"id": 4142,
"url": "https://lol.gamepedia.com/Challengers_Korea/2018_Season/Summer_Season#Schedule",
"image_url": "https://images.mobadoo.com/images/league/image/4142/_.png",
"slug": "league-of-legends-challenger-korea",
"name": "Challenger Korea"
},
"serie": {
"id": 3259,
"begin_at": "2021-01-18T06:15:53Z",
"end_at": null,
"full_name": "LCK CL Spring 2021",
"season": "Spring",
"status": "running",
"fantasy": false,
"winner_id": null,
"winner_type": null,
"year": 2021,
"slug": "league-of-legends-challenger-korea-lck-cl-spring-2021",
"tier": "C-tier"
},
"tournament": {
"id": 5357,
"begin_at": "2021-01-18T06:15:53Z",
"end_at": "2021-03-22T13:00:00Z",
"name": "Regular",
"full_name": "Challenger Korea LCK CL Spring 2021 Regular",
"winner_id": null,
"winner_type": "Team",
"prizepool": null,
"status": "running",
"slug": "league-of-legends-challenger-korea-lck-cl-spring-2021-regular"
},
"games": [
{
"id": 221666,
"begin_at": "2021-03-22T11:16:24Z",
"end_at": "2021-03-22T11:54:50Z",
"length": 2306,
"position": 1,
"winner_id": 128344,
"winner_type": "Team",
"status": "finished",
"video_url": null
}
],
"stats": [],
"teams": [
{
"id": 128344,
"name": "DRX Challengers",
"acronym": "DRXC",
"slug": "drx-challengers",
"image_url": "https://images.mobadoo.com/images/team/image/128344/dr_xlogo_square.png"
},
{
"id": 128349,
"name": "Liiv SANDBOX Challengers",
"acronym": "LSB",
"slug": "liiv-sandbox-challengers",
"image_url": "https://images.mobadoo.com/images/team/image/128349/liiv_sandbo_xlogo_square.png"
}
],
"live_markets": [
{
"id": 2,
"name": "Match Winner",
"slug": "winner2-way",
"type": "M",
"group": "WIN",
"has_live": true
}
],
"has_live": true,
"ws_live_url": null,
"detailed_stats": true,
"live_embed_url": "https://player.twitch.tv/?channel=lck_challengers",
"official_stream_url": "https://www.twitch.tv/lck_challengers",
"odds": [
{
"id": 1616363784800,
"market_id": 2,
"selection_id": 2,
"selection_name": "Team A",
"team_id": 128344,
"odd_decimal": "0.4922",
"odd_quota": "2.031694433157253149126371394",
"odd_fractional": "5000/2461",
"odd_american": 103,
"date_create": "2021-03-21T21:56:24Z",
"result": null,
"odd_origin": "PRE",
"status": "TDM"
},
{
"id": 1616363784809,
"market_id": 2,
"selection_id": 3,
"selection_name": "Team B",
"team_id": 128349,
"odd_decimal": "0.5778",
"odd_quota": "1.730702665282104534440983039",
"odd_fractional": "5000/2889",
"odd_american": -137,
"date_create": "2021-03-21T21:56:24Z",
"result": null,
"odd_origin": "PRE",
"status": "TDM"
}
]
}
}
3.1.5 Game
Information about changes in Game type
{
"message": "MODEL_CHANGED",
"entity": "Game",
"origin": "WS_LISTENER",
"videogame": "dota2",
"result": {
"id": 672490,
"begin_at": "2021-03-22T11:18:35Z",
"end_at": "2021-03-22T12:25:35Z",
"length": 2616,
"position": 1,
"winner_id": 128080,
"winner_type": "Team",
"status": "finished",
"odds": [
{
"id": 1616411039367,
"market_id": 3,
"selection_id": 4,
"selection_name": "Team A",
"team_id": 1660,
"odd_decimal": "0.89998021",
"odd_quota": "1.111135543747123061739324246",
"odd_fractional": "25265/22738",
"odd_american": -900,
"date_create": "2021-03-22T11:03:59Z",
"odd_origin": "PRE",
"status": "CL"
},
{
"id": 1616411039375,
"market_id": 3,
"selection_id": 5,
"selection_name": "Team B",
"team_id": 128080,
"odd_decimal": "0.17002193",
"odd_quota": "5.881594215522668164042132683",
"odd_fractional": "481532/81871",
"odd_american": 488,
"date_create": "2021-03-22T11:03:59Z",
"odd_origin": "PRE",
"status": "CL"
},
...
]
}
}
3.2 TICKET CHANGE
Information about ticket changes
{
"type": "TICKET_CHANGE",
"ticket": {
"id": 427,
"transaction_id": "k1pu9uiy69xl",
"uuid": "pgallego",
"date": "2021-02-09 01:04:55.690139+00:00",
"currency": "EUR",
"state": "RESOLVED",
"tips": [
{
"pool_id": 147,
"pool_name": "",
"id": 440,
"product_type": "POOL",
"bet_amount": 5,
"won_amount": 10018.75,
"status": "WIN",
"freebet": 0,
"bonus": 0,
"selections": [
{
"status": "WIN",
"videogame": "lol",
"match_id": 578675,
"match_name": "HLE vs AF",
"match_status": "finished",
"selection_id": 2,
"selection_name": "Team A",
"market_id": 2,
"market_name": "Winner 2-Way"
},
...
]
}
]
}
}
- Publicado en Documentation
Resources
Resources
Table of Contents
1. Introduction
In our Dashboard we can configure the different options of our technical API. In the section profile we can configure webhook, number of retries, endpoint for the iframe, etc.
We will describe this information in more detail below.
2. Development Environment
2.1 Resources
Mobadoo uses two environments for managing the integration process: Stage y Producción. The APIs’ URLs are the following:
- PRE-Production
- Websocket: wss://api-stage.mobadoo.com/
- Endpoint URL: https://api-stage.mobadoo.com/api/v1/
- Token: Test_key
- Online URL: https://online-stage.mobadoo.com/?hash=XXXX&client_id=XXXX&profile=XXXX
- PROduction
- Websocket: wss://api.mobadoo.com/
- Endpoint URL: https://api.mobadoo.com/api/v1/
- Token: Test_key
- Online URL: https://online.mobadoo.com/?hash=XXXX&client_id=XXXX&profile=XXXX
To make all the configurations of the Mobadoo API management, we will go to the profile section in the Mobadoo Dashboard
2.2 Token
The session TOKEN for the APIs could be found at the Mobadoo’s back-office console, in the profile section, as it is shown on the following image:
Clicking in the user name at the upper-right corner, highlighted in yellow, takes you to the account’s detailed information and configuration.
Clicking on the “eye” icon, it is possible to see it. It is also possible to copy it, clicking on the copy icon. The token allows you to place API calls as your user.
2.3 Token expiration
Even though the token does not expire, it could be refreshed from the back-office console.
3. Webhook
Mobadoo has designed a service in its system so that the customer does not have the need to be making constant calls.
Mobadoo with the webhook service will keep the client informed at all times about changes in product information from the ODDS.
We can configure the URL of the webhook in the Dashboard profile, as shown in the image. We can also configure the retry of calls if necessary, by default its set of 3 retries
4. Iframe URL
In this section we can configure the iframe url where Mobadoo will make the calls to generate the tickets and request the user’s credit
- Publicado en Documentation
Iframe integration documentation
Introduction
An iframe is an HTML element that allows to insert or embed an HTML document within the main HTML code.
This document describes how to integrate the different Mobadoo iframe products.
Considered products
The current version of the document uses QUINIELA as an integration example, although any of the iframe products integration must follow the seam patterns.
Development Environment
Resources
Mobadoo uses two environments for managing the integration process: Stage y Producción. The APIs’ URLs are the following:
- Websocket: ws://api-stage.mobadoo.com/
- Endpoint URL: https://api-stage.mobadoo.com/api/v1/
- Token: Test_key
Token
The session TOKEN for the APIs could be found at the Mobadoo’s back-office console, in the profile section, as it is shown on the following image:
Clicking in the user name at the upper-right corner, highlighted in yellow, takes you to the account’s detailed information and configuration.
Token expiration
Even though the token does not expire, it could be refreshed from the back-office console.
Clicking on the “eye” icon, it is possible to see it. It is also possible to copy it, clicking on the copy icon. The token allows you to place API calls as your user.
Iframe
The iframe integration is done in two parts:
- Iframe Integration:
- Frontend integration at your web site
- API-Wallet integration:
- Backend integration for managing
- backend integration for managing the data generated at the iframe, such as the bet-slips.
Iframe integration
The iframe is being integrated by the parameters used on the URL POST or GET, making it the easiest and quickest way to achieve integratation.
The iframe’s URLs for each environment are:
PRO: https://online.mobadoo.com/?hash=XXXX&client_uid=XXX&profile=XXXX
PRE: https://online-stage.mobadoo.com/?hash=XXXX&client_uid=XXXX&profile=XXXX
Configuration:
There are two types of configurations: aggregate in the default iframe URL, and the generated profile at the Mobadoo back-office.
Account profile
It is possible to add personalized visualization frameworks (CSS), currency assignments, etc. This will generate a configuration identification that will be added to the iframe URL.
Testing:
Above you have some utilities to try the integration with out system and script generation to a easy implementation.
- Publicado en Documentation