# Upcoming Changes

The following changes are planned for TRADE. Exact release dates are not yet confirmed. We recommend reviewing each item and ensuring your integration handles new and expanded values without errors — no immediate action is required, but we encourage you to prepare your display and validation logic ahead of the releases.

***

## April 2026

### TRADE — New Suspension Reason Value

A new value is being added to the `SuspensionReasonId` enum:

| Id | Name   | Description                                          |
| -- | ------ | ---------------------------------------------------- |
| 20 | System | LSports suspended the market for a technical reason. |

Going forward, suspension origins are clearly separated:

* **Provider** — strictly reflects a suspension triggered by the data provider
* **System** — reflects a suspension generated by LSports' own system

A new SDK version will be released alongside this change. Ensure your integration handles unknown `SuspensionReasonId` values gracefully — forward-compatible parsing is strongly recommended.

→ [Bet Suspension Reasons](/u/trade/enumerations/bet-suspension-reasons.md)

***

### TRADE — Player State Enum Expansion

The `State` field in `FixturePlayers[]` is being expanded to cover the full player lifecycle across a fixture. Four values will be available:

| Id | Value     | Description                                                          |
| -- | --------- | -------------------------------------------------------------------- |
| 1  | Benched   | Player is on the bench, available for substitution.                  |
| 2  | Playing   | Player is active in the starting lineup.                             |
| 3  | Missing   | Player is not included in the starting lineup.                       |
| 4  | Predicted | Player is predicted to be in the starting lineup (pre-confirmation). |

**Lifecycle:** A player may first appear with `Predicted` (days before the match), transition to `Playing` or `Missing` when the official lineup is confirmed, and move to `Benched` during the match if substituted off. Benched players will appear as a fixture message update triggered by a livescore change.

→ [Player State](/u/trade/enumerations/player-state.md)

***

### TRADE — Player Type Enum Expansion

The `Type` field on the `Player` object is being expanded to cover three participant types, allowing you to distinguish coaches from players in lineups and player markets:

| Value | Name   | Description                                |
| ----- | ------ | ------------------------------------------ |
| 0     | Player | Standard player.                           |
| 1     | Other  | Other participant (non-player, non-coach). |
| 2     | Coach  | Team coach / manager.                      |

→ [Fixture Message Structure](/u/trade/integration/message-structure/fixture.md)

***

### TRADE — Shirt Color Fields on Fixture Participants

Two new optional fields are being added to the `Participants[]` object in Fixture messages, Snapshot, and all SDKs:

| Field                | Data Type | Description                                |
| -------------------- | --------- | ------------------------------------------ |
| ShirtColor           | string    | Primary shirt color of the participant.    |
| GoalKeeperShirtColor | string    | Goalkeeper shirt color of the participant. |

These fields will be present when data is available from coverage providers. Absence of either field should be handled gracefully.

→ [Fixture Message Structure](/u/trade/integration/message-structure/fixture.md)

***

### TRADE — New Livescore Status Descriptions (IDs 46–59)

Fourteen new values are being added to the `StatusDescription` enum used in Livescore messages. These values cover break periods, overtime states, and penalty/extra time transitions:

| Id | Description               |
| -- | ------------------------- |
| 46 | Break after 1st period    |
| 47 | Break after 2nd period    |
| 48 | Break after 3rd period    |
| 49 | Break after 4th period    |
| 50 | Break after 5th period    |
| 51 | Break after 6th period    |
| 52 | Break after 1st overtime  |
| 53 | Break after 2nd overtime  |
| 54 | Break after 3rd overtime  |
| 55 | Waiting for extra time    |
| 56 | Waiting for penalties     |
| 57 | Entering extra time       |
| 58 | Extra time break          |
| 59 | Entering penalty shootout |

Ensure your integration handles unknown `StatusDescription` values gracefully — these values will begin appearing in live data once released.

→ [Status Description](/u/trade/enumerations/status-description.md)

***

### TRADE — Livescore Statistics Decimal Precision

Livescore statistics such as Expected Goals (xG) will include decimal precision (e.g. `"0.73"`). The `Value` field remains typed as `String` — this is not a breaking change.

→ [Livescore Message Structure](/u/trade/integration/message-structure/livescore.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.lsports.eu/u/resources/upcoming-changes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
