Sports Bet Lifecycle Events
Three events define the lifetime of a bet and are used to drive sportsbook use cases
Sports bets typically move through a defined lifecycle:
- Bet Placement
- Add to Betslip
- Bet Settlement
Sports events are usually consistent between the three different stages of the bet lifecycle (add to the bet slip, bet placement, and settlement). Some events may need to be sourced from multiple systems to have a complete view of the bet lifecycle. Bet Placement is mandatory for general recommendations—other use cases, such as Bet_Abandonment, may require the addition of Add to Bet Slip and Bet Settlement events.
Bet Placement (Mandatory event)
A bet is placed with the operator and accepted as valid
Event setup:
Event Key | Event Name | Type |
---|---|---|
bet_place | Bet Place | Simple event |
Event's Parameters:
optional fields are marked with *
Parameter key | Type | Example | Description |
---|---|---|---|
num_selns | Number | 2 | Number of selections in the bet (e.g. a Double = 2, Single bet = 1) |
uuid* | String | uuidv4 value | Unique ID for the record |
userid | String | 1234567 | Customer ID |
contextid* | String | uuidv4 value | Persistent anonymous user ID |
ccy_code* | String | GBP | ISO currency code |
betslip_key | String | 6784329678 | Identifier for the betslip (group of bets) transaction |
betslip_status | String | Open/Closed | Are there outstanding bets? |
bet_date_time | Timestamp | 2024-05-01T16:05:00Z | Placed/captured time of the bet |
bet_action_time | Timestamp | 2024-05-01T16:05:00Z | Timestamp of the relevant life stage (add, place, settled) |
channel* | String | Web | Placement channel |
regulation* | String | Gibraltar | License/regulation |
bet_key | String | 12345632467 | Identifier for the bet |
bet_stake | Number | 10.00 | Stake/wager amount for the whole bet |
bet_bonus* | Number | 2.00 | Bonus amount (e.g. free bet) for the whole bet (included in Stake) |
bet_sel_stake* | Number | 5.00 | bet_stake / num_selns |
bet_sel_bonus* | Number | 1.00 | bet_bonus / num_selns |
bir_flag | String | Y/N | Was the selection in play/in running at time of bet placement? |
odds_num* | Number | 5 | Fractional numerator for the selection odds |
odds_den* | Number | 1 | Fractional denominator for the selection odds |
dec_price | Number | 6.00 | Decimal (European) price for the selection odds |
american_price* | Number | -120 | American odds (NB one or more of the odds types should be specified) |
leg_type* | String | Win | To win / Handicap / Outright |
selection_key | String | 3647893264 | Unique ID for the selection in the operator's database |
selection_name | String | Man Utd | Name of the chosen selection |
market_key | String | 679677893 | Unique ID for the market in the operator's database |
market_name | String | Match Result | Name of the chosen market |
event_date_time | Timestamp | 2024-05-03T12:00:00Z | UTC timestamp of the planned event start time |
event_key | String | 67967899 | Unique ID for the event in the operator's database |
event_name | String | Man Utd v Liverpool | Name of the chosen event |
type_key | String | 67839642 | Unique ID for the competition in the operator's database |
type_name | String | Premier League | Name of the competition |
class_key | String | 27834 | Unique ID for the country/competition category in the operator's database |
class_name | String | English | Name of the country/competition category |
category_key | String | 13 | Unique ID for the sport in the operator's database |
category_name | String | Football | Sport name |
bet_type | String | Multiple/Single/Bet Builder | Type of bet placed |
leg_num | Number | 1 | Number of the leg (e.g. is it the 1st selection in a treble) |
each_way* | String | Y/N | Is the bet to win or each way? |
skinid* | String | Brand A | Name of the brand |
Add to Betslip
As a customer chooses a selection to bet on they typically add it to a betslip (a virtual version of a traditional betting slip) where they can then decide how much to wager and how it combines with other selections
Event setup:
Event Key | Event Name | Type |
---|---|---|
add_to_betslip | Add To Betslip | Simple event |
Event's Parameters:
optional fields are marked with *
Parameter key | Type | Example | Description |
---|---|---|---|
num_selns | Number | 2 | Number of selections in the bet (e.g. a Double = 2, Single bet = 1) |
uuid* | String | uuidv4 value | Unique ID for the record |
userid | String | 1234567 | Customer ID |
contextid* | String | uuidv4 value | Persistent anonymous user ID |
bet_action_time | Timestamp | 2024-05-01T16:05:00Z | Timestamp of the relevant life stage (add, place, settled) |
betslip_key | String | 6784329678 | Identifier for the betslip (group of bets) transaction |
bet_key | String | 1234567890 | Identifier of the bet |
channel* | String | Web | Placement channel |
ccy_code* | String | GBP | ISO currency code |
regulation* | String | Gibraltar | License/regulation |
bir_flag | String | Y/N | Was the selection in play/in running at time of bet placement? |
odds_num* | Number | 5 | Fractional numerator for the selection odds |
odds_den* | Number | 1 | Fractional denominator for the selection odds |
dec_price | Number | 6.00 | Decimal (European) price for the selection odds |
american_price* | Number | -120 | American odds (NB one or more of the odds types should be specified) |
leg_type* | String | Win | To win / Handicap / Outright |
selection_key | String | 3647893264 | Unique ID for the selection in the operator's database |
selection_name | String | Man Utd | Name of the chosen selection |
market_key | String | 679677893 | Unique ID for the market in the operator's database |
market_name | String | Match Result | Name of the chosen market |
event_date_time | Timestamp | 2024-05-03T12:00:00Z | UTC timestamp of the planned event start time |
event_key | String | 67967899 | Unique ID for the event in the operator's database |
event_name | String | Man Utd v Liverpool | Name of the chosen event |
type_key | String | 67839642 | Unique ID for the competition in the operator's database |
type_name | String | Premier League | Name of the competition |
class_key | String | 27834 | Unique ID for the country/competition category in the operator's database |
class_name | String | English | Name of the country/competition category |
category_key | String | 13 | Unique ID for the sport in the operator's database |
category_name | String | Football | Sport name |
bet_type | String | Multiple/Single/Bet Builder | Type of bet placed |
leg_num | Number | 1 | Number of the leg (e.g. is it the 1st selection in a treble) |
each_way* | String | Y/N | Is the bet to win or each way? |
skinid* | String | Brand A | Name of the brand |
Bet Settled
Generally initiated by the operator after the result of a selection is known (for example at the final whistle of a match) although could include bets that are cashed out early by the customer
Event setup:
Event Key | Event Name | Type |
---|---|---|
bet_settled | Bet Settled | Simple event |
Event's Parameters:
optional fields are marked with *
Parameter key | Type | Example | Description |
---|---|---|---|
num_selns | Number | 2 | Number of selections in the bet (e.g. a Double = 2, Single bet = 1) |
uuid* | String | uuidv4 value | Unique ID for the record |
userid | String | 1234567 | Customer ID |
contextid* | String | uuidv4 value | Persistent anonymous user ID |
ccy_code* | String | GBP | ISO currency code |
betslip_key | String | 6784329678 | Identifier for the betslip (group of bets) transaction |
betslip_status | String | Open/Closed | Are there outstanding bets? |
bet_date_time | Timestamp | 2024-05-01T13:20:00Z | Placed/captured time of the bet |
settled_date_time | Timestamp | 2024-05-03T16:05:00Z | Settlement time |
bet_action_time | Timestamp | 2024-05-03T16:05:00Z | Timestamp of the relevant life stage (add, place, settled) |
channel* | String | Web | Placement channel |
regulation* | String | Gibraltar | License/regulation |
bet_key | String | 12345632467 | Identifier for the bet |
leg_status | String | Won/Lost/CashOut | Has the leg won or lost? |
bet_stake | Number | 10.00 | Stake/wager amount for the whole bet |
bet_payout* | Number | 15.00 | Payout amount for the whole bet |
bet_bonus* | Number | 2.00 | Bonus amount (e.g. free bet) for the whole bet (included in Stake) |
bet_sel_stake | Number | 5.00 | bet_stake / num_selns |
bet_sel_payout* | Number | 7.50 | bet_payout / num_selns |
bet_sel_bonus* | Number | 1.00 | bet_bonus / num_selns |
bir_flag | String | Y/N | Was the selection in play/in running at time of bet placement? |
odds_num* | Number | 5 | Fractional numerator for the selection odds |
odds_den* | Number | 1 | Fractional denominator for the selection odds |
dec_price | Number | 6.00 | Decimal (European) price for the selection odds |
american_price* | Number | -120 | American odds (NB one or more of the odds types should be specified) |
leg_type* | String | Win | To win / Handicap / Outright |
selection_key | String | 3647893264 | Unique ID for the selection in the operator's database |
selection_name | String | Man Utd | Name of the chosen selection |
market_key | String | 679677893 | Unique ID for the market in the operator's database |
market_name | String | Match Result | Name of the chosen market |
event_date_time | Timestamp | 2024-05-03T12:00:00Z | UTC timestamp of the planned event start time |
event_key | String | 67967899 | Unique ID for the event in the operator's database |
event_name | String | Man Utd v Liverpool | Name of the chosen event |
type_key | String | 67839642 | Unique ID for the competition in the operator's database |
type_name | String | Premier League | Name of the competition |
class_key | String | 27834 | Unique ID for the country/competition category in the operator's database |
class_name | String | English | Name of the country/competition category |
category_key | String | 13 | Unique ID for the sport in the operator's database |
category_name | String | Football | Sport name |
bet_type | String | Multiple/Single/Bet Builder | Type of bet placed |
leg_num | Number | 1 | Number of the leg (e.g. is it the 1st selection in a treble) |
each_way* | String | Y/N | Is the bet to win or each way? |
skinid* | String | Brand A | Name of the brand |
Updated 3 months ago