> This page is for API Reference.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fiftytwo-demo.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fiftytwo-demo.ferndocs.com/_mcp/server.

# Get discount group by ID and chain

GET https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/{chainId}/{discountGroupId}



Reference: https://fiftytwo-demo.ferndocs.com/api/master-data/reference/discount-groups/get-discount-group-by-id-and-chain

## Request

### Path parameters

- `discountGroupId` (long, required) — The ID of the discount group to retrieve
- `chainId` (integer, required) — The ID of the chain

## Response

### 200

Success

- `discountGroups` (list of DiscountGroupsDiscountGroupsItems, required)

## Errors

### 400 Bad Request Error

Bad Request

- `string`

## Types

### DiscountGroupsDiscountGroupsItems

- `discountGroupId` (integer, required) — Discount group ID that identifies the discount group.
- `text` (string, optional) — Short text that describes the discount group.
- `receiptText` (string, optional) — Discount text to show on receipts. If undefined, the text “Discount” is used.
- `storeGroup` (string, optional) — If you use 52ViKING enterprise service distribution, you can use this setting to limit distribution of the discount to a group of stores or to single stores.The default value blank "" means all stores, but you can limit the campaign to a group of stores that matches the regular expression ^$|^[^aA].{0,3}$. You can also use a single store ID.
- `additionalTextSegment` (integer, optional) — Additional text segments are used to explain or elaborate on specific discounts or for configure printing of, for example, comeback vouchers. Specify the four-digit number of the required additional text section defined by your organization's Fiftytwo consultant.
- `exclusionGroupId` (integer, optional) — Exclusion group ID. Discount groups with the same exclusion group ID can be used in the server to identify groups that mutually exclude each other.
- `control` (DiscountGroupsDiscountGroupsItemsControl, optional)
- `dateTimeSettings` (DiscountGroupsDiscountGroupsItemsDateTimeSettings, optional)
- `conditions` (DiscountGroupsDiscountGroupsItemsConditions, optional)
- `buySide` (DiscountGroupsDiscountGroupsItemsBuySide, optional) — Defines the articles or groups that the customer must buy in order to trigger the discount. In business terms, buySide represents the qualifying side of the promotion.If only buySide is provided, all objects in buySide are treated as bothSide. This means the same objects both trigger the promotion and receive the promotion benefit. If both buySide and getSide are provided, objects that exist only in buySide are treated as buySide, while objects that exist in both buySide and getSide are treated as bothSide.
- `getSide` (DiscountGroupsDiscountGroupsItemsGetSide, optional) — Defines the articles or groups that receive the promotion benefit after the qualifying condition has been met. In business terms, getSide represents the rewarded side of the promotion.If getSide is provided without buySide, the payload is invalid. If both buySide and getSide are provided, objects that exist only in getSide are treated as getSide, while objects that exist in both buySide and getSide are treated as bothSide. bothSide means that the same object is both part of the qualifying purchase and part of the rewarded set.

### DiscountGroupsDiscountGroupsItemsControl

- `receiptPrintMethod` (enum, optional) — Controls how the price of an article is printed on the receipt:0 = Print net price.1 = Print price and discount lines. Only applicable when:The discount is an article discountThe discount is not a gift discountThe discount applies to all customersThe discount action is 'deduct'The discount is booked as a discount, not as a service or a tenderOnly one discount limit is set to 1It is not a discount from the native discount system, that is a discount defined using articles or discount familiesThe discount is the only discount on the article
  - Allowed values: `1`, `2`
- `aggregateNumber` (integer, optional) — Use this field to group all discounts with this ID together to print a summary on receipts, for example “Total club discounts.”
- `marker` (string, optional) — A three-character text to mark articles on receipts as discounted by the discount group. For an article group that covers organic articles, the three-character text could, for example, be (O) or ORG.
- `bookingMethod` (enum, optional) — Determines how the booking method is set on receipts:0 = Discount is booked on the articles, and a discount transaction is created1 = Discount is booked as a service transaction, and no discount transaction is created2 = Discount is booked as a service transaction, and a discount transaction is created3 = Discount is booked as a tender transaction, and no discount transaction is created4 = Discount is booked as a tender transaction, and a discount transaction is created5 = Discount is not booked, but a discount transaction is created
  - Allowed values: `1`, `2`, `3`, `4`, `5`
