Table of Contents | ||
---|---|---|
|
The V3 Integration Service supports a number of message types that can be selectively activated to deliver precisely the set of information required to support the contracted services; you will receive only the messages you need. The core message types are:
Fixture: describes the fixture and includes the information (name, date, sport, competition, competitors etc.) required to allow you to create the fixture in your trading platform.
MarketSet: a collection of one or more Market elements containing market information (name, type, selections, prices, trading status etc.) to allow you to create markets in your trading platform and associate them with a particular event.
ResultSet: when the outcome of a market is known, for example because the event has finished, a Result will be sent for each market. This message will contain all the information you need to result the market and settle bets.
Between them, these three message types allow for sports books to receive all the information they require to create fixtures and markets, update those fixtures and markets and then to result them once the outcomes become known.
There are also additional messages that can be activated as required to support the services that you wish to use.
Coverage: once a fixture has been booked for in-play coverage, the Coverage command will be sent to update changes in the availability of match state feed or the trading state feeds or to confirm that the booking state has changed.
Match State : for each InPlay modelled sport, a comprehensive match state service is provided in two message types, Summary and Details. These messages describe the current state of a fixture. Details of the match state service can be found in document GEN-1290.
...
The table below shows the messages that are delivered for each service offered.
Service | Fixture | MarketSet | ResultSet | Coverage | Match State |
Match Data | Yes | No | No | Optional | Yes |
PreMatch Manager | Yes | Yes | Yes | No | No |
InPlay Manager | Yes | Yes | Yes | Optional | Optional |
Anchor | ||||
---|---|---|---|---|
|
...
An object that describes a sport.
<Sport>
<Id>10</Id>
<Name>Football</Name>
</Sport>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the sport |
Name | String | The name of the sport |
...
An object that describes a competition.
<Competition>
<Id>115</Id>
<Name>Kategoria Superiore</Name>
<Region>
<Id>218</Id>
<Name>Albania</Name>
</Region>
<Gender>Male</Gender>
</Competition>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the competition |
Name | String | The name of the competition |
Region | Region | An object that describes the region within which the competition is held |
Gender | Gender, optional | An enum describing the gender of the competitors. Possible values: |
...
An object that describes a region.
<Region>
<Id>218</Id>
<Name>Albania</Name>
</Region>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the region |
Name | String | The name of the region |
...
An object that describes a season.
<Season>
<Id>46344</Id>
<Name>Kategoria Superiore 2015-2016</Name>
</Season>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the season |
Name | String | The name of the season |
...
An object that describes a round.
<Round>
<Id>221896</Id>
<Name>Round 7</Name>
</Round>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the round |
Name | String | The name of the round |
...
An object that describes a venue.
<Venue>
<Id>1970</Id>
<Name>Stadiumi Skënderbeu</Name>
<Region>
<Id>3181898</Id>
<Name>Korçë</Name>
</Region>
</Venue>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the venue |
Name | String | The name of the venue |
Region | Region | An object that describes the region within which the venue is located |
...
An object that describes a competitor. This can be a team or an individual player.
<Competitor>
<Id>127134</Id>
<Name>KS Skënderbeu Korçë</Name>
<HomeAway>Home</HomeAway>
</Competitor>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the competitor |
Name | String | The name of the competitor |
CompetitorType | CompetitorType | An Enum describing the competitor type. Possible values: |
HomeAway | HomeAway, optional | An Enum describing the home or away status of the competitor. Possible values: |
Competitors | Competitor, optional | An array of competitors |
FirstName | String, optional | When the competitor is a player, this is the first name of the player |
LastName | String, optional | When the competitor is a player, this is the last name of the player |
SquadNumber | String, optional | In some sports, the player's squad number |
Position | String, optional | In some sports, a description of the player's position within the team |
Gender | Gender, optional | Indicator of a player's gender |
AgeCategory | String, optional | Not yet used. Describes the age of the competitors. Possible values include: |
ExternalId | String, optional | A customer's competitor ID, if available and required |
...
An object that describes a season.
<AggregateEventInfo>
<CurrentHomeTeamFirstLegScore>1</CurrentHomeTeamFirstLegScore>
<CurrentAwayTeamFirstLegScore>0</CurrentAwayTeamFirstLegScore>
</AggregateEventInfo>
Element | Type | Description |
---|---|---|
CurrentHomeTeamFirstLegScore | Integer | The current home team's first leg score |
CurrentAwayTeamFirstLegScore | Integer | The current away team's first leg score |
...
An object that provides basketball-specific details for a basketball match.
<BasketballProperties>
<BasketballAssociation>FIBA</BasketballAssociation>
</BasketballProperties>
Element | Type | Description |
---|---|---|
BasketballAssociation | String | The name of the association under whose rules the fixture is to be played |
...
An object that provides tennis-specific details for a football match.
<FootballProperties>
<ExtraTimeProperties/>
<MatchDuration>PT1H30M</MatchDuration>
<ExtraTimeDuration>PT30M</ExtraTimeDuration>
</FootballProperties>
Element | Type | Description |
---|---|---|
ExtraTimeProperties | FootballExtraTimeProperties | An object that describes how (and if) the fixture might go to extra time |
MatchDuration | Timespan | The scheduled duration of the fixture |
ExtraTimeDuration | Timespan | The scheduled duration of extra time, if played |
...
An object that provides football-specific details for a football match.
<ExtraTimeProperties>
<IsExtraTime>True</IsExtraTime>
<IsSecondLeg>True</IsSecondLeg>
<FirstLegId>54876512</FirstLegId>
<GoesStraightToPenalties>False</GoesStraightToPenalties>
<AwayGoalsAfterNormalTime>True</AwayGoalsAfterNormalTime>
<AwayGoalsAfterExtraTime>True</AwayGoalsAfterExtraTime>
</ExtraTimeProperties>
Element | Type | Description |
---|---|---|
IsExtraTime | Boolean | True if the fixture could go to extra time, False otherwise |
IsSecondLeg | Boolean | True if this is the second leg of a two leg match, False otherwise |
FirstLegId | Integer | The fixture ID of the first leg if this is the second leg of a two leg match |
GoesStraightToPenalties | Boolean | True if the fixture will go straight to penalties in the event of a full-time draw, False otherwise |
AwayGoalsAfterNormalTime | Boolean | True if the "Away Goal Rule" applies after normal time |
AwayGoalsAfterExtraTime | Boolean | True if the "Away Goal Rule" applies after Extra time |
...
An object that provides tennis-specific details for a tennis match.
<TennisProperties>
<NumberOfSets>3</NumberOfSets>
<FinalSet>TieBreak</FinalSet>
<ScoringSystemForServiceGames>StandardAdvantage</ScoringSystemForServiceGames>
<CourtSurface> Unset</CourtSurface>
</TennisProperties>
Element | Type | Description |
---|---|---|
NumberOfSets | Integer | The maximum number of sets to be played in the match |
FinalSet | FinalSet | An Enum describing the type of the final set of the match. Values: |
ScoringSystemForServiceGames | ScoringSystemForServiceGames | An Enum describing the scoring systemfor service (as opposed to Tie Break) games. Values: |
CourtSurface | CourtSurface | An Enum describing the court surface upon which the match is to be played. Values: |
...
The example below shows a MarketSet for fixture 3476056. Some elements have been truncated.
<MarketSet>
<FixtureId>3476056</FixtureId>
<Markets>
<Market>
<Id>100001331</Id>
<Sequence>0</Sequence>
<TradingStatus>Suspended</TradingStatus>
<Name>Match Result</Name>
<ExpiryUtc>2015-10-24T09:59:59Z</ExpiryUtc>
<MarketType>
<Id>2</Id>
<Name>Match Result</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
... Selections truncated for readability
</Selections>
</Market>
... Markets truncated for readability
</Markets>
</MarketSet>
Each MarketSet will contain one or more Market elements.
...
Exhaustive markets, like Match Result, include an Outcome element that provides additional information about the selection.
<Market>
<Id>100001331</Id>
<Sequence>0</Sequence>
<TradingStatus>Suspended</TradingStatus>
<Name>Match Result</Name>
<ExpiryUtc>2015-10-24T09:59:59Z</ExpiryUtc>
<MarketType>
<Id>2</Id>
<Name>Match Result</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300002720</Id>
<TradingStatus>Trading</TradingStatus>
<Name>FK Sementchi Farg'ona</Name>
<CompetitorId>810068</CompetitorId>
<Outcome>
<Id>1</Id>
<Name>Home</Name>
</Outcome>
<Numerator>1</Numerator>
<Denominator>20</Denominator>
<Decimal>1.05</Decimal>
</Selection>
<Selection>
<Id>300002721</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Draw</Name>
<Outcome>
<Id>2</Id>
<Name>Draw</Name>
</Outcome>
<Numerator>15</Numerator>
<Denominator>2</Denominator>
<Decimal>8.5</Decimal>
</Selection>
<Selection>
<Id>300002722</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Xorazm Urganch</Name>
<CompetitorId>475759</CompetitorId>
<Outcome>
<Id>3</Id>
<Name>Away</Name>
</Outcome>
<Numerator>24</Numerator>
<Denominator>1</Denominator>
<Decimal>25.0</Decimal>
</Selection>
</Selections>
</Market>
Example Message – Market, Asian Handicap
Handicap markets, like Asian Handicap or Total Goals Over/Under, will include a Handicap element that provides details of the handicap line.
<Market>
<Id>100001332</Id>
<Sequence>0</Sequence>
<TradingStatus>Suspended</TradingStatus>
<Name>Asian Handicap</Name>
<ExpiryUtc>2015-10-24T09:59:59Z</ExpiryUtc>
<Handicap>2.5</Handicap>
<MarketType>
<Id>82</Id>
<Name>Asian Handicap</Name>
<IsHandicap>true</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300002723</Id>
<TradingStatus>Trading</TradingStatus>
<Name>FK Sementchi Farg'ona</Name>
<CompetitorId>810068</CompetitorId>
<Outcome>
<Id>1</Id>
<Name>Home</Name>
</Outcome>
<Numerator>23</Numerator>
<Denominator>20</Denominator>
<Decimal>2.15</Decimal>
</Selection>
<Selection>
<Id>300002724</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Xorazm Urganch</Name>
<CompetitorId>475759</CompetitorId>
<Outcome>
<Id>3</Id>
<Name>Away</Name>
</Outcome>
<Numerator>37</Numerator>
<Denominator>50</Denominator>
<Decimal>1.74</Decimal>
</Selection>
</Selections>
</Market>
Example Message – Correct Score
Correct Score market types (as in this example from FK Sementchi Farg'ona v Xorazm Urganch) include a Range element that encodes the score necessary for the selection to be the winning outcome. Range.Low is always the first value in the score, Range.High the second, so the following element represents a score of 3-1.
<Range>
<High>1.0</High>
<Low>3.0</Low>
</Range>
The Correct Score market looks like this:
<Market>
<Id>100001333</Id>
<Sequence>0</Sequence>
<TradingStatus>Suspended</TradingStatus>
<Name>Correct Score</Name>
<ExpiryUtc>2015-10-24T09:59:59Z</ExpiryUtc>
<MarketType>
<Id>91</Id>
<Name>Correct Score</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300002731</Id>
<TradingStatus>Trading</TradingStatus>
<Name>FK Sementchi Farg'ona 2-0</Name>
<CompetitorId>810068</CompetitorId>
<Range>
<High>0.0</High>
<Low>2.0</Low>
</Range>
<Numerator>22</Numerator>
<Denominator>5</Denominator>
<Decimal>5.4</Decimal>
</Selection>
<Selection>
<Id>300002732</Id>
<TradingStatus>Trading</TradingStatus>
<Name>FK Sementchi Farg'ona 2-1</Name>
<CompetitorId>810068</CompetitorId>
<Range>
<High>1.0</High>
<Low>2.0</Low>
</Range>
<Numerator>23</Numerator>
<Denominator>4</Denominator>
<Decimal>6.75</Decimal>
</Selection>
... Selections truncated for readability
</Selections>
</Market>
Example Message – Tennis Game Correct Score
Unlike most Correct Score market types, the Game Correct Score (as in this example from Knapp, K v Stosur, S) in tennis has only a one populated element within Range because the winning player's game point score in tennis is never used. In these market types the "Home" player's score (Knapp, K) will represented by Range.Low and the "Away" player's score (Stosur, S) by Range.High.
<Id>100001359</Id>
<Sequence>9</Sequence>
<TradingStatus>Open</TradingStatus>
<Name>Game Score (Game 9)</Name>
<ExpiryUtc>2015-10-24T13:34:59Z</ExpiryUtc>
<Handicap i:nil="true" />
<MarketType>
<Id>11103</Id>
<Name>Numbered Game Score</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300002817</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Kasatkina, D/Vesnina, E to 15</Name>
<CompetitorId>840539</CompetitorId>
<Range>
<High>15.0</High>
</Range>
<Numerator>13</Numerator>
<Denominator>10</Denominator>
<Decimal>2.3</Decimal>
</Selection>
<Selection>
<Id>300002818</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Kasatkina, D/Vesnina, E to 30</Name>
<CompetitorId>840539</CompetitorId>
<Range>
<High>30.0</High>
</Range>
<Numerator>19</Numerator>
<Denominator>10</Denominator>
<Decimal>2.9</Decimal>
</Selection>
... Selections truncated for readability
</Selections>
</Market>
MarketSet
An object that contains a number of market objects.
<MarketSet>
<FixtureId>3476056</FixtureId>
<Markets>
... Markets truncated for readability
</Markets>
</MarketSet>
Element | Type | Description |
---|---|---|
FixtureId | Integer | An immutable identifier for a fixture |
Markets | Market | An array of market objects, each describing a market within the identified fixture |
...
An object that describes a market.
<Market>
<Id>100013200</Id>
<Sequence>0</Sequence>
<TradingStatus>Open</TradingStatus>
<Name>Match Result</Name>
<ExpiryUtc>2016-04-29T09:35:00Z</ExpiryUtc>
<MarketType>
<Id>322</Id>
<Name>Match</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300053291</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Schwartzman, DS</Name>
<CompetitorId>567116</CompetitorId>
<Outcome>
<Id>25</Id>
<Name>Player 1</Name>
</Outcome>
<Numerator>47</Numerator>
<Denominator>50</Denominator>
<Decimal>1.94</Decimal>
<Probability>0.49278</Probability>
</Selection>
<Selection>
<Id>300053292</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Dzumhur, D</Name>
<CompetitorId>700304</CompetitorId>
<Outcome>
<Id>26</Id>
<Name>Player 2</Name>
</Outcome>
<Numerator>87</Numerator>
<Denominator>100</Denominator>
<Decimal>1.87</Decimal>
<Probability>0.50722/Probability>
</Selection>
</Selections>
<CashOutStatus>Closed</CashOutStatus>
</Market>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for a market |
Sequence | Integer, optional | The sequence number for an InPlay market |
TradingStatus | MarketStatus | An enum that describes the trading status of the market. Possible values: |
Name | String | The name of the market |
ExpiryUtc | DateTime | The time that the market expires |
Handicap | Decimal, optional | For handicap markets, the handicap line |
MarketType | MarketType | An object that describes the market's type |
InPlay | Boolean | True if the market contains an in-play price, False if the market contains a pre-match price |
Selections | Selection | An array of Selection objects |
ExternalId | String, optional | A customer's market ID, if available and required |
CashOutStatus | CashOutStatus, optional | Optional feature, off by default. An enum that describes the cash-out status of the market: |
EachWayTerm | EachWayTerm, optional | For horse racing only, an object that describes the market's each way terms |
...
An object that describes the type of a market.
<MarketType>
<Id>82</Id>
<Name>Asian Handicap</Name>
<IsHandicap>true</IsHandicap>
</MarketType>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the market type |
Name | String | The name of the market type |
IsHandicap | Boolean | True if the market type has a handicap, False otherwise |
...
An object that describes a selection.
<Selection>
<Id>300053292</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Dzumhur, D</Name>
<CompetitorId>700304</CompetitorId>
<Outcome>
<Id>26</Id>
<Name>Player 2</Name>
</Outcome>
<Numerator>87</Numerator>
<Denominator>100</Denominator>
<Decimal>1.87</Decimal>
<Probability>0.50721</Probability>
</Selection>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the market type |
TradingStatus | SelectionStatus | An Enum describing the trading state of the selection. Possible values: |
Name | String | The name of the market type |
CompetitorId | Integer, optional | The ID of the competitor if the selection is a competitor within the parent fixture |
Outcome | Outcome, optional | An object describing the selection's outcome type |
Range | Range, optional | An object describing the range of outcomes for which the selection is a winner |
Numerator | Integer | The numerator of the price of the selection |
Denominator | Integer | The denominator of the price of the selection |
Decimal | Decimal | The price of the selection in decimal format |
Probability | Decimal, optional | The probability of the selection. Off by default, activated on request. |
ExternalId | String, optional | A customer's market ID, if available and required |
...
An object that describes the outcome type of a selection.
<Outcome>
<Id>2</Id>
<Name>Draw</Name>
</Outcome>
Element | Type | Description |
---|---|---|
Id | Integer | An immutable identifier for the outcome type |
Name | String | The name of the outcome type |
...
An object that describes the range parameters of a selection.
<Range>
<High>0.0</High>
<Low>2.0</Low>
</Range>
Element | Type | Description |
---|---|---|
High | Decimal, optional | The high value of a range |
Low | Decimal, optional | The low value of a range |
...
For horse racing markets only, an object that describes the market's each way terms.
<EachWayTerm>
<Places>5</Places>
<Numerator>1</Numerator>
<Denominator>2</Denominator>
</EachWayTerm>
Element | Type | Description |
---|---|---|
Places | Integer | The number of places over which each-way terms are to be applied |
Numerator | Integer | Numerator of fraction of odds to be applied for each-way terms |
Denominator | Integer | Denominator of fraction of odds to be applied for each-way terms |
...
Markets that are created by the in-play system will have a sequence number within the market element with Football markets incrementing up from 0 and other Inplay sports from 1 (only for the Openbet platform, all sports begin at 1). Served Sports disciplines include further customisation, detailed below. An example sequence for Football:
<Sequence>0</Sequence>
This number will increment from 0 as the index described by the market increases. In action, a Next Goalscorer market will begin with index 0 and increment upwards after each goal.
...
Example Message - ResultSet
<ResultSet>
<FixtureId>3474167</FixtureId>
<Results>
<MarketResult>
... Markets truncated for readability
</MarketResult>
</Results>
Element | Type | Description |
---|---|---|
FixtureId | Integer | An immutable identifier for a fixture |
Results | MarketResult | An array of market result objects, each describing the outcome of a market within the identified fixture |
...
An object that describes a result for a market.
<MarketResult>
<MarketId>100001358</MarketId>
<MarketSequence>14</MarketSequence>
<Results>
<SelectionResult>
<AdditionalResultData i:nil="true" />
<ResultStatus>Loser</ResultStatus>
<SelectionId>300002810</SelectionId>
</SelectionResult>
<SelectionResult>
<AdditionalResultData i:nil="true" />
<ResultStatus>Winner</ResultStatus>
<SelectionId>300002811</SelectionId>
</SelectionResult>
</Results>
<MarketResultScore>
<First>0</First>
<Second>1</Second>
<MarketResultScore>
</MarketResult>
Element | Type | Description |
---|---|---|
MarketId | Integer | The identifier of the market to which this result applies |
MarketSequence | Integer, optional | For an in-play market, the sequence number being resulted |
Results | SelectionResult | An array of selection result objects |
...
An object that describes the outcome of a selection.
<SelectionResult>
<AdditionalResultData i:nil="true" />
<ResultStatus>Loser</ResultStatus>
<SelectionId>300002810</SelectionId>
</SelectionResult>
Element | Type | Description |
---|---|---|
SelectionId | Integer | The identifier of the selection to which this result applies |
ResultStatus | ResultStatus | An Enum that describes the selection's outcomes. Possible values: |
AdditionalResultData | AdditonalResultData, optional | Contains additional information that may be required to result some selections where the outcome isn't win/lose. |
...
An object that contains additional data necessary to settle bets placed on a selection where Selection.ResultStatus is either Placed or Partial.
<AdditionalResultData>
<PercentageWin>50.0</PercentageWin>
<PercentagePush>50.0</PercentagePush>
<Place>0</Place>
<CountInPlace>0</CountInPlace>
</AdditionalResultData>
Element | Type | Description |
---|---|---|
PercentageWin | Integer | A number that describes what proportion of the bet should be paid |
PercentagePush | ResultStatus | A number that describes what proportion of the bet should be pushed |
Place | Integer | The placed position of the selection |
CountInPlace | Integer | The counted place position of the selection |
...
An optional object that will provide you with event scores through select market type resulting messages for both Prematch and Inplay Manager.
<MarketResultScore>
<First>0</First>
<Second>1</Second>
<MarketResultScore>
Element | Type | Description |
---|---|---|
First | Integer | A number describing the first or Home selection score |
Second | Integer | A number describing the second or Away selection score |
...
Purpose: Coverage holds information that describes the current expectations regarding the availability of an in-play trading service for a fixture.
Coverage will be sent when an event is booked on the Inplay Manager and when either the feed availability or booking state of a fixture has been changed.
Processing: Coverage tells you the about the match state and trading states of the fixtures and whether you are licensed to receive an in-play service. If IsLicensed is true for both MatchState and TradingState then we will be able to trade the fixture in-play.
The example message below shows Coverage for fixture 3025747.
<Coverage>
<FixtureId>3025747</FixtureId>
<ExternalFixtureIdi:nil="true" />
<IsBooked>true</IsBooked>
<AvailableFeeds>
...
</AvailableFeeds>
</CoverageCommand>
Element | Type | Description |
---|---|---|
FixtureId | Int | An immutable identifier for the fixture |
ExternalFixtureId | String, optional | Customer's fixture ID, if available and required |
IsBooked | Boolean | True if you have booked the fixture, false otherwise |
AvailableFeeds | Feed | An array of objects describing the feeds available for this fixture. |
...
An object that describes a data feed in a fixture.
<Feed>
<IsLicensed>true</IsLicensed>
<Type>MatchState</Type>
</Feed>
Element | Type | Description |
---|---|---|
IsLicensed | Boolean | True if you are licensed to receive data from this feed for this fixture, false otherwise. |
Type | String | A description of the feed. |
...