API

This documentation describes the available API endpoints for customer integration process and bet-slips interactions

Customer Feed Integration API

Process fixture metadata updates

post
/customer-integration/fixture-metadata

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.

Authorizations
AuthorizationstringRequired

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.

Body

Request structure for fixture metadata updates containing message header and fixture events

Responses
200

Fixture metadata processed successfully and sent to Kafka

application/json
post
/customer-integration/fixture-metadata
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"
}

Process prematch market updates

post
/customer-integration/prematch-market

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.

Authorizations
AuthorizationstringRequired

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.

Body

Request structure for prematch market updates containing message header and market data

Responses
200

Prematch market data processed successfully and sent to Kafka

application/json
post
/customer-integration/prematch-market
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"
}

Process inplay market updates

post
/customer-integration/inplay-market

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.

Authorizations
AuthorizationstringRequired

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.

Body

Request structure for inplay market updates containing message header and live market data

Responses
200

Inplay market data processed successfully and sent to Kafka

application/json
post
/customer-integration/inplay-market
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

post

Place a bet slip - requires JWT token for authentication

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
betSlipIdstringOptional

Unique identifier for the bet slip

Example: bet_slip_12345
betSlipContextstring · enumRequired

Context of the bet slip

Example: prematchPossible values:
betTypestring · enumRequired

Type of bet being placed

Example: singlePossible values:
totalSelectionsinteger · min: 1Required

Total number of selections in the bet slip

Example: 2
Responses
200

Bet placed successfully

application/json
post
/cart/place-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
}

Get bet details for players

post

Retrieve bet information for player

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
codestringRequired

Unique bet code identifier

Example: 7tnsd4d0d-h1d2r2lfs3
Responses
200

Bet details retrieved successfully

application/json
post
/bet/detail
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

post

Settle a bet slip with a given code and status. Requires JWT Bearer token authentication.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
codestringRequired

Unique bet code identifier

Example: wzc3457n7-h1d2q27q109
statusstring · enumRequired

Status of the bet

Example: winPossible values:
subCodestring | nullableOptional

Unique sub bet code identifier (required for system bet slip)

Example: pnme81n2-h1ch2k2r2i9
multiplicitynumber | nullableOptional

The multiplicity number of markets in the bet slip (required for system bet slip)

Example: 1
Responses
200

Bet successfully updated

application/json
ResponsestringExample: Bet with code 'wzc3457n7-h1d2q27q109' updated to status 'win'.
post
/bet/define
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?