> For the complete documentation index, see [llms.txt](https://docs.sportradar.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sportradar.com/tennis/live-data-scenarios-1/code-violations-game-penalties-and-defaults.md).

# Code Violations, Game Penalties & Defaults

\
Overview
--------

In a match, an umpire can also call a Code Violation against a player.

**- Code Violation:** A player is judged to have violated the code of conduct that the tennis federations have set out. This includes but is not limited to; audible obscenity, physical abuse, ball abuse and unsportsmanlike conduct.

The following occurs as a result of the above Code Violations:

**- First Offence:** Warning\
\&#xNAN;**- Second Offence:** Point Penalty (The player's opposition are given the next point in the game)\
\&#xNAN;**- Third Offence:** Game Penalty (The player's opposition are given the next game in the set)

Any further offences will result in more Game Penalties. However, after the third violation, the umpire is within their right to default the match in the favour of the opponent of the player who continues to carry out Time/Code violations.

## First Offence - Code Violation

In this case, the CodeViolation packet will be send whenever the offence occurred in the match. In this case it occurred straight after a point.

The packet is as follows:

* CodeViolation JSON

```
{
  "timestamp": "2022-08-23T12:46:03.915Z",
  "reason": "UnsportsmanlikeConduct",
  "eventElementType": "CodeViolation",
  "matchTime": "01:08:15",
  "seqNum": 302,
  "team": "TeamA",
  "playerId": 1
}
```

## Second Offence - Point Penalty

In this case, the team has committed their second Time/Code Violation of the match.

The packet will be sent through as a Time/CodePenalty packet. This means that the team committing the offence will lose a point.

The packet is as follows:

* Point Penalty JSON

```
{
  "server": {
    "team": "TeamA"
  },
  "timestamp": "2022-08-23T13:21:44.492Z",
  "nextServer": {
    "team": "TeamA"
  },
  "score": {
    "currentSetScore": {
      "gamesA": 0,
      "gamesB": 1
    },
    "overallSetScore": {
      "setsA": 1,
      "setsB": 1
    },
    "currentGameScore": {
      "pointsA": "0",
      "pointsB": "30",
      "gameType": "StandardGame"
    },
    "previousSetsScore": [
      {
        "gamesA": 7,
        "gamesB": 6,
        "tieBreakScore": {
          "pointsA": 7,
          "pointsB": 5
        }
      },
      {
        "gamesA": 2,
        "gamesB": 6
      }
    ]
  },
  "eventElementType": "CodePenalty",
  "matchTime": "01:43:56",
  "seqNum": 443,
  "team": "TeamA"
}
```

In the example above, the score **was** at 30-30, but Team A committed a Code Violation, and as it was their second Code Violation, they received a Point Penalty, and the score is changed to 30-40.

## Third Offence - Game Penalty

In this case, the team has committed their third Time/Code Violation of the match.

The packet will be sent through as a GamePenalty packet. This means that the team committing the offence will lose the current game / the next game in the match.

The packet is as follows:

* Game Penalty JSON

```
{
  "server": {
    "team": "TeamB"
  },
  "timestamp": "2022-06-26T20:41:21.954Z",
  "nextServer": {
    "team": "TeamA"
  },
  "score": {
    "currentSetScore": {
      "gamesA": 2,
      "gamesB": 4
    },
    "overallSetScore": {
      "setsA": 0,
      "setsB": 1
    },
    "currentGameScore": {
      "pointsA": "0",
      "pointsB": "0",
      "gameType": "StandardGame"
    },
    "previousSetsScore": [
      {
        "gamesA": 4,
        "gamesB": 6
      }
    ]
  },
  "eventElementType": "GamePenalty",
  "matchTime": "01:34:14",
  "seqNum": 361,
  "team": "TeamA"
}
```

N.B - We will send through a number of GamePenalty packets until the game has been fully awarded to the opposing team.

For example: If the score is 15-0 and the receiver triggers a game penalty packet through their third Code Violation, then we will send THREE packets to finish the game (30-0, 40-0, game). The packets will all be identical.

## Match Defaults

After a team commits a third violation, the umpire has the right, if that team commits another violation, to default the match in favour of the opposition. The umpire can also wait and do this on the 4th, 5th, e.t.c... violation if they so wish.

Additionally, an umpire can also default a match after the first or second violation, if they deem the violation to be considered serious enough. An example of this happening in the first violation is if a player hits a tennis ball at the umpire.

The packet is as follows:

* Match Default JSON

```
{
  "timestamp": "2022-07-27T06:58:56.195Z",
  "eventElementType": "MatchStatusUpdate",
  "matchTime": "00:47:15",
  "seqNum": 173,
  "matchStatus": {
    "umpireCountry": "ESP",
    "umpire": "M. JARDI",
    "teamAPlayer1": "FILLAT GIMENEZ",
    "tossChooser": "Serve",
    "matchState": {
      "state": "Default",
      "reason": "UnsportsmanlikeConduct",
      "team": "TeamB",
      "playerId": 1,
      "locationTimestamp": "2022-07-27T08:58:09"
    },
    "teamBPlayer1": "LAURENT",
    "numSets": 3,
    "scoringType": "Standard",
    "firstServer": "TeamA",
    "tossWinner": "TeamA",
    "courtNum": 2,
    "teamAPlayersDetails": {
      "player1Id": "F0DN  ",
      "player1Country": "ESP"
    },
    "teamBPlayersDetails": {
      "player1Id": "LC18  ",
      "player1Country": "FRA"
    },
    "umpireCode": "JARDMA",
    "tieBreakType": "TieBreakInFinalSet"
  }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.sportradar.com/tennis/live-data-scenarios-1/code-violations-game-penalties-and-defaults.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.
