# Retrieves all active discounts with their configuration details

`GET /api/configuration/discounts`

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

HTML version: [Retrieves all active discounts with their configuration details](https://support.gladstonesoftware.cloud/reference/configuration/retrieves-all-active-discounts-with-their-configuration-details)

## Overview

Lists the discounts currently switched on for membership types, with the label to show the customer
and a flag saying whether the discount is one an online journey can actually apply.

Each entry is a discount attached to a single membership type. A discount configured against several
membership types is returned as several separate entries, so the same wording appears once per
membership type with a different `discountId` each time.

**The discount percentages are not in the response**, despite what the endpoint's summary suggests —
you get the identity of the discount and its display text, not its arithmetic. Do not try to
calculate a price from this call; quote the price through the joining flow instead.

Only active discounts are returned, and the whole set comes back in one response with no paging or
filtering. Results can be briefly out of date, so a discount switched on or off in the back office may
take a moment to appear or disappear.

## Endpoint

`GET {base_url}/api/configuration/discounts`

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

## Sample request

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

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].discountId` | integer (int32) | Identifies this discount-and-membership-type pairing. Unique within the response — entries are de-duplicated on it, so a discount that also names individual products still appears only once. It is the id to use when updating the discount. |
| `[].membershipTypeId` | string | The membership type the discount applies to, as its code. One discount applies to exactly one membership type here; the same offer extended to several types appears as several entries. Stored upper-cased. |
| `[].membershipTypeDescription` | string | The membership type's own description, included so you do not need a second call to label the row. It describes the membership type, not the discount — use `discountText` for that. |
| `[].discountText` | string | The wording configured for the discount, intended for display to the customer. Free text set in the back office, so it may be `null` or say nothing about the actual percentage. |
| `[].applicable` | boolean | Whether an online joining journey can apply this discount. It is computed, not stored, and is `true` only when every part of the discount is either a percentage or nothing at all, at least one part is set, **and** the discount does not single out individual products — a per-product discount makes it `false` however it is otherwise configured. A `false` entry is still an active discount in the back office; it simply cannot be honoured online, so exclude it from anything customer-facing rather than showing it as unavailable. |

## Sample response

```json title="200 OK"
[
  {
    "discountId": 12345,
    "membershipTypeId": "string",
    "membershipTypeDescription": "string",
    "discountText": "string",
    "applicable": true
  }
]
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `500` | Internal server error | Any unexpected server-side failure while reading the discounts, with an empty body. |
