# Delete price level

`DELETE /api/configuration/price-levels/{priceLevelId}`

- **Products:** Operator (`FOH`)
- **Features:** Front of House Generic Access (`FOHGENERIC`)

HTML version: [Delete price level](https://support.gladstonesoftware.cloud/reference/configuration/delete-price-level)

## Overview

Permanently removes a price level, together with its alternative site and activity descriptions and their translations. This is a hard delete — the price level is removed outright and there is no active or deleted flag on a price level, so there is no deactivate alternative and no way to undo it.

Only one thing blocks the delete: members. If any member is currently on the price level the call is refused with `409` and `There are members linked to price level ID {id}`, and nothing is removed. Nothing else is checked — if another part of your configuration refers to the price level, for example through `nextPriceLevelId` or `infringementPriceLevelId` on another level, the delete proceeds and leaves that reference pointing at an id that no longer exists. Reassign the affected members to another price level before deleting.

The clean-up is not all-or-nothing. The price level is deleted first; the alternative descriptions and their translations are then deleted in separate steps afterwards. A failure part-way through leaves the price level gone and its descriptions behind, and the response in that case is `500` even though the price level was in fact removed.

Because the delete is permanent, repeating the same request returns `404` with an empty body.

A successful call returns `204 No Content` with no body, and subsequent reads of the price level list reflect the deletion.

## Endpoint

`DELETE {base_url}/api/configuration/price-levels/{priceLevelId}`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `priceLevelId` | string | Yes | The price level to delete, identified by the `id` returned by [List all price levels](get-all-price-levels.md). This is the short code the price level was created under, not a numeric key. |

## Sample request

```bash title="cURL"
curl -X DELETE '{base_url}/api/configuration/price-levels/{priceLevelId}' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | The id is empty — `Id cannot be null or empty`. In practice a request with an empty segment does not reach this endpoint, so you will rarely see this. |
| `404` | Not found | No price level exists with that id. The response body is empty. A repeated delete of the same price level returns the same. |
| `409` | Conflict | At least one member is currently assigned to the price level — `There are members linked to price level ID GOLD`. Nothing is deleted; move those members to another price level first. |
| `409` | Conflict | Other records still reference the price level and block the delete — `There are records linked to the ID GOLD that are stopping the operation being completed`. |
| `500` | Internal server error | The delete failed for any other reason, or it partly succeeded — the price level was removed but deleting its alternative descriptions or translations failed. Check the price level with [Retrieve price level by ID](get-price-level-by-id.md) before retrying rather than assuming nothing happened. |