- `bookingNumber` (integer, optional) — When a discount is booked as a service or a tender ('bookingMethod' = [1,2, 3,4]), this value specifies the service or tender to be used.
- `reasonReference` (integer, optional) — If your organization wants to register a particular reason code in connection with sales that involve the discount group, a Fiftytwo consultant can set up the required reason code text in a text section, and you can then refer to the number of the required text section.
- `priorityGroupReference` (integer, optional) — You can use this field to prioritize discounts when multiple discount groups are triggered. It requires that a Fiftytwo consultant has set up at least one priority group for your organization, so that you can refer to the number of the required priority group.
- `blockingReferenceId` (integer, optional) — You can use this field to block discountGroups from beeing triggered if another discountgroup with the same blockingReferenceId has already been triggered.
- `giftListPresentation` (integer, optional) — If a discount is triggered in the form of a free gift, you can control how gifts from a gift list are displayed on POSs, so that shop assistants can let customers choose their gift. It requires that a Fiftytwo consultant has set up a text section with gift list display options for your organization, so that you can refer to the four-digit number of the required option.
- `grossPriceBasedDiscount` (enum, optional) — Specifies the price base to use for calculating the discount:1 = Use gross price0 = Use potentially discounted price
  - Allowed values: `0`, `1`
- `setOffPreviousDiscounts` (enum, optional) — Specifies if previous discounts should be set off from the discount:1 = Set off previous discounts0 = Don't set off previous discounts
  - Allowed values: `0`, `1`
- `limitedDiscountDistribution` (integer, optional) — Use limited discount distribution to override default article discount distribution for mix discounts and for gift discounts (mix or amount). If limited discount distribution is set, non-gift mix discounts are distributed only to discount-giving articles, while gift discounts are distributed to a number of gifts equal to the gifts earned.
- `suppressLinePrint` (enum, optional) — Suppress printing of discount distribution at article level on receipts (primarily useful when you use aggregation):1 = Suppress print0 = Print
  - Allowed values: `0`, `1`
- `continousCalculation` (enum, optional) — Specifies if the discount must be calculated on an article-by-article basis (which can potentially be slow) or at the end of the purchase (when the shop assistant taps Total). Default is calculate at end of purchase (0).1 = Calculate the discount after each scanned article0 = Calulate the discount at end of purchase
  - Allowed values: `0`, `1`
- `grossPriceBasedTrigger` (enum, optional) — Determines whether to use gross price or discounted price for triggering amount discounts:1 = Use gross price for triggering amount discounts0 = Use discounted price for triggering amount discounts
  - Allowed values: `0`, `1`
- `allowMultipleDiscounts` (enum, optional) — Allows the discount group to be triggered more than once:1 = Allow multiple triggering of discount group0 = Only allow triggering of discount group once
  - Allowed values: `0`, `1`
- `reverseDiscountOrder` (enum, optional) — Reverse discount calculation applies to discount types 4 and 5. Those two discount types are normally processed in descending price order (from highest to lowest price), but they can also be processed in ascending price order (from lowest to highest price). This setting specifies the sequence to use when calculating discounts for the cheapest or most expensive article in a discount group.Normally, articles are sorted in descending price order, for example:9.008.007.006.005.004.003.00Building on the example: With the normal calculation method, where processing starts with the highest price, a Buy three articles from the discount group to get the cheapest article free discount will give a discount of 7.00 on the third article and a discount of 4.00 on the sixth article. However, with reverse discount calculation, where processing starts with the cheapest article, the third article will give a 3.00 discount and the sixth article will give a 6.00 discount. In the example this means that with normal discount calculation, the customer will get a 11.00 total discount if they buy six articles, whereas with reverse discount calculation, they will get a 9.00 total discount.
  - Allowed values: `0`, `1`
