> ## Documentation Index
> Fetch the complete documentation index at: https://help.lobyco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Import campaigns

> Format compatible with Data Import. 

If campaign does not exist, it will be created. If campaign already exists, it is updated in place.
If import of one campaign fails, it is ignored and others campaigns are processed. 

WARNING: fields are updated to the values from the file, any existing values will be overwritten.
If numerical values are not provided, default values will be used instead. 

At least one discount rule is required to publish an offer. If you send offer with Published = true, but without rules, offer will not bre created.

Requests should follow the schema: Be aware, putting a decimal value into an integer field (or providing an incorrect enum value) will cause an error that will prevent any offer from being inserted due to parsing errors. 

Multiple discount rules can be inserted for each offer. Use rule2Value, rule2Type, etc for all following rules.
Rules need to come in order, you cannot have rule 1 and rule 4, it needs to be rule 1 then rule 2, then rule 3 and so on.
Rules not in order will be ignored.



## OpenAPI

````yaml openapi/promotion-v2.json POST /v2/bulk/campaigns
openapi: 3.0.4
info:
  title: Offer (Promotion) Api
  version: v2
servers:
  - url: https://{host}/promotion
    description: Your Lobyco environment
    variables:
      host:
        default: your-environment.lobyco.net
        description: >-
          The API host for your Lobyco environment. Replace it with the host you
          were given — this placeholder does not resolve.
security:
  - Bearer: []
