Sportsbook
Information on different types of Sportsbets and how to send them to FT CRM.
REST API
RabbitMQ Connector
Kafka Connector
⬆️ POST /v1/integration/sports
RabbitMQ Message Properties
key | value |
type | SPORTSBOOK |
The type is expected as a property (but not in the payload) of the RabbitMQ Message. Any header will be ignored.
Kafka Message Headers
key | value |
type | SPORTSBOOK |
Send each Bet and Settlement event separately.
- The total amount of the event should be sent as amount
- The real money part of the bet should be sent as wager_amount
- The bonus money part of the bet should be sent as bonus_wager_amount
- If you will send device_type, please define the values with Fast Track
- If you need to send data in meta, please contact your integrations manager
- If market is e.g. Scorecast then criterion_name should be: 1. "Goalscorer" 2. "Correct Result"In cases where there are not multiple, market should be the same ascriterion_name
Examples of different types:
Single Bet
Multi Bet
Settlement
Cashout
Cashout Multi
Required properties are marked with *
| Key | Type | Text |
|---|---|---|
activity_id | string | Activity ID |
activity_id_reference | string | Activity ID reference |
amount * | float | Total amount |
odds * | float | Total odds |
currency * | string
Format: ISO 4217 e.g. "EUR" | Transactions currency |
exchange_rate * | float | The exchange rate at the timestamp |
origin * | string | This value can be used to identify the brand or jurisdiction the player is playing on |
status * | string
Accepted Values:
| The status of the bet |
timestamp * | string Format:
RFC3339 2015-03-02T8:27:58.10Z | Timestamp |
bet_type * | string
Accepted Values:
| Type of bet. If Single, the bet array must contain only one bet. If Multi, the bet array must contain more then one bet. |
type * | string
Accepted Values:
| Type of event |
user_id * | string | User Id |
user_bonus_id * | string | Unique identifier of the bonus credited to a player. If there is no bonus wager in this round, send by 0 by default. |
balance_after | float | Player balance after the round is finished |
balance_before | float | Player balance before the roiund started |
wager_amount | float | Wagering amount |
bonus_wager_amount | float | Bonus Wagering amount |
locked_wager_amount * | float | Locked Wagering amount |
is_cashout * | bool | Indicates whether the bet was cashed out |
device_type | string | Device type |
settlement_type | string
Accepted Values:
| Result of the bet settlement |
bets | [Array]Bet | Bets (see below) |
reference_bet_amount | float | Total amount of the original bet being settled. Mandatory information for settlement type. |
reference_bet_real_amount | float | Real money portion of the original bet being settled. Mandatory information for settlement type. |
reference_bet_bonus_amount | float | Bonus money portion of the original bet being settled. Mandatory information for settlement type. |
reference_bet_locked_amount | float | Locked money portion of the original bet being settled. Mandatory information for settlement type. |
reference_bet_exchange_rate | float | Exchange rate applied to the original bet at the time it was placed. Mandatory information for settlement type. |
meta | object | You can use this to include any additional data you want to use in the Greco rule engine |
Bet Object
| Key | Type | Text |
|---|---|---|
event_name * | string | Event (match) name |
tournament_name * | string | Tournament (league) name.
Send "Undefined" as default |
sports_name * | string | Sports name |
match_start * | string
Format:
RFC3339 2015-03-02T8:27:58.10Z | Match start date |
market * | string | Market the player is betting on |
is_free_bet * | bool | If the bet is a free-bet |
is_risk_free_bet * | bool | If the bet is risk-free |
odds * | float | Odds of the specific bet or market the player is betting on, for multi bets each element should have their own odds |
is_live * | bool | If the bet is a live-bet |
outcomes * | [Array]BetOutcome | Outcomes (see below) |
meta | object | You can use this to include any additional data you want to use in the Greco rule engine |
BetOutcome Object
| Key | Type | Description |
|---|---|---|
criterion_name * | string | Market |
outcome_label * | string | This should tell us the outcomes the player is betting on |
meta | object | You can use this to include any additional data you want to use in the Greco rule engine |
Crypto Implementation
When implementing Sportsbook Events for crypto transactions, the following fields must be sent within the meta tag at the main Sportsbook object:
Sequence of Events
The events are sequence sensitive. Below you will find different scenarios on how the sequence of events should take place.
Scenario A - The activity_id_reference needs to be provided everytime we have a corelation between the sports events like the bet and the settlement
Sporsbook - Bet
First we should receive a Sportsbook Bet event with its activity_id
{"activity_id": "s-200001", "type": "Bet", ....}
Sportsbook - Settlement
We should then receive a Sportsbook Event with Type Settlement having the activity_id_reference referencing the bet activity_id
{"activity_id": "s-200002", "activity_id_reference": "sref-200001", "type": "Settlement",...}