# Delete promotion

`DELETE /api/configuration/promotions/{id}`

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

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

## Overview

Removes a promotion — a discount campaign, applied either to memberships or to bookings — along with the links that attach promo codes to it.

**This is a hard delete, and it removes the promotion's promo-code links but not the promo codes.** Every link between this promotion and a promo code is deleted with it, in the same step. The promo codes themselves survive and can be attached to another promotion; only the association is lost. There is no soft-delete or inactive flag on the promotion and nothing to undo it with.

**Existence is checked before anything is removed**, so a delete either finds the promotion and removes it, or changes nothing and returns `404`. Unlike most deletes in this API the `404` carries a message: `The promotion with the ID {id} does not exist`. A repeat call is therefore not a no-op — it returns that same `404`, which on a retry means the first attempt succeeded.

**Anything else that still references the promotion turns into a `500`.** Only the promo-code mappings are cleared for you; usage records, locks and booking-level links are not, so any of those blocks the delete and the failure is reported as `500` with an empty body rather than a `409`. Nothing is removed when that happens.

On success, a subsequent read reflects the deletion immediately.

## Endpoint

`DELETE {base_url}/api/configuration/promotions/{id}`

`{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 |
|------|------|----------|-------------|
| `id` | integer (int32) | Yes | The promotion's numeric identifier, returned when the promotion was created and by the retrieve-promotions endpoints. It is the promotion's own id, not a promo code — deleting by code is not supported here. A value that is not an integer is not accepted; an integer that matches no promotion returns `404`. |

## Sample request

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

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `404` | Not found | No promotion has that id — it never existed, or a previous call already deleted it. Unusually for this API the body carries the reason: `The promotion with the ID {id} does not exist`. |
| `500` | Internal server error | The delete failed, in practice because something other than a promo-code link still references the promotion. You get no detail and no `409`. Nothing is deleted. The body is empty. |
