# Fixture Message Structure

## Common Header

| Field       | Type          | Notes                             |
| ----------- | ------------- | --------------------------------- |
| MessageId   | string (GUID) | Unique per message; GUID/UUID v4  |
| Timestamp   | ISO-8601      | UTC                               |
| MessageType | int (enum)    | 1 = Fixture, 2 = LiveScore        |
| Fixtureid   | String        | Unique identifier for the fixture |
| Leagueid    | String        | Unique identifier for the League  |
| Sportid     | String        | Unique identifier for the Sport   |

***

## Fixture

**Example**

```json
{
  "header": {
    "MessageId": "d9e1a4e6-2a44-4a3d-9bbd-0a9a7f5e1c2d",
    "Timestamp": "2025-11-04T19:45:00Z",
    "MessageType": 1
  },
  "body": {
    "fixtureId": 123456,
    "status": 1,
    "startDate": "2025-11-04T19:45:00Z",
    "sport":    { "id": 6046, "name": "Football" },
    "league":   { "id": 1001, "name": "Premier League" },
    "location": { "id": 250,  "name": "England" },
    "participants": [
      { "id": 9001, "name": "Arsenal", "position": 1 },
      { "id": 9002, "name": "Chelsea", "position": 2 }
    ]
  }
}
```

***

## Fields (body)

| Field        | Type                   | Nullable | Notes                    |
| ------------ | ---------------------- | -------- | ------------------------ |
| fixtureId    | int                    | No       | Join key for incidents   |
| status       | int (enum)             | No       | See Fixture Status below |
| startDate    | string (ISO-8601, UTC) | No       | Scheduled start          |
| sport        | Sport object           | No       | Sport metadata           |
| league       | League object          | No       | League metadata          |
| location     | Location object        | No       | Country / venue          |
| participants | array of Participant   | No       | Ordered \[home, away]    |

***

## Sport (object)

| Field | Type   | Nullable | Notes      |
| ----- | ------ | -------- | ---------- |
| id    | int    | No       | Sport id   |
| name  | string | No       | Sport name |

## League (object)

| Field | Type   | Nullable | Notes       |
| ----- | ------ | -------- | ----------- |
| id    | int    | No       | League id   |
| name  | string | No       | League name |

## Location (object)

| Field | Type   | Nullable | Notes         |
| ----- | ------ | -------- | ------------- |
| id    | int    | No       | Location id   |
| name  | string | No       | Location name |

## Participant (object)

| Field    | Type       | Required | Notes              |
| -------- | ---------- | -------- | ------------------ |
| id       | int        | Yes      | Participant id     |
| name     | string     | Yes      | Participant name   |
| position | int (enum) | Yes      | 1 = home, 2 = away |

***

## Fixture Status (enum)

| Value | Name         |
| ----- | ------------ |
| 1     | NSY          |
| 2     | InProgress   |
| 3     | Finished     |
| 4     | Cancelled    |
| 5     | Postponed    |
| 6     | Interrupted  |
| 7     | Abandoned    |
| 8     | LostCoverage |
| 9     | AboutToStart |