- `publish` (enum, optional) — Allow the discount group to be published on Fiftytwo APIs and shelf label systems.1 = Allow publishing0 = Publishing not allowed
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsDateTimeSettings

- `startTime` (datetime, optional) — Start date and time for discount (YYYY-MM-DDTHH:MM:SS).
- `endTime` (datetime, optional) — End date and time for discount (YYYY-MM-DDTHH:MM:SS).
- `allDays` (enum, optional) — 1 = Discount group applies on all days. Takes precedence over array of days defined with the 'days' setting.0 = Use 'days' setting to control applicable days.
  - Allowed values: `0`, `1`
- `days` (list of enum, optional) — List of day IDs (from Monday to Sunday).
  - Allowed values: `0`, `1`
- `allDay` (enum, optional) — 1 = Discount group applies all hours all day. Takes precedence over daily start and end times0 = Use daily start and end times.'
  - Allowed values: `0`, `1`
- `dailyStartTime` (string, optional) — Start time for hourly offer (that is a discount that's limited to certain hours of the selected days, for example if the discount group concerns a lunch deal that should only be available for a few hours around lunchtime). Use the format HH:MM:SS. If present, 'dailyEndTime' must also be present. If not present, discount is valid all day.
- `dailyEndTime` (string, optional) — End time for hourly offer, in the format HH:MM:SS. If not present, discount is valid all day.

### DiscountGroupsDiscountGroupsItemsConditions

- DiscountGroupsDiscountGroupsItemsConditions0
- DiscountGroupsDiscountGroupsItemsConditions1

### DiscountGroupsDiscountGroupsItemsBuySide

Defines the articles or groups that the customer must buy in order to trigger the discount. In business terms, buySide represents the qualifying side of the promotion.If only buySide is provided, all objects in buySide are treated as bothSide. This means the same objects both trigger the promotion and receive the promotion benefit. If both buySide and getSide are provided, objects that exist only in buySide are treated as buySide, while objects that exist in both buySide and getSide are treated as bothSide.

- `articles` (list of DiscountGroupsDiscountGroupsItemsBuySideArticlesItems, optional) — List of article EAN numbers (1-13 digits).
- `families` (list of DiscountGroupsDiscountGroupsItemsBuySideFamiliesItems, optional) — List of discount families. With a discount family you can apply a discount across different article numbers that your organization has tied together with a family number. Articles in the same family don't need to have the same sales price.
- `articleGroups` (list of DiscountGroupsDiscountGroupsItemsBuySideArticleGroupsItems, optional) — List of article groups. You can use article groups for many purposes, such as article group-based statistics, article group-based thresholds, or, in this case, article group-based discounts.
- `departments` (list of DiscountGroupsDiscountGroupsItemsBuySideDepartmentsItems, optional) — List of departments. A department covers a number of related article groups. For example, if you set up a Dairy department, it can cover the article groups Cheese, Milk, and Yoghourt. You primarily use departments for VAT and statistical purposes, but you can use departments for discount groups too.
- `allArticles` (enum, optional) — All articles will be part of the discount group.
  - Allowed values: `0`, `1`
- `articleLists` (list of DiscountGroupsDiscountGroupsItemsBuySideArticleListsItems, optional) — List of article list IDs (that have been created using the ArticleLists endpoint). Article lists can contain any articles that you find relevant for a particular purpose, typically for use in a discount group. Articles in an article list don't need to have the same price, belong in the same department, or have anything else in common. That gives you freedom to group together any articles that you find relevant.
- `labels` (list of DiscountGroupsDiscountGroupsItemsBuySideLabelsItems, optional) — Labels (preview feature). Selector based on article labels.The `labels` selector is currently in preview and is not yet generally available. It is provided for early integration and forward compatibility. Until label support is finalized, we recommend defining buy-side and get-side selectors using `articles`, `articleGroups`, `articleLists`, `families`, or `departments`.

### DiscountGroupsDiscountGroupsItemsGetSide

Defines the articles or groups that receive the promotion benefit after the qualifying condition has been met. In business terms, getSide represents the rewarded side of the promotion.If getSide is provided without buySide, the payload is invalid. If both buySide and getSide are provided, objects that exist only in getSide are treated as getSide, while objects that exist in both buySide and getSide are treated as bothSide. bothSide means that the same object is both part of the qualifying purchase and part of the rewarded set.

- `articles` (list of DiscountGroupsDiscountGroupsItemsGetSideArticlesItems, optional) — List of article EAN numbers (1-13 digits).
- `families` (list of DiscountGroupsDiscountGroupsItemsGetSideFamiliesItems, optional) — List of discount families. With a discount family you can apply a discount across different article numbers that your organization has tied together with a family number. Articles in the same family don't need to have the same sales price.
- `articleGroups` (list of DiscountGroupsDiscountGroupsItemsGetSideArticleGroupsItems, optional) — List of article groups. You can use article groups for many purposes, such as article group-based statistics, article group-based thresholds, or, in this case, article group-based discounts.
- `departments` (list of DiscountGroupsDiscountGroupsItemsGetSideDepartmentsItems, optional) — List of departments. A department covers a number of related article groups. For example, if you set up a Dairy department, it can cover the article groups Cheese, Milk, and Yoghourt. You primarily use departments for VAT and statistical purposes, but you can use departments for discount groups too.
- `allArticles` (enum, optional) — All articles will be part of the discount group.
  - Allowed values: `0`, `1`
- `articleLists` (list of DiscountGroupsDiscountGroupsItemsGetSideArticleListsItems, optional) — List of article list IDs (that have been created using the ArticleLists endpoint). Article lists can contain any articles that you find relevant for a particular purpose, typically for use in a discount group. Articles in an article list don't need to have the same price, belong in the same department, or have anything else in common. That gives you freedom to group together any articles that you find relevant.
- `labels` (list of DiscountGroupsDiscountGroupsItemsGetSideLabelsItems, optional) — Labels (preview feature). Selector based on article labels.The `labels` selector is currently in preview and is not yet generally available. It is provided for early integration and forward compatibility. Until label support is finalized, we recommend defining buy-side and get-side selectors using `articles`, `articleGroups`, `articleLists`, `families`, or `departments`.

### DiscountGroupsDiscountGroupsItemsConditions0

- `type` (enum, optional)
  - Allowed values: `0`, `1`
- `discountSteps` (list of any, optional, nullable)

### DiscountGroupsDiscountGroupsItemsConditions1

- `type` (enum, optional)
  - Allowed values: `2`
- `discountSteps` (list of any, optional, nullable)

### DiscountGroupsDiscountGroupsItemsBuySideArticlesItems

- `id` (integer, required)
- `quantity` (integer, optional) — Determines the required article quantity to buy in order to complete a basket.
- `exclude` (enum, optional) — Set this field to 1 to exclude an article from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsBuySideFamiliesItems

- `id` (integer, required)
- `quantity` (integer, optional) — Determines the required quantity to buy from a discount family in order to complete a basket.
- `exclude` (enum, optional) — Set this field to 1 to exclude a discount family from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsBuySideArticleGroupsItems

- `id` (integer, required)
- `quantity` (integer, optional) — Determines the required quantity to buy from an article group in order to complete a basket.
- `exclude` (enum, optional) — Set this field to 1 to exclude an article group from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsBuySideDepartmentsItems

- `id` (integer, required)
- `quantity` (integer, optional) — Determines the required quantity to buy from a department in order to complete a basket.
- `exclude` (enum, optional) — Set this field to 1 to exclude a department from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsBuySideArticleListsItems

- `id` (integer, required)
- `quantity` (integer, optional) — Determines the required quantity to buy from an article list in order to complete a basket.
- `exclude` (enum, optional) — Set this field to 1 to exclude an article list from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsBuySideLabelsItems

- `label` (string, required) — Label Text. Must be 1–30 chars, printable ASCII only, no spaces.
- `exclude` (enum, optional) — 0 = Include this label in the discount group (default behavior if omitted).1 = Exclude this label from the discount group (useful when applying discounts to 'allArticles').Note: If an article has one label that includes it in a discount group and another label that excludes it, exclusion takes precedence - the article will not belong to the discount group.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsGetSideArticlesItems

- `id` (integer, required)
- `exclude` (enum, optional) — Set this field to 1 to exclude an article from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsGetSideFamiliesItems

- `id` (integer, required)
- `exclude` (enum, optional) — Set this field to 1 to exclude a discount family from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsGetSideArticleGroupsItems

- `id` (integer, required)
- `exclude` (enum, optional) — Set this field to 1 to exclude an article group from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsGetSideDepartmentsItems

- `id` (integer, required)
- `exclude` (enum, optional) — Set this field to 1 to exclude a department from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsGetSideArticleListsItems

- `id` (integer, required)
- `exclude` (enum, optional) — Set this field to 1 to exclude an article list from the discount. This lets you make exceptions if you're using 'allArticles'.
  - Allowed values: `0`, `1`

### DiscountGroupsDiscountGroupsItemsGetSideLabelsItems

- `label` (string, required) — Label Text. Must be 1–30 chars, printable ASCII only, no spaces.
- `exclude` (enum, optional) — 0 = Include this label in the discount group (default behavior if omitted).1 = Exclude this label from the discount group (useful when applying discounts to 'allArticles').Note: If an article has one label that includes it in a discount group and another label that excludes it, exclusion takes precedence - the article will not belong to the discount group.
  - Allowed values: `0`, `1`

## Examples

**Response**

```json
{
  "discountGroups": [
    {
      "discountGroupId": 90000,
      "text": "discountamount",
      "receiptText": "",
      "storeGroup": "GRP1",
      "exclusionGroupId": 70001,
      "control": {
        "limitedDiscountDistribution": 3
      },
      "dateTimeSettings": {
        "startTime": "2023-12-31T09:00:00",
        "endTime": "2026-12-31T09:00:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "discountSteps": null,
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 1
          },
          {
            "id": 2
          },
          {
            "id": 3
          }
        ],
        "families": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          }
        ],
        "labels": [
          {
            "label": "DISC_90000"
          }
        ]
      }
    },
    {
      "discountGroupId": 90002,
      "text": "buy snacks get tokens",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-12-02T09:00:02",
        "endTime": "2026-12-02T09:00:02",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 1
          },
          {
            "id": 2
          },
          {
            "id": 3
          },
          {
            "id": 100,
            "exclude": 1
          }
        ],
        "families": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          }
        ],
        "articleLists": [
          {
            "id": 9001
          }
        ],
        "labels": [
          {
            "label": "TOKENS_90"
          },
          {
            "label": "NO_PROMO",
            "exclude": 1
          }
        ]
      },
      "getSide": {
        "articles": [
          {
            "id": 1
          },
          {
            "id": 100
          }
        ],
        "articleLists": [
          {
            "id": 9002
          }
        ],
        "labels": [
          {
            "label": "TOKEN_TARGET"
          }
        ]
      }
    },
    {
      "discountGroupId": 90011,
      "text": "earn points for customers",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-01-31T03:30:09",
        "endTime": "2026-08-08T23:57:43",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 1
          },
          {
            "id": 2
          },
          {
            "id": 3
          }
        ],
        "families": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          }
        ],
        "labels": [
          {
            "label": "LOYALTY_PTS"
          }
        ]
      }
    },
    {
      "discountGroupId": 90012,
      "text": "Loyalty : earn physical stamps",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-12-12T09:00:12",
        "endTime": "2026-12-12T09:00:12",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "discountSteps": null,
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 1
          },
          {
            "id": 2
          },
          {
            "id": 3
          }
        ],
        "families": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          }
        ]
      }
    },
    {
      "discountGroupId": 90100,
      "text": "Totalprice for items",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-01-31T09:01:00",
        "endTime": "2026-01-31T09:01:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "discountSteps": null,
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 1
          },
          {
            "id": 2
          },
          {
            "id": 3
          },
          {
            "id": 4,
            "exclude": 1
          },
          {
            "id": 5,
            "exclude": 1
          }
        ],
        "families": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          }
        ]
      }
    },
    {
      "discountGroupId": 90200,
      "text": "% per item",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2023-12-31T09:02:00",
        "endTime": "2026-02-28T09:02:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "discountSteps": null,
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 4
          },
          {
            "id": 5
          },
          {
            "id": 6
          },
          {
            "id": 1,
            "exclude": 1
          },
          {
            "id": 2,
            "exclude": 1
          },
          {
            "id": 3,
            "exclude": 1
          }
        ],
        "families": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          }
        ]
      }
    },
    {
      "discountGroupId": 90211,
      "text": "earn bonus for customers",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-01-31T03:30:09",
        "endTime": "2026-08-08T23:57:43",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "discountSteps": [],
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 1
          },
          {
            "id": 2
          },
          {
            "id": 3
          },
          {
            "id": 4,
            "exclude": 1
          },
          {
            "id": 5,
            "exclude": 1
          },
          {
            "id": 6,
            "exclude": 1
          }
        ],
        "families": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          }
        ]
      }
    },
    {
      "discountGroupId": 90300,
      "text": "% to pay for cheapest item",
      "receiptText": "3 for 2 ",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-03-31T09:03:00",
        "endTime": "2026-03-31T09:03:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "discountSteps": [],
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 54
          },
          {
            "id": 55
          },
          {
            "id": 56
          },
          {
            "id": 51,
            "exclude": 1
          },
          {
            "id": 52,
            "exclude": 1
          },
          {
            "id": 53,
            "exclude": 1
          }
        ],
        "families": [
          {
            "id": 51
          },
          {
            "id": 52
          },
          {
            "id": 53
          }
        ]
      }
    },
    {
      "discountGroupId": 90400,
      "text": "% to pay for expensive item",
      "receiptText": "3 for 2 ",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-04-30T09:04:00",
        "endTime": "2026-04-30T09:04:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "discountSteps": null,
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 54
          },
          {
            "id": 55
          },
          {
            "id": 56
          },
          {
            "id": 51,
            "exclude": 1
          },
          {
            "id": 52,
            "exclude": 1
          },
          {
            "id": 53,
            "exclude": 1
          }
        ],
        "families": [
          {
            "id": 51
          },
          {
            "id": 52
          },
          {
            "id": 53
          }
        ]
      }
    },
    {
      "discountGroupId": 90500,
      "text": "Buy 5 and choose gift",
      "receiptText": "",
      "storeGroup": "GRP1",
      "exclusionGroupId": 70005,
      "dateTimeSettings": {
        "startTime": "2024-05-31T09:05:00",
        "endTime": "2026-05-31T09:05:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "type": 0
      },
      "buySide": {
        "articles": [
          {
            "id": 54
          },
          {
            "id": 55
          },
          {
            "id": 56
          },
          {
            "id": 51,
            "exclude": 1
          },
          {
            "id": 52,
            "exclude": 1
          },
          {
            "id": 53,
            "exclude": 1
          }
        ],
        "families": [
          {
            "id": 51
          },
          {
            "id": 52
          },
          {
            "id": 53
          }
        ]
      }
    },
    {
      "discountGroupId": 91000,
      "text": "Buy basket->money discount",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-02-28T09:20:00",
        "endTime": "2026-02-28T09:20:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "type": 1
      },
      "buySide": {
        "articles": [
          {
            "id": 54,
            "quantity": 1
          },
          {
            "id": 55,
            "quantity": 2
          },
          {
            "id": 56,
            "quantity": 3
          }
        ]
      }
    },
    {
      "discountGroupId": 91211,
      "text": "Buy basket-> bonus",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-01-31T03:30:09",
        "endTime": "2026-08-08T23:57:43",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "type": 1
      },
      "buySide": {
        "articles": [
          {
            "id": 54,
            "quantity": 1
          },
          {
            "id": 55,
            "quantity": 2
          },
          {
            "id": 56,
            "quantity": 3
          }
        ]
      }
    },
    {
      "discountGroupId": 92000,
      "text": "Buy for get monetary discount",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-02-28T09:20:00",
        "endTime": "2026-02-28T09:20:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "type": 0
      },
      "buySide": {
        "departments": [
          {
            "id": 151
          },
          {
            "id": 152
          },
          {
            "id": 153
          }
        ],
        "labels": [
          {
            "label": "BUY_SIDE_ONLY"
          },
          {
            "label": "BOTH_SIDES"
          }
        ]
      },
      "getSide": {
        "articles": [
          {
            "id": 54
          },
          {
            "id": 55
          },
          {
            "id": 56
          },
          {
            "id": 53,
            "exclude": 1
          }
        ],
        "labels": [
          {
            "label": "BOTH_SIDES"
          },
          {
            "label": "GET_SIDE_ONLY"
          }
        ]
      }
    },
    {
      "discountGroupId": 92002,
      "text": "buy for get tokens",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-12-02T09:20:02",
        "endTime": "2026-12-02T09:20:02",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "type": 0
      },
      "buySide": {
        "articleGroups": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          },
          {
            "id": 14,
            "exclude": 1
          },
          {
            "id": 15,
            "exclude": 1
          },
          {
            "id": 16,
            "exclude": 1
          }
        ],
        "departments": [
          {
            "id": 151
          },
          {
            "id": 152
          },
          {
            "id": 153
          }
        ],
        "labels": [
          {
            "label": "TOK_DEPT"
          },
          {
            "label": "NO_LABEL",
            "exclude": 1
          }
        ]
      }
    },
    {
      "discountGroupId": 92500,
      "text": "Buy for get gift",
      "receiptText": "",
      "storeGroup": "GRP1",
      "dateTimeSettings": {
        "startTime": "2024-02-28T09:25:00",
        "endTime": "2026-02-28T09:25:00",
        "allDays": 1,
        "allDay": 1
      },
      "conditions": {
        "discountSteps": null,
        "type": 0
      },
      "buySide": {
        "articleGroups": [
          {
            "id": 11
          },
          {
            "id": 12
          },
          {
            "id": 13
          },
          {
            "id": 14,
            "exclude": 1
          },
          {
            "id": 15,
            "exclude": 1
          },
          {
            "id": 16,
            "exclude": 1
          }
        ],
        "departments": [
          {
            "id": 151
          },
          {
            "id": 152
          },
          {
            "id": 153
          }
        ]
      },
      "getSide": {
        "articleLists": [
          {
            "id": 5000
          }
        ],
        "labels": [
          {
            "label": "GIFT_ITEM"
          }
        ]
      }
    }
  ]
}
```

**SDK Code**

```python DiscountGroups_getDiscountGroupByIdAndChain_example
import requests

url = "https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/1/1"

response = requests.get(url)

print(response.json())
```

```javascript DiscountGroups_getDiscountGroupByIdAndChain_example
const url = 'https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/1/1';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go DiscountGroups_getDiscountGroupByIdAndChain_example
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/1/1"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby DiscountGroups_getDiscountGroupByIdAndChain_example
require 'uri'
require 'net/http'

url = URI("https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/1/1")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java DiscountGroups_getDiscountGroupByIdAndChain_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/1/1")
  .asString();
```

```php DiscountGroups_getDiscountGroupByIdAndChain_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/1/1');

echo $response->getBody();
```

```csharp DiscountGroups_getDiscountGroupByIdAndChain_example
using RestSharp;

var client = new RestClient("https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/1/1");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift DiscountGroups_getDiscountGroupByIdAndChain_example
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.fiftytwo.com/masterdata/discountgroups/v1/chain/1/1")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```