openapi: 3.1.0
info:
  title: Notification schemas
  version: ''
  description: |
    Use [Application notifications](/docs/product/applications/application-notifications/overview)
    and [loyalty notifications](/docs/product/loyalty-programs/loyalty-notifications/overview)
    to notify the system of your choice of certain changes that happened in Talon.One.

    > [!note] **Note:**
    > - Required fields are not omitted if they are empty (have `null` value).
    > - The notification schemas may be extended with additional properties in future releases.
    > To maintain forward compatibility, ensure your implementation ignores unknown properties.
servers:
  - url: https://yourbaseurl.talon.one
security: []
tags:
  - name: Campaign notifications
    description: |
      Represents the [notifications](/docs/product/applications/application-notifications/overview)
      about campaign-related changes.

      > [!note] The value of the `NotificationType` property indicates the campaign change:
      > - `CampaignNotification` signifies one of the following events:
      >   - [Campaign created](#tag/Campaign-notifications/operation/campaignCreatedNotification)
      >   - [Campaign state changed](#tag/Campaign-notifications/operation/campaignStateChangedNotification)
      >   - [Campaign rules changed](#tag/Campaign-notifications/operation/campaignRulesetChangedNotification)
      >   - [Campaign edited](#tag/Campaign-notifications/operation/campaignEditedNotification)
      >   - [Campaign collection edited](#tag/Campaign-notifications/operation/campaignCollectionEditedNotification)
      >   - [Campaign deleted](#tag/Campaign-notifications/operation/campaignDeletedNotification)
      > - `CampaignEvaluationTreeChanged` signifies [Campaign evaluation tree changed](#tag/Campaign-notifications/operation/campaignEvaluationTreeChangedNotification).
  - name: Coupon notifications
    description: |
      Represents the [notifications](/docs/product/applications/application-notifications/overview)
      about coupons.
  - name: Loyalty card notifications
    description: Represents the [notifications](/docs/product/loyalty-programs/loyalty-notifications/overview) about changes to loyalty points in card-based loyalty programs.
  - name: Loyalty notifications
    description: |
      Represents the [notifications](/docs/product/loyalty-programs/loyalty-notifications/overview)
      about changes to loyalty points in profile-based loyalty programs.
  - name: Strikethrough pricing notifications
    description: |
      Represents the [notifications](/docs/product/applications/application-notifications/overview)
      about strikethrough pricing updates.
paths: {}
webhooks:
  campaignCreatedNotification:
    post:
      operationId: campaignCreatedNotification
      summary: Campaign created
      tags:
        - Campaign notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/applications/application-notifications/overview) indicating a campaign was created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignCreatedNotification'
            example:
              NotificationType: CampaignNotification
              TotalResultSize: 0
              Data:
                - Event: campaign_state_changed
                  campaign:
                    id: 4
                    created: 2020-06-10T09:05:27.993483Z
                    applicationId: 322
                    userId: 388
                    name: Summer promotions
                    description: Campaign for all summer 2021 promotions
                    startTime: 2021-07-20T22:00:00Z
                    endTime: 2021-09-22T22:00:00Z
                    attributes: {}
                    state: enabled
                    activeRulesetId: 6
                    tags:
                      - summer
                    reevaluateOnReturn: false
                    features:
                      - coupons
                      - referrals
                    couponSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    referralSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    limits:
                      - action: createCoupon
                        limit: 1000
                        period: yearly
                        entities:
                          - Coupon
                    campaignGroups:
                      - 1
                      - 3
                    type: advanced
                    linkedStoreIds:
                      - 1
                      - 2
                      - 3
                    budgets:
                      - action: createCoupon
                        limit: 1000
                        counter: 42
                    couponRedemptionCount: 163
                    referralRedemptionCount: 3
                    discountCount: 288
                    discountEffectCount: 343
                    couponCreationCount: 16
                    customEffectCount: 0
                    referralCreationCount: 8
                    addFreeItemEffectCount: 0
                    awardedGiveawaysCount: 9
                    createdLoyaltyPointsCount: 9
                    createdLoyaltyPointsEffectCount: 2
                    redeemedLoyaltyPointsCount: 8
                    redeemedLoyaltyPointsEffectCount: 9
                    callApiEffectCount: 0
                    reservecouponEffectCount: 9
                    lastActivity: 2022-11-10T23:00:00Z
                    updated: 2022-10-27T15:00:00Z
                    createdBy: John Doe
                    updatedBy: Jane Doe
                    templateId: 3
                    frontendState: running
                    storesImported: true
                    valueMapsIds:
                      - 100
                      - 215
                    revisionFrontendState: revised
                    activeRevisionId: 6
                    activeRevisionVersionId: 6
                    version: 6
                    currentRevisionId: 6
                    currentRevisionVersionId: 6
                    stageRevision: false
                  ruleset:
                    id: 6
                    created: 2020-06-10T09:05:27.993483Z
                    userId: 388
                    rules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `text`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    strikethroughRules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `number`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    bindings: []
                    rbVersion: v2
                    activate: true
                    campaignId: 320
                    templateId: 3
                    activatedAt: 2019-08-24T14:15:22Z
                  evaluationPosition:
                    groupId: 2
                    groupName: Summer campaigns
                    position: 2
                  placeholders:
                    - name: my property
                      type: String
                      value:
                        - string2
        required: true
  campaignStateChangedNotification:
    post:
      operationId: campaignStateChangedNotification
      summary: Campaign state changed
      tags:
        - Campaign notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/applications/application-notifications/overview) indicating the state of a campaign changed.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignStateChangedNotification'
            example:
              NotificationType: CampaignNotification
              TotalResultSize: 0
              Data:
                - Event: campaign_state_changed
                  campaign:
                    id: 4
                    created: 2020-06-10T09:05:27.993483Z
                    applicationId: 322
                    userId: 388
                    name: Summer promotions
                    description: Campaign for all summer 2021 promotions
                    startTime: 2021-07-20T22:00:00Z
                    endTime: 2021-09-22T22:00:00Z
                    attributes: {}
                    state: enabled
                    activeRulesetId: 6
                    tags:
                      - summer
                    reevaluateOnReturn: false
                    features:
                      - coupons
                      - referrals
                    couponSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    referralSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    limits:
                      - action: createCoupon
                        limit: 1000
                        period: yearly
                        entities:
                          - Coupon
                    campaignGroups:
                      - 1
                      - 3
                    type: advanced
                    linkedStoreIds:
                      - 1
                      - 2
                      - 3
                    budgets:
                      - action: createCoupon
                        limit: 1000
                        counter: 42
                    couponRedemptionCount: 163
                    referralRedemptionCount: 3
                    discountCount: 288
                    discountEffectCount: 343
                    couponCreationCount: 16
                    customEffectCount: 0
                    referralCreationCount: 8
                    addFreeItemEffectCount: 0
                    awardedGiveawaysCount: 9
                    createdLoyaltyPointsCount: 9
                    createdLoyaltyPointsEffectCount: 2
                    redeemedLoyaltyPointsCount: 8
                    redeemedLoyaltyPointsEffectCount: 9
                    callApiEffectCount: 0
                    reservecouponEffectCount: 9
                    lastActivity: 2022-11-10T23:00:00Z
                    updated: 2022-10-27T15:00:00Z
                    createdBy: John Doe
                    updatedBy: Jane Doe
                    templateId: 3
                    frontendState: running
                    storesImported: true
                    valueMapsIds:
                      - 100
                      - 215
                    revisionFrontendState: revised
                    activeRevisionId: 6
                    activeRevisionVersionId: 6
                    version: 6
                    currentRevisionId: 6
                    currentRevisionVersionId: 6
                    stageRevision: false
                  oldState: disabled
                  newState: running
                  ruleset:
                    id: 6
                    created: 2020-06-10T09:05:27.993483Z
                    userId: 388
                    rules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `text`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    strikethroughRules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `number`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    bindings: []
                    rbVersion: v2
                    activate: true
                    campaignId: 320
                    templateId: 3
                    activatedAt: 2019-08-24T14:15:22Z
                  placeholders:
                    - name: my property
                      type: String
                      value:
                        - string2
        required: true
  campaignRulesetChangedNotification:
    post:
      operationId: campaignRulesetChangedNotification
      summary: Campaign rules changed
      tags:
        - Campaign notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/applications/application-notifications/overview) indicating the rules of a campaign changed.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignRulesetChangedNotification'
            example:
              NotificationType: CampaignNotification
              TotalResultSize: 0
              Data:
                - Event: campaign_state_changed
                  campaign:
                    id: 4
                    created: 2020-06-10T09:05:27.993483Z
                    applicationId: 322
                    userId: 388
                    name: Summer promotions
                    description: Campaign for all summer 2021 promotions
                    startTime: 2021-07-20T22:00:00Z
                    endTime: 2021-09-22T22:00:00Z
                    attributes: {}
                    state: enabled
                    activeRulesetId: 6
                    tags:
                      - summer
                    reevaluateOnReturn: false
                    features:
                      - coupons
                      - referrals
                    couponSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    referralSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    limits:
                      - action: createCoupon
                        limit: 1000
                        period: yearly
                        entities:
                          - Coupon
                    campaignGroups:
                      - 1
                      - 3
                    type: advanced
                    linkedStoreIds:
                      - 1
                      - 2
                      - 3
                    budgets:
                      - action: createCoupon
                        limit: 1000
                        counter: 42
                    couponRedemptionCount: 163
                    referralRedemptionCount: 3
                    discountCount: 288
                    discountEffectCount: 343
                    couponCreationCount: 16
                    customEffectCount: 0
                    referralCreationCount: 8
                    addFreeItemEffectCount: 0
                    awardedGiveawaysCount: 9
                    createdLoyaltyPointsCount: 9
                    createdLoyaltyPointsEffectCount: 2
                    redeemedLoyaltyPointsCount: 8
                    redeemedLoyaltyPointsEffectCount: 9
                    callApiEffectCount: 0
                    reservecouponEffectCount: 9
                    lastActivity: 2022-11-10T23:00:00Z
                    updated: 2022-10-27T15:00:00Z
                    createdBy: John Doe
                    updatedBy: Jane Doe
                    templateId: 3
                    frontendState: running
                    storesImported: true
                    valueMapsIds:
                      - 100
                      - 215
                    revisionFrontendState: revised
                    activeRevisionId: 6
                    activeRevisionVersionId: 6
                    version: 6
                    currentRevisionId: 6
                    currentRevisionVersionId: 6
                    stageRevision: false
                  oldRuleset:
                    id: 6
                    created: 2020-06-10T09:05:27.993483Z
                    userId: 388
                    rules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `text`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    strikethroughRules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `number`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    bindings: []
                    rbVersion: v2
                    activate: true
                    campaignId: 320
                    templateId: 3
                    activatedAt: 2019-08-24T14:15:22Z
                  oldPlaceholders:
                    - name: my property
                      type: String
                      value:
                        - string2
                  ruleset:
                    id: 6
                    created: 2020-06-10T09:05:27.993483Z
                    userId: 388
                    rules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `text`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    strikethroughRules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `number`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    bindings: []
                    rbVersion: v2
                    activate: true
                    campaignId: 320
                    templateId: 3
                    activatedAt: 2019-08-24T14:15:22Z
                  placeholders:
                    - name: my property
                      type: String
                      value:
                        - string2
        required: true
  campaignEditedNotification:
    post:
      operationId: campaignEditedNotification
      summary: Campaign edited
      tags:
        - Campaign notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/applications/application-notifications/overview) indicating a campaign was edited.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignEditedNotification'
            example:
              NotificationType: CampaignNotification
              TotalResultSize: 0
              Data:
                - Event: campaign_state_changed
                  campaign:
                    id: 4
                    created: 2020-06-10T09:05:27.993483Z
                    applicationId: 322
                    userId: 388
                    name: Summer promotions
                    description: Campaign for all summer 2021 promotions
                    startTime: 2021-07-20T22:00:00Z
                    endTime: 2021-09-22T22:00:00Z
                    attributes: {}
                    state: enabled
                    activeRulesetId: 6
                    tags:
                      - summer
                    reevaluateOnReturn: false
                    features:
                      - coupons
                      - referrals
                    couponSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    referralSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    limits:
                      - action: createCoupon
                        limit: 1000
                        period: yearly
                        entities:
                          - Coupon
                    campaignGroups:
                      - 1
                      - 3
                    type: advanced
                    linkedStoreIds:
                      - 1
                      - 2
                      - 3
                    budgets:
                      - action: createCoupon
                        limit: 1000
                        counter: 42
                    couponRedemptionCount: 163
                    referralRedemptionCount: 3
                    discountCount: 288
                    discountEffectCount: 343
                    couponCreationCount: 16
                    customEffectCount: 0
                    referralCreationCount: 8
                    addFreeItemEffectCount: 0
                    awardedGiveawaysCount: 9
                    createdLoyaltyPointsCount: 9
                    createdLoyaltyPointsEffectCount: 2
                    redeemedLoyaltyPointsCount: 8
                    redeemedLoyaltyPointsEffectCount: 9
                    callApiEffectCount: 0
                    reservecouponEffectCount: 9
                    lastActivity: 2022-11-10T23:00:00Z
                    updated: 2022-10-27T15:00:00Z
                    createdBy: John Doe
                    updatedBy: Jane Doe
                    templateId: 3
                    frontendState: running
                    storesImported: true
                    valueMapsIds:
                      - 100
                      - 215
                    revisionFrontendState: revised
                    activeRevisionId: 6
                    activeRevisionVersionId: 6
                    version: 6
                    currentRevisionId: 6
                    currentRevisionVersionId: 6
                    stageRevision: false
                  oldCampaign:
                    id: 4
                    created: 2020-06-10T09:05:27.993483Z
                    applicationId: 322
                    userId: 388
                    name: Summer promotions
                    description: Campaign for all summer 2021 promotions
                    startTime: 2021-07-20T22:00:00Z
                    endTime: 2021-09-22T22:00:00Z
                    attributes: {}
                    state: enabled
                    activeRulesetId: 6
                    tags:
                      - summer
                    reevaluateOnReturn: false
                    features:
                      - coupons
                      - referrals
                    couponSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    referralSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    limits:
                      - action: createCoupon
                        limit: 1000
                        period: yearly
                        entities:
                          - Coupon
                    campaignGroups:
                      - 1
                      - 3
                    type: advanced
                    linkedStoreIds:
                      - 1
                      - 2
                      - 3
                    budgets:
                      - action: createCoupon
                        limit: 1000
                        counter: 42
                    couponRedemptionCount: 163
                    referralRedemptionCount: 3
                    discountCount: 288
                    discountEffectCount: 343
                    couponCreationCount: 16
                    customEffectCount: 0
                    referralCreationCount: 8
                    addFreeItemEffectCount: 0
                    awardedGiveawaysCount: 9
                    createdLoyaltyPointsCount: 9
                    createdLoyaltyPointsEffectCount: 2
                    redeemedLoyaltyPointsCount: 8
                    redeemedLoyaltyPointsEffectCount: 9
                    callApiEffectCount: 0
                    reservecouponEffectCount: 9
                    lastActivity: 2022-11-10T23:00:00Z
                    updated: 2022-10-27T15:00:00Z
                    createdBy: John Doe
                    updatedBy: Jane Doe
                    templateId: 3
                    frontendState: running
                    storesImported: true
                    valueMapsIds:
                      - 100
                      - 215
                    revisionFrontendState: revised
                    activeRevisionId: 6
                    activeRevisionVersionId: 6
                    version: 6
                    currentRevisionId: 6
                    currentRevisionVersionId: 6
                    stageRevision: false
                  ruleset:
                    id: 6
                    created: 2020-06-10T09:05:27.993483Z
                    userId: 388
                    rules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `text`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    strikethroughRules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `number`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    bindings: []
                    rbVersion: v2
                    activate: true
                    campaignId: 320
                    templateId: 3
                    activatedAt: 2019-08-24T14:15:22Z
                  placeholders:
                    - name: my property
                      type: String
                      value:
                        - string2
        required: true
  campaignCollectionEditedNotification:
    post:
      operationId: campaignCollectionEditedNotification
      summary: Campaign collection edited
      tags:
        - Campaign notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/applications/application-notifications/overview) indicating the collection was edited.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignCollectionEditedNotification'
            example:
              NotificationType: CampaignNotification
              TotalResultSize: 0
              Data:
                - Event: campaign_state_changed
                  campaign:
                    id: 4
                    created: 2020-06-10T09:05:27.993483Z
                    applicationId: 322
                    userId: 388
                    name: Summer promotions
                    description: Campaign for all summer 2021 promotions
                    startTime: 2021-07-20T22:00:00Z
                    endTime: 2021-09-22T22:00:00Z
                    attributes: {}
                    state: enabled
                    activeRulesetId: 6
                    tags:
                      - summer
                    reevaluateOnReturn: false
                    features:
                      - coupons
                      - referrals
                    couponSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    referralSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    limits:
                      - action: createCoupon
                        limit: 1000
                        period: yearly
                        entities:
                          - Coupon
                    campaignGroups:
                      - 1
                      - 3
                    type: advanced
                    linkedStoreIds:
                      - 1
                      - 2
                      - 3
                    budgets:
                      - action: createCoupon
                        limit: 1000
                        counter: 42
                    couponRedemptionCount: 163
                    referralRedemptionCount: 3
                    discountCount: 288
                    discountEffectCount: 343
                    couponCreationCount: 16
                    customEffectCount: 0
                    referralCreationCount: 8
                    addFreeItemEffectCount: 0
                    awardedGiveawaysCount: 9
                    createdLoyaltyPointsCount: 9
                    createdLoyaltyPointsEffectCount: 2
                    redeemedLoyaltyPointsCount: 8
                    redeemedLoyaltyPointsEffectCount: 9
                    callApiEffectCount: 0
                    reservecouponEffectCount: 9
                    lastActivity: 2022-11-10T23:00:00Z
                    updated: 2022-10-27T15:00:00Z
                    createdBy: John Doe
                    updatedBy: Jane Doe
                    templateId: 3
                    frontendState: running
                    storesImported: true
                    valueMapsIds:
                      - 100
                      - 215
                    revisionFrontendState: revised
                    activeRevisionId: 6
                    activeRevisionVersionId: 6
                    version: 6
                    currentRevisionId: 6
                    currentRevisionVersionId: 6
                    stageRevision: false
                  ruleset:
                    id: 6
                    created: 2020-06-10T09:05:27.993483Z
                    userId: 388
                    rules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `text`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    strikethroughRules:
                      - id: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        parentId: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
                        title: Give discount via coupon
                        description: Creates a discount when a coupon is valid
                        bindings:
                          - name: my property
                            type: templateParameter
                            expression:
                              - string1
                              - string2
                            valueType: string
                            minValue: 0
                            maxValue: 19.9
                            attributeId: 100
                            description: This is a template parameter of type `number`.
                        condition:
                          - and
                          - - couponValid
                        effects:
                          - catch
                          - - noop
                          - - setDiscount
                            - 10% off
                            - - '*'
                              - - .
                                - Session
                                - Total
                              - - /
                                - 10
                                - 100
                    bindings: []
                    rbVersion: v2
                    activate: true
                    campaignId: 320
                    templateId: 3
                    activatedAt: 2019-08-24T14:15:22Z
                  collection:
                    id: 6
                    created: 2020-06-10T09:05:27.993483Z
                    accountId: 3886
                    modified: 2021-09-12T10:12:42Z
                    description: My collection of SKUs
                    subscribedApplicationsIds:
                      - 1
                      - 2
                      - 3
                    name: My collection
                    modifiedBy: 48
                    createdBy: 134
                    applicationId: 1
                    campaignId: 7
                  placeholders:
                    - name: my property
                      type: String
                      value:
                        - string2
        required: true
  campaignDeletedNotification:
    post:
      operationId: campaignDeletedNotification
      summary: Campaign deleted
      tags:
        - Campaign notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/applications/application-notifications/overview) indicating a campaign was deleted.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignDeletedNotification'
            example:
              NotificationType: CampaignNotification
              TotalResultSize: 0
              Data:
                - Event: campaign_state_changed
                  campaign:
                    id: 4
                    created: 2020-06-10T09:05:27.993483Z
                    applicationId: 322
                    userId: 388
                    name: Summer promotions
                    description: Campaign for all summer 2021 promotions
                    startTime: 2021-07-20T22:00:00Z
                    endTime: 2021-09-22T22:00:00Z
                    attributes: {}
                    state: enabled
                    activeRulesetId: 6
                    tags:
                      - summer
                    reevaluateOnReturn: false
                    features:
                      - coupons
                      - referrals
                    couponSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    referralSettings:
                      validCharacters:
                        - A
                        - B
                        - C
                      couponPattern: SUMMER-####-####
                    limits:
                      - action: createCoupon
                        limit: 1000
                        period: yearly
                        entities:
                          - Coupon
                    campaignGroups:
                      - 1
                      - 3
                    type: advanced
                    linkedStoreIds:
                      - 1
                      - 2
                      - 3
                    budgets:
                      - action: createCoupon
                        limit: 1000
                        counter: 42
                    couponRedemptionCount: 163
                    referralRedemptionCount: 3
                    discountCount: 288
                    discountEffectCount: 343
                    couponCreationCount: 16
                    customEffectCount: 0
                    referralCreationCount: 8
                    addFreeItemEffectCount: 0
                    awardedGiveawaysCount: 9
                    createdLoyaltyPointsCount: 9
                    createdLoyaltyPointsEffectCount: 2
                    redeemedLoyaltyPointsCount: 8
                    redeemedLoyaltyPointsEffectCount: 9
                    callApiEffectCount: 0
                    reservecouponEffectCount: 9
                    lastActivity: 2022-11-10T23:00:00Z
                    updated: 2022-10-27T15:00:00Z
                    createdBy: John Doe
                    updatedBy: Jane Doe
                    templateId: 3
                    frontendState: running
                    storesImported: true
                    valueMapsIds:
                      - 100
                      - 215
                    revisionFrontendState: revised
                    activeRevisionId: 6
                    activeRevisionVersionId: 6
                    version: 6
                    currentRevisionId: 6
                    currentRevisionVersionId: 6
                    stageRevision: false
                  deletedAt: 2022-11-10T23:00:00Z
        required: true
  campaignEvaluationTreeChangedNotification:
    post:
      operationId: campaignEvaluationTreeChangedNotification
      summary: Campaign evaluation tree changed
      tags:
        - Campaign notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: |
          The [notification](/docs/product/applications/application-notifications/overview) indicating the campaign evaluation tree of an Application changed.

          The campaign evaluation tree changes, for example, when a campaign is created (including copying other campaigns) or deleted, or when a campaign evaluation group is modified.
          To learn more, see [Managing campaign evaluation](/docs/product/applications/managing-campaign-evaluation).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignEvaluationTreeChangedMessage'
            example:
              NotificationType: CampaignNotification
              TotalResultSize: 0
              data:
                - event: string
                  applicationId: 78
                  oldEvaluationTree:
                    applicationId: 322
                    id: 6
                    version: 3
                    set:
                      type: SET
                      name: name
                      operator: ALL
                      elements:
                        - type: type
                      groupId: 0
                      locked: true
                      description: string
                      evaluationMode: stackable
                      evaluationScope: cartItem
                    updatedBy: Jane Doe
                  evaluationTree:
                    applicationId: 322
                    id: 6
                    version: 3
                    set:
                      type: SET
                      name: name
                      operator: ALL
                      elements:
                        - type: type
                      groupId: 0
                      locked: true
                      description: string
                      evaluationMode: stackable
                      evaluationScope: cartItem
                    updatedBy: Jane Doe
        required: true
  strikethroughLabelingNotification:
    post:
      operationId: strikethroughLabelingNotification
      summary: Strikethrough pricing updated
      tags:
        - Strikethrough pricing notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/applications/application-notifications/overview) listing the changes in the pricing of your [cart item catalog](/docs/product/account/dev-tools/managing-cart-item-catalogs).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StrikethroughLabelingNotification'
            examples:
              StrikethroughNotification:
                value:
                  applicationId: 322
                  currentBatch: 1
                  totalBatches: 10
                  trigger:
                    id: 1
                    type: CATALOG_SYNC
                    triggeredAt: 2025-05-27T09:05:27.993483Z
                    totalAffectedItems: 1500
                    payload:
                      catalogId: 2
                      catalogVersion: 10
                  changedItems:
                    - id: 1
                      catalogId: 10
                      sku: SKU1241028
                      version: 6
                      price: 100
                      prices:
                        base:
                          price: 100
                        member:
                          price: 90
                          adjustmentReferenceId: 68851723-e6fa-488f-ace9-112581e6c19b
                          effectiveFrom: 2025-05-25T00:00:00Z
                          effectiveUntil: 2025-05-30T00:00:00Z
                      evaluatedAt: 2025-05-27T09:05:27.993483Z
                      effects:
                        - campaignId: 3
                          rulesetId: 11
                          ruleIndex: 2
                          ruleName: Give 10% off
                          type: setDiscountPerItem
                          props:
                            name: 10% off
                            value: 10
                          selectedPriceType: base
                          selectedPrice: 100
                          targets:
                            - type: NONE
                        - campaignId: 3
                          startTime: 2025-05-25T00:00:00Z
                          endTime: 2025-05-30T00:00:00Z
                          rulesetId: 11
                          ruleIndex: 2
                          ruleName: Give 10% off
                          type: setDiscountPerItem
                          props:
                            name: 10% off
                            value: 9
                          selectedPriceType: member
                          selectedPrice: 90
                          adjustmentReferenceId: 68851723-e6fa-488f-ace9-112581e6c19b
                          targets:
                            - type: AUDIENCE
                              audience:
                                id: 1
                  NotificationType: StrikethroughPrice
                  sentAt: 2025-05-27T09:05:27.993483Z
              ScheduledStrikethroughNotification:
                value:
                  version: v2
                  validFrom: 2025-05-28T09:05:27.993483Z
                  applicationId: 322
                  currentBatch: 1
                  totalBatches: 10
                  trigger:
                    id: 1
                    type: CATALOG_SYNC
                    triggeredAt: 2025-05-27T09:05:27.993483Z
                    totalAffectedItems: 1500
                    payload:
                      catalogId: 2
                      catalogVersion: 10
                  changedItems:
                    - id: 1
                      catalogId: 10
                      sku: SKU1241028
                      version: 6
                      price: 100
                      prices:
                        base:
                          price: 100
                        member:
                          price: 90
                          adjustmentReferenceId: 68851723-e6fa-488f-ace9-112581e6c19b
                          effectiveFrom: 2025-05-25T00:00:00Z
                          effectiveUntil: 2025-05-30T00:00:00Z
                      evaluatedAt: 2025-05-27T09:05:27.993483Z
                      effects:
                        - campaignId: 3
                          rulesetId: 11
                          ruleIndex: 2
                          ruleName: Give 10% off
                          type: setDiscountPerItem
                          props:
                            name: 10% off
                            value: 10
                          selectedPriceType: base
                          selectedPrice: 100
                          targets:
                            - type: NONE
                        - campaignId: 3
                          startTime: 2025-05-25T00:00:00Z
                          endTime: 2025-05-30T00:00:00Z
                          rulesetId: 11
                          ruleIndex: 2
                          ruleName: Give 10% off
                          type: setDiscountPerItem
                          props:
                            name: 10% off
                            value: 9
                          selectedPriceType: member
                          selectedPrice: 90
                          adjustmentReferenceId: 68851723-e6fa-488f-ace9-112581e6c19b
                          targets:
                            - type: AUDIENCE
                              audience:
                                id: 1
                  NotificationType: StrikethroughPrice
                  sentAt: 2025-05-27T09:05:27.993483Z
              ScheduledMemberStrikethroughNotification:
                value:
                  version: v2
                  validFrom: 2025-05-28T09:05:27.993483Z
                  applicationId: 322
                  currentBatch: 1
                  totalBatches: 10
                  trigger:
                    id: 1
                    type: CATALOG_SYNC
                    triggeredAt: 2025-05-27T09:05:27.993483Z
                    totalAffectedItems: 1500
                    payload:
                      catalogId: 2
                      catalogVersion: 10
                  changedItems:
                    - id: 1
                      catalogId: 10
                      sku: SKU1241028
                      version: 6
                      price: 100
                      prices:
                        base:
                          price: 100
                        member:
                          price: 90
                          adjustmentReferenceId: 68851723-e6fa-488f-ace9-112581e6c19b
                          effectiveFrom: 2025-05-25T00:00:00Z
                          effectiveUntil: 2025-05-30T00:00:00Z
                      evaluatedAt: 2025-05-27T09:05:27.993483Z
                      effects:
                        - campaignId: 3
                          startTime: 2025-05-25T00:00:00Z
                          endTime: 2025-05-30T00:00:00Z
                          rulesetId: 11
                          ruleIndex: 2
                          ruleName: Give 10% off
                          type: setDiscountPerItem
                          props:
                            name: 10% off
                            value: 9
                          selectedPriceType: member
                          selectedPrice: 90
                          adjustmentReferenceId: 68851723-e6fa-488f-ace9-112581e6c19b
                          targets:
                            - type: AUDIENCE
                              audience:
                                id: 1
                  NotificationType: StrikethroughPrice
                  sentAt: 2025-05-27T09:05:27.993483Z
        required: true
  createCouponData:
    post:
      operationId: createCouponData
      summary: Coupon created
      tags:
        - Coupon notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: |-
          The [notification](/docs/product/applications/application-notifications/overview) indicating that one of the following coupon-related changes occurred:
          - Coupon created (via the Campaign Manager
            or [Create coupons](/management-api#tag/Coupons/operation/createCoupons) endpoint).
          - Coupon created for multiple recipients
            (via the [Create coupons for multiple recipients](/management-api#tag/Coupons/operation/createCouponsForMultipleRecipients) endpoint).
          - Coupon created (as a result of the
            [couponCreated](/docs/dev/integration-api/api-effects#couponcreated) API effect,
            triggered by the Rule Engine).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCouponData'
            examples:
              LessThan1000Coupons:
                value:
                  TypeOfChange: campaign_manager
                  Operation: CouponCreated
                  EmployeeName: Franziska Schneider
                  NotificationType: CouponCreated
                  totalResultSize: 2
                  data:
                    - id: 1
                      created: 2023-01-31T15:19:25.18417+01:00
                      campaignId: 1
                      value: 73KXKKFP
                      usageLimit: 1
                      reservationLimit: 0
                      usageCounter: 0
                      attributes: {}
                      reservation: true
                      batchId: nqylhnni
                    - id: 2
                      created: 2023-01-31T15:19:25.18417+01:00
                      campaignId: 1
                      value: BH3CXXLW
                      usageLimit: 1
                      reservationLimit: 0
                      usageCounter: 0
                      attributes: {}
                      reservation: true
                      batchId: nqylhnni
              MoreThan1000Coupons:
                value:
                  TypeOfChange: campaign_manager
                  Operation: CouponCreated
                  EmployeeName: Franziska Schneider
                  NotificationType: CouponCreated
                  BatchID: nqylhnni
        required: true
  couponsData:
    post:
      operationId: couponsData
      summary: Coupon updated or deleted
      tags:
        - Coupon notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: |-
          The [notification](/docs/product/applications/application-notifications/overview) indicating that one of the following coupon-related changes occurred:
          - Coupon updated (via the Campaign Manager
            or [Update coupon](/management-api#tag/Coupons/operation/updateCoupon) endpoint).
          - Coupon deleted (via the Campaign Manager
            or [Delete coupon](/management-api#tag/Coupons/operation/deleteCoupon) endpoint).
          - Coupon updated (as a result of the
            [updateAttribute](/docs/dev/integration-api/api-effects#updateattribute) API effect,
            triggered by the Rule Engine).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CouponsNotificationData'
            example:
              TypeOfChange: campaign_manager
              Operation: CouponsUpdated
              EmployeeName: Franziska Schneider
              NotificationType: CouponsUpdated
              BatchID: nqylhnni
              ApplicationID: 5
              CampaignID: 3
        required: true
  asyncCouponsData:
    post:
      operationId: asyncCouponsData
      summary: Coupons created asynchronously
      tags:
        - Coupon notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: |-
          The [notification](/docs/product/applications/application-notifications/overview) indicating that up to 5 million coupons were created asynchronously via the [Create coupons asynchronously](/management-api#tag/Coupons/operation/createCouponsAsync) endpoint.

          In this case, instead of individual notifications for specific coupon changes (such as creation, update, or deletion), a single notification about the completion of the batch processing of coupons with details about the batch is sent.

          **Tip:**
          To retrieve information about the generated coupons, after receiving the notification, use the [Export coupons](/management-api#tag/Coupons/operation/exportCoupons) endpoint along with the `batchid`, which indicates the batch to which the coupons belong.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsyncCouponsData'
            example:
              TypeOfChange: campaign_manager
              Operation: AsyncCouponsCreated
              EmployeeName: Franziska Schneider
              NotificationType: AsyncCouponsCreated
              BatchID: nqylhnni
        required: true
  updateCouponsData:
    post:
      operationId: updateCouponsData
      summary: Coupons updated
      tags:
        - Coupon notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: |-
          The [notification](/docs/product/applications/application-notifications/overview) indicating that coupons were updated via the [Update coupons](/management-api#tag/Coupons/operation/updateCouponBatch) endpoint.

          **Tip:**
          To retrieve information about the generated coupons, after receiving the notification, use the [Export coupons](/management-api#tag/Coupons/operation/exportCoupons) endpoint along with the `batchid`, which indicates the batch to which the coupons belong.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCouponsData'
            example:
              TypeOfChange: campaign_manager
              Operation: CouponsUpdated
              EmployeeName: Franziska Schneider
              NotificationType: CouponsUpdated
              BatchID: nqylhnni
              ApplicationID: 5
              CampaignID: 3
        required: true
  deleteCouponsData:
    post:
      operationId: deleteCouponsData
      summary: Coupons deleted
      tags:
        - Coupon notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: |-
          The [notification](/docs/product/applications/application-notifications/overview) indicating that coupons were deleted via the [Delete coupons](/management-api#tag/Coupons/operation/deleteCoupons) endpoint.

          **Tip:**
          To retrieve information about the generated coupons, after receiving the notification, use the [Export coupons](/management-api#tag/Coupons/operation/exportCoupons) endpoint along with the `batchid`, which indicates the batch to which the coupons belong.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteCouponsData'
            example:
              TypeOfChange: campaign_manager
              Operation: CouponsDeleted
              EmployeeName: Franziska Schneider
              NotificationType: CouponsDeleted
              BatchID: nqylhnni
              ApplicationID: 5
              CampaignID: 3
              TotalResultSize: 200
        required: true
  expiringPointsNotification:
    post:
      operationId: expiringPointsNotification
      summary: Expiring points
      tags:
        - Loyalty notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) reminding users that their active loyalty points will expire soon.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpiringPointsNotification'
            example:
              TotalResultSize: 1
              Data:
                - ExpiryDate: 2019-08-24
                  LoyaltyProgramID: 5
                  CustomerProfileID: URNGV8294NV
                  AmountOfExpiringPoints: 10.99
                  SubledgerID: sub-123
              NotificationType: LoyaltyPointsExpiring
        required: true
  expiringCardPointsNotification:
    post:
      operationId: expiringCardPointsNotification
      summary: Expiring card points
      tags:
        - Loyalty card notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) reminding users that their active loyalty points will expire soon.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpiringCardPointsNotification'
            example:
              TotalResultSize: 1
              Data:
                - ExpiryDate: 2019-08-24
                  LoyaltyProgramID: 5
                  AmountOfExpiringPoints: 10.99
                  SubledgerID: sub-123
                  CardIdentifier: summer-loyalty-card-0543
                  UsersPerCardLimit: 5
                  Profiles:
                    - URNGV8294NV
              NotificationType: LoyaltyCardPointsExpiring
        required: true
  addedDeductedPointsNotification:
    post:
      operationId: addedDeductedPointsNotification
      summary: Added or deducted points
      tags:
        - Loyalty notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) informing users when loyalty points are added or deducted.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddedDeductedPointsNotification'
            example:
              ProfileIntegrationID: URNGV8294NV
              LoyaltyProgramID: 5
              SubledgerID: sub-123
              Amount: 10.99
              Reason: Compensation
              TypeOfChange: campaign_manager
              EmployeeName: Franziska Schneider
              UserID: 25
              Operation: addition
              StartDate: 2023-01-24T14:15:22Z
              ExpiryDate: 2024-01-24T14:15:22Z
              SessionIntegrationID: cc53e4fa-547f-4f5e-8333-76e05c381f67
              NotificationType: LoyaltyPointsDeducted
              TransactionUUID: 1a6a7599-2622-4489-9034-5a62da3944e0
        required: true
  addedDeductedPointsBalancesNotification:
    post:
      operationId: addedDeductedPointsBalancesNotification
      summary: Added or deducted points with current balance
      tags:
        - Loyalty notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) informing users when loyalty points are added or deducted, including the current balance of points.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddedDeductedPointsBalancesNotification'
            example:
              ProfileIntegrationID: URNGV8294NV
              LoyaltyProgramID: 5
              SubledgerID: sub-123
              TypeOfChange: campaign_manager
              EmployeeName: Franziska Schneider
              UserID: 25
              SessionIntegrationID: cc53e4fa-547f-4f5e-8333-76e05c381f67
              NotificationType: LoyaltyAddedDeductedPointsBalances
              CurrentPoints: 10.99
              Actions:
                - Amount: 10.99
                  Reason: Compensation
                  Operation: addition
                  StartDate: 2023-01-24T14:15:22Z
                  ExpiryDate: 2024-01-24T14:15:22Z
                  TransactionUUID: 1a6a7599-2622-4489-9034-5a62da3944e0
        required: true
  pendingActivePointsNotification:
    post:
      operationId: pendingActivePointsNotification
      summary: Pending points
      tags:
        - Loyalty notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) informing users that their pending points will become active soon.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PendingActivePointsNotification'
            example:
              TotalResultSize: 1
              Data:
                - LoyaltyProgramID: 5
                  SubledgerID: SL001
                  CustomerProfileID: URNGV8294NV
                  Points: 10.99
                  ActiveOn: 2023-08-20T12:22:00+02:00
                  ExpireOn: 2023-09-01T12:23:00+02:00
                  SessionIntegrationID: cc53e4fa-547f-4f5e-8333-76e05c381f67
              NotificationType: LoyaltyPointsPendingToActive
        required: true
  tierUpgradeNotification:
    post:
      operationId: tierUpgradeNotification
      summary: Tier upgrade
      tags:
        - Loyalty notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) informing users when a loyalty tier upgrade occurs.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TierUpgradeNotification'
            example:
              TotalResultSize: 1
              Data:
                - CustomerProfileID: URNGV8294NV
                  LoyaltyProgramID: 5
                  SubledgerID: SL001
                  CurrentTier: Silver
                  CurrentPoints: 120.55
                  OldTier: Bronze
                  PointsRequiredToTheNextTier: 23.51
                  NextTier: Gold
                  TierExpirationDate: 2023-12-01T12:23:00+02:00
                  TimestampOfTierChange: 2023-10-26T12:23:00+02:00
              NotificationType: TierUpgrade
        required: true
  tierDowngradeNotification:
    post:
      operationId: tierDowngradeNotification
      summary: Tier downgrade
      tags:
        - Loyalty notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) informing users when a loyalty tier downgrade occurs.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TierDowngradeNotification'
            example:
              TotalResultSize: 1
              Data:
                - CustomerProfileID: URNGV8294NV
                  LoyaltyProgramID: 5
                  SubledgerID: SL001
                  CurrentTier: Silver
                  CurrentPoints: 120.55
                  OldTier: Gold
                  TierExpirationDate: 2023-12-01T12:23:00+02:00
                  TimestampOfTierChange: 2023-10-26T12:23:00+02:00
              NotificationType: TierDowngrade
        required: true
  tierWillDowngradeNotification:
    post:
      operationId: tierWillDowngradeNotification
      summary: Upcoming tier downgrade
      tags:
        - Loyalty notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) reminding users of an upcoming loyalty tier downgrade.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TierWillDowngradeNotification'
            example:
              TotalResultSize: 1
              Data:
                - CustomerProfileID: URNGV8294NV
                  LoyaltyProgramID: 5
                  SubledgerID: SL001
                  CurrentTier: Silver
                  CurrentPoints: 120.55
                  PointsRequiredToRemain: 23.51
                  NextTier: Bronze
                  TierExpirationDate: 2023-12-01T12:23:00+02:00
              NotificationType: TierWillDowngrade
        required: true
  expiringCouponsNotification:
    post:
      operationId: expiringCouponsNotification
      summary: Expiring coupons
      tags:
        - Coupon notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/applications/application-notifications/overview) reminding users of expiring coupons.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpiringCouponsNotification'
            example:
              TotalResultSize: 1
              Data:
                - CouponValue: XMAS-20-2021
                  CreatedDate: 2024-07-24T14:15:22Z
                  ValidFrom: 2024-10-24T14:15:22Z
                  ValidUntil: 2024-12-24T14:15:22Z
                  CampaignId: 3
                  CustomerProfileId: URNGV8294NV
                  UsageLimit: 100
                  UsageCounter: 10
                  BatchId: 32535-43255
                  Attributes: {}
              NotificationType: CouponCodeExpiring
        required: true
  cardAddedDeductedPointsNotification:
    post:
      operationId: cardAddedDeductedPointsNotification
      summary: Added or deducted card points
      tags:
        - Loyalty card notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) informing users when loyalty points are added or deducted.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardAddedDeductedPointsNotification'
            example:
              ProfileIntegrationIDs:
                - yJSObdNNtOetCHWHPFuz
                - test-user-4zoj1c
              LoyaltyProgramID: 5
              SubledgerID: sub-123
              Amount: 10.99
              Reason: Compensation
              TypeOfChange: campaign_manager
              EmployeeName: Franziska Schneider
              UserID: 25
              Operation: addition
              StartDate: 2023-01-24T14:15:22Z
              ExpiryDate: 2024-01-24T14:15:22Z
              SessionIntegrationID: cc53e4fa-547f-4f5e-8333-76e05c381f67
              NotificationType: LoyaltyCardPointsDeducted
              CardIdentifier: 123-456-789ATBC
              UsersPerCardLimit: 10
              TransactionUUID: 1a6a7599-2622-4489-9034-5a62da3944e0
        required: true
  cardAddedDeductedPointsBalancesNotification:
    post:
      operationId: cardAddedDeductedPointsBalancesNotification
      summary: Added or deducted card points with current balance
      tags:
        - Loyalty card notifications
      parameters:
        - $ref: '#/components/parameters/x-uuid'
      requestBody:
        description: The [notification](/docs/product/loyalty-programs/loyalty-notifications/overview) informing users when loyalty points are added or deducted from a card, including the current balance of points.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardAddedDeductedPointsBalancesNotification'
            example:
              LoyaltyProgramID: 5
              SubledgerID: sub-123
              CardIdentifier: 123-456-789ATBC
              UsersPerCardLimit: 10
              ProfileIntegrationIDs:
                - yJSObdNNtOetCHWHPFuz
                - test-user-4zoj1c
              TypeOfChange: campaign_manager
              EmployeeName: Franziska Schneider
              UserID: 25
              SessionIntegrationID: cc53e4fa-547f-4f5e-8333-76e05c381f67
              NotificationType: LoyaltyCardAddedDeductedPointsBalances
              CurrentPoints: 10.99
              Actions:
                - Amount: 10.99
                  Reason: Compensation
                  Operation: addition
                  StartDate: 2023-01-24T14:15:22Z
                  ExpiryDate: 2024-01-24T14:15:22Z
                  TransactionUUID: 1a6a7599-2622-4489-9034-5a62da3944e0
        required: true
components:
  securitySchemes: {}
  schemas:
    ApplicationNotification:
      type: object
      properties:
        event:
          description: |
            Event type. It can be one of the following: ['campaign_evaluation_tree_changed']
          type: string
      oneOf:
        - $ref: '#/components/schemas/CampaignEvaluationTreeChangedNotification'
    StrikethroughLabelingNotification:
      type: object
      description: The strikethrough labels notification for an application.
      properties:
        version:
          type: string
          description: |
            The version of the strikethrough pricing notification. Set for **scheduled** strikethrough pricing updates only.
          enum:
            - v2
        validFrom:
          type: string
          format: date-time
          description: |
            Timestamp at which the strikethrough pricing update becomes valid. Set for **scheduled** strikethrough pricing updates (version: v2) only.
          example: 2021-07-20T22:00:00Z
        applicationId:
          type: integer
          description: The ID of the Application to which the catalog items labels belongs.
          example: 322
        currentBatch:
          type: integer
          description: The batch number of the notification. Notifications might be sent in different batches.
          example: 1
        totalBatches:
          type: integer
          description: The total number of batches for the notification.
          example: 10
        trigger:
          $ref: '#/components/schemas/StrikethroughTrigger'
          type: object
        changedItems:
          type: array
          items:
            $ref: '#/components/schemas/StrikethroughChangedItem'
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - StrikethroughPrice
        sentAt:
          type: string
          description: Timestamp at which the notification was sent.
          format: date-time
    Entity:
      type: object
      properties:
        id:
          type: integer
          description: The internal ID of this entity.
          example: 6
        created:
          type: string
          format: date-time
          description: The time this entity was created.
          example: 2020-06-10T09:05:27.993483Z
    ApplicationEntity:
      type: object
      properties:
        applicationId:
          type: integer
          description: The ID of the Application that owns this entity.
          example: 322
    PriceDetail:
      type: object
      properties:
        price:
          type: number
          format: float
          description: The value of this price type.
          example: 90
        adjustmentContextId:
          type: string
          description: The context identifier of the selected price adjustment.
          example: summer25
        adjustmentReferenceId:
          type: string
          format: uuid
          description: The reference identifier of the selected price adjustment for this SKU.
          example: 68851723-e6fa-488f-ace9-112581e6c19b
        adjustmentEffectiveFrom:
          type: string
          format: date-time
          description: The date and time from which the price adjustment is effective.
          example: 2025-05-25T00:00:00Z
        adjustmentEffectiveUntil:
          type: string
          format: date-time
          description: The date and time until which the price adjustment is effective.
          example: 2025-05-30T00:00:00Z
    EntityWithTalangVisibleID:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID for this entity.
          example: 4
        created:
          type: string
          format: date-time
          description: The exact moment this entity was created.
          example: 2020-06-10T09:05:27.993483Z
    UserEntity:
      type: object
      properties:
        userId:
          type: integer
          description: The ID of the user associated with this entity.
          example: 388
    CodeGeneratorSettings:
      type: object
      properties:
        validCharacters:
          type: array
          description: |
            List of characters used to generate the random parts of a code.
          example:
            - A
            - B
            - C
            - D
            - E
            - F
            - G
            - H
            - I
            - J
            - K
            - L
            - M
            - N
            - O
            - P
            - Q
            - R
            - S
            - T
            - U
            - V
            - W
            - X
            - Y
            - Z
            - '0'
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
            - '7'
            - '8'
            - '9'
          items:
            type: string
        couponPattern:
          type: string
          description: |
            The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set.
          maxLength: 100
          minLength: 3
          pattern: ^[A-Za-z0-9._%+@#-]+$
          example: SUMMER-####-####
      additionalProperties: false
    LimitConfig:
      type: object
      properties:
        action:
          type: string
          description: |
            The limitable action to which this limit applies. For example:
            - `setDiscount`
            - `setDiscountEffect`
            - `redeemCoupon`
            - `createCoupon`
          example: createCoupon
        limit:
          type: number
          minimum: 0
          example: 1000
          description: The value to set for the limit.
        period:
          description: The period on which the budget limit recurs.
          type: string
          enum:
            - daily
            - weekly
            - monthly
            - yearly
          example: yearly
        entities:
          type: array
          description: The entity that this limit applies to.
          example:
            - Coupon
          items:
            type: string
            enum:
              - Coupon
              - Referral
              - Profile
              - Identifier
              - Store
              - Session
    BaseCampaign:
      type: object
      properties:
        name:
          type: string
          title: Campaign Name
          description: A user-facing name for this campaign.
          minLength: 1
          example: Summer promotions
        description:
          type: string
          title: Campaign Description
          description: A detailed description of the campaign.
          example: Campaign for all summer 2021 promotions
        startTime:
          type: string
          format: date-time
          description: Timestamp when the campaign will become active.
          example: 2021-07-20T22:00:00Z
        endTime:
          type: string
          format: date-time
          description: Timestamp when the campaign will become inactive.
          example: 2021-09-22T22:00:00Z
        attributes:
          type: object
          description: Arbitrary properties associated with this campaign.
        state:
          type: string
          enum:
            - enabled
            - disabled
            - archived
          default: enabled
          example: enabled
          description: |
            A disabled or archived campaign is not evaluated for rules or coupons.
        activeRulesetId:
          type: integer
          description: |
            [ID of Ruleset](https://docs.talon.one/management-api#tag/Campaigns/operation/getRulesets) this
            campaign applies on customer session evaluation.
          example: 6
        tags:
          type: array
          description: A list of tags for the campaign.
          example:
            - summer
          maxItems: 50
          items:
            type: string
            minLength: 1
            maxLength: 50
        reevaluateOnReturn:
          type: boolean
          title: Reevaluate on return
          description: Indicates whether this campaign should be reevaluated when a customer returns an item.
          example: true
        features:
          type: array
          description: The features enabled in this campaign.
          example:
            - coupons
            - referrals
          items:
            type: string
            enum:
              - coupons
              - referrals
              - loyalty
              - giveaways
              - strikethrough
              - achievements
              - advancedEvents
        couponSettings:
          $ref: '#/components/schemas/CodeGeneratorSettings'
        referralSettings:
          $ref: '#/components/schemas/CodeGeneratorSettings'
        limits:
          type: array
          description: |
            The set of [budget limits](https://docs.talon.one/docs/product/campaigns/settings/managing-campaign-budgets) for this campaign.
          items:
            $ref: '#/components/schemas/LimitConfig'
        campaignGroups:
          type: array
          description: |
            The IDs of the [campaign groups](https://docs.talon.one/docs/product/account/managing-campaign-groups) this campaign belongs to.
          example:
            - 1
            - 3
          items:
            type: integer
        type:
          type: string
          title: Type
          enum:
            - cartItem
            - advanced
          default: advanced
          example: advanced
          description: |
            The campaign type. Possible type values:
              - `cartItem`: Type of campaign that can apply effects only to cart items.
              - `advanced`: Type of campaign that can apply effects to customer sessions and cart items.
        linkedStoreIds:
          type: array
          description: |
            A list of store IDs that you want to link to the campaign.

            **Note:** Campaigns with linked store IDs will only be evaluated when there is a
            [customer session update](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2)
            that references a linked store.
          items:
            type: integer
          example:
            - 1
            - 2
            - 3
        couponAttributes:
          type: object
          description: Arbitrary properties associated with coupons in this campaign.
    CampaignBudget:
      type: object
      properties:
        action:
          type: string
          description: |
            The limitable action to which this limit applies. For example:
            - `setDiscount`
            - `setDiscountEffect`
            - `redeemCoupon`
            - `createCoupon`
          example: createCoupon
        limit:
          type: number
          minimum: 0
          example: 1000
          description: The value to set for the limit.
        counter:
          type: number
          minimum: 0
          example: 42
          description: The number of occurrences of the limited action in the context of the campaign.
    AdditionalCampaignProperties:
      type: object
      properties:
        budgets:
          type: array
          items:
            $ref: '#/components/schemas/CampaignBudget'
          description: |
            A list of all the budgets that are defined by this campaign and their usage.

            **Note:** Budgets that are not defined do not appear in this list and their usage is
            not counted until they are defined.
        couponRedemptionCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Number of coupons redeemed in the campaign.
          example: 163
        referralRedemptionCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Number of referral codes redeemed in the campaign.
          example: 3
        discountCount:
          type: number
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total amount of discounts redeemed in the campaign.
          example: 288
        discountEffectCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of times discounts were redeemed in this campaign.
          example: 343
        couponCreationCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of coupons created by rules in this campaign.
          example: 16
        customEffectCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of custom effects triggered by rules in this campaign.
          example: 0
        referralCreationCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of referrals created by rules in this campaign.
          example: 8
        addFreeItemEffectCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of times the [add free item effect](https://docs.talon.one/docs/dev/integration-api/api-effects#addfreeitem) can be triggered in this campaign.
          example: 0
        awardedGiveawaysCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of giveaways awarded by rules in this campaign.
          example: 9
        createdLoyaltyPointsCount:
          type: number
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of loyalty points created by rules in this campaign.
          example: 9
        createdLoyaltyPointsEffectCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of loyalty point creation effects triggered by rules in this campaign.
          example: 2
        redeemedLoyaltyPointsCount:
          type: number
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of loyalty points redeemed by rules in this campaign.
          example: 8
        redeemedLoyaltyPointsEffectCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of loyalty point redemption effects triggered by rules in this campaign.
          example: 9
        callApiEffectCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of webhooks triggered by rules in this campaign.
          example: 0
        reservecouponEffectCount:
          type: integer
          deprecated: true
          description: |
            This property is **deprecated**. The count should be available under *budgets* property.
            Total number of reserve coupon effects triggered by rules in this campaign.
          example: 9
        lastActivity:
          type: string
          format: date-time
          example: 2022-11-10T23:00:00Z
          description: Timestamp of the most recent event received by this campaign.
        updated:
          type: string
          format: date-time
          example: 2022-10-27T15:00:00Z
          description: |
            Timestamp of the most recent update to the campaign's property. Updates to external entities used in this campaign
            are **not** registered by this property, such as collection or coupon updates.
        createdBy:
          type: string
          description: Name of the user who created this campaign if available.
          example: John Doe
        updatedBy:
          type: string
          description: Name of the user who last updated this campaign if available.
          example: Jane Doe
        templateId:
          type: integer
          description: The ID of the Campaign Template this Campaign was created from.
          example: 3
        frontendState:
          type: string
          description: The campaign state displayed in the Campaign Manager.
          enum:
            - expired
            - scheduled
            - running
            - disabled
            - archived
            - staged
          example: running
        storesImported:
          type: boolean
          description: Indicates whether the linked stores were imported via a CSV file.
          example: true
        valueMapsIds:
          type: array
          description: A list of value map IDs for the campaign.
          items:
            type: integer
          example:
            - 100
            - 215
        experimentId:
          type: integer
          description: The ID of the Experiment this Campaign is part of.
          example: 1
    CampaignVersions:
      type: object
      properties:
        revisionFrontendState:
          type: string
          description: The campaign revision state displayed in the Campaign Manager.
          enum:
            - revised
            - pending
          example: revised
        activeRevisionId:
          type: integer
          description: |
            ID of the revision that was last activated on this campaign.
          example: 6
        activeRevisionVersionId:
          type: integer
          description: |
            ID of the revision version that is active on the campaign.
          example: 6
        version:
          type: integer
          description: |
            Incrementing number representing how many revisions have been activated on this campaign, starts from 0 for a new campaign.
          example: 6
        currentRevisionId:
          type: integer
          description: |
            ID of the revision currently being modified for the campaign.
          example: 6
        currentRevisionVersionId:
          type: integer
          description: |
            ID of the latest version applied on the current revision.
          example: 6
        stageRevision:
          type: boolean
          description: |
            Flag for determining whether we use current revision when sending requests with staging API key.
          example: false
          default: false
    Campaign:
      allOf:
        - $ref: '#/components/schemas/EntityWithTalangVisibleID'
        - $ref: '#/components/schemas/ApplicationEntity'
        - $ref: '#/components/schemas/UserEntity'
        - $ref: '#/components/schemas/BaseCampaign'
        - $ref: '#/components/schemas/AdditionalCampaignProperties'
        - $ref: '#/components/schemas/CampaignVersions'
        - type: object
    CouponEntity:
      type: object
      properties:
        id:
          type: integer
          description: The internal ID of the coupon.
          example: 6
        created:
          type: string
          format: date-time
          description: The time the coupon was created.
          example: 2020-06-10T09:05:27.993483Z
    CampaignEntity:
      type: object
      properties:
        campaignId:
          type: integer
          title: Campaign ID
          description: The ID of the campaign that owns this entity.
          example: 211
    CouponValue:
      type: object
      properties:
        value:
          type: string
          title: Coupon Code
          description: The coupon code.
          minLength: 4
          example: XMAS-20-2021
    CouponConstraints:
      type: object
      properties:
        usageLimit:
          type: integer
          minimum: 0
          maximum: 999999
          example: 100
          description: |
            The number of times the coupon code can be redeemed. `0` means unlimited redemptions but any campaign usage limits will still apply.
        discountLimit:
          type: number
          minimum: 0
          maximum: 1000000000000000
          example: 30
          description: |
            The total discount value that the code can give. Typically used to represent a gift card value.
        reservationLimit:
          type: integer
          minimum: 0
          maximum: 999999
          example: 45
          description: |
            The number of reservations that can be made with this coupon code.
        startDate:
          type: string
          format: date-time
          example: 2020-01-24T14:15:22Z
          description: Timestamp at which point the coupon becomes valid.
        expiryDate:
          type: string
          format: date-time
          example: 2023-08-24T14:15:22Z
          description: Expiration date of the coupon. Coupon never expires if this is omitted.
    CouponLimitConfigs:
      type: object
      properties:
        limits:
          type: array
          description: |
            Limits configuration for a coupon. These limits will override the limits
            set from the campaign.

            **Note:** Only usable when creating a single coupon which is not tied to a specific recipient.
            Only per-profile limits are allowed to be configured.
          items:
            $ref: '#/components/schemas/LimitConfig'
    Coupon:
      allOf:
        - $ref: '#/components/schemas/CouponEntity'
        - $ref: '#/components/schemas/CampaignEntity'
        - $ref: '#/components/schemas/CouponValue'
        - $ref: '#/components/schemas/CouponConstraints'
        - $ref: '#/components/schemas/CouponLimitConfigs'
        - type: object
          properties:
            usageCounter:
              type: integer
              title: Total coupon redemptions
              example: 10
              description: The number of times the coupon has been successfully redeemed.
            discountCounter:
              type: number
              title: Discounts Given
              description: The amount of discounts given on rules redeeming this coupon. Only usable if a coupon discount budget was set for this coupon.
              example: 10
            discountRemainder:
              type: number
              title: Coupon Discount Remainder
              description: The remaining discount this coupon can give.
              example: 5
            reservationCounter:
              type: number
              title: Number of reservations
              description: The number of times this coupon has been reserved.
              example: 1
            attributes:
              type: object
              title: Attributes of coupon
              description: Custom attributes associated with this coupon.
            referralId:
              type: integer
              title: Advocate ID
              description: The integration ID of the referring customer (if any) for whom this coupon was created as an effect.
              example: 326632952
            recipientIntegrationId:
              title: Recipient ID
              example: URNGV8294NV
              type: string
              maxLength: 1000
              description: The Integration ID of the customer that is allowed to redeem this coupon.
            importId:
              title: Import ID
              type: integer
              description: The ID of the Import which created this coupon.
              example: 4
            reservation:
              title: Reservation Type
              type: boolean
              example: false
              description: |
                Defines the reservation type:
                - `true`: The coupon can be reserved for multiple customers.
                - `false`: The coupon can be reserved only for one customer. It is a personal code.
              default: true
            batchId:
              title: Batch ID
              type: string
              description: The id of the batch the coupon belongs to.
              example: 32535-43255
            isReservationMandatory:
              title: Is reservation mandatory
              type: boolean
              example: false
              description: An indication of whether the code can be redeemed only if it has been reserved first.
              default: false
            implicitlyReserved:
              title: Is coupon implicitly reserved for all customers
              description: An indication of whether the coupon is implicitly reserved for all customers.
              type: boolean
              example: false
    AccountEntity:
      type: object
      properties:
        accountId:
          type: integer
          description: The ID of the account that owns this entity.
          example: 3886
    MutableEntity:
      type: object
      properties:
        modified:
          type: string
          format: date-time
          description: The time this entity was last modified.
          example: 2021-09-12T10:12:42Z
    AudienceIntegrationID:
      type: object
      properties:
        integrationId:
          type: string
          minLength: 1
          maxLength: 1000
          description: The ID of this audience in the third-party integration.
          example: 382370BKDB946
    CampaignSetBranchNode:
      type: object
      additionalProperties: false
      properties:
        type:
          type: string
          description: Indicates the node type.
          enum:
            - SET
          example: SET
        name:
          type: string
          description: Name of the set.
          example: name
        operator:
          type: string
          description: An indicator of how the set operates on its elements.
          enum:
            - ALL
            - FIRST
          example: ALL
        elements:
          type: array
          description: Child elements of this set.
          items:
            type: object
        groupId:
          type: integer
          description: The ID of the campaign set.
        locked:
          type: boolean
          description: An indicator of whether the campaign set is locked for modification.
        description:
          type: string
          description: A description of the campaign set.
        evaluationMode:
          type: string
          enum:
            - stackable
            - listOrder
            - lowestDiscount
            - highestDiscount
          description: The mode by which campaigns in the campaign evaluation group are evaluated.
        evaluationScope:
          type: string
          enum:
            - cartItem
            - session
          description: The evaluation scope of the campaign evaluation group.
    CampaignSet:
      allOf:
        - $ref: '#/components/schemas/ApplicationEntity'
        - type: object
          properties:
            id:
              type: integer
              description: The internal ID of this entity.
              example: 6
            version:
              type: integer
              minimum: 1
              description: Version of the campaign set.
              example: 3
            set:
              $ref: '#/components/schemas/CampaignSetBranchNode'
            updatedBy:
              type: string
              description: Name of the user who last updated this campaign set, if available.
              example: Jane Doe
    StrikethroughSetDiscountPerItemEffectProps:
      type: object
      description: setDiscountPerItem effect in strikethrough pricing payload.
      properties:
        name:
          description: The effect name.
          type: string
          example: 1EuroOff
        value:
          description: The discount value.
          example: 1
        excludedFromPriceHistory:
          description: When set to `true`, the applied discount is excluded from the item's price history.
          type: boolean
    StrikethroughCustomEffectPerItemProps:
      type: object
      description: customEffectPerItem effect in strikethrough pricing payload.
      properties:
        effectId:
          description: ID of the effect.
          type: integer
          example: 1
        name:
          type: string
          description: The type of the custom effect.
          example: my_custom_effect
        payload:
          description: The JSON payload of the custom effect.
          type: object
          x-arbitraryJSON: true
    StrikethroughSetDiscountPerItemMemberEffectProps:
      type: object
      description: setDiscountPerItem member effect in strikethrough pricing payload.
      properties:
        name:
          description: The effect name.
          type: string
          example: 10% off members only
        value:
          description: The discount value.
          example: 9
    StrikethroughEffectProps:
      type: object
      oneOf:
        - $ref: '#/components/schemas/StrikethroughSetDiscountPerItemEffectProps'
        - $ref: '#/components/schemas/StrikethroughCustomEffectPerItemProps'
        - $ref: '#/components/schemas/StrikethroughSetDiscountPerItemMemberEffectProps'
    LabelTargetNone:
      type: object
      description: Represents the target type when no entity is selected.
      properties:
        type:
          type: string
          enum:
            - NONE
    AudienceReference:
      allOf:
        - type: object
          properties:
            id:
              type: integer
              description: The ID of the audience.
            integration:
              type: string
              description: The third-party integration of the audience.
        - $ref: '#/components/schemas/AudienceIntegrationID'
    LabelTargetAudience:
      type: object
      description: |
        Represents the targeted audience.
      properties:
        type:
          type: string
          enum:
            - AUDIENCE
        audience:
          $ref: '#/components/schemas/AudienceReference'
    LabelTarget:
      type: object
      oneOf:
        - $ref: '#/components/schemas/LabelTargetNone'
        - $ref: '#/components/schemas/LabelTargetAudience'
    StrikethroughEffect:
      type: object
      description: The effect produced for the catalog item.
      properties:
        campaignId:
          type: integer
          description: The ID of the campaign that effect belongs to.
          example: 3
        rulesetId:
          type: integer
          description: The ID of the ruleset containing the rule that triggered this effect.
          example: 11
        ruleIndex:
          type: integer
          description: The position of the rule that triggered this effect within the ruleset.
          example: 2
        ruleName:
          type: string
          description: The name of the rule that triggered this effect.
          example: Add 2 points
        type:
          type: string
          description: The type of this effect.
          example: setDiscountPerItem
        props:
          $ref: '#/components/schemas/StrikethroughEffectProps'
          description: Arbitrary properties associated with this effect type.
        startTime:
          type: string
          format: date-time
          description: The start of the time frame where the effect is active in UTC.
          example: 2021-07-20T22:00:00Z
        endTime:
          type: string
          format: date-time
          description: The end of the time frame where the effect is active in UTC.
          example: 2021-10-01T02:00:00Z
        selectedPriceType:
          type: string
          example: member
          description: The selected price type for this cart item (e.g. the price for members only).
        selectedPrice:
          type: number
          example: 100
          description: The value of the selected price type to apply to the SKU targeted by this effect, before any discounts are applied.
        adjustmentReferenceId:
          type: string
          description: The reference identifier of the selected price adjustment for this cart item.
          example: 68851723-e6fa-488f-ace9-112581e6c19b
        targets:
          type: array
          description: A list of entities (e.g. audiences) targeted by this effect.
          items:
            $ref: '#/components/schemas/LabelTarget'
    Binding:
      type: object
      properties:
        name:
          type: string
          description: A descriptive name for the value to be bound.
          example: Discount percentage
        type:
          type: string
          description: |
            The kind of binding. Possible values are:
            - `bundle`
            - `cartItemFilter`
            - `subledgerBalance`
            - `templateParameter`
          example: templateParameter
        expression:
          type: array
          description: |
            A Talang expression that is evaluated, and its result is bound to the name of
            the binding. The first element must be one of the functions or operators supported
            by Talang, followed by its arguments. The arguments can be strings, numbers, or
            nested expressions. For example:
            - `["list", "10014", "10015"]` calls the `list` function to build a list of strings.
            - `["+", 2, 0]` uses the `+` operator to add two numbers.
          example:
            - identity
            - 10
          items: {}
        valueType:
          type: string
          description: |
            The data type of the value. One of the following:
            - `string`
            - `number`
            - `boolean`
          example: number
        minValue:
          type: number
          description: The minimum value allowed for this placeholder.
          example: 0
        maxValue:
          type: number
          description: The maximum value allowed for this placeholder.
          example: 19.9
        attributeId:
          type: integer
          title: Attribute ID
          description: Identifier of the attribute attached to the placeholder.
          example: 100
        description:
          type: string
          description: Description of the placeholder field and its value in the template. This text can be shown when creating campaigns from this template.
          example: The percentage discount applied to the cart total.
    Rule:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: A unique identifier for the rule.
          example: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
        parentId:
          type: string
          format: uuid
          description: The ID of the rule that was copied to create this rule.
          example: 7fa800a8-ac8d-4792-85dc-c4650dcc8f23
        title:
          type: string
          description: A short description of the rule.
          example: Give discount via coupon
        description:
          type: string
          description: A longer, more detailed description of the rule.
          example: Creates a discount when a coupon is valid
        bindings:
          type: array
          description: An array that provides objects with variable names (name) and talang expressions to whose result they are bound (expression) during rule evaluation. The order of the evaluation is decided by the position in the array.
          items:
            $ref: '#/components/schemas/Binding'
        condition:
          type: array
          description: A Talang expression that will be evaluated in the context of the given event.
          minItems: 1
          example:
            - and
            - - couponValid
          items: {}
        effects:
          type: array
          description: An array of effectful Talang expressions in arrays that will be evaluated when a rule matches.
          items:
            type: array
            items: {}
          example:
            - catch
            - - noop
            - - setDiscount
              - 10% off
              - - '*'
                - - .
                  - Session
                  - Total
                - - /
                  - 10
                  - 100
    NewRuleset:
      type: object
      properties:
        rules:
          type: array
          description: Set of rules to apply.
          items:
            $ref: '#/components/schemas/Rule'
        strikethroughRules:
          type: array
          description: Set of rules to apply for strikethrough.
          items:
            $ref: '#/components/schemas/Rule'
        bindings:
          type: array
          description: An array that provides objects with variable names (name) and talang expressions to whose result they are bound (expression) during rule evaluation. The order of the evaluation is decided by the position in the array.
          items:
            $ref: '#/components/schemas/Binding'
          example: []
        rbVersion:
          type: string
          description: The version of the rulebuilder used to create this ruleset.
          example: v2
        activate:
          type: boolean
          description: Indicates whether this created ruleset should be activated for the campaign that owns it.
          example: true
    Ruleset:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/UserEntity'
        - $ref: '#/components/schemas/NewRuleset'
        - type: object
          properties:
            campaignId:
              type: integer
              title: Campaign ID
              description: The ID of the campaign that owns this entity.
              example: 320
            templateId:
              type: integer
              title: Campaign Template ID
              description: The ID of the campaign template that owns this entity.
              example: 3
            activatedAt:
              type: string
              format: date-time
              description: Timestamp indicating when this Ruleset was activated.
    UpdateCollection:
      type: object
      properties:
        description:
          type: string
          description: A short description of the purpose of this collection.
          example: My collection of SKUs
        subscribedApplicationsIds:
          type: array
          description: A list of the IDs of the Applications where this collection is enabled.
          example:
            - 1
            - 2
            - 3
          items:
            type: integer
    NewCollection:
      allOf:
        - $ref: '#/components/schemas/UpdateCollection'
        - type: object
          properties:
            name:
              type: string
              minLength: 1
              pattern: ^[^[:cntrl:]\s][^[:cntrl:]]*$
              description: The name of this collection.
              example: My collection
    CollectionWithoutPayload:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/AccountEntity'
        - $ref: '#/components/schemas/MutableEntity'
        - $ref: '#/components/schemas/NewCollection'
        - type: object
          properties:
            modifiedBy:
              type: integer
              description: ID of the user who last updated this effect if available.
              example: 48
            createdBy:
              type: integer
              description: ID of the user who created this effect.
              example: 134
            applicationId:
              type: integer
              description: The ID of the Application that owns this entity.
              example: 1
            campaignId:
              type: integer
              description: The ID of the campaign that owns this entity.
              example: 7
    CampaignNotificationBase:
      type: object
      properties:
        NotificationType:
          type: string
          description: The type of the notification
          example: CampaignNotification
          enum:
            - CampaignNotification
        TotalResultSize:
          type: integer
          description: The total size of the result set.
    CampaignNotificationItemBase:
      type: object
      properties:
        Event:
          description: |
            The type of the event. Can be one of the following: ['campaign_state_changed', 'campaign_ruleset_changed', 'campaign_edited', 'campaign_created', 'campaign_deleted']
          type: string
          example: campaign_state_changed
    PlaceholderDetails:
      type: object
      properties:
        name:
          type: string
          description: The name of the placeholder.
          example: my property
        type:
          type: string
          description: The type of the value assigned to the placeholder.
          example: list string
        value:
          type: array
          description: The current value of the placeholder.
          example:
            - 1
            - sku_value
          items: {}
    CampaignEvaluationPosition:
      type: object
      description: The campaign position within the evaluation tree.
      properties:
        groupId:
          type: integer
          example: 2
          description: The ID of the campaign evaluation group the campaign belongs to.
        groupName:
          type: string
          description: The name of the campaign evaluation group the campaign belongs to.
          example: Summer campaigns
        position:
          type: integer
          description: The position of the campaign node in its parent group.
          example: 2
    CampaignCreatedNotificationItem:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationItemBase'
        - type: object
          description: A notification regarding a campaign that was created.
          properties:
            campaign:
              $ref: '#/components/schemas/Campaign'
              type: object
              description: The campaign whose state changed.
            ruleset:
              $ref: '#/components/schemas/Ruleset'
              type: object
              description: The current ruleset.
            placeholders:
              type: array
              description: The current details of the [placeholders](https://docs.talon.one/docs/product/campaigns/templates/create-templates#use-placeholders) in the campaign.
              items:
                $ref: '#/components/schemas/PlaceholderDetails'
            evaluationPosition:
              $ref: '#/components/schemas/CampaignEvaluationPosition'
              type: object
              description: The campaign position within the evaluation tree.
    CampaignCreatedNotification:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationBase'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/CampaignCreatedNotificationItem'
              description: A list of campaign notification data.
    CampaignStateChangedNotificationItem:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationItemBase'
        - type: object
          description: A notification regarding a campaign whose state changed.
          properties:
            campaign:
              $ref: '#/components/schemas/Campaign'
              type: object
              description: The campaign whose state changed.
            oldState:
              type: string
              description: |
                The campaign's old state. Can be one of the following: ['running', 'disabled', 'scheduled', 'expired', 'archived']
              example: disabled
            newState:
              type: string
              description: |
                The campaign's new state. Can be one of the following: ['running', 'disabled', 'scheduled', 'expired', 'archived']
              example: running
            ruleset:
              $ref: '#/components/schemas/Ruleset'
              type: object
              description: The current ruleset.
            placeholders:
              type: array
              description: The current details of the [placeholders](https://docs.talon.one/docs/product/campaigns/templates/create-templates#use-placeholders) in the campaign.
              items:
                $ref: '#/components/schemas/PlaceholderDetails'
    CampaignStateChangedNotification:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationBase'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/CampaignStateChangedNotificationItem'
              description: A list of campaign notification data.
    CampaignRulesetChangedNotificationItem:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationItemBase'
        - type: object
          description: A notification regarding a campaign whose ruleset was changed.
          properties:
            campaign:
              $ref: '#/components/schemas/Campaign'
              type: object
              description: The campaign whose state changed.
            oldRuleset:
              $ref: '#/components/schemas/Ruleset'
              type: string
              description: The old ruleset, if the ruleset was changed.
            oldPlaceholders:
              type: array
              description: The previous details of the placeholders before the ruleset was changed.
              items:
                $ref: '#/components/schemas/PlaceholderDetails'
            ruleset:
              $ref: '#/components/schemas/Ruleset'
              type: string
              description: The current ruleset.
            placeholders:
              type: array
              description: The current details of the [placeholders](https://docs.talon.one/docs/product/campaigns/templates/create-templates#use-placeholders) in the campaign.
              items:
                $ref: '#/components/schemas/PlaceholderDetails'
    CampaignRulesetChangedNotification:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationBase'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/CampaignRulesetChangedNotificationItem'
              description: A list of campaign notification data.
    CampaignEditedNotificationItem:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationItemBase'
        - type: object
          description: A notification regarding a campaign which was edited.
          properties:
            campaign:
              $ref: '#/components/schemas/Campaign'
              type: object
              description: The campaign whose state changed.
            oldCampaign:
              $ref: '#/components/schemas/Campaign'
              type: object
              description: The campaign before the change.
            ruleset:
              $ref: '#/components/schemas/Ruleset'
              type: object
              description: The current ruleset.
            placeholders:
              type: array
              description: The current details of the [placeholders](https://docs.talon.one/docs/product/campaigns/templates/create-templates#use-placeholders) in the campaign.
              items:
                $ref: '#/components/schemas/PlaceholderDetails'
    CampaignEditedNotification:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationBase'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/CampaignEditedNotificationItem'
              description: A list of campaign notification data.
    CampaignCollectionEditedNotificationItem:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationItemBase'
        - type: object
          description: A notification regarding a collection that was edited.
          properties:
            campaign:
              $ref: '#/components/schemas/Campaign'
              type: object
              description: The current campaign.
            ruleset:
              $ref: '#/components/schemas/Ruleset'
              type: object
              description: The current ruleset.
            placeholders:
              type: array
              description: The current details of the [placeholders](https://docs.talon.one/docs/product/campaigns/templates/create-templates#use-placeholders) in the campaign.
              items:
                $ref: '#/components/schemas/PlaceholderDetails'
            collection:
              $ref: '#/components/schemas/CollectionWithoutPayload'
              type: object
              description: The collection that was edited.
    CampaignCollectionEditedNotification:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationBase'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/CampaignCollectionEditedNotificationItem'
              description: A list of campaign notification data.
    CampaignDeletedNotificationItem:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationItemBase'
        - type: object
          description: A notification regarding a campaign that was deleted.
          properties:
            campaign:
              $ref: '#/components/schemas/Campaign'
              type: object
              description: The campaign whose state changed.
            deletedAt:
              type: string
              format: date-time
              example: 2022-11-10T23:00:00Z
              description: Time when the campaign was deleted.
    CampaignDeletedNotification:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationBase'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/CampaignDeletedNotificationItem'
              description: A list of campaign notification data.
    CampaignEvaluationTreeChangedNotification:
      type: object
      description: Notification about an Application whose campaign evaluation tree changed.
      properties:
        applicationId:
          type: integer
          description: The ID of the Application whose campaign evaluation tree changed.
          example: 78
        oldEvaluationTree:
          $ref: '#/components/schemas/CampaignSet'
          type: object
          description: The previous campaign evaluation tree.
        evaluationTree:
          $ref: '#/components/schemas/CampaignSet'
          type: object
          description: The new campaign evaluation tree.
    CampaignEvaluationTreeChangedMessage:
      allOf:
        - $ref: '#/components/schemas/CampaignNotificationBase'
        - type: object
          properties:
            Data:
              type: array
              description: The array of changes.
              items:
                $ref: '#/components/schemas/ApplicationNotification'
    StrikethroughTrigger:
      type: object
      description: Information about the event that triggered the strikethrough labeling.
      properties:
        id:
          type: integer
          description: The ID of the event that triggered the strikethrough labeling.
          example: 1
        type:
          type: string
          description: The type of event that triggered the strikethrough labeling.
          example: CATALOG_SYNC
        triggeredAt:
          type: string
          description: The creation time of the event that triggered the strikethrough labeling.
          format: date-time
          example: 2020-06-10T09:05:27.993483Z
        totalAffectedItems:
          type: integer
          description: The total number of items affected by the event that triggered the strikethrough labeling.
          format: date-time
          example: 1500
        payload:
          type: object
          description: The arbitrary properties associated with this trigger type.
          example:
            catalogId: 2
            catalogVersion: 100
    StrikethroughChangedItem:
      type: object
      description: The information of affected items.
      properties:
        id:
          type: integer
          description: The ID of the event that triggered the strikethrough labeling.
          example: 1
        catalogId:
          type: integer
          description: The ID of the catalog that the changed item belongs to.
          example: 10
        sku:
          type: string
          description: The unique SKU of the changed item.
          example: SKU1241028
        version:
          type: integer
          minimum: 1
          description: The version of the changed item.
          example: 6
        price:
          type: number
          description: The price of the changed item.
          example: 100
        prices:
          type: object
          description: |
            A map of keys and values representing the price types and related price adjustment details for this cart item.
                  The keys correspond to the `priceType` names.
          additionalProperties:
            $ref: '#/components/schemas/PriceDetail'
          example:
            member:
              price: 90
              adjustmentReferenceId: 68851723-e6fa-488f-ace9-112581e6c19b
              adjustmentEffectiveFrom: 2025-05-25T00:00:00Z
              adjustmentEffectiveUntil: 2025-05-30T00:00:00Z
            base:
              price: 100
        evaluatedAt:
          type: string
          description: The evaluation time of the changed item.
          format: date-time
          example: 2020-06-10T09:05:27.993483Z
        effects:
          x-omit-if-zero: true
          type: array
          items:
            $ref: '#/components/schemas/StrikethroughEffect'
    ExtendedCoupon:
      allOf:
        - $ref: '#/components/schemas/Coupon'
        - type: object
          properties:
            ApplicationId:
              type: integer
              format: int64
              description: The ID of the application.
    CreateCouponData:
      type: object
      properties:
        data:
          type: array
          description: The array of coupons codes. If 1000 or fewer coupons are requested, all coupon data is sent. If 1001 or more coupons are requested, only `BatchID` is sent.
          items:
            $ref: '#/components/schemas/ExtendedCoupon'
          example:
            - id: 1
              created: 2023-01-31T15:19:25.18417+01:00
              campaignId: 1
              value: 73KXKKFP
              usageLimit: 1
              reservationLimit: 0
              usageCounter: 0
              attributes: {}
              reservation: true
              batchId: nqylhnni
            - id: 2
              created: 2023-01-31T15:19:25.18417+01:00
              campaignId: 1
              value: BH3CXXLW
              usageLimit: 1
              reservationLimit: 0
              usageCounter: 0
              attributes: {}
              reservation: true
              batchId: nqylhnni
        totalResultSize:
          type: integer
          example: 1
        BatchID:
          type: string
          description: |
            The ID of the batch to which the coupon belongs.

            **Note:** The Batch ID is generated when coupons are created.
          example: haanlypn
        TypeOfChange:
          type: string
          description: ''
          example: campaign_manager
        Operation:
          type: string
          description: ''
          example: AsyncCouponsCreated
        EmployeeName:
          type: string
          description: ''
          example: Franziska Schneider
        NotificationType:
          type: string
          description: The type of the not
          enum:
            - CouponCreated
    CouponsNotificationData:
      type: object
      properties:
        TypeOfChange:
          type: string
          example: campaign_manager
          description: The type of change that occurred.
        Operation:
          type: string
          example: CouponUpdated
          description: The operation performed.
        EmployeeName:
          type: string
          example: Franziska Schneider
          description: The name of the employee associated with the operation.
        data:
          type: array
          items:
            $ref: '#/components/schemas/ExtendedCoupon'
          description: A list of extended coupon data.
        totalResultSize:
          type: integer
          example: 1
        NotificationType:
          type: string
          example: CouponUpdated
          description: The type of the notification
          enum:
            - CouponUpdated
            - CouponDeleted
    AsyncCouponsData:
      type: object
      properties:
        BatchID:
          type: string
          description: |
            The ID of the batch to which the coupon belongs.

            **Note:** The Batch ID is generated when coupons are created.
          example: haanlypn
        TypeOfChange:
          type: string
          description: ''
          example: campaign_manager
        Operation:
          type: string
          description: ''
          example: AsyncCouponsCreated
        EmployeeName:
          type: string
          description: ''
          example: Franziska Schneider
        NotificationType:
          type: string
          description: The type of the notification
          enum:
            - AsyncCouponsCreated
    UpdateCouponsData:
      type: object
      properties:
        BatchID:
          type: string
        ApplicationID:
          type: integer
          format: int64
        CampaignID:
          type: integer
          format: int64
        TypeOfChange:
          type: string
        Operation:
          type: string
        EmployeeName:
          type: string
        NotificationType:
          type: string
          description: The type of the notification
          enum:
            - CouponsUpdated
    DeleteCouponsData:
      type: object
      properties:
        TypeOfChange:
          type: string
        Operation:
          type: string
        EmployeeName:
          type: string
        BatchID:
          type: string
        ApplicationID:
          type: integer
          format: int64
        CampaignID:
          type: integer
          format: int64
        TotalResultSize:
          type: integer
          format: int64
        NotificationType:
          type: string
          description: The type of the notification
          enum:
            - CouponsDeleted
    ExpiringPointsData:
      type: object
      properties:
        ExpiryDate:
          type: string
          format: date
          description: The expiration date of loyalty points.
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        CustomerProfileID:
          type: string
          description: The integration ID of the customer profile that has expiring points.
          example: URNGV8294NV
        AmountOfExpiringPoints:
          type: number
          description: The amount of loyalty points that will be expired soon.
          example: 10.99
        SubledgerID:
          type: string
          description: The ID of the subledger within the loyalty program where these points were added.
          example: sub-123
    ExpiringPointsNotification:
      type: object
      properties:
        TotalResultSize:
          type: integer
          example: 1
        Data:
          type: array
          description: The array of expiring points.
          maxLength: 1000
          items:
            $ref: '#/components/schemas/ExpiringPointsData'
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - LoyaltyPointsExpiring
    ExpiringCardPointsData:
      type: object
      properties:
        ExpiryDate:
          type: string
          format: date
          description: The expiration date of loyalty points.
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        AmountOfExpiringPoints:
          type: number
          description: The amount of loyalty points that will be expired soon.
          example: 10.99
        SubledgerID:
          type: string
          description: The ID of the subledger within the loyalty program where these points were added.
          example: sub-123
        CardIdentifier:
          type: string
          description: |
            The identifier of the loyalty card, `which must match the regular expression `^[A-Za-z0-9._%+@-]+$`.
          example: summer-loyalty-card-0543
        UsersPerCardLimit:
          type: integer
          description: |
            The maximum number of customer profiles with which a card can be shared. This can be set to `0` for no limit.
          minimum: 0
          example: 5
        Profiles:
          type: array
          description: The integration IDs of the customer profiles linked to the card.
          items:
            type: string
            example: URNGV8294NV
    ExpiringCardPointsNotification:
      type: object
      properties:
        TotalResultSize:
          type: integer
          example: 1
        Data:
          type: array
          description: The array of expiring points.
          maxLength: 1000
          items:
            $ref: '#/components/schemas/ExpiringCardPointsData'
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - LoyaltyCardPointsExpiring
    AddedDeductedPointsNotification:
      type: object
      properties:
        EmployeeName:
          type: string
          description: The name of the employee who added or deducted points.
          example: Franziska Schneider
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - LoyaltyPointsDeducted
            - LoyaltyPointsAdded
        ProfileIntegrationID:
          type: string
          description: The integration ID of the customer profile to whom points were added or deducted.
          example: URNGV8294NV
        SessionIntegrationID:
          type: string
          description: The integration ID of the session through which the points were earned or lost.
          example: cc53e4fa-547f-4f5e-8333-76e05c381f67
        SubledgerID:
          type: string
          description: The ID of the subledger within the loyalty program where these points were added.
          example: sub-123
        TypeOfChange:
          type: string
          enum:
            - campaign_manager
            - rule_engine
            - management_api
          description: |
            The notification source, that is, it indicates
            whether the points were added or deducted via one of the following routes:

            - [The Campaign Manager](/docs/product/getting-started)

            - [Management API](/management-api#tag/Loyalty)

            - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters)
        UserID:
          type: integer
          description: The ID of the employee who added or deducted points.
          example: 25
        Amount:
          type: number
          description: The amount of added or deducted loyalty points.
          example: 10.99
        ExpiryDate:
          type: string
          format: date-time
          description: The expiration date for loyalty points.
          example: 2024-01-24T14:15:22Z
        Operation:
          type: string
          description: The action (addition or subtraction) made with loyalty points.
          enum:
            - addition
            - subtraction
        Reason:
          type: string
          description: The reason for the points addition or deduction.
          example: Compensation
        StartDate:
          type: string
          format: date-time
          description: The start date for loyalty points.
          example: 2023-01-24T14:15:22Z
        TransactionUUID:
          type: string
          format: uuid
          description: The identifier of the transaction in the loyalty ledger.
    AddedDeductedPointsBalancesAction:
      type: object
      properties:
        Amount:
          type: number
          description: The amount of added or deducted loyalty points.
          example: 10.99
        Reason:
          type: string
          description: The reason for the points addition or deduction.
          example: Compensation
        Operation:
          type: string
          description: The action (addition or subtraction) made with loyalty points.
          enum:
            - addition
            - subtraction
        StartDate:
          type: string
          format: date-time
          description: The start date for loyalty points.
          example: 2023-01-24T14:15:22Z
        ExpiryDate:
          type: string
          format: date-time
          description: The expiration date for loyalty points.
          example: 2024-01-24T14:15:22Z
        TransactionUUID:
          type: string
          format: uuid
          description: The identifier of the transaction in the loyalty ledger.
    AddedDeductedPointsBalancesNotification:
      type: object
      properties:
        EmployeeName:
          type: string
          description: The name of the employee who added or deducted points.
          example: Franziska Schneider
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - LoyaltyAddedDeductedPointsBalances
        ProfileIntegrationID:
          type: string
          description: The integration ID of the customer profile to whom points were added or deducted.
          example: URNGV8294NV
        SessionIntegrationID:
          type: string
          description: The integration ID of the session through which the points were earned or lost.
          example: cc53e4fa-547f-4f5e-8333-76e05c381f67
        SubledgerID:
          type: string
          description: The ID of the subledger within the loyalty program where these points were added.
          example: sub-123
        TypeOfChange:
          type: string
          enum:
            - campaign_manager
            - rule_engine
            - management_api
          description: |
            The notification source, that is, it indicates whether the points were added or deducted via one of the following routes:
            - [The Campaign Manager](/docs/product/getting-started)
            - [Management API](/management-api#tag/Loyalty)
            - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters)
        UserID:
          type: integer
          description: The ID of the employee who added or deducted points.
          example: 25
        Actions:
          type: array
          description: The list of actions that have been triggered in the loyalty program.
          minItems: 1
          items:
            $ref: '#/components/schemas/AddedDeductedPointsBalancesAction'
        CurrentPoints:
          type: number
          description: The current points balance.
          example: 10.99
    PendingActivePointsData:
      type: object
      properties:
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        SubledgerID:
          type: string
          description: The ID of the subledger, when applicable. If this field is empty, the main ledger is used.
          default: ''
          example: SL001
        CustomerProfileID:
          type: string
          description: The integration ID of the customer profile whose loyalty points are becoming active.
          example: URNGV8294NV
        Points:
          type: number
          description: The amount of pending loyalty points becoming active.
          example: 10.99
        ActiveOn:
          type: string
          format: date-time
          description: The date and time the loyalty points become active.
          example: 2023-08-20T12:22:00+02:00
        ExpireOn:
          type: string
          format: date-time
          description: The date and time the loyalty points expire.
          example: 2023-09-01T12:23:00+02:00
        SessionIntegrationID:
          type: string
          description: The integration ID of the session through which the points were earned.
          example: cc53e4fa-547f-4f5e-8333-76e05c381f67
    PendingActivePointsNotification:
      type: object
      properties:
        TotalResultSize:
          type: integer
          example: 1
        Data:
          type: array
          description: The array of pending points.
          maxLength: 1000
          items:
            $ref: '#/components/schemas/PendingActivePointsData'
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - LoyaltyPointsPendingToActive
    TierUpgradeData:
      type: object
      properties:
        CustomerProfileID:
          type: string
          description: The integration ID of the customer profile whose tier was upgraded.
          example: URNGV8294NV
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        SubledgerID:
          type: string
          description: The ID of the subledger, when applicable. If this field is empty, the main ledger is used.
          default: ''
          example: SL001
        CurrentTier:
          type: string
          description: The name of the customer's current tier.
          example: Silver
        CurrentPoints:
          type: number
          description: The number of points the customer had at the time of tier upgrade.
          example: 120.55
        OldTier:
          type: string
          description: The name of the customer's previous tier.
          example: Bronze
        PointsRequiredToTheNextTier:
          type: number
          description: The number of points needed for a customer to reach the next tier.
          example: 23.51
        NextTier:
          type: string
          description: The name of the customer's next tier.
          example: Gold
        TierExpirationDate:
          type: string
          format: date-time
          description: The exact date and time the tier expires.
          example: 2023-12-01T12:23:00+02:00
        TimestampOfTierChange:
          type: string
          format: date-time
          description: The exact date and time the tier was changed.
          example: 2023-10-26T12:23:00+02:00
    TierUpgradeNotification:
      type: object
      properties:
        TotalResultSize:
          type: integer
          example: 1
        Data:
          type: array
          description: The array of tier upgrade notifications.
          maxLength: 1000
          items:
            $ref: '#/components/schemas/TierUpgradeData'
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - TierUpgrade
    TierDowngradeData:
      type: object
      properties:
        CustomerProfileID:
          type: string
          description: The integration ID of the customer profile whose tier was downgraded.
          example: URNGV8294NV
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        SubledgerID:
          type: string
          description: The ID of the subledger, when applicable. If this field is empty, the main ledger is used.
          default: ''
          example: SL001
        CurrentTier:
          type: string
          description: The name of the customer's current tier.
          example: Silver
        CurrentPoints:
          type: number
          description: The number of points the customer had at the time of tier downgrade.
          example: 120.55
        OldTier:
          type: string
          description: The name of the customer's previous tier.
          example: Gold
        TierExpirationDate:
          type: string
          format: date-time
          description: The exact date and time the tier expires.
          example: 2023-12-01T12:23:00+02:00
        TimestampOfTierChange:
          type: string
          format: date-time
          description: The exact date and time the tier was changed.
          example: 2023-10-26T12:23:00+02:00
    TierDowngradeNotification:
      type: object
      properties:
        TotalResultSize:
          type: integer
          example: 1
        Data:
          type: array
          description: The array of tier downgrade notifications.
          maxLength: 1000
          items:
            $ref: '#/components/schemas/TierDowngradeData'
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - TierDowngrade
    TierWillDowngradeData:
      type: object
      properties:
        CustomerProfileID:
          type: string
          description: The integration ID of the customer profile whose tier was downgraded.
          example: URNGV8294NV
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        SubledgerID:
          type: string
          description: The ID of the subledger, when applicable. If this field is empty, the main ledger is used.
          default: ''
          example: SL001
        CurrentTier:
          type: string
          description: The name of the customer's current tier.
          example: Silver
        CurrentPoints:
          type: number
          description: The number of points the customer will have after the tier downgrade.
          example: 120.55
        PointsRequiredToRemain:
          type: number
          description: The number of points needed for a customer to remain on the same tier.
          example: 23.51
        NextTier:
          type: string
          description: The name of the customer's next tier.
          example: Bronze
        TierExpirationDate:
          type: string
          format: date-time
          description: The date and time the tier expires.
          example: 2023-12-01T12:23:00+02:00
    TierWillDowngradeNotification:
      type: object
      properties:
        TotalResultSize:
          type: integer
          example: 1
        Data:
          type: array
          description: The array of upcoming tier downgrade notifications.
          maxLength: 1000
          items:
            $ref: '#/components/schemas/TierWillDowngradeData'
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - TierWillDowngrade
    ExpiringCouponsData:
      type: object
      properties:
        CouponValue:
          type: string
          description: The coupon code.
          example: XMAS-20-2021
        CreatedDate:
          type: string
          format: date-time
          description: Timestamp at which point the coupon was created.
          example: 2024-07-24T14:15:22Z
        ValidFrom:
          type: string
          format: date-time
          description: Timestamp at which point the coupon becomes valid.
          example: 2024-10-24T14:15:22Z
          minimum: 0
        ValidUntil:
          type: string
          format: date-time
          description: Timestamp at which point the coupon expires. Coupon never expires if this is omitted, zero, or negative.
          example: 2024-12-24T14:15:22Z
          minimum: 0
        CampaignId:
          type: integer
          description: The ID of the campaign to which the coupon belongs.
          minimum: 1
          example: 3
        CustomerProfileId:
          type: string
          description: The Integration ID of the customer that is allowed to redeem this coupon.
          example: URNGV8294NV
        UsageLimit:
          type: integer
          minimum: 0
          maximum: 999999
          example: 100
          description: |
            The number of times the coupon code can be redeemed. `0` means unlimited redemptions but any campaign usage limits will still apply.
        UsageCounter:
          type: integer
          title: Total coupon redemptions
          example: 10
          description: The number of times the coupon has been successfully redeemed.
        BatchId:
          title: Batch ID
          type: string
          description: The ID of the batch the coupon belongs to.
          example: 32535-43255
        Attributes:
          type: object
          title: Attributes of coupon
          description: Custom attributes associated with this coupon.
          additionalProperties: true
    ExpiringCouponsNotification:
      type: object
      properties:
        TotalResultSize:
          type: integer
          example: 1
        Data:
          type: array
          description: The array of expiring coupon notifications.
          maxLength: 1000
          items:
            $ref: '#/components/schemas/ExpiringCouponsData'
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - CouponCodeExpiring
    CardAddedDeductedPointsNotification:
      type: object
      properties:
        CardIdentifier:
          type: string
          description: Loyalty card identification number.
          example: 123-456-789ATBC
        EmployeeName:
          type: string
          description: The name of the employee who added or deducted points.
          example: Franziska Schneider
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - LoyaltyCardPointsDeducted
            - LoyaltyCardPointsAdded
        ProfileIntegrationIDs:
          type: array
          description: The integration ID of the customer profile to whom points were added or deducted.
          items:
            type: string
          example:
            - yJSObdNNtOetCHWHPFuz
            - test-user-4zoj1c
        SessionIntegrationID:
          type: string
          description: The integration ID of the session through which the points were earned or lost.
          example: cc53e4fa-547f-4f5e-8333-76e05c381f67
        SubledgerID:
          type: string
          description: The ID of the subledger within the loyalty program where these points were added or deducted.
          example: sub-123
        TypeOfChange:
          type: string
          enum:
            - campaign_manager
            - rule_engine
            - management_api
          description: |
            The notification source, that is, it indicates
            whether the points were added or deducted via one of the following routes:

            - [The Campaign Manager](/docs/product/getting-started)

            - [Management API](/management-api#tag/Loyalty)

            - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters)
        UserID:
          type: integer
          description: The ID of the employee who added or deducted points.
          example: 25
        UsersPerCardLimit:
          type: integer
          description: The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit.
          example: 10
        Amount:
          type: number
          description: The amount of added or deducted loyalty points.
          example: 10.99
        ExpiryDate:
          type: string
          format: date-time
          description: The expiration date for loyalty points.
          example: 2024-01-24T14:15:22Z
        Operation:
          type: string
          description: The action (addition or subtraction) made with loyalty points.
          enum:
            - addition
            - subtraction
        Reason:
          type: string
          description: The reason for the points addition or deduction.
          example: Compensation
        StartDate:
          type: string
          format: date-time
          description: The start date for loyalty points.
          example: 2023-01-24T14:15:22Z
        TransactionUUID:
          type: string
          format: uuid
          description: The identifier of the transaction in the loyalty ledger.
    CardAddedDeductedPointsBalancesNotification:
      type: object
      properties:
        CardIdentifier:
          type: string
          description: Loyalty card identification number.
          example: 123-456-789ATBC
        EmployeeName:
          type: string
          description: The name of the employee who added or deducted points.
          example: Franziska Schneider
        LoyaltyProgramID:
          type: integer
          description: The ID of the loyalty program.
          minimum: 1
          example: 5
        NotificationType:
          type: string
          description: The type of notification.
          enum:
            - LoyaltyCardAddedDeductedPointsBalances
        ProfileIntegrationIDs:
          type: array
          description: The integration ID of the customer profile to whom points were added or deducted.
          items:
            type: string
          example:
            - yJSObdNNtOetCHWHPFuz
            - test-user-4zoj1c
        SessionIntegrationID:
          type: string
          description: The integration ID of the session through which the points were earned or lost.
          example: cc53e4fa-547f-4f5e-8333-76e05c381f67
        SubledgerID:
          type: string
          description: The ID of the subledger within the loyalty program where these points were added or deducted.
          example: sub-123
        TypeOfChange:
          type: string
          enum:
            - campaign_manager
            - rule_engine
            - management_api
          description: |
            The notification source, that is, it indicates whether the points were added or deducted via one of the following routes:
            - [The Campaign Manager](/docs/product/getting-started)
            - [Management API](/management-api#tag/Loyalty)
            - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters)
        UserID:
          type: integer
          description: The ID of the employee who added or deducted points.
          example: 25
        UsersPerCardLimit:
          type: integer
          description: The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit.
          example: 10
        Actions:
          type: array
          description: The list of actions that have been triggered in the loyalty program.
          minItems: 1
          items:
            $ref: '#/components/schemas/AddedDeductedPointsBalancesAction'
        CurrentPoints:
          type: number
          description: The current points balance.
          example: 10.99
  parameters:
    x-uuid:
      name: X-UUID
      in: header
      description: The unique message ID. You can use it, for example, to deduplicate messages.
      schema:
        type: string
      example: 9aa05ee1-876f-42e6-9a5d-fc0bd424d9cb
