API
This documentation describes the available API endpoints for customer integration process and bet-slips interactions
Customer Feed Integration API
Receives and processes fixture metadata updates including sports events, participants, leagues, and event information. The API validates the request, enriches it with customer/platform identifiers, and produces messages to Kafka for downstream processing. Authentication is done via JWT Bearer token which is decoded by the proxy to extract the customer identifier.
JWT Bearer token for authentication. The token is decoded by the API gateway/proxy which extracts the customer identifier and forwards it to the API via the customerid header.
Request structure for fixture metadata updates containing message header and fixture events
Fixture metadata processed successfully and sent to Kafka
Validation error - invalid request body structure or missing required fields
Authentication failed - missing or invalid customerid header
Internal server error - database, Kafka, or processing error
POST /customer-integration/fixture-metadata HTTP/1.1
Host: rms-customer-integration-api.lsports.eu
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 745
{
"Header": {
"Type": 1,
"MsgSeq": 2,
"MsgGuid": "ea1da91b-fd6b-45ba-a2b2-14e3d771a070",
"CreationDate": "2024-04-01T18:15:27.3452921Z",
"ServerTimestamp": 1711995327345
},
"Body": {
"Events": [
{
"FixtureId": 12604306,
"Fixture": {
"Subscription": {
"Type": 1,
"Status": 1
},
"Sport": {
"Id": 265917,
"Name": "Table Tennis"
},
"Location": {
"Id": 187,
"Name": "Belarus"
},
"League": {
"Id": 53574,
"Name": "Liga Pro - Men - Belarus"
},
"StartDate": "2024-04-01T18:00:00Z",
"LastUpdate": "2024-04-01T18:15:26.480938Z",
"Status": 2,
"Participants": [
{
"Id": 52895937,
"Name": "Alexander Dekhtyarenko",
"Position": "2"
},
{
"Id": 53063569,
"Name": "Vitaliy Lyalkov",
"Position": "1"
}
],
"FixtureExtraData": [
{
"Name": "WithLivescore",
"Value": "true"
},
{
"Name": "WithInPlay",
"Value": "true"
}
]
},
"Livescore": null,
"Markets": null
}
]
}
}{
"status": "success",
"messageId": "msg_ea1da91b-fd6b-45ba-a2b2-14e3d771a070",
"timestamp": "2024-04-01T18:15:27.000Z"
}Receives and processes prematch (pre-game) market data including odds, betting lines, and market status. The API enriches the data with customer/platform identifiers and forwards it to Kafka for risk management processing. Authentication is done via JWT Bearer token which is decoded by the proxy to extract the customer identifier.
JWT Bearer token for authentication. The token is decoded by the API gateway/proxy which extracts the customer identifier and forwards it to the API via the customerid header.
Request structure for prematch market updates containing message header and market data
Prematch market data processed successfully and sent to Kafka
Validation error - invalid market data structure or missing required fields
Authentication failed - missing or invalid customerid header
Internal server error - database, Kafka, or processing error
POST /customer-integration/prematch-market HTTP/1.1
Host: rms-customer-integration-api.lsports.eu
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 429
{
"Header": {
"Type": 3,
"MsgSeq": 3,
"MsgGuid": "d99e7292-fcf7-4089-acea-31230409e6c9",
"CreationDate": "2025-07-21T10:31:43.9719135Z",
"ServerTimestamp": 1753093903971
},
"Body": {
"Events": [
{
"FixtureId": 24605720,
"Markets": [
{
"Id": 2,
"Name": "Under/Over",
"MainLine": "0.5",
"Bets": [
{
"Id": "115615308324605720",
"Name": "Under",
"Line": "1.5",
"Status": 1,
"Price": "3"
},
{
"Id": "115615308324605721",
"Name": "Over",
"Line": "1.5",
"Status": 1,
"Price": "1.35"
}
]
}
]
}
]
}
}{
"status": "success",
"messageId": "msg_d99e7292-fcf7-4089-acea-31230409e6c9",
"timestamp": "2025-07-21T10:31:43.000Z"
}Receives and processes live (in-play) market data during ongoing sporting events. The API handles real-time odds updates, market status changes, and betting line adjustments, enriching them with customer/platform identifiers before forwarding to Kafka. Authentication is done via JWT Bearer token which is decoded by the proxy to extract the customer identifier.
JWT Bearer token for authentication. The token is decoded by the API gateway/proxy which extracts the customer identifier and forwards it to the API via the customerid header.
Request structure for inplay market updates containing message header and live market data
Inplay market data processed successfully and sent to Kafka
Validation error - invalid market data structure or missing required fields
Authentication failed - missing or invalid customerid header
Internal server error - database, Kafka, or processing error
POST /customer-integration/inplay-market HTTP/1.1
Host: rms-customer-integration-api.lsports.eu
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 431
{
"Header": {
"Type": 3,
"MsgSeq": 4,
"MsgGuid": "e88f8192-fcf7-4089-acea-31230409e6c9",
"CreationDate": "2025-07-21T10:35:43.9719135Z",
"ServerTimestamp": 1753094143971
},
"Body": {
"Events": [
{
"FixtureId": 24605721,
"Markets": [
{
"Id": 2,
"Name": "Under/Over",
"MainLine": "0.5",
"Bets": [
{
"Id": "115615308324605721",
"Name": "Under",
"Line": "1.5",
"Status": 1,
"Price": "2.8"
},
{
"Id": "115615308324605722",
"Name": "Over",
"Line": "1.5",
"Status": 1,
"Price": "1.45"
}
]
}
]
}
]
}
}{
"status": "success",
"messageId": "msg_e88f8192-fcf7-4089-acea-31230409e6c9",
"timestamp": "2025-07-21T10:35:43.000Z"
}BET SLIP
Place a bet slip - requires JWT token for authentication
Unique identifier for the bet slip
bet_slip_12345Context of the bet slip
prematchPossible values: Type of bet being placed
singlePossible values: Total number of selections in the bet slip
2Bet placed successfully
Event or market data not found in the system
Bet construction failed. No valid betting combinations could be created from the provided selections.
Internal server error during bet slip processing
Database service temporarily unavailable
Request validation failed
Bet Slip Rejected by the risk system, or error saving the bet
POST /rms-bet/v1/cart/place-bet HTTP/1.1
Host: rms.lsports.eu
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 337
{
"betSlipId": "bet_slip_12345",
"betSlipContext": "prematch",
"betType": "single",
"stake": {
"totalAmount": 100
},
"totalSelections": 1,
"selections": [
{
"eventId": "4459816548",
"eventType": "match",
"eventContext": "prematch",
"market": {
"id": "2666973288",
"line": "2.5"
},
"bet": {
"id": "4273848547",
"odds": 12.54
}
}
],
"userInfo": {
"id": "2222",
"userName": "Jack21"
}
}{
"bet_code": "7tnsd4d0d-h1d2r2lfs3",
"shortCode": "2518",
"result": true
}Retrieve bet information for player
Unique bet code identifier
7tnsd4d0d-h1d2r2lfs3Bet details retrieved successfully
Bad request
Not found
POST /rms-bet/v1/bet/detail HTTP/1.1
Host: rms.lsports.eu
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 31
{
"code": "7tnsd4d0d-h1d2r2lfs3"
}{
"success": true,
"data": {
"code": "7tnsd4d0d-h1d2r2lfs3",
"platform_id": 1001,
"user_id": 9999,
"type": "single",
"bet_context": "prematch",
"status": "accepted",
"result": "pending",
"odds": [
{
"id_market": 2666973288,
"market_unique_id": "2666973288",
"market_name": "1X2",
"id_outcome": 4273848547,
"unique_id": "4459816548;2666973288;4273848547",
"outcome_alias": "2",
"ext_id": "32941765015720230",
"outcome_name": "Away",
"outcome_odd_value": "12.54",
"outcome_odd_value_original": "12.54",
"outcome_odd_percent": "62.79",
"outcome_odd_percent_original": "62.79",
"outcome_key_value": 7.974481658692185,
"outcome_key_value_original": 7.974481658692185,
"outcome_odd_value_for_order": 12.54,
"active": true,
"multiplicity": "1-30",
"multiplicity_min": "1",
"multiplicity_max": "30",
"market_fixed": 0,
"spec": "",
"type": "prematch",
"specifier": "",
"event_description": "Panama - Guadeloupe",
"time": 1750114800000,
"event_source": 4459816548,
"sport": {
"id": 8412615417,
"_id": "60703069a936cb5d3422bb59",
"source": 8412615417,
"name": "Football",
"order": 1,
"status": true
},
"category": {
"id": 1402297580,
"_id": "6082e765e7ddcf34a099ff0e",
"source": 1402297580,
"name": "International",
"order": 3,
"status": true
},
"tournament": {
"id": 8299480767,
"_id": "60ddf1567d050b8659761d23",
"source": 8299480767,
"name": "CONCACAF Gold Cup",
"order": 9999,
"status": true
},
"quickbet": "43008",
"status_event": "active"
}
],
"odds_sources": [
"4459816548;2666973288;4273848547"
],
"amount_real": 100,
"currency": "EUR",
"currencySymbol": "€",
"created_at": 1735123456789,
"sent_time": 1735123456789,
"oddHash": "U2FsdGVkX19EtRS0QPasdfsdf",
"betCode": "2518",
"_multiple_detail": {
"amount": 100,
"odds_total": 12.54,
"multiplicity": 1,
"winning": 1254,
"bonus_percentage": 0,
"bonus": 0,
"winning_total": 1254,
"profit": 1154,
"expectedTaxOnWonAmount": 0,
"expectedTotalTaxedWinnings": 1254,
"expectedProfitTaxed": 1154
},
"_system_detail": {
"amount_system": 50,
"fixed_bases": [],
"combinations": 3,
"winning_min_taxed": "56.50",
"winning_max_taxed": "358.77",
"winning_total_min_taxed": "56.50",
"winning_total_max_taxed": "358.77",
"winning_all_taxed": "521.10",
"winning_all_total_taxed": "521.10",
"winning_min": "56.50",
"winning_max": "358.77",
"winning_total_min": "56.50",
"winning_total_max": "358.77",
"bonus_min": "0.00",
"bonus_max": "0.00",
"winning_all": "521.10",
"winning_all_total": "521.10",
"valid_combinations_all": 3
},
"system_parts": [
{
"amount": 16.67,
"checked": true,
"multiplicity": 1,
"num_combo": 2,
"combinationsOdds": [],
"show": false,
"context": "prematch",
"bets": [
{}
]
}
]
}
}Settle a bet slip with a given code and status. Requires JWT Bearer token authentication.
Unique bet code identifier
wzc3457n7-h1d2q27q109Status of the bet
winPossible values: Unique sub bet code identifier (required for system bet slip)
pnme81n2-h1ch2k2r2i9The multiplicity number of markets in the bet slip (required for system bet slip)
1Bet successfully updated
Bet with code 'wzc3457n7-h1d2q27q109' updated to status 'win'.Bet not found
Already settled bet
Bad request
POST /rms-bet/v1/bet/define HTTP/1.1
Host: rms.lsports.eu
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 47
{
"code": "wzc3457n7-h1d2q27q109",
"status": "win"
}Bet with code 'wzc3457n7-h1d2q27q109' updated to status 'win'.Last updated
Was this helpful?