# Delete booking status restrictions

`DELETE /api/configuration/bookings/restrictions/status`

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

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

## Overview

Deletes one or more booking status restriction entries by id. The entries are permanently deleted — there is no active flag on them, and so no deactivate alternative. Deleting an entry removes the link between that booking status and the restriction it belonged to; the booking status itself is untouched.

The call is all-or-nothing. Every id you send is checked before anything is deleted; if a single one is unknown the request fails with `404`, names the offending ids, and nothing is removed. Take the ids from [List booking status restrictions](get-all-booking-status-restrictions.md) immediately before calling.

A successful call returns `204 No Content` with an empty body. Repeating it returns `404`, because the ids no longer exist.

Note that the ids travel in a JSON request body on a `DELETE`, not in the query string, so your HTTP client must be able to send a body with `DELETE`.

## Endpoint

`DELETE {base_url}/api/configuration/bookings/restrictions/status`

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

## Request body

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `ids` | array of integer | Yes | The entries to delete, identified by the `id` returned in [List booking status restrictions](get-all-booking-status-restrictions.md) — the entry's own identifier, not the `restrictionId` it groups under, so sending a `restrictionId` will not delete anything. Although the schema allows it to be null, it is effectively required: omitting it, sending `null` or sending an empty array is rejected with `400`. Negative values are rejected before any lookup. Every id must exist, or the whole call fails with `404` and nothing is deleted. |

## Sample request

```bash title="cURL"
curl -X DELETE '{base_url}/api/configuration/bookings/restrictions/status' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true' \
  -H 'Content-Type: application/json' \
  -d '{
  "ids": [
    12345
  ]
}'
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | `ids` is missing, `null` or an empty array — `Invalid request: No booking status restriction id provided.` |
| `400` | Bad request | Any entry in `ids` is negative — `Negative booking status restriction IDs are not allowed.` The check runs before any id is looked up, so one bad value rejects the whole request. |
| `403` | Forbidden | The token does not carry a scope allowed on this route. Member tokens and anonymous tokens are both rejected — this is a staff and integration endpoint. |
| `404` | Not found | At least one id in `ids` does not match a booking status restriction entry — `Invalid request: No booking status restrictions found for the following IDs: {ids}`, listing only the ids that were not found. Nothing is deleted, including the ids that did exist. |
| `500` | Internal server error | An unexpected server-side failure while deleting. Nothing is removed, and the request is safe to retry. |