paths:
  /v2/bulk/campaigns:
    post:
      tags:
        - Bulk
      summary: Import campaigns
      description: >-
        Format compatible with Data Import. 


        If campaign does not exist, it will be created. If campaign already
        exists, it is updated in place.

        If import of one campaign fails, it is ignored and others campaigns are
        processed. 


        WARNING: fields are updated to the values from the file, any existing
        values will be overwritten.

        If numerical values are not provided, default values will be used
        instead. 


        At least one discount rule is required to publish an offer. If you send
        offer with Published = true, but without rules, offer will not bre
        created.


        Requests should follow the schema: Be aware, putting a decimal value
        into an integer field (or providing an incorrect enum value) will cause
        an error that will prevent any offer from being inserted due to parsing
        errors. 


        Multiple discount rules can be inserted for each offer. Use rule2Value,
        rule2Type, etc for all following rules.

        Rules need to come in order, you cannot have rule 1 and rule 4, it needs
        to be rule 1 then rule 2, then rule 3 and so on.

        Rules not in order will be ignored.
      requestBody:
        description: The list of campaigns to import.
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/BulkUpsertRequest'
            examples:
              10% off of Coca-Cola, that do not have other discounts, for chain 1:
                value:
                  - offerId: 02549909-c7ec-443e-ac37-7d07b8d3d364
                    offerName: coca_cola_10p_off
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: null
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 5
                    normalPricePerUnit: 10
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 5
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: '1'
                    storeIds: null
                    audienceId: null
                    fundedBy: null
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: coca-cola;fanta
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              1EUR off of Pringles up to 5 units, stacking with other discounts, segmented:
                value:
                  - offerId: a1e90a01-5b9d-42ba-a8be-a2c32fffb3c2
                    offerName: pringles_1eur_off
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: segmentedAppCoupon
                    unifiedCampaignId: ''
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 4
                    normalPricePerUnit: 12
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: true
                    itemsApplicationType: AllItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 5
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: 2213;12003
                    audienceId: pringles-audience-id
                    fundedBy: Supplier
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: pringles
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              Free twix:
                value:
                  - offerId: ecba679a-a83c-48c4-90b0-f01a41fcd490
                    offerName: free_twix
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: game
                    unifiedCampaignId: ''
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 4
                    normalPricePerUnit: null
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: 1;2
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: fixedPrice
                    rule1Value: 0
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: pringles
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              5% off basket of 100EUR or more, up to 10EUR for 3 purchases:
                value:
                  - offerId: e2516f4c-a5a7-4c21-a90e-39dca724bf99
                    offerName: 5p_basket
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: personalOffer
                    unifiedCampaignId: ''
                    title: 50% off Pepsi for you
                    description: Get your discount after purchasing at least 2 items
                    brand: PepsiCo
                    imageUrl: ''
                    discountLabel: 50% off every second item
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: L
                    conditionLabel: Up to 6 items per receipt
                    receiptDisplayText: Pepsi discount
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 10
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: SimpleLine
                    applyOnHighestPrice: true
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 3
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: 1;2
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.05
                    rule1ThresholdType: amount
                    rule1ThresholdValue: 10
              Step discount for Coca-Cola in specific stores:
                value:
                  - offerId: 1dcae5c4-5f55-4669-b350-4830cd95ae9a
                    offerName: coca_cola_step
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: null
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 5
                    normalPricePerUnit: 10
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 5
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: QuantityStep
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: null
                    storeIds: 1029;1030;2144
                    audienceId: null
                    fundedBy: null
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: coca-cola;fanta
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: percentage
                    rule2Value: 0.2
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 3
                    rule2IncludedProducts: coca-cola;fanta
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: percentage
                    rule3Value: 0.3
                    rule3ThresholdType: quantity
                    rule3ThresholdValue: 6
                    rule3IncludedProducts: coca-cola;fanta
                    rule3ExcludedProducts: ''
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
              Mix&Match Offer:
                value:
                  - offerId: d02660cd-9ac5-4505-8b37-2a9420bf5794
                    offerName: mm_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Save Big on Chips & Coca-Cola Combo
                    description: >-
                      Unlock exclusive savings when you combine your favorite
                      snacks and drinks! With this limited-time offer, buy any
                      pack of chips and get an automatic discount on Coca-Cola
                      multipacks. Perfect for parties or movie nights, this
                      combo delivers both taste and value in one easy deal.
                    brand: Crispy & Refreshing
                    imageUrl: https://example.com/assets/combo_chips_coke.jpg
                    discountLabel: Save up to 30%
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: false
                    unitOfMeasure: null
                    conditionLabel: Buy 1 Chips + 2 Coca-Cola
                    receiptDisplayText: 'Combo deal: Chips & Coca-Cola'
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: MixAndMatch
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.3
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: Chips
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: percentage
                    rule2Value: 0.2
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 2
                    rule2IncludedProducts: Coca-Cola
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
              Mix&Match Total Offer:
                value:
                  - offerId: 59959ed8-32cc-4032-b1f1-4debde410b8e
                    offerName: mm_total_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Mix&Match Meal Deal for 4.99
                    description: >-
                      Enjoy a satisfying and balanced meal on the go! With this
                      combo offer, grab a sandwich, two refreshing drinks, and a
                      fresh salad—all for just 4.99. It’s the perfect pick for
                      lunch breaks, quick dinners, or fueling up during a busy
                      day. Great taste and great value, bundled for your
                      convenience.
                    brand: Fresh & Tasty
                    imageUrl: https://example.com/assets/meal_deal_499.jpg
                    discountLabel: 'Meal Deal: Only 4.99'
                    normalPriceLabel: 'Regular price: 7.99'
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: null
                    conditionLabel: 1 Sandwich, 2 Drinks, 1 Salad
                    receiptDisplayText: Mix&Match Meal Deal
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: MixAndMatchTotal
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 0
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: Sandwich
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: amount
                    rule2Value: 0
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 2
                    rule2IncludedProducts: Drink
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: amount
                    rule3Value: 0
                    rule3ThresholdType: quantity
                    rule3ThresholdValue: 1
                    rule3IncludedProducts: Salad
                    rule3ExcludedProducts: ''
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
                    rule4Type: fixedPrice
                    rule4Value: 4.99
                    rule4ThresholdType: quantity
                    rule4ThresholdValue: 0
              Total Step Offer:
                value:
                  - offerId: b9b2e183-85b7-4dc2-bdb9-3a63b6c6fcd5
                    offerName: total_step_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Holiday Savings Tiers
                    description: >-
                      Holiday Savings Tiers: Purchase 60+ for 10 off, 100+ for
                      15 off, 250+ for 25 off!
                    brand: null
                    imageUrl: https://example.com/assets/holiday_savings_tiers.jpg
                    discountLabel: Holiday Savings Tiers
                    normalPriceLabel: ''
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: null
                    conditionLabel: Basket amount more than 50
                    receiptDisplayText: Holiday Savings Tiers
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: AllItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: TotalStep
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 10
                    rule1ThresholdType: amount
                    rule1ThresholdValue: 50
                    rule1IncludedProducts: ''
                    rule1ExcludedProducts: junk-food
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: amount
                    rule2Value: 15
                    rule2ThresholdType: amount
                    rule2ThresholdValue: 100
                    rule2IncludedProducts: ''
                    rule2ExcludedProducts: junk-food
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: amount
                    rule3Value: 25
                    rule3ThresholdType: amount
                    rule3ThresholdValue: 250
                    rule3IncludedProducts: ''
                    rule3ExcludedProducts: junk-food
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/BulkUpsertRequest'
            examples:
              10% off of Coca-Cola, that do not have other discounts, for chain 1:
                value:
                  - offerId: 02549909-c7ec-443e-ac37-7d07b8d3d364
                    offerName: coca_cola_10p_off
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: null
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 5
                    normalPricePerUnit: 10
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 5
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: '1'
                    storeIds: null
                    audienceId: null
                    fundedBy: null
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: coca-cola;fanta
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              1EUR off of Pringles up to 5 units, stacking with other discounts, segmented:
                value:
                  - offerId: a1e90a01-5b9d-42ba-a8be-a2c32fffb3c2
                    offerName: pringles_1eur_off
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: segmentedAppCoupon
                    unifiedCampaignId: ''
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 4
                    normalPricePerUnit: 12
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: true
                    itemsApplicationType: AllItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 5
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: 2213;12003
                    audienceId: pringles-audience-id
                    fundedBy: Supplier
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: pringles
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              Free twix:
                value:
                  - offerId: ecba679a-a83c-48c4-90b0-f01a41fcd490
                    offerName: free_twix
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: game
                    unifiedCampaignId: ''
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 4
                    normalPricePerUnit: null
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: 1;2
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: fixedPrice
                    rule1Value: 0
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: pringles
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              5% off basket of 100EUR or more, up to 10EUR for 3 purchases:
                value:
                  - offerId: e2516f4c-a5a7-4c21-a90e-39dca724bf99
                    offerName: 5p_basket
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: personalOffer
                    unifiedCampaignId: ''
                    title: 50% off Pepsi for you
                    description: Get your discount after purchasing at least 2 items
                    brand: PepsiCo
                    imageUrl: ''
                    discountLabel: 50% off every second item
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: L
                    conditionLabel: Up to 6 items per receipt
                    receiptDisplayText: Pepsi discount
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 10
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: SimpleLine
                    applyOnHighestPrice: true
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 3
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: 1;2
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.05
                    rule1ThresholdType: amount
                    rule1ThresholdValue: 10
              Step discount for Coca-Cola in specific stores:
                value:
                  - offerId: 1dcae5c4-5f55-4669-b350-4830cd95ae9a
                    offerName: coca_cola_step
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: null
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 5
                    normalPricePerUnit: 10
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 5
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: QuantityStep
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: null
                    storeIds: 1029;1030;2144
                    audienceId: null
                    fundedBy: null
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: coca-cola;fanta
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: percentage
                    rule2Value: 0.2
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 3
                    rule2IncludedProducts: coca-cola;fanta
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: percentage
                    rule3Value: 0.3
                    rule3ThresholdType: quantity
                    rule3ThresholdValue: 6
                    rule3IncludedProducts: coca-cola;fanta
                    rule3ExcludedProducts: ''
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
              Mix&Match Offer:
                value:
                  - offerId: d02660cd-9ac5-4505-8b37-2a9420bf5794
                    offerName: mm_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Save Big on Chips & Coca-Cola Combo
                    description: >-
                      Unlock exclusive savings when you combine your favorite
                      snacks and drinks! With this limited-time offer, buy any
                      pack of chips and get an automatic discount on Coca-Cola
                      multipacks. Perfect for parties or movie nights, this
                      combo delivers both taste and value in one easy deal.
                    brand: Crispy & Refreshing
                    imageUrl: https://example.com/assets/combo_chips_coke.jpg
                    discountLabel: Save up to 30%
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: false
                    unitOfMeasure: null
                    conditionLabel: Buy 1 Chips + 2 Coca-Cola
                    receiptDisplayText: 'Combo deal: Chips & Coca-Cola'
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: MixAndMatch
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.3
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: Chips
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: percentage
                    rule2Value: 0.2
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 2
                    rule2IncludedProducts: Coca-Cola
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
              Mix&Match Total Offer:
                value:
                  - offerId: 59959ed8-32cc-4032-b1f1-4debde410b8e
                    offerName: mm_total_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Mix&Match Meal Deal for 4.99
                    description: >-
                      Enjoy a satisfying and balanced meal on the go! With this
                      combo offer, grab a sandwich, two refreshing drinks, and a
                      fresh salad—all for just 4.99. It’s the perfect pick for
                      lunch breaks, quick dinners, or fueling up during a busy
                      day. Great taste and great value, bundled for your
                      convenience.
                    brand: Fresh & Tasty
                    imageUrl: https://example.com/assets/meal_deal_499.jpg
                    discountLabel: 'Meal Deal: Only 4.99'
                    normalPriceLabel: 'Regular price: 7.99'
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: null
                    conditionLabel: 1 Sandwich, 2 Drinks, 1 Salad
                    receiptDisplayText: Mix&Match Meal Deal
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: MixAndMatchTotal
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 0
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: Sandwich
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: amount
                    rule2Value: 0
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 2
                    rule2IncludedProducts: Drink
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: amount
                    rule3Value: 0
                    rule3ThresholdType: quantity
                    rule3ThresholdValue: 1
                    rule3IncludedProducts: Salad
                    rule3ExcludedProducts: ''
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
                    rule4Type: fixedPrice
                    rule4Value: 4.99
                    rule4ThresholdType: quantity
                    rule4ThresholdValue: 0
              Total Step Offer:
                value:
                  - offerId: b9b2e183-85b7-4dc2-bdb9-3a63b6c6fcd5
                    offerName: total_step_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Holiday Savings Tiers
                    description: >-
                      Holiday Savings Tiers: Purchase 60+ for 10 off, 100+ for
                      15 off, 250+ for 25 off!
                    brand: null
                    imageUrl: https://example.com/assets/holiday_savings_tiers.jpg
                    discountLabel: Holiday Savings Tiers
                    normalPriceLabel: ''
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: null
                    conditionLabel: Basket amount more than 50
                    receiptDisplayText: Holiday Savings Tiers
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: AllItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: TotalStep
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 10
                    rule1ThresholdType: amount
                    rule1ThresholdValue: 50
                    rule1IncludedProducts: ''
                    rule1ExcludedProducts: junk-food
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: amount
                    rule2Value: 15
                    rule2ThresholdType: amount
                    rule2ThresholdValue: 100
                    rule2IncludedProducts: ''
                    rule2ExcludedProducts: junk-food
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: amount
                    rule3Value: 25
                    rule3ThresholdType: amount
                    rule3ThresholdValue: 250
                    rule3IncludedProducts: ''
                    rule3ExcludedProducts: junk-food
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/BulkUpsertRequest'
            examples:
              10% off of Coca-Cola, that do not have other discounts, for chain 1:
                value:
                  - offerId: 02549909-c7ec-443e-ac37-7d07b8d3d364
                    offerName: coca_cola_10p_off
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: null
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 5
                    normalPricePerUnit: 10
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 5
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: '1'
                    storeIds: null
                    audienceId: null
                    fundedBy: null
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: coca-cola;fanta
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              1EUR off of Pringles up to 5 units, stacking with other discounts, segmented:
                value:
                  - offerId: a1e90a01-5b9d-42ba-a8be-a2c32fffb3c2
                    offerName: pringles_1eur_off
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: segmentedAppCoupon
                    unifiedCampaignId: ''
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 4
                    normalPricePerUnit: 12
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: true
                    itemsApplicationType: AllItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 5
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: 2213;12003
                    audienceId: pringles-audience-id
                    fundedBy: Supplier
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: pringles
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              Free twix:
                value:
                  - offerId: ecba679a-a83c-48c4-90b0-f01a41fcd490
                    offerName: free_twix
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: game
                    unifiedCampaignId: ''
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 4
                    normalPricePerUnit: null
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: 1;2
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: fixedPrice
                    rule1Value: 0
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: pringles
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              5% off basket of 100EUR or more, up to 10EUR for 3 purchases:
                value:
                  - offerId: e2516f4c-a5a7-4c21-a90e-39dca724bf99
                    offerName: 5p_basket
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: personalOffer
                    unifiedCampaignId: ''
                    title: 50% off Pepsi for you
                    description: Get your discount after purchasing at least 2 items
                    brand: PepsiCo
                    imageUrl: ''
                    discountLabel: 50% off every second item
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: L
                    conditionLabel: Up to 6 items per receipt
                    receiptDisplayText: Pepsi discount
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 10
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: SimpleLine
                    applyOnHighestPrice: true
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 3
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: 1;2
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.05
                    rule1ThresholdType: amount
                    rule1ThresholdValue: 10
              Step discount for Coca-Cola in specific stores:
                value:
                  - offerId: 1dcae5c4-5f55-4669-b350-4830cd95ae9a
                    offerName: coca_cola_step
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: null
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 5
                    normalPricePerUnit: 10
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 5
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: QuantityStep
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: null
                    storeIds: 1029;1030;2144
                    audienceId: null
                    fundedBy: null
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: coca-cola;fanta
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: percentage
                    rule2Value: 0.2
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 3
                    rule2IncludedProducts: coca-cola;fanta
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: percentage
                    rule3Value: 0.3
                    rule3ThresholdType: quantity
                    rule3ThresholdValue: 6
                    rule3IncludedProducts: coca-cola;fanta
                    rule3ExcludedProducts: ''
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
              Mix&Match Offer:
                value:
                  - offerId: d02660cd-9ac5-4505-8b37-2a9420bf5794
                    offerName: mm_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Save Big on Chips & Coca-Cola Combo
                    description: >-
                      Unlock exclusive savings when you combine your favorite
                      snacks and drinks! With this limited-time offer, buy any
                      pack of chips and get an automatic discount on Coca-Cola
                      multipacks. Perfect for parties or movie nights, this
                      combo delivers both taste and value in one easy deal.
                    brand: Crispy & Refreshing
                    imageUrl: https://example.com/assets/combo_chips_coke.jpg
                    discountLabel: Save up to 30%
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: false
                    unitOfMeasure: null
                    conditionLabel: Buy 1 Chips + 2 Coca-Cola
                    receiptDisplayText: 'Combo deal: Chips & Coca-Cola'
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: MixAndMatch
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.3
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: Chips
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: percentage
                    rule2Value: 0.2
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 2
                    rule2IncludedProducts: Coca-Cola
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
              Mix&Match Total Offer:
                value:
                  - offerId: 59959ed8-32cc-4032-b1f1-4debde410b8e
                    offerName: mm_total_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Mix&Match Meal Deal for 4.99
                    description: >-
                      Enjoy a satisfying and balanced meal on the go! With this
                      combo offer, grab a sandwich, two refreshing drinks, and a
                      fresh salad—all for just 4.99. It’s the perfect pick for
                      lunch breaks, quick dinners, or fueling up during a busy
                      day. Great taste and great value, bundled for your
                      convenience.
                    brand: Fresh & Tasty
                    imageUrl: https://example.com/assets/meal_deal_499.jpg
                    discountLabel: 'Meal Deal: Only 4.99'
                    normalPriceLabel: 'Regular price: 7.99'
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: null
                    conditionLabel: 1 Sandwich, 2 Drinks, 1 Salad
                    receiptDisplayText: Mix&Match Meal Deal
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: MixAndMatchTotal
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 0
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: Sandwich
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: amount
                    rule2Value: 0
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 2
                    rule2IncludedProducts: Drink
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: amount
                    rule3Value: 0
                    rule3ThresholdType: quantity
                    rule3ThresholdValue: 1
                    rule3IncludedProducts: Salad
                    rule3ExcludedProducts: ''
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
                    rule4Type: fixedPrice
                    rule4Value: 4.99
                    rule4ThresholdType: quantity
                    rule4ThresholdValue: 0
              Total Step Offer:
                value:
                  - offerId: b9b2e183-85b7-4dc2-bdb9-3a63b6c6fcd5
                    offerName: total_step_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Holiday Savings Tiers
                    description: >-
                      Holiday Savings Tiers: Purchase 60+ for 10 off, 100+ for
                      15 off, 250+ for 25 off!
                    brand: null
                    imageUrl: https://example.com/assets/holiday_savings_tiers.jpg
                    discountLabel: Holiday Savings Tiers
                    normalPriceLabel: ''
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: null
                    conditionLabel: Basket amount more than 50
                    receiptDisplayText: Holiday Savings Tiers
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: AllItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: TotalStep
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 10
                    rule1ThresholdType: amount
                    rule1ThresholdValue: 50
                    rule1IncludedProducts: ''
                    rule1ExcludedProducts: junk-food
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: amount
                    rule2Value: 15
                    rule2ThresholdType: amount
                    rule2ThresholdValue: 100
                    rule2IncludedProducts: ''
                    rule2ExcludedProducts: junk-food
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: amount
                    rule3Value: 25
                    rule3ThresholdType: amount
                    rule3ThresholdValue: 250
                    rule3IncludedProducts: ''
                    rule3ExcludedProducts: junk-food
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/BulkUpsertRequest'
            examples:
              10% off of Coca-Cola, that do not have other discounts, for chain 1:
                value:
                  - offerId: 02549909-c7ec-443e-ac37-7d07b8d3d364
                    offerName: coca_cola_10p_off
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: null
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 5
                    normalPricePerUnit: 10
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 5
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: '1'
                    storeIds: null
                    audienceId: null
                    fundedBy: null
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: coca-cola;fanta
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              1EUR off of Pringles up to 5 units, stacking with other discounts, segmented:
                value:
                  - offerId: a1e90a01-5b9d-42ba-a8be-a2c32fffb3c2
                    offerName: pringles_1eur_off
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: segmentedAppCoupon
                    unifiedCampaignId: ''
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 4
                    normalPricePerUnit: 12
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: true
                    itemsApplicationType: AllItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 5
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: 2213;12003
                    audienceId: pringles-audience-id
                    fundedBy: Supplier
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: pringles
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              Free twix:
                value:
                  - offerId: ecba679a-a83c-48c4-90b0-f01a41fcd490
                    offerName: free_twix
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: game
                    unifiedCampaignId: ''
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 4
                    normalPricePerUnit: null
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: SimpleLine
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: 1;2
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: fixedPrice
                    rule1Value: 0
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: pringles
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
              5% off basket of 100EUR or more, up to 10EUR for 3 purchases:
                value:
                  - offerId: e2516f4c-a5a7-4c21-a90e-39dca724bf99
                    offerName: 5p_basket
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: personalOffer
                    unifiedCampaignId: ''
                    title: 50% off Pepsi for you
                    description: Get your discount after purchasing at least 2 items
                    brand: PepsiCo
                    imageUrl: ''
                    discountLabel: 50% off every second item
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: L
                    conditionLabel: Up to 6 items per receipt
                    receiptDisplayText: Pepsi discount
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 10
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: SimpleLine
                    applyOnHighestPrice: true
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 3
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: 1;2
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.05
                    rule1ThresholdType: amount
                    rule1ThresholdValue: 10
              Step discount for Coca-Cola in specific stores:
                value:
                  - offerId: 1dcae5c4-5f55-4669-b350-4830cd95ae9a
                    offerName: coca_cola_step
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: null
                    title: null
                    description: null
                    brand: null
                    imageUrl: null
                    discountLabel: null
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: null
                    unitOfMeasure: null
                    conditionLabel: null
                    receiptDisplayText: null
                    autogenerateDiscountLabel: null
                    normalPrice: 5
                    normalPricePerUnit: 10
                    currency: EUR
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 5
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: QuantityStep
                    applyOnHighestPrice: false
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: null
                    storeIds: 1029;1030;2144
                    audienceId: null
                    fundedBy: null
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.1
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: coca-cola;fanta
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: percentage
                    rule2Value: 0.2
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 3
                    rule2IncludedProducts: coca-cola;fanta
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: percentage
                    rule3Value: 0.3
                    rule3ThresholdType: quantity
                    rule3ThresholdValue: 6
                    rule3IncludedProducts: coca-cola;fanta
                    rule3ExcludedProducts: ''
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
              Mix&Match Offer:
                value:
                  - offerId: d02660cd-9ac5-4505-8b37-2a9420bf5794
                    offerName: mm_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Save Big on Chips & Coca-Cola Combo
                    description: >-
                      Unlock exclusive savings when you combine your favorite
                      snacks and drinks! With this limited-time offer, buy any
                      pack of chips and get an automatic discount on Coca-Cola
                      multipacks. Perfect for parties or movie nights, this
                      combo delivers both taste and value in one easy deal.
                    brand: Crispy & Refreshing
                    imageUrl: https://example.com/assets/combo_chips_coke.jpg
                    discountLabel: Save up to 30%
                    normalPriceLabel: null
                    pricePerUnitLabelEnabled: false
                    unitOfMeasure: null
                    conditionLabel: Buy 1 Chips + 2 Coca-Cola
                    receiptDisplayText: 'Combo deal: Chips & Coca-Cola'
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Line
                    discountType: MixAndMatch
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: percentage
                    rule1Value: 0.3
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: Chips
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: percentage
                    rule2Value: 0.2
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 2
                    rule2IncludedProducts: Coca-Cola
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
              Mix&Match Total Offer:
                value:
                  - offerId: 59959ed8-32cc-4032-b1f1-4debde410b8e
                    offerName: mm_total_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Mix&Match Meal Deal for 4.99
                    description: >-
                      Enjoy a satisfying and balanced meal on the go! With this
                      combo offer, grab a sandwich, two refreshing drinks, and a
                      fresh salad—all for just 4.99. It’s the perfect pick for
                      lunch breaks, quick dinners, or fueling up during a busy
                      day. Great taste and great value, bundled for your
                      convenience.
                    brand: Fresh & Tasty
                    imageUrl: https://example.com/assets/meal_deal_499.jpg
                    discountLabel: 'Meal Deal: Only 4.99'
                    normalPriceLabel: 'Regular price: 7.99'
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: null
                    conditionLabel: 1 Sandwich, 2 Drinks, 1 Salad
                    receiptDisplayText: Mix&Match Meal Deal
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: NonDiscountedItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: MixAndMatchTotal
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 0
                    rule1ThresholdType: quantity
                    rule1ThresholdValue: 1
                    rule1IncludedProducts: Sandwich
                    rule1ExcludedProducts: ''
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: amount
                    rule2Value: 0
                    rule2ThresholdType: quantity
                    rule2ThresholdValue: 2
                    rule2IncludedProducts: Drink
                    rule2ExcludedProducts: ''
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: amount
                    rule3Value: 0
                    rule3ThresholdType: quantity
                    rule3ThresholdValue: 1
                    rule3IncludedProducts: Salad
                    rule3ExcludedProducts: ''
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
                    rule4Type: fixedPrice
                    rule4Value: 4.99
                    rule4ThresholdType: quantity
                    rule4ThresholdValue: 0
              Total Step Offer:
                value:
                  - offerId: b9b2e183-85b7-4dc2-bdb9-3a63b6c6fcd5
                    offerName: total_step_offer
                    startDate: '2026-08-09T00:00:00Z'
                    endDate: '2026-08-15T00:00:00Z'
                    previewVisibleFrom: null
                    offerType: appCoupon
                    unifiedCampaignId: ''
                    title: Holiday Savings Tiers
                    description: >-
                      Holiday Savings Tiers: Purchase 60+ for 10 off, 100+ for
                      15 off, 250+ for 25 off!
                    brand: null
                    imageUrl: https://example.com/assets/holiday_savings_tiers.jpg
                    discountLabel: Holiday Savings Tiers
                    normalPriceLabel: ''
                    pricePerUnitLabelEnabled: true
                    unitOfMeasure: null
                    conditionLabel: Basket amount more than 50
                    receiptDisplayText: Holiday Savings Tiers
                    autogenerateDiscountLabel: null
                    normalPrice: null
                    normalPricePerUnit: null
                    currency: null
                    priority: 5
                    allowOtherDiscountsOnTop: false
                    itemsApplicationType: AllItems
                    maxDiscountAmount: 0
                    maxDiscountAmountPerCoupon: null
                    impactLevel: Total
                    discountType: TotalStep
                    applyOnHighestPrice: null
                    maxNumberApplyPerReceipt: 1
                    redemptionLimit: 1
                    discountAmountLimitPerCoupon: null
                    checkoutTypes: null
                    rewardRedeemableFrom: null
                    rewardRedeemableTo: null
                    rewardRedeemableForDays: null
                    totalCoupons: null
                    isDefault: false
                    chainIds: ''
                    storeIds: ''
                    audienceId: null
                    fundedBy: Retailer
                    displayPriority: null
                    preactivated: null
                    ignoreOnPos: null
                    published: false
                    defaultValidForDays: null
                    rule1Type: amount
                    rule1Value: 10
                    rule1ThresholdType: amount
                    rule1ThresholdValue: 50
                    rule1IncludedProducts: ''
                    rule1ExcludedProducts: junk-food
                    rule1IncludedCategories: ''
                    rule1ExcludedCategories: ''
                    rule2Type: amount
                    rule2Value: 15
                    rule2ThresholdType: amount
                    rule2ThresholdValue: 100
                    rule2IncludedProducts: ''
                    rule2ExcludedProducts: junk-food
                    rule2IncludedCategories: ''
                    rule2ExcludedCategories: ''
                    rule3Type: amount
                    rule3Value: 25
                    rule3ThresholdType: amount
                    rule3ThresholdValue: 250
                    rule3IncludedProducts: ''
                    rule3ExcludedProducts: junk-food
                    rule3IncludedCategories: ''
                    rule3ExcludedCategories: ''
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImportResult'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    BulkUpsertRequest:
      required:
        - endDate
        - impactLevel
        - maxNumberApplyPerReceipt
        - offerId
        - offerName
        - offerType
        - published
        - redemptionLimit
        - rule1ThresholdType
        - rule1ThresholdValue
        - rule1Type
        - rule1Value
        - startDate
      type: object
      properties:
        offerId:
          minLength: 1
          type: string
          description: ID of the offer.
        offerName:
          minLength: 1
          type: string
          description: Name of the offer visible in the admin tools.
        startDate:
          type: string
          description: |-
            Date when any coupons for this offer become
            available to pick up in store.
          format: date-time
        endDate:
          type: string
          description: |-
            Date when all coupons for this offer stop being available
            to pick up in the store.
          format: date-time
        previewVisibleFrom:
          type: string
          description: >-
            Date when Coupons will be returned in API and visible in the app.
            Cannot be cleared after being set.
          format: date-time
          nullable: true
        offerType:
          minLength: 1
          type: string
          description: >-
            Customer specific offer type. Determines how or by which service
            offer

            will be used. Types used so far: game, appCoupon, gift,
            preferredStore, memberOffer,

            stampCard, stickersCampaign, segmentedAppCoupon, personalOffer.

            If not specified and offer is new, default type will be used, but
            publish will fail.
        unifiedCampaignId:
          maxLength: 64
          type: string
          description: ID of the unified campaign to which offer belongs.
          nullable: true
        title:
          maxLength: 255
          type: string
          description: >-
            Title of product visible in mobile app and in the coupon list. Can
            be cleared by passing empty string.
          nullable: true
        description:
          type: string
          description: >-
            Additional description of product visible in mobile app. Can be
            cleared by passing empty string.
          nullable: true
        brand:
          maxLength: 50
          type: string
          description: Brand of product. Can be cleared by passing empty string.
          nullable: true
        imageUrl:
          maxLength: 2000
          type: string
          description: >-
            Url to the image which be displayed in the promotion in the app. Can
            be cleared by passing empty string.
          nullable: true
        discountLabel:
          maxLength: 255
          type: string
          description: >-
            Discount label - for example Price For a Day or Monthly Price. Can
            be cleared by passing empty string.
          nullable: true
        normalPriceLabel:
          maxLength: 255
          type: string
          description: >-
            Normal price label - for example Non-member Price. Can be cleared by
            passing empty string.
          nullable: true
        pricePerUnitLabelEnabled:
          type: boolean
          description: >-
            Is the price per unit of the product(per kilo, per bottle, etc)
            visible in the mobile app
          nullable: true
        unitOfMeasure:
          maxLength: 255
          type: string
          description: >-
            Unit of measure for the product - EA, kg, etc... Can be cleared by
            passing empty string.
          nullable: true
        conditionLabel:
          maxLength: 64
          type: string
          description: Condition label used for override default condition label in the app
          nullable: true
        receiptDisplayText:
          maxLength: 100
          type: string
          description: Text that should be printed on receipt when the offer is applied
          nullable: true
        autogenerateDiscountLabel:
          type: boolean
          description: Whether to autogenerate discount label based on discount rules
          nullable: true
        normalPrice:
          maximum: 100000000
          minimum: 0
          type: number
          description: >-
            Price of the purchased amount before discount is applied. Required
            when

            importing offer for the first time. When not provided, last stored
            value is used.
          format: double
          nullable: true
        normalPricePerUnit:
          maximum: 100000000
          minimum: 0
          type: number
          description: >-
            Price per unit (per kile, for example) before discount is applied.
            Required when

            importing offer for the first time. When not provided, last stored
            value is used.
          format: double
          nullable: true
        currency:
          maxLength: 3
          type: string
          description: >-
            ISO-4217 currency code - 3 characters, for example, DKK, ISK, EUR
            etc. Required when

            importing offer for the first time. When not provided, last stored
            value is used
          nullable: true
        priority:
          type: integer
          description: >-
            The discount priority. The lower the priority value, the more
            priority the discount has
          format: int32
        allowOtherDiscountsOnTop:
          type: boolean
          description: >-
            Indicates whether the current discount allows the application of
            other discounts over it
        itemsApplicationType:
          $ref: '#/components/schemas/ItemsApplicationType'
        maxDiscountAmount:
          type: number
          description: The maximum discount amount that can be applied to the basket.
          format: double
        maxDiscountAmountPerCoupon:
          type: number
          description: >-
            The maximum discount amount that can be applied to the basket by a
            single coupon.
          format: double
          nullable: true
        impactLevel:
          $ref: '#/components/schemas/ImpactLevelType'
        discountType:
          $ref: '#/components/schemas/DiscountType'
        applyOnHighestPrice:
          type: boolean
          description: >-
            Defines sorting of products to apply discount on highest or lowest
            price product
          nullable: true
        maxNumberApplyPerReceipt:
          type: number
          description: >-
            Specifies maximum number of times this discount can be applied in
            scope of single receipt
          format: double
        redemptionLimit:
          type: integer
          description: >-
            Specifies how many times coupon can be redeemed in store. Each
            redemption is

            a separate purchase. Amount of time a coupon can be used in one
            purchase is controlled

            by Discount model. When not specified, defaults to last stored value
            on update, or 1 on create.

            Use 0 to indicate that coupon can be redeemed unlimited amount of
            times.

            If value is not equal to 1, we recommend providing Idempotency key
            during redemption, or weird behavior might happen.
          format: int32
        discountAmountLimitPerCoupon:
          type: number
          description: >-
            Maximum total discount amount that can be claimed across all
            redemptions per Customer.

            When not set or 0, there is no limit on total discount amount.
          format: double
          nullable: true
        checkoutTypes:
          type: string
          description: >-
            List of CheckoutTypes, separated by "ArraySplitter" where offer is
            applicable.

            ArraySplitter is a character by which symbol array should be split.
            ArraySplitter can be changed in settings
          nullable: true
        rewardRedeemableFrom:
          type: string
          description: >-
            The date and time when the granted benefit becomes available for
            use.

            Can be used only for Bonus benefits.
          format: date-time
          nullable: true
        rewardRedeemableTo:
          type: string
          description: >-
            The exact date and time when the granted benefit expires if not
            used.

            Can be used only for Bonus benefits.

            This property is mutually exclusive with
            Promotion.Client.ApiModels.V2.Requests.BulkUpsertRequest.RewardRedeemableForDays.
          format: date-time
          nullable: true
        rewardRedeemableForDays:
          type: integer
          description: >-
            The number of days after which the benefit expires if not used,
            counted from the moment the benefit is granted.

            This property is mutually exclusive with
            Promotion.Client.ApiModels.V2.Requests.BulkUpsertRequest.RewardRedeemableTo.

            Can be used only for Bonus benefits.
          format: int32
          nullable: true
        totalCoupons:
          type: integer
          description: >-
            Total amount of possible coupons in the offer. When it is null,
            unlimited

            amount of coupons can be assigned.
          format: int32
          nullable: true
        isDefault:
          type: boolean
          description: >-
            Can be true only for personal offers ("personalOffer",
            "relevantOffer"). When true, this offer

            will be returned for a user that has no coupons assigned in personal
            offers.
          nullable: true
        chainIds:
          type: string
          description: >-
            Collection of Chain Ids, separated by "ArraySplitter" where offer is
            available. Mutually exclusive with StoreIds.

            ArraySplitter is a character by which symbol array should be split.
            ArraySplitter can be changed in settings
          nullable: true
        storeIds:
          type: string
          description: >-
            List of Store Ids, separated by "ArraySplitter" where offer is
            available. Mutually exclusive with ChainIds.

            ArraySplitter is a character by which symbol array should be split.
            ArraySplitter can be changed in settings
          nullable: true
        audienceId:
          maxLength: 64
          type: string
          description: Segmentation identifier from the audience service.
          nullable: true
        fundedBy:
          maxLength: 100
          type: string
          description: >-
            Specifies who this offer is funded by. Retailers can use any values
            they need, or keep it empty
          nullable: true
        displayPriority:
          type: integer
          description: >-
            Controlls the order in which coupons are returned to the mobile app.
            Lower number means higher priority
          format: int32
          nullable: true
        preactivated:
          type: boolean
          description: >-
            Specifies if coupons for this offer require activation, or are
            working on POS without activation
          nullable: true
        ignoreOnPos:
          type: boolean
          description: Specifies if coupons should be visible and processed by POS.
          nullable: true
        published:
          type: boolean
          description: Specifies whether offer should be published
        defaultValidForDays:
          type: integer
          description: >-
            Default number of days a Triggered coupon is valid for, when no
            explicit value is specified during assignment
          format: int32
          nullable: true
        rule1Value:
          type: number
          description: Value for first discount rule
          format: double
        rule1Type:
          $ref: '#/components/schemas/RuleType'
        rule1ThresholdType:
          $ref: '#/components/schemas/ThresholdType'
        rule1ThresholdValue:
          type: number
          description: Threshold value for first discount rule
          format: double
        rule1IncludedProducts:
          type: string
          description: List of products for which the first rule applies separated by ';'
        rule1IncludedCategories:
          type: string
          description: List of categories for which the first rule applies separated by ';'
        rule1ExcludedProducts:
          type: string
          description: >-
            List of products for which the first rule not applies separated by
            ';'
        rule1ExcludedCategories:
          type: string
          description: >-
            List of categories for which the first rule not applies separated by
            ';'
        rule2Value:
          type: number
          description: Value for second discount rule
          format: double
        rule2Type:
          $ref: '#/components/schemas/RuleType'
        rule2ThresholdType:
          $ref: '#/components/schemas/ThresholdType'
        rule2ThresholdValue:
          type: number
          description: Threshold value for second discount rule
          format: double
        rule2IncludedProducts:
          type: string
          description: List of products for which the second rule applies separated by ';'
        rule2IncludedCategories:
          type: string
          description: >-
            List of categories for which the second rule applies separated by
            ';'
        rule2ExcludedProducts:
          type: string
          description: >-
            List of products for which the second rule not applies separated by
            ';'
        rule2ExcludedCategories:
          type: string
          description: >-
            List of categories for which the second rule not applies separated
            by ';'
      additionalProperties: false
    ImportResult:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/WebServiceError'
          nullable: true
      additionalProperties: false
    Error:
      type: object
      properties:
        name:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
        details:
          nullable: true
      additionalProperties: false
    ItemsApplicationType:
      enum:
        - AllItems
        - NonDiscountedItems
        - DiscountedItems
      type: string
      description: The discounted items type
    ImpactLevelType:
      enum:
        - Line
        - Total
      type: string
      description: Specifies what the discount impacts - specific line or the basket total
    DiscountType:
      enum:
        - Unknown
        - SimpleLine
        - SimpleQuantity
        - SimpleTotal
        - MixAndMatch
        - MixAndMatchTotal
        - QuantityStep
        - RewardTotal
        - TotalStep
      type: string
      description: The type of discount calculation rule to apply
    RuleType:
      enum:
        - FixedPrice
        - Percentage
        - Amount
        - BonusPercent
        - BonusAmount
      type: string
      description: Type of the discount.
    ThresholdType:
      enum:
        - Quantity
        - Amount
      type: string
      description: >-
        Specifies what is the threshold for discount to apply. If not enough
        items are purchased, discount will not be applied
    WebServiceError:
      required:
        - message
        - name
      type: object
      properties:
        name:
          minLength: 1
          type: string
        message:
          minLength: 1
          type: string
        details:
          nullable: true
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: apiKey
      description: >-
        Opaque Authorization header using the Bearer scheme. Example:
        "Authorization: Bearer {token}"
      name: Authorization
      in: header

````