components:
  examples:
    200-admin-daily-chain:
      summary: Exemple de récompenses quotidiennes
      value:
        date_end: '2025-04-25T18:16:00+05:00'
        date_start: '2023-04-15T18:16:00+05:00'
        description:
          en: Daily reward short description
        id: 3
        is_enabled: true
        is_recurrent: false
        name:
          en: Daily reward
          ru: Ежедневная награда
        number_of_steps: 3
        order: 1
        steps:
          - items:
              - description:
                  en: Allows to see the stars
                  ru: Позволяет увидеть звезды
                image_url: https://picture.bundle-picture.png
                item_id: 9010
                name:
                  en: Telescope
                  ru: Телескоп
                quantity: 1
                sku: telescope
                type: virtual_good
              - description:
                  en: Heal 10% of your health
                  ru: Лечит 10% здоровья
                image_url: https://picture.bundle-picture.png
                item_id: 9012
                name:
                  en: Healing potion
                  ru: Зелье лечения
                quantity: 2
                sku: health_potion
                type: virtual_good
            step_id: 7
            step_number: 1
          - items:
              - description:
                  en: Allows to see the stars
                  ru: Позволяет увидеть звезды
                image_url: https://picture.bundle-picture.png
                item_id: 9010
                name:
                  en: Telescope
                  ru: Телескоп
                quantity: 5
                sku: telescope
                type: virtual_good
            step_id: 6
            step_number: 2
          - items:
              - description:
                  en: Allows to see the stars
                  ru: Позволяет увидеть звезды
                image_url: https://picture.bundle-picture.png
                item_id: 9010
                name:
                  en: Telescope
                  ru: Телескоп
                quantity: 2
                sku: telescope
                type: virtual_good
            step_id: 5
            step_number: 3
        type: calendar_hard
    200-admin-daily-chain-list:
      summary: Exemple de liste de récompenses quotidiennes
      value:
        has_more: false
        items:
          - date_end: '2025-04-25T18:16:00+05:00'
            date_start: '2023-04-15T18:16:00+05:00'
            description:
              en: Daily reward short description
            id: 1
            is_enabled: false
            is_recurrent: true
            name:
              en: Daily reward
              ru: Ежедневная награда
            number_of_steps: 10
            order: 1
            type: calendar_hard
          - date_end: '2025-04-28T15:00:00+08:00'
            date_start: '2025-04-15T00:00:00+08:00'
            description:
              en: Monthly daily reward short description
            id: 2
            is_enabled: false
            is_recurrent: true
            name:
              en: Monthly daily reward
              ru: Ежедневные награды в цепочке на месяц
            number_of_steps: 13
            order: 2
            type: calendar_hard
          - date_end: '2025-05-31T18:16:00+05:00'
            date_start: '2023-05-01T18:16:00+05:00'
            description:
              en: Login reward short description
            id: 3
            is_enabled: true
            is_recurrent: true
            name:
              en: Login reward
            number_of_steps: 7
            order: 3
            type: rolling_skippable
          - date_end: '2025-04-25T18:16:00+05:00'
            date_start: '2023-04-15T18:16:00+05:00'
            description:
              en: Daily reward short description
            id: 4
            is_enabled: true
            is_recurrent: true
            name:
              en: Daily reward
              ru: Ежедневная награда
            number_of_steps: 10
            order: 4
            type: calendar_hard
          - date_end: '2025-11-30T10:00:00+05:00'
            date_start: '2025-11-01T10:00:00+05:00'
            description:
              en: Unskippable login reward short description
            id: 5
            is_enabled: true
            is_recurrent: true
            name:
              en: Unskippable login reward
            number_of_steps: 7
            order: 3
            type: rolling_unskippable
        total_items_count: 3
    200-admin-offer-chain:
      summary: Exemple de chaîne d'offres
      value:
        attribute_conditions:
          - attribute: race
            can_be_missing: false
            operator: eq
            type: string
            value: elf
          - attribute: level
            can_be_missing: false
            operator: ge
            type: number
            value: '10'
          - attribute: 10_level_up_date
            can_be_missing: false
            operator: le
            type: date
            value: '2026-01-01T00:00:00'
        date_end: '2025-04-25T18:16:00+05:00'
        date_start: '2023-04-15T18:16:00+05:00'
        description:
          de: >-
            Personalisierte Angebotskette mit Benutzerattributbedingungen - für
            Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01
            00:00:00 erreicht haben, einschließlich
          en: >-
            Personalized offer chain with user attribute conditions - for level
            10 and above elves who reached level 10 no later than 2026-01-01
            00:00:00, inclusive
          fr: >-
            Chaîne d'offres personnalisée avec des conditions d'attribut
            utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le
            niveau 10 au plus tard le 2026-01-01 00:00:00, inclus
          it: >-
            Catena di offerte personalizzata con condizioni di attributo utente
            - per elfi di livello 10 e superiore che hanno raggiunto il livello
            10 non più tardi del 2026-01-01 00:00:00, inclusi
          ru: >-
            Персонализированная цепочка предложений - для эльфов 10 уровня и
            выше, достигших 10 уровня не позднее 2026-01-01 00:00:00
            включительно
        id: 3
        is_always_visible: false
        is_enabled: true
        name:
          de: Angebotskette
          en: Offer chain
          fr: Chaîne d'offres
          it: Catena di offerte
          ru: Цепочка
        order: 1
        recurrent_schedule: null
        steps:
          - is_free: false
            items:
              - description:
                  de: Ermöglicht das Betrachten der Sterne
                  en: Allows to see the stars
                  fr: Permet de voir les étoiles
                  it: Permette di vedere le stelle
                  ru: Позволяет увидеть звезды
                image_url: https://cdn.picture.vg.sku-telescope.png
                item_id: 9010
                name:
                  de: Teleskop
                  en: Telescope
                  fr: Télescope
                  it: Telescopio
                  ru: Телескоп
                order: 1
                quantity: 1
                sku: telescope
                type: virtual_good
              - description:
                  de: Heilt 10% deiner Gesundheit
                  en: Heal 10% of your health
                  fr: Soigne 10% de votre santé
                  it: Cura il 10% della tua salute
                  ru: Лечит 10% здоровья
                image_url: https://cdn.picture/vg-sku-health_potion.png
                item_id: 9012
                name:
                  de: Heiltrank
                  en: Healing potion
                  fr: Potion de soin
                  it: Pozione curativa
                  ru: Зелье лечения
                order: 0
                quantity: 2
                sku: health_potion
                type: virtual_good
            step_id: 7
            step_number: 1
          - is_free: false
            items:
              - description:
                  de: Ermöglicht das Betrachten der Sterne
                  en: Allows to see the stars
                  fr: Permet de voir les étoiles
                  it: Permette di vedere le stelle
                  ru: Позволяет увидеть звезды
                image_url: https://cdn.picture/vg-sku-telescope.png
                item_id: 9010
                name:
                  de: Teleskop
                  en: Telescope
                  fr: Télescope
                  it: Telescopio
                  ru: Телескоп
                order: 0
                quantity: 5
                sku: telescope
                type: virtual_good
            step_id: 6
            step_number: 2
          - is_free: true
            items:
              - description:
                  de: Ermöglicht das Betrachten der Sterne
                  en: Allows to see the stars
                  fr: Permet de voir les étoiles
                  it: Permette di vedere le stelle
                  ru: Позволяет увидеть звезды
                image_url: https://cdn.picture/vg-sku-telescope.png
                item_id: 9010
                name:
                  de: Teleskop
                  en: Telescope
                  fr: Télescope
                  it: Telescopio
                  ru: Телескоп
                order: 0
                quantity: 2
                sku: telescope
                type: virtual_good
            step_id: 5
            step_number: 3
    200-admin-offer-chain-list:
      summary: Exemple de liste de chaînes d'offres
      value:
        has_more: false
        items:
          - date_end: '2025-04-25T18:16:00+05:00'
            date_start: '2023-04-15T18:16:00+05:00'
            description:
              de: >-
                Standard-personalisierte Angebotskette für Benutzer, die die
                Bedingungen anderer personalisierter Ketten nicht erfüllen
              en: >-
                Default personalized offer chain for users that do not meet the
                conditions of other personalized chains
              fr: >-
                Chaîne d'offres personnalisée par défaut pour les utilisateurs
                qui ne répondent pas aux conditions des autres chaînes
                personnalisées
              it: >-
                Catena di offerte personalizzata predefinita per gli utenti che
                non soddisfano le condizioni di altre catene personalizzate
              ru: >-
                Персонализированная цепочка по умолчанию для пользователей, не
                подходящих под условия других персонализированных цепочек
            id: 1
            is_always_visible: false
            is_enabled: true
            name:
              de: Neue personalisierte Standard-Angebotskette
              en: New personalized default offer chain
              fr: Nouvelle chaîne d'offres personnalisée par défaut
              it: Nuova catena di offerte personalizzata predefinita
              ru: Новая персонализированная цепочка предложений по умолчанию
            order: 1
            recurrent_schedule: null
          - attribute_conditions:
              - attribute: race
                can_be_missing: false
                operator: eq
                type: string
                value: elf
              - attribute: level
                can_be_missing: false
                operator: ge
                type: number
                value: '10'
              - attribute: 10_level_up_date
                can_be_missing: false
                operator: le
                type: date
                value: '2026-01-01T00:00:00'
            date_end: '2025-04-25T18:16:00+05:00'
            date_start: '2023-04-15T18:16:00+05:00'
            description:
              de: >-
                Personalisierte Angebotskette mit Benutzerattributbedingungen -
                für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am
                2026-01-01 00:00:00 erreicht haben, einschließlich
              en: >-
                Personalized offer chain with user attribute conditions - for
                level 10 and above elves who reached level 10 no later than
                2026-01-01 00:00:00, inclusive
              fr: >-
                Chaîne d'offres personnalisée avec des conditions d'attribut
                utilisateur - pour les elfes de niveau 10 et plus qui ont
                atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus
              it: >-
                Catena di offerte personalizzata con condizioni di attributo
                utente - per elfi di livello 10 e superiore che hanno raggiunto
                il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi
              ru: >-
                Персонализированная цепочка предложений с условиями по атрибутам
                пользователя - для эльфов уровня 10 и выше, достигших 10 уровня
                не позднее 2026-01-01 00:00:00 включительно
            id: 2
            is_always_visible: false
            is_enabled: true
            name:
              de: Neue personalisierte Angebotskette
              en: New personalized offer chain
              fr: Nouvelle chaîne d'offres personnalisée
              it: Nuova catena di offerte personalizzata
              ru: Новая персонализированная цепочка предложений
            order: 2
            recurrent_schedule: null
          - date_end: '2025-04-25T18:16:00+05:00'
            date_start: '2023-04-15T18:16:00+05:00'
            description:
              de: >-
                Angebotskette, die sich wöchentlich mittwochs um 07:00 Uhr GMT+3
                zurücksetzt
              en: Offer chain that resets weekly on Wednesdays at 07:00 GMT+3
              fr: >-
                Chaîne d'offres qui se réinitialise chaque semaine le mercredi à
                07h00 GMT+3
              it: >-
                Catena di offerte che si resetta settimanalmente il mercoledì
                alle 07:00 GMT+3
              ru: >-
                Цепочка предложений, которая сбрасывается еженедельно по средам
                в 07:00 GMT+3
            id: 4
            is_always_visible: true
            is_enabled: false
            name:
              de: Wöchentliche Angebotskette
              en: Weekly offer chain
              fr: Chaîne d'offres hebdomadaire
              it: Catena di offerte settimanale
              ru: Еженедельная цепочка предложений
            order: 3
            recurrent_schedule:
              day_of_week: 3
              displayable_reset_next_date: '2018-12-05T07:00:00+03:00'
              displayable_reset_start_date: '2018-12-05T07:00:00+03:00'
              interval_type: weekly
              reset_next_date: 1543982400
              time: 07:00:00+03:00
          - date_end: '2025-08-28T15:00:00+08:00'
            date_start: '2025-04-15T00:00:00+08:00'
            description:
              de: >-
                Angebotskette, die sich monatlich am 28. um 15:00 Uhr GMT+8
                zurücksetzt
              en: Offer chain that resets monthly on the 28th at 15:00 GMT+8
              fr: >-
                Chaîne d'offres qui se réinitialise mensuellement le 28 à 15h00
                GMT+8
              it: >-
                Catena di offerte che si resetta mensilmente il 28 alle 15:00
                GMT+8
              ru: >-
                Цепочка предложений, которая сбрасывается ежемесячно 28-го числа
                в 15:00 GMT+8
            id: 5
            is_always_visible: true
            is_enabled: true
            name:
              de: Monatliche Angebotskette
              en: Monthly offer chain
              fr: Chaîne d'offres mensuelle
              it: Catena di offerte mensile
              ru: Ежемесячная цепочка предложений
            order: 4
            recurrent_schedule:
              day_of_month: 28
              displayable_reset_next_date: '2025-05-28T15:00:00+08:00'
              displayable_reset_start_date: '2025-05-28T15:00:00+08:00'
              interval_type: monthly
              reset_next_date: 1748415600
              time: 15:00:00+08:00
    200-clan-reward-chain:
      summary: Exemple de chaîne de récompenses de clan
      value:
        clan_type: guild
        description:
          en: Clan reward chain description.
        image_url: >-
          https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
        is_enabled: true
        long_description:
          en: Clan reward chain long description.
        name:
          en: Clan reward chain
        order: 1
        periods:
          - date_from: '2020-04-15T18:16:00+05:00'
            date_until: '2021-04-15T18:16:00+05:00'
        popup_header:
          en: How to unlock rewards
        popup_image_url: >-
          https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
        popup_instruction:
          en: >-
            You must be a clan member in order to get clan rewards. You join a
            clan when a clan member invites you to the clan, and you accept the
            invite. You can also create your own clan.
        recurrent_schedule:
          day_of_week: 2
          displayable_reset_next_date: '2023-03-07T11:00:00+08:00'
          displayable_reset_start_date: '2023-02-28T11:00:00+08:00'
          interval_type: weekly
          reset_next_date: 1677553200
          time: 11:00:00+08:00
        reward_chain_id: 1
        steps:
          - image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            name:
              en: First step of the reward chain
            price:
              amount: 10
            reward:
              - quantity: 5
                sku: com.xsolla.item_1
              - quantity: 1
                sku: com.xsolla.item_2
            step_id: 1
          - image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            name:
              en: Second step of the reward chain
            price:
              amount: 15
            reward:
              - quantity: 5
                sku: com.xsolla.item_3
              - quantity: 1
                sku: com.xsolla.item_4
            step_id: 2
        value_point:
          description:
            en: Value points for clan reward system.
          image_url: >-
            https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
          is_clan: true
          is_enabled: true
          long_description:
            en: >-
              Value points given to clans to get new rewards in a certain reward
              chain.
          media_list: []
          name:
            en: Clan Reward VP 1
          order: 1
          sku: com.xsolla.clan_value_point_1
    200-client-daily-chain:
      summary: Exemple de récompenses quotidiennes d'un utilisateur
      value:
        date_end: '2025-04-03T18:16:00+05:00'
        date_start: '2025-04-01T18:16:00+05:00'
        description: Active daily reward description
        id: 101
        name: Active daily reward
        order: 1
        steps:
          - items:
              - bundle_type: standard
                content:
                  - description: Virtual good one
                    image_url: https://picture.virtual-good-picture.png
                    is_free: false
                    item_id: 1
                    name: virtual_good_one
                    quantity: 1
                    sku: d0df11c5-f7c4-4907-9ae1-7dd40cecab05
                    type: virtual_good
                  - description: Gold Coins
                    image_url: https://picture.gold_coins.png
                    is_free: false
                    item_id: 2
                    name: Gold Coins
                    quantity: 100
                    sku: coins
                    type: virtual_currency
                description: Many stuff
                image_url: https://picture.bundle-with-many-stuff.png
                is_free: false
                item_id: 10001
                name: Bundle with awesome stuff!
                quantity: 1
                sku: bundle_with_items
                type: bundle
            status: blocked
            step_number: 1
            unlocked_date: 1711978560
          - items:
              - description: Heal 10% of your health
                image_url: https://picture.bundle-picture.png
                is_free: false
                item_id: 9012
                name: Healing potion
                quantity: 1
                sku: health_potion
                type: virtual_good
            status: claimed
            step_number: 2
            unlocked_date: 1712064960
          - items:
              - description: Heal 10% of your health
                image_url: https://picture.bundle-picture.png
                is_free: false
                item_id: 9012
                name: Healing potion
                quantity: 2
                sku: health_potion
                type: virtual_good
            status: claimable
            step_number: 3
            unlocked_date: 1712151360
          - items:
              - description: store_item_0_lost_telescope_2_short_description
                image_url: https://picture.bundle-picture.png
                is_free: false
                item_id: 9011
                name: Free item
                quantity: 1
                sku: free_item
                type: virtual_good
            status: claim_in_future
            step_number: 4
            unlocked_date: 1712237760
        type: calendar_hard
    200-client-daily-chain-list:
      summary: Exemple de liste de récompenses quotidiennes d'un utilisateur
      value:
        has_more: false
        items:
          - date_end: '2025-04-03T18:16:00+05:00'
            date_start: '2025-04-01T18:16:00+05:00'
            description: null
            id: 101
            name: Active daily reward
            order: 1
            steps:
              - items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    quantity: 1
                    sku: health_potion
                    type: virtual_good
                status: claimed
                step_number: 1
                unlocked_date: 1711978560
              - items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    quantity: 2
                    sku: health_potion
                    type: virtual_good
                status: claimable
                step_number: 2
                unlocked_date: 1712064960
              - items:
                  - description: store_item_0_lost_telescope_2_short_description
                    image_url: https://picture.bundle-picture.png
                    is_free: true
                    item_id: 9011
                    name: Free item
                    quantity: 1
                    sku: free_item
                    type: virtual_good
                status: claim_in_future
                step_number: 3
                unlocked_date: 1712151360
            type: calendar_hard
          - date_end: '2025-05-03T18:16:00+05:00'
            date_start: '2025-05-01T18:16:00+05:00'
            description: null
            id: 102
            name: Active daily reward 2
            order: 1
            steps:
              - items:
                  - description: store_item_0_lost_telescope_2_short_description
                    image_url: https://picture.bundle-picture.png
                    is_free: true
                    item_id: 9011
                    name: Free item
                    quantity: 3
                    sku: free_item
                    type: virtual_good
                status: claimable
                step_number: 1
                unlocked_date: 1714560960
              - items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    quantity: 3
                    sku: health_potion
                    type: virtual_good
                status: claim_in_future
                step_number: 2
                unlocked_date: 1714647360
            type: calendar_hard
          - date_end: '2025-04-03T18:16:00+05:00'
            date_start: '2025-04-01T18:16:00+05:00'
            description: null
            id: 103
            name: Active daily reward 3
            order: 1
            steps:
              - items:
                  - description: store_item_0_lost_telescope_2_short_description
                    image_url: https://picture.bundle-picture.png
                    is_free: true
                    item_id: 9011
                    name: Free item
                    quantity: 3
                    sku: free_item
                    type: virtual_good
                status: claimable
                step_number: 1
                unlocked_date: 1711978560
              - items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    quantity: 3
                    sku: health_potion
                    type: virtual_good
                status: blocked
                step_number: 2
                unlocked_date: 1712064960
              - items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    quantity: 3
                    sku: health_potion
                    type: virtual_good
                status: blocked
                step_number: 3
                unlocked_date: 1712151360
            type: calendar_hard
          - date_end: '2025-04-28T10:00:00+05:00'
            date_start: '2025-04-01T10:00:00+05:00'
            description: null
            id: 104
            name: Active daily rolling reward
            order: 1
            steps:
              - items:
                  - description: Item one description
                    image_url: https://picture.bundle-picture.png
                    is_free: true
                    item_id: 1001
                    name: Item One
                    quantity: 1
                    sku: item_one
                    type: virtual_good
                status: claimed
                step_number: 1
                unlocked_date: -1
              - items:
                  - description: Item two description
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 1002
                    name: Item Two
                    quantity: 1
                    sku: item_two
                    type: virtual_good
                status: claimable
                step_number: 2
                unlocked_date: 1712064960
              - items:
                  - description: Item three description
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 1003
                    name: Item Three
                    quantity: 1
                    sku: item_three
                    type: virtual_good
                status: claim_in_future
                step_number: 3
                unlocked_date: 1712151360
            type: rolling_skippable
        total_items_count: 3
    200-client-get-reward-chains-list:
      value:
        has_more: false
        items:
          - clan_type: null
            date_end: '2023-04-25T18:16:00+05:00'
            date_start: '2023-04-15T18:16:00+05:00'
            description: Big weekly quest
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            long_description: >-
              You can get a lot of additional items just by shopping during the
              week
            name: Weekly quest
            order: 1
            popup_header: null
            popup_image_url: null
            popup_instruction: null
            recurrent_schedule:
              interval_type: weekly
              reset_next_date: 1746057600
            reward_chain_id: 10
            steps:
              - image_url: >-
                  https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                is_claimed: true
                name: Level 1
                price:
                  amount: 100
                reward:
                  - description: Super box with items
                    image_url: >-
                      https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                    name: Super box
                    quantity: 1
                    sku: com.xsolla.box_1
                    type: bundle
                  - description: Mega box with items
                    image_url: >-
                      https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                    name: Mega box
                    quantity: 1
                    sku: com.xsolla.box_2
                    type: bundle
                step_id: 1
              - image_url: >-
                  https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                is_claimed: false
                name: Level 2
                price:
                  amount: 200
                reward:
                  - description: Super box with items
                    image_url: >-
                      https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                    name: Super box
                    quantity: 2
                    sku: com.xsolla.box_1
                    type: bundle
                  - description: Mega box with items
                    image_url: >-
                      https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                    name: Mega box
                    quantity: 2
                    sku: com.xsolla.box_2
                    type: bundle
                step_id: 2
            top_contributors: []
            value_point:
              amount: 130
              description: null
              image_url: >-
                https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
              long_description: null
              name: Value point
              sku: com.xsolla.value_point_1
          - clan_type: guild
            date_end: '2023-10-15T18:16:00+05:00'
            date_start: '2023-04-15T18:16:00+05:00'
            description: Major weekly clan quest.
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            long_description: >-
              You and your clan members can get additional items for shopping
              during a certain month.
            name: Weekly clan quest
            order: 2
            popup_header:
              en: How to unlock rewards
            popup_image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            popup_instruction:
              en: >-
                You should be a clan member to get clan rewards. You join a clan
                when a clan member invited you to the clan, and you accepted the
                invite. You can create your own clan.
            recurrent_schedule:
              interval_type: monthly
              reset_next_date: 1746057600
            reward_chain_id: 12
            steps:
              - image_url: >-
                  https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                is_claimed: true
                name: Level 1
                price:
                  amount: 100
                reward:
                  - description: Super box with items
                    image_url: >-
                      https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                    name: Super box
                    quantity: 1
                    sku: com.xsolla.box_1
                    type: bundle
                  - description: Mega box with items
                    image_url: >-
                      https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                    name: Mega box
                    quantity: 1
                    sku: com.xsolla.box_2
                    type: bundle
                step_id: 1
              - image_url: >-
                  https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                is_claimed: false
                name: Level 2
                price:
                  amount: 200
                reward:
                  - description: Super box with items
                    image_url: >-
                      https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                    name: Super box
                    quantity: 2
                    sku: com.xsolla.box_1
                    type: bundle
                  - description: Mega box with items
                    image_url: >-
                      https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                    name: Mega box
                    quantity: 2
                    sku: com.xsolla.box_2
                    type: bundle
                step_id: 2
            top_contributors:
              - contributed_amount: 100
                name: Rabbit
              - contributed_amount: 80
                name: Rocket
              - contributed_amount: 40
                name: Rain
            value_point:
              amount: 80
              description: Value points for clan reward system.
              image_url: >-
                https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
              long_description: >-
                Value points given to clans to get new rewards in a reward
                chain.
              name: Clan Reward VP 1
              sku: com.xsolla.clan_value_point_1
        total_items_count: 1
    200-client-get-user-clan-reward-chain-balance:
      summary: Exemple de chaîne de récompenses de clan
      value:
        amount: 80
        description: Value points for clan reward system.
        image_url: >-
          https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
        is_clan: true
        long_description: Value points given to clans to get new rewards in a reward chain.
        name: Clan Reward VP 1
        sku: com.xsolla.clan_value_point_1
    200-client-get-user-reward-chain-balance:
      summary: Exemple de chaîne de récompenses
      value:
        amount: 130
        description: null
        image_url: >-
          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
        is_clan: false
        long_description: null
        name: Value point
        sku: com.xsolla.value_point_1
    200-client-offer-chain:
      summary: Exemple de chaîne d'offres d'utilisateur
      value:
        date_end: '2025-04-25T18:16:00+05:00'
        date_start: '2010-04-15T18:16:00+05:00'
        description: null
        id: 4
        name: Offer chain with bundles
        next_step_number: 1
        order: 1
        recurrent_schedule: null
        steps:
          - is_claimed: false
            is_free: false
            items:
              - bundle_type: standard
                content:
                  - description: >-
                      virtual_good_short_description_d0df11c5-f7c4-4907-9ae1-7dd40cecab05
                    image_url: >-
                      https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png
                    is_free: false
                    item_id: 1
                    name: Virtual Good Bundle
                    quantity: 1
                    sku: d0df11c5-f7c4-4907-9ae1-7dd40cecab05
                    type: virtual_good
                  - description: Big Rocket - short description
                    image_url: https://picture.bigrocket.png
                    is_free: false
                    item_id: 7009
                    name: Big Rocket
                    quantity: 1
                    sku: vg-in-bundle-big-rocket
                    type: virtual_good
                  - description: Gold Coins - short description
                    image_url: https://picture.gold_coins.png
                    is_free: true
                    item_id: 7010
                    name: Gold Coins
                    quantity: 100
                    sku: vc-in-bundle-gold-coins
                    type: virtual_currency
                  - description: Some Game - short description
                    image_url: https://picture.some_game.png
                    is_free: true
                    item_id: 7011
                    name: Some Game
                    quantity: 1
                    sku: digital-content-drm-in-bundle-awesome-game
                    type: virtual_good
                  - bundle_type: standard
                    content:
                      - description: Gold Coins - short description
                        image_url: https://picture.gold_coins.png
                        is_free: true
                        item_id: 7010
                        name: Gold Coins
                        quantity: 1
                        sku: vc-in-bundle-gold-coins
                        type: virtual_currency
                    description: Bundle - short description
                    image_url: https://picture.bundle-picture.png
                    is_free: true
                    item_id: 7012
                    name: Some Bundle in Bundle
                    quantity: 1
                    sku: bundle-in-bundle-another-bundle
                    type: bundle
                  - description: Lootbox in bundle - short description
                    image_url: https://picture.lootbox-picture.png
                    is_free: true
                    item_id: 7013
                    name: Some Lootbox
                    quantity: 1
                    sku: lootbox-in-bundle-awesome-game
                    type: lootbox
                description: Many stuff
                image_url: https://picture.bundle-with-many-stuff.png
                is_free: false
                item_id: 7008
                name: Bundle with many awesome stuff!
                order: 0
                quantity: 5
                sku: bundle_with_many_items
                type: bundle
            step_number: 1
            step_price:
              amount: 499.95
              currency: USD
            step_vp_rewards: null
          - is_claimed: false
            is_free: true
            items:
              - bundle_type: standard
                content: []
                description: 'No'
                image_url: https://picture.bundle-no-items.png
                is_free: true
                item_id: 7007
                name: Empty bundle
                order: 0
                quantity: 10
                sku: bundle-empty
                type: bundle
            step_number: 2
            step_price: null
            step_vp_rewards: null
    200-client-offer-chain-list:
      summary: Exemple de liste de chaînes d'offres d'utilisateur
      value:
        has_more: false
        items:
          - date_end: '2025-04-25T18:16:00+05:00'
            date_start: '2018-04-15T18:16:00+05:00'
            description: null
            id: 101
            name: Active offer chain
            next_step_number: 1
            order: 1
            recurrent_schedule: null
            steps:
              - is_claimed: false
                is_free: false
                items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    order: 0
                    quantity: 1
                    sku: health_potion
                    type: virtual_good
                step_number: 1
                step_price:
                  amount: 99.99
                  currency: USD
                step_vp_rewards:
                  - amount: 15
                    image_url: >-
                      https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png
                    is_clan: true
                    item_id: 6039
                    name: store_item_0_test_value_point_name
                    sku: test_value_point_39
              - is_claimed: false
                is_free: false
                items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    order: 0
                    quantity: 2
                    sku: health_potion
                    type: virtual_good
                step_number: 2
                step_price:
                  amount: 199.98
                  currency: USD
                step_vp_rewards:
                  - amount: 30
                    image_url: >-
                      https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png
                    is_clan: true
                    item_id: 6039
                    name: store_item_0_test_value_point_name
                    sku: test_value_point_39
              - is_claimed: false
                is_free: true
                items:
                  - description: store_item_0_lost_telescope_2_short_description
                    image_url: https://picture.bundle-picture.png
                    is_free: true
                    item_id: 9011
                    name: Free item
                    order: 0
                    quantity: 1
                    sku: free_item
                    type: virtual_good
                step_number: 3
                step_price: null
                step_vp_rewards: null
          - date_end: '2025-04-25T18:16:00+05:00'
            date_start: '2018-04-15T18:16:00+05:00'
            description: null
            id: 102
            name: Active offer chain 2
            next_step_number: 1
            order: 1
            recurrent_schedule: null
            steps:
              - is_claimed: false
                is_free: true
                items:
                  - description: store_item_0_lost_telescope_2_short_description
                    image_url: https://picture.bundle-picture.png
                    is_free: true
                    item_id: 9011
                    name: Free item
                    order: 0
                    quantity: 3
                    sku: free_item
                    type: virtual_good
                step_number: 1
                step_price: null
                step_vp_rewards: null
              - is_claimed: false
                is_free: true
                items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    order: 0
                    quantity: 3
                    sku: health_potion
                    type: virtual_good
                step_number: 2
                step_price: null
                step_vp_rewards:
                  - amount: 45
                    image_url: >-
                      https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png
                    is_clan: true
                    item_id: 6039
                    name: store_item_0_test_value_point_name
                    sku: test_value_point_39
              - is_claimed: false
                is_free: true
                items: []
                step_number: 3
                step_price: null
                step_vp_rewards: null
          - date_end: '2025-04-25T18:16:00+05:00'
            date_start: '2018-04-15T18:16:00+05:00'
            description: null
            id: 103
            name: Active offer chain 3
            next_step_number: 1
            order: 1
            recurrent_schedule: null
            steps:
              - is_claimed: false
                is_free: true
                items:
                  - description: store_item_0_lost_telescope_2_short_description
                    image_url: https://picture.bundle-picture.png
                    is_free: true
                    item_id: 9011
                    name: Free item
                    order: 0
                    quantity: 3
                    sku: free_item
                    type: virtual_good
                step_number: 1
                step_price: null
                step_vp_rewards: null
              - is_claimed: false
                is_free: false
                items:
                  - description: Heal 10% of your health
                    image_url: https://picture.bundle-picture.png
                    is_free: false
                    item_id: 9012
                    name: Healing potion
                    order: 0
                    quantity: 3
                    sku: health_potion
                    type: virtual_good
                step_number: 2
                step_price:
                  amount: 299.97
                  currency: USD
                step_vp_rewards:
                  - amount: 45
                    image_url: >-
                      https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png
                    is_clan: true
                    item_id: 6039
                    name: store_item_0_test_value_point_name
                    sku: test_value_point_39
              - is_claimed: false
                is_free: true
                items: []
                step_number: 3
                step_price: null
                step_vp_rewards: null
        total_items_count: 3
    200-client-update-user-clan:
      value:
        reward:
          - bundle_type: standard
            description: Super box with items
            image_url: >-
              https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
            name: Super box
            quantity: 1
            sku: com.xsolla.box_1
            type: bundle
          - description: Mega potion
            image_url: >-
              https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
            name: Mega potion
            quantity: 1
            sku: com.xsolla.potion_1
            type: virtual_good
    200-reward-chain:
      summary: Exemple de chaîne de récompenses
      value:
        attribute_conditions:
          - attribute: race
            can_be_missing: false
            operator: eq
            type: string
            value: ork
        description:
          en: Reward chain description
        image_url: >-
          https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
        is_always_visible: true
        is_enabled: true
        is_reset_after_end: true
        long_description:
          en: Reward chain long description
        name:
          en: Reward chain
        order: 1
        periods:
          - date_from: '2026-01-01T01:00:00+05:00'
            date_until: '2026-01-31T23:59:59+05:00'
          - date_from: '2026-02-01T01:00:00+05:00'
            date_until: '2026-02-28T23:59:59+05:00'
        recurrent_schedule:
          day_of_week: 2
          displayable_reset_next_date: '2026-01-06T01:00:00+05:00'
          displayable_reset_start_date: '2026-01-01T01:00:00+05:00'
          interval_type: weekly
          reset_next_date: 1767643200
          time: 01:00:00+05:00
        reward_chain_id: 1
        steps:
          - image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            name:
              en: First step of the reward chain
            price:
              amount: 10
            reward:
              - quantity: 5
                sku: com.xsolla.item_1
              - quantity: 1
                sku: com.xsolla.item_2
            step_id: 1
          - image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            name:
              en: Second step of the reward chain
            price:
              amount: 15
            reward:
              - quantity: 5
                sku: com.xsolla.item_3
              - quantity: 1
                sku: com.xsolla.item_4
            step_id: 2
        value_point:
          description:
            en: Value points for reward system.
          image_url: >-
            https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
          is_clan: false
          is_enabled: true
          long_description:
            en: Value points given to users to get new rewards in a reward chain.
          media_list: []
          name:
            en: Reward VP 1
          order: 1
          sku: com.xsolla.reward_vp_1
          type: value_point
    200-reward-chain-list:
      value:
        has_more: true
        items:
          - attribute_conditions:
              - attribute: race
                can_be_missing: false
                operator: eq
                type: string
                value: ork
            description:
              en: Reward chain description
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            is_always_visible: true
            is_enabled: true
            is_reset_after_end: true
            long_description:
              en: Reward chain long description
            name:
              en: Reward chain
            order: 1
            periods:
              - date_from: '2026-01-01T01:00:00+05:00'
                date_until: '2026-01-31T23:59:59+05:00'
              - date_from: '2026-02-01T01:00:00+05:00'
                date_until: '2026-02-28T23:59:59+05:00'
            recurrent_schedule: null
            reward_chain_id: 1
            value_point:
              description: Value points for standard reward system.
              image_url: >-
                https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
              is_clan: false
              is_enabled: true
              long_description: >-
                Value points given to users to get new rewards in a reward
                chain.
              media_list: []
              name:
                en: Reward VP 1
              order: 1
              sku: com.xsolla.reward_vp_1
              type: value_point
          - clan_type: guild
            description:
              en: Clan reward chain description.
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            is_enabled: true
            long_description:
              en: Clan reward chain long description.
            name:
              en: Clan reward chain
            order: 1
            periods:
              - date_from: '2026-01-01T01:00:00+05:00'
                date_until: '2026-01-31T23:59:59+05:00'
              - date_from: '2026-02-01T01:00:00+05:00'
                date_until: '2026-02-28T23:59:59+05:00'
            popup_header:
              en: How to unlock rewards
            popup_image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            popup_instruction:
              en: >-
                You must be a clan member in order to get clan rewards. You join
                a clan when a clan member invites you to the clan, and you
                accept the invite. You can also create your own clan.
            recurrent_schedule:
              day_of_month: null
              day_of_week: 2
              displayable_reset_next_date: '2026-01-06T01:00:00+05:00'
              displayable_reset_start_date: '2026-01-01T01:00:00+05:00'
              interval_type: weekly
              reset_next_date: 1767643200
              time: 01:00:00+05:00
            reward_chain_id: 2
            value_point:
              description: Value points for clan reward system.
              image_url: >-
                https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
              is_clan: true
              is_enabled: true
              long_description: >-
                Value points given to clans to get new rewards in a reward
                chain.
              media_list: []
              name:
                en: Clan Reward VP 1
              order: 1
              sku: com.xsolla.clan_value_point_1
    200-value-points-reward-chain_admin_get-value-point:
      value:
        can_delete: false
        description:
          en: Points for reward system
        image_url: >-
          https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
        is_clan: false
        is_enabled: true
        long_description:
          en: Points given to users to get new rewards in a reward chain.
        media_list: []
        name:
          en: Reward VP 1
        order: 1
        sku: com.xsolla.reward_vp_1
        type: value_point
    200-value-points-reward-chain_admin_get-value-point-list:
      value:
        items:
          - description:
              en: Points for reward system
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            is_clan: false
            is_enabled: true
            long_description:
              en: Points given to users to get new rewards in a reward chain.
            media_list: []
            name:
              en: Reward VP 1
            order: 1
            sku: com.xsolla.reward_vp_1
            type: value_point
          - description:
              en: Value points for reward system.
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            is_clan: false
            is_enabled: false
            long_description:
              en: >-
                Value points given to users to get new rewards in a reward
                chain.
            media_list: []
            name:
              en: Reward VP 2
            order: 2
            sku: com.xsolla.reward_vp_2
            type: value_point
          - description:
              en: Value points for clan reward system.
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            is_clan: true
            is_enabled: true
            long_description:
              en: >-
                Value points given to clans to get new rewards in a reward
                chain.
            media_list: []
            name:
              en: Clan Reward VP 1
            order: 3
            sku: com.xsolla.clan_value_point_1
    200-value-points-rewards-list:
      value:
        items:
          - amount: 100
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            item_id: 14232
            name:
              en: Booster
            sku: com.xsolla.booster_1
          - amount: 200
            image_url: >-
              https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
            item_id: 14232
            name:
              en: Mega Booster
            sku: com.xsolla.booster_mega
    401-complex-auth-header-not-found:
      value:
        errorCode: 1501
        errorMessage: '[0401-1501]: Authorization failed: Authorization header not sent'
        statusCode: 401
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    401-complex-auth-incorrect-credentials:
      value:
        errorCode: 1013
        errorMessage: '[0401-1013]: Token not found.'
        statusCode: 401
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    404-coupon-not-found:
      value:
        errorCode: 9802
        errorMessage: '[0401-9802]: Coupon not found'
        statusCode: 404
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    404-daily-chain-not-found:
      description: Daily reward was not found.
      summary: Récompense quotidienne non trouvée
      value:
        errorCode: 6201
        errorMessage: '[0401-6201]: Chain not found'
        errorMessageExtended:
          chain_id: 4
          project_id: 0
        statusCode: 404
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    404-daily-chain-step-not-found:
      description: Daily reward step was not found.
      summary: Étape de récompense quotidienne non trouvée
      value:
        errorCode: 6304
        errorMessage: '[0401-6304]: Daily Chain Step not found'
        errorMessageExtended:
          chain_id: 100
          step_number: 1
        statusCode: 404
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    404-offer-chain-not-found:
      description: Offer chain step was not found.
      summary: Chaîne non trouvée
      value:
        errorCode: 6201
        errorMessage: '[0401-6201]: Chain not found'
        errorMessageExtended:
          chain_id: 4
          project_id: 0
        statusCode: 404
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    404-offer-chain-step-not-found:
      description: Offer chain step was not found.
      summary: Étape de chaîne non trouvée
      value:
        errorCode: 6304
        errorMessage: '[0401-6304]: Offer Chain Step not found'
        errorMessageExtended:
          chain_id: 100
          step_number: 1
        statusCode: 404
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    404-promotion-by-id-not-found:
      value:
        errorCode: 1101
        errorMessage: '[0401-1101]: Promotion not found'
        statusCode: 404
        transactionId: transaction id
    404-user-not-found:
      value:
        errorCode: 5008
        errorMessage: '[0401-5008]: Could not find User'
        statusCode: 404
        transactionId: transaction id
    422-activate-deactivate-promotion:
      value:
        errorCode: 9505
        errorMessage: '[0401-9505]: Error was occurred while promotion was being updated'
        statusCode: 422
        transactionId: da145238620011eb8e24fe6913ff226a
    422-admin-daily-chain-error-activated:
      description: Active daily reward have to be deactivated before being updated.
      summary: Impossible de mettre à jour une récompense quotidienne active
      value:
        errorCode: 6209
        errorMessage: >-
          [0401-6209]: Active chain cannot be updated. Please deactivate it
          first
        errorMessageExtended:
          chain_id: 2
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-chain-id-mismatch:
      description: Daily reward ID specified in the body does not match the URL.
      summary: Incohérence d'ID de récompense quotidienne
      value:
        errorCode: 6205
        errorMessage: >-
          [0401-6205]: Chain ID mismatch. Please, check the chain ID in your
          request body and URL
        errorMessageExtended:
          body_chain_id: 2
          project_id: 0
          url_chain_id: 1
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-duplicate-step-ids:
      description: >-
        Please, ensure that daily reward step IDs are unique in the request
        body.
      summary: ID d'étape de récompense quotidienne dupliqué
      value:
        errorCode: 6207
        errorMessage: '[0401-6207]: Duplicate chain step IDs detected in the request body'
        errorMessageExtended:
          chain_id: 3
          chain_step_id_list:
            - 8
            - 9
            - 10
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-incorrect-items:
      description: >-
        Specified items are not allowed, disabled or not found. Only enabled
        items of following types are allowed: virtual item, bundle, virtual
        currency package.
      summary: Objets d'étape incorrects
      value:
        errorCode: 6211
        errorMessage: '[0401-6211]: Chain steps items are not allowed or not found'
        errorMessageExtended:
          invalid_items:
            disabled:
              - vg_disabled_item_1
              - vg_disabled_item_2
              - vc_disabled_1
            invalid_item_type:
              allowed_item_type_list:
                - virtual_good
                - bundle
              sku_map:
                gk_steam_enabled_shown_in_store_1: game_key
                unit_enabled_shown_in_store_1: unit
                vc_disabled_1: virtual_currency
                vc_enabled_shown_in_store_1: virtual_currency
            not_found:
              - vg_deleted_item_1
              - vg_deleted_item_2
              - not_existing_sku_404_1
              - not_existing_sku_404_2
          project_id: 0
        statusCode: 422
        transactionId: x-x-xX-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-incorrect-period:
      description: Please ensure start date is earlier than end date.
      summary: Période incorrecte pour une récompense quotidienne
      value:
        errorCode: 6204
        errorMessage: >-
          [0401-6204]: Period of a chain is invalid. Please, check the dates in
          your request
        errorMessageExtended:
          chain_id: 1
          invalid_periods:
            - end: '2023-04-15T18:16:00+05:00'
              start: '2025-04-25T18:16:00+05:00'
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-incorrect-steps-order:
      description: >-
        Daily reward steps numbers sequence is incorrect. Correct step numbers
        should be sequential without any gaps or duplicates.
      summary: Ordre d'étapes incorrect
      value:
        errorCode: 6210
        errorMessage: '[0401-6210]: Chain step numbers are invalid'
        errorMessageExtended:
          incorrect_step_numbers:
            duplicates:
              - 2
              - 7
            missing:
              - 3
              - 4
              - 5
              - 6
            out_of_range:
              - 7
              - 8
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-invalid-chain-step-ids:
      description: >-
        Some of step IDs was not found. Please, double check if specified daily
        reward step IDs actually exist.
      summary: ID d'étape de récompense quotidienne non trouvés
      value:
        errorCode: 6206
        errorMessage: '[0401-6206]: Chain step IDs not found'
        errorMessageExtended:
          chain_id: 1
          chain_step_id_list:
            - 404000
          project_id: 0
        statusCode: 404
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-invalid-dates:
      description: Please, ensure dates format is valid.
      summary: Format de date non valide
      value:
        errorCode: 6204
        errorMessage: >-
          [0401-6204]: Period of a chain is invalid. Please, check the dates in
          your request
        errorMessageExtended:
          chain_id: 1
          invalid_format_dates:
            date_end: '2025-04-25 19:16:00Z'
            date_start: '2023-04-15 17:16:00Z'
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-item-limit-exceeded:
      description: >-
        Daily reward step item count exceeds the allowed limit for some steps.
        Currently only 1 item per step is allowed.
      summary: Limite d'objets dépassée
      value:
        errorCode: 6208
        errorMessage: >-
          [0401-6208]: Chain step item count exceeds the allowed limit for some
          steps
        errorMessageExtended:
          max_items: 1
          project_id: 0
          steps_exceeded_limits:
            - items_count: 2
              step_number: 1
            - items_count: 3
              step_number: 4
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-daily-chain-error-too-many-steps:
      description: >-
        Daily reward steps max amount limit of 30 items is exceeded. Try
        specifying less steps.
      summary: Trop d'étapes
      value:
        errorCode: 6203
        errorMessage: '[0401-6203]: Chain step count exceeds the allowed limit'
        errorMessageExtended:
          max_steps: 30
          project_id: 0
          step_count: 31
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-activated:
      description: >-
        Active offer chain has to be deactivated before being updated. To do
        this, use the <a
        href="/fr/api/shop-builder/operation/admin-toggle-offer-chain">Toggle
        offer chain</a> call.
      summary: Impossible de modifier une chaîne d'offres active
      value:
        errorCode: 6209
        errorMessage: >-
          [0401-6209]: Active chain cannot be updated. Please deactivate it
          first
        errorMessageExtended:
          chain_id: 2
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-chain-id-mismatch:
      description: Offer chain ID in the request body does not match the ID in the URL.
      summary: ID de chaîne non conforme
      value:
        errorCode: 6205
        errorMessage: >-
          [0401-6205]: Chain ID mismatch. Please, check the chain ID in your
          request body and URL
        errorMessageExtended:
          body_chain_id: 2
          project_id: 0
          url_chain_id: 1
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-duplicate-step-ids:
      description: Chain step IDs must be unique in the request body.
      summary: ID d'étape de chaîne en double
      value:
        errorCode: 6207
        errorMessage: '[0401-6207]: Duplicate chain step IDs detected in the request body'
        errorMessageExtended:
          chain_id: 3
          chain_step_id_list:
            - 8
            - 9
            - 10
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-incorrect-items:
      description: >-
        Specified items are either unavailable, or not found. Only enabled items
        of the following types are supported: virtual items, bundles, and
        virtual currency packages.
      summary: Objets d'étape non valides
      value:
        errorCode: 6211
        errorMessage: '[0401-6211]: Chain steps items are not allowed or not found'
        errorMessageExtended:
          invalid_items:
            disabled:
              - vg_disabled_item_1
              - vg_disabled_item_2
              - vc_disabled_1
            invalid_item_type:
              allowed_item_type_list:
                - virtual_good
                - bundle
              sku_map:
                gk_steam_enabled_shown_in_store_1: game_key
                unit_enabled_shown_in_store_1: unit
                vc_disabled_1: virtual_currency
                vc_enabled_shown_in_store_1: virtual_currency
            not_found:
              - vg_deleted_item_1
              - vg_deleted_item_2
              - not_existing_sku_404_1
              - not_existing_sku_404_2
          project_id: 0
        statusCode: 422
        transactionId: x-x-xX-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-incorrect-period:
      description: The start date must be earlier than the end date.
      summary: Période de chaîne non valide
      value:
        errorCode: 6204
        errorMessage: >-
          [0401-6204]: Period of a chain is invalid. Please, check the dates in
          your request
        errorMessageExtended:
          chain_id: 1
          invalid_periods:
            - end: '2023-04-15T18:16:00+05:00'
              start: '2025-04-25T18:16:00+05:00'
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-incorrect-steps-order:
      description: >-
        The sequence of offer chain step numbers is incorrect. Step numbers must
        be sequential, without gaps or duplicates.
      summary: Ordre d'étapes non valide
      value:
        errorCode: 6210
        errorMessage: '[0401-6210]: Chain step numbers are invalid'
        errorMessageExtended:
          incorrect_step_numbers:
            duplicates:
              - 2
              - 7
            missing:
              - 3
              - 4
              - 5
              - 6
            out_of_range:
              - 7
              - 8
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-invalid-chain-step-ids:
      description: >-
        Some of the step IDs were not found. Double-check that the specified
        chain step IDs exist. To do this, use the <a
        href="/api/shop-builder/operation/order-user-offer-chain-step-reward#tag/offer-chain-admin/operation/admin-get-offer-chain">Get
        offer chain</a> call.
      summary: ID d'étape de la chaîne introuvable
      value:
        errorCode: 6206
        errorMessage: '[0401-6206]: Chain step IDs not found'
        errorMessageExtended:
          chain_id: 1
          chain_step_id_list:
            - 404000
          project_id: 0
        statusCode: 404
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-invalid-dates:
      description: >-
        The date format must be valid. Use <a
        href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO
        8601</a> format.
      summary: Format de date non valide
      value:
        errorCode: 6204
        errorMessage: >-
          [0401-6204]: Period of a chain is invalid. Please, check the dates in
          your request
        errorMessageExtended:
          chain_id: 1
          invalid_format_dates:
            date_end: '2025-04-25 19:16:00Z'
            date_start: '2023-04-15 17:16:00Z'
          project_id: 0
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-item-limit-exceeded:
      description: >-
        The number of items in one or more offer chain steps exceeds the allowed
        limit. Currently, only one item per step is allowed.
      summary: Limite d'objets dépassée
      value:
        errorCode: 6208
        errorMessage: >-
          [0401-6208]: Chain step item count exceeds the allowed limit for some
          steps
        errorMessageExtended:
          max_items: 1
          project_id: 0
          steps_exceeded_limits:
            - items_count: 2
              step_number: 1
            - items_count: 3
              step_number: 4
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-admin-offer-chain-error-too-many-steps:
      description: >-
        The number of offer chain steps exceeds the allowed limit of 30. Try
        specifying fewer steps.
      summary: Trop d'étapes
      value:
        errorCode: 6203
        errorMessage: '[0401-6203]: Chain step count exceeds the allowed limit'
        errorMessageExtended:
          max_steps: 30
          project_id: 0
          step_count: 31
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-daily-chain-claim-error-invalid-step:
      description: >-
        Ensure the user has not previously claimed the reward and that the
        correct step in the daily reward is selected for claiming.
      summary: Impossible de réclamer la récompense de l'étape
      value:
        errorCode: 6405
        errorMessage: '[0401-6405]: This step is not available to be claimed by the user.'
        errorMessageExtended:
          chain_id: 1
          step_number: 1
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-offer-chain-claim-error-invalid-step:
      description: >-
        The user must claim all previous steps, and the request must use a valid
        call – <a
        href="/api/shop-builder/operation/order-user-offer-chain-step-reward">Create
        order for paid offer chain step</a>, <a
        href="/api/shop-builder/operation/claim-user-offer-chain-step-reward">Claim
        free offer chain step</a> for free ones.


        This error is returned if one or more of the following conditions are
        not met:<ul><li>The offer chain exists, is enabled, and not
        deleted.</li><li>The target step exists, is enabled, and marked as
        free.</li><li>The step has not already been claimed by the user. In case
        of a recurring chain, this check is based on the user progress of the
        current iteration.</li><li>All previous steps in the chain (by step
        number) have been claimed or purchased. In case of a recurring chain,
        this check also considers the user progress of the current
        iteration.</li></ul>
      summary: Impossible de réclamer la récompense de l'étape
      value:
        errorCode: 6306
        errorMessage: '[0401-6306]: This step is not valid to claim by user.'
        errorMessageExtended:
          chain_id: 1
          step_number: 1
        statusCode: 422
        transactionId: x-x-x-x-transactionId-mock-x-x-x
    422-promotion-out-of-range-available-user-limit:
      value:
        errorCode: 4511
        errorMessage: '[0401-4511]: Available promotion limit is out of range.'
        statusCode: 422
        transactionId: transaction id
    422-promotion-without-user-limit:
      value:
        errorCode: 4509
        errorMessage: '[0401-4509]: Promotion does not have configured user limits.'
        statusCode: 422
        transactionId: transaction id
    422-property-sku-is-required:
      value:
        errorCode: 1102
        errorMessage: '[0401-1102]: Unprocessable Entity. The property `sku` is required'
        statusCode: 422
        transactionId: da145238620011eb8e24fe6913ff226a
    422-user_external_id_invalid:
      value:
        errorCode: 1102
        errorMessage: '[0401-1102]: Unprocessable Entity'
        errorMessageExtended:
          - message: Must be at least 1 characters long
            property: user_external_id
          - message: Does not match the regex pattern ^\S+$
            property: user_external_id
        statusCode: 404
        transactionId: transaction id
    Promotions_200-admin-coupons:
      value:
        active_promotions_count: 2
        inactive_promotions_count: 0
        items:
          - bonus:
              - quantity: 1
                sku: com.xsolla.elven_sword_1
              - quantity: 2
                sku: com.xsolla.elven_shield_1
              - quantity: 2
                sku: com.xsolla.elven_gloves_1
            external_id: coupon_44056_1
            is_enabled: true
            name:
              de-DE: Neujahrsbonus
              en-US: New Year Bonus
            promotion_periods:
              - date_from: '2020-04-15T18:16:00+05:00'
                date_until: '2020-04-25T18:16:00+05:00'
              - date_from: '2020-05-15T18:16:00+05:00'
                date_until: '2020-05-25T18:16:00+05:00'
            redeem_code_limit: 1
            redeem_total_limit: null
            redeem_user_limit: null
            total_limit_state: null
          - bonus:
              - quantity: 100
                sku: com.xsolla.diamonds_1
            external_id: summer2021
            is_enabled: true
            name:
              de-DE: Gutscheintitel
              en-US: Coupon name
            promotion_periods:
              - date_from: '2020-04-15T18:16:00+05:00'
                date_until: '2020-04-25T18:16:00+05:00'
            redeem_code_limit: 1
            redeem_total_limit: 100
            redeem_user_limit: null
            total_limit_state:
              available: 50
              reserved: 10
              used: 40
        total_promotions_count: 2
    Promotions_200-admin-promocodes:
      value:
        active_promotions_count: 2
        inactive_promotions_count: 0
        items:
          - bonus:
              - quantity: 1
                sku: com.xsolla.elven_sword_1
              - quantity: 2
                sku: com.xsolla.elven_shield_1
              - quantity: 2
                sku: com.xsolla.elven_gloves_1
            discount: null
            discounted_items: null
            external_id: promocode_100_crystals
            is_enabled: true
            name:
              de-DE: Neujahrsbonus
              en-US: New Year Bonus
            promotion_periods:
              - date_from: '2020-04-15T18:16:00+05:00'
                date_until: '2020-04-25T18:16:00+05:00'
            redeem_code_limit: 1
            redeem_total_limit: null
            redeem_user_limit: null
            total_limit_state: null
          - bonus:
              - quantity: 100
                sku: com.xsolla.diamonds_1
            discount:
              percent: '10.99'
            discounted_items:
              - discount:
                  percent: '10.00'
                sku: com.xsolla.elven_sword_1
            excluded_promotions:
              - 23
              - 45
            external_id: summer2021
            is_enabled: true
            name:
              de-DE: Gutscheintitel
              en-US: Coupon name
            price_conditions:
              - operator: ge
                value: '10.0000'
              - operator: le
                value: '50.0000'
            promotion_periods:
              - date_from: '2020-04-15T18:16:00+05:00'
                date_until: '2020-04-25T18:16:00+05:00'
            redeem_code_limit: null
            redeem_total_limit: 100
            redeem_user_limit: null
            total_limit_state:
              available: 50
              reserved: 10
              used: 40
        total_promotions_count: 2
    Promotions_200-admin-promotions:
      value:
        active_promotions_count: 3
        inactive_promotions_count: 2
        promotions:
          - bonus:
              - item:
                  bundle_type: virtual_currency_package
                  content: []
                  description: null
                  image_url: null
                  name:
                    en: Diamonds pack
                    ru: Пак кристаллов
                  sku: com.xsolla.diamonds_pack_1
                  type: bundle
                quantity: 1
            condition:
              - item:
                  description: null
                  image_url: null
                  name:
                    en: VG name
                    ru: Название VG
                  sku: com.xsolla.virtual_good_bonus_2
                  type: virtual_good
            discount: null
            id: 1
            is_enabled: true
            name:
              en: promotion_1
            promotion_periods:
              - date_from: '2020-01-01T00:00:00+03:00'
                date_until: null
            type: item_bonus
          - bonus: []
            condition:
              - item:
                  description: null
                  image_url: null
                  name:
                    en: VG name
                    ru: Название VG
                  sku: com.xsolla.virtual_good_bonus_2
                  type: virtual_good
            discount:
              percent: '10.99'
            id: 2
            is_enabled: false
            name:
              en: promotion_2
            promotion_periods:
              - date_from: '2020-01-01T00:00:00+03:00'
                date_until: '2030-01-01T00:00:00+03:00'
            type: item_discount
          - bonus:
              - item:
                  description: null
                  image_url: null
                  name:
                    en: VG name
                    ru: Название VG
                  sku: com.xsolla.virtual_good_bonus_2
                  type: virtual_good
                quantity: 2
            condition:
              - item:
                  external_id: coupon_2
                  is_enabled: true
                  name:
                    en: Coupon name
                    ru: Название купона
                  redeem_code_limit: 1
                  redeem_total_limit: null
                  redeem_user_limit: null
            discount: null
            id: 3
            is_enabled: true
            name:
              en: promotion_3
            promotion_periods:
              - date_from: '2020-01-01T00:00:00+03:00'
                date_until: '2030-01-01T00:00:00+03:00'
            type: coupon_bonus
          - bonus:
              - item:
                  description: null
                  image_url: null
                  name:
                    en: VG name
                    ru: Название VG
                  sku: com.xsolla.virtual_good_bonus_2
                  type: virtual_good
                quantity: 2
            condition:
              - item:
                  external_id: coupon_3
                  is_enabled: true
                  name:
                    en: Coupon name
                    ru: Название купона
                  redeem_code_limit: 1
                  redeem_total_limit: null
                  redeem_user_limit: null
            discount:
              percent: '12.99'
            id: 4
            is_enabled: false
            name:
              en: promotion_4
            promotion_periods:
              - date_from: '2018-01-01T00:00:00+03:00'
                date_until: '2031-01-01T00:00:00+03:00'
            type: promocode_bonus_discount
          - bonus:
              - item:
                  description: null
                  image_url: null
                  name:
                    en: VG name
                    ru: Название VG
                  sku: com.xsolla.virtual_good_bonus_4
                  type: virtual_good
                quantity: 1
            condition: null
            discount: null
            id: 5
            is_enabled: true
            name:
              en: promotion_5
            promotion_periods:
              - date_from: '2020-01-01T00:00:00+03:00'
                date_until: null
            type: cart_bonus
        total_promotions_count: 5
    Promotions_200-admin-unique-catalog-offers:
      value:
        active_promotions_count: 2
        inactive_promotions_count: 0
        items:
          - external_id: new_year_bonus
            is_enabled: true
            items:
              - booster
              - booster_mega
            name:
              de-DE: Neujahrsbonus
              en-US: New Year Bonus
            promotion_periods:
              - date_from: '2020-04-15T18:16:00+05:00'
                date_until: '2020-04-25T18:16:00+05:00'
              - date_from: '2020-05-15T18:16:00+05:00'
                date_until: '2020-05-25T18:16:00+05:00'
            redeem_code_limit: 1
            redeem_total_limit: null
            redeem_user_limit: 1
            total_limit_state: null
          - external_id: secret_store
            is_enabled: true
            items:
              - helmet
              - armor
              - sword
            name:
              en-US: Secret store
              ru-RU: Тайный магазин
            promotion_periods:
              - date_from: '2020-04-15T18:16:00+05:00'
                date_until: null
            redeem_code_limit: 1
            redeem_total_limit: 100
            redeem_user_limit: 1
            total_limit_state:
              available: 50
              reserved: 10
              used: 40
        total_promotions_count: 2
    Promotions_200-coupon-code-list:
      value:
        codes:
          - code: CODE001
          - code: CODE002
          - code: CODE003
          - code: CODE004
          - code: CODE005
        total_count: 5
    Promotions_200-get-coupon-rewards:
      value:
        bonus:
          - item:
              description: Game description
              image_url: >-
                https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
              name:
                en: Game name
              sku: com.xsolla.game_1
              type: unit
              unit_items:
                - drm_name: Steam
                  drm_sku: steam_key_01
                  is_free: false
                  name: Game name
                  sku: com.xsolla.game_key_01
                  type: game_key
                - drm_name: Origin
                  drm_sku: origin_key_02
                  name: Game name
                  sku: game_key_02
                  type: game_key
            quantity: 1
          - item:
              description: Game description
              image_url: >-
                https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
              name:
                en: Game name
              sku: com.xsolla.game_2
              type: unit
              unit_items:
                - drm_name: Steam
                  drm_sku: steam_key_01
                  name: Game name
                  sku: com.xsolla.game_key_01
                  type: game_key
            quantity: 2
        discount:
          percent: '10.00'
        is_selectable: true
    Promotions_200-get-promocode-rewards:
      value:
        bonus:
          - item:
              description: Game description
              image_url: >-
                https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
              name: Game name
              sku: com.xsolla.game_1
              type: unit
              unit_items:
                - drm_name: Steam
                  drm_sku: steam_key_01
                  is_free: false
                  name: Game name
                  sku: com.xsolla.game_key_01
                  type: game_key
                - drm_name: Origin
                  drm_sku: origin_key_02
                  name: Game name
                  sku: com.xsolla.game_key_02
                  type: game_key
            quantity: 1
          - item:
              description: Game description
              image_url: >-
                https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
              name: Game name
              sku: com.xsolla.game_2
              type: unit
              unit_items:
                - drm_name: Steam
                  drm_sku: steam_key_01
                  name: Game name
                  sku: com.xsolla.game_key_01
                  type: game_key
            quantity: 2
        discount:
          percent: '10.00'
        discounted_items:
          - discount:
              percent: '10.00'
            sku: com.xsolla.elven_sword_1
        is_selectable: true
    Promotions_422-invalid-coupon:
      value:
        errorCode: 1102
        errorMessage: >-
          [0401-1102]: Unprocessable Entity. The property `external_id` is
          required
        statusCode: 422
    code-limit:
      value:
        has_more: false
        items:
          - code: WINTER2023
            per_code:
              available: 7
              reserved: 1
              total: 10
              used: 2
          - code: SUMMER2023
            per_code:
              available: 0
              reserved: 2
              total: 5
              used: 3
        promotion_id: 1
        total_items_count: 2
  parameters:
    code-path-param:
      description: Code unique sensible à la casse. Comprend des lettres et des chiffres.
      in: path
      name: code
      required: true
      schema:
        example: WINTER2021
        maxLength: 128
        minLength: 1
        type: string
    codes-query-param:
      description: >-
        Codes uniques sensibles à la casse. Ne comprennent que des lettres et
        des chiffres.
      in: query
      name: codes[]
      schema:
        items:
          maxLength: 128
          minLength: 1
          type: string
        type: array
    coupon_code-path-param:
      description: Code unique sensible à la casse. Comprend des lettres et des chiffres.
      in: path
      name: coupon_code
      required: true
      schema:
        example: WINTER2021
        maxLength: 128
        minLength: 1
        type: string
    daily_chain_id-path-param:
      description: ID de récompense quotidienne.
      in: path
      name: daily_chain_id
      required: true
      schema:
        example: 101
        type: integer
    daily_chain_step_number-path-param:
      description: Numéro d'étape de récompense quotidienne.
      in: path
      name: step_number
      required: true
      schema:
        example: 1
        type: integer
    enabled-query-param:
      description: Filtrer les éléments en fonction de l'indicateur `is_enabled`.
      in: query
      name: enabled
      required: false
      schema:
        type: integer
    external_id-promotion-path-param:
      description: >-
        External ID de la promotion. Identifiant unique de la promotion au sein
        du projet.
      in: path
      name: external_id
      required: true
      schema:
        example: coupon_44056_1
        type: integer
    is_enabled-query-param:
      description: Filtrer les éléments en fonction de l'indicateur `is_enabled`.
      in: query
      name: is_enabled
      required: false
      schema:
        type: integer
    is_expired-daily-chain-query-param:
      description: >-
        Filtrez les récompenses quotidiennes pour n'afficher que celles qui sont
        expirées.
      in: query
      name: is_expired
      required: false
      schema:
        type: integer
    item_sku-path-param:
      description: UGS de l'objet.
      in: path
      name: item_sku
      required: true
      schema:
        example: booster_mega_1
        type: string
    limit-query-param:
      description: Nombre maximal d'éléments sur une page.
      example: 50
      in: query
      name: limit
      required: false
      schema:
        example: 50
        minimum: 1
        type: integer
    offer_chain_id-path-param:
      description: ID de la chaîne d'offres.
      in: path
      name: offer_chain_id
      required: true
      schema:
        example: 101
        type: integer
    offer_chain_step_number-path-param:
      description: Numéro de l'étape de la chaîne d'offres.
      in: path
      name: step_number
      required: true
      schema:
        example: 1
        type: integer
    offset-query-param:
      description: >-
        Numéro de l'élément à partir duquel la liste est générée (le décompte
        commence à 0).
      example: 0
      in: query
      name: offset
      required: false
      schema:
        example: 0
        minimum: 0
        type: integer
    personalized-catalog-rule_id-path-param:
      description: ID de règle.
      in: path
      name: rule_id
      required: true
      schema:
        example: 1
        type: number
    project_id-path-param:
      description: >-
        ID de projet. Ce paramètre se trouve dans le [Compte
        éditeur](https://publisher.xsolla.com/) à côté du nom du projet.
      in: path
      name: project_id
      required: true
      schema:
        example: 44056
        type: integer
    promocode_code-path-param:
      description: Code unique sensible à la casse. Comprend des lettres et des chiffres.
      in: path
      name: promocode_code
      required: true
      schema:
        example: SO6rew99j9
        maxLength: 128
        minLength: 1
        type: string
    promotion_id-path-param:
      description: >-
        ID de la promotion. Identifiant unique de la promotion au sein du
        projet.
      in: path
      name: promotion_id
      required: true
      schema:
        example: 111425
        type: integer
    reward_chain_id-path-param:
      description: ID de la chaîne de récompenses.
      in: path
      name: reward_chain_id
      required: true
      schema:
        example: 101
        type: integer
    reward_chain_step_id-path-param:
      description: ID de l'étape de la chaîne de récompenses.
      in: path
      name: step_id
      required: true
      schema:
        example: 120
        type: integer
    type-daily-chain-query-param:
      description: >-
        Filtre les récompenses quotidiennes pour ne renvoyer que le type
        spécifié.
      in: query
      name: type
      required: false
      schema:
        enum:
          - calendar_hard
          - rolling_skippable
          - rolling_unskippable
        type: string
    user_external_id-query-param:
      description: External ID de l'utilisateur
      in: query
      name: user_external_id
      required: true
      schema:
        example: d342dad2-9d59-11e9-a384-42010aa8003f
        type: string
    value_point_sku-path-param:
      description: UGS du point de valeur.
      in: path
      name: value_point_sku
      required: true
      schema:
        example: value_point_3
        type: string
  requestBodies:
    Promotions_cancel-promo-code-model:
      content:
        application/json:
          schema:
            properties:
              cart:
                nullable: true
                properties:
                  id:
                    default: current
                    description: ID de panier.
                    type: string
                required:
                  - id
                type: object
            type: object
    Promotions_coupon-create:
      content:
        application/json:
          examples:
            personalized:
              value:
                attribute_conditions:
                  - attribute: account_status
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: golden
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_2
                external_id: coupon_external_id
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            simple:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_1
                external_id: coupon_external_id
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                  - date_from: '2020-05-15T18:16:00+05:00'
                    date_until: '2020-05-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
          schema:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/promotion_user-attribute_conditions_model-post
              bonus:
                $ref: '#/components/schemas/Promotions_coupon_bonus'
              external_id:
                $ref: '#/components/schemas/Promotions_coupon-external_id'
              name:
                $ref: '#/components/schemas/Promotions_coupon_name'
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
              redeem_code_limit:
                $ref: '#/components/schemas/Promotions_redeem_code_limit'
              redeem_total_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
              redeem_user_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
            required:
              - external_id
              - name
            type: object
    Promotions_coupon-update:
      content:
        application/json:
          examples:
            personalized:
              value:
                attribute_conditions:
                  - attribute: account_status
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: golden
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_2
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            simple:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_1
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                  - date_from: '2020-05-15T18:16:00+05:00'
                    date_until: '2020-05-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
          schema:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/promotion_user-attribute_conditions_model-post
              bonus:
                $ref: '#/components/schemas/Promotions_coupon_bonus'
              name:
                $ref: '#/components/schemas/Promotions_coupon_name'
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
              redeem_code_limit:
                $ref: '#/components/schemas/Promotions_redeem_code_limit'
              redeem_total_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
              redeem_user_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
            required:
              - name
            type: object
    Promotions_create-coupon-promocode-code:
      content:
        application/json:
          schema:
            properties:
              coupon_code:
                $ref: '#/components/schemas/Promotions_coupon_code'
            type: object
    Promotions_create-update-bonus-promotion:
      content:
        application/json:
          examples:
            personalized:
              value:
                attribute_conditions:
                  - attribute: account_status
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: golden
                bonus:
                  - quantity: 50000
                    sku: com.xsolla.mp_credits
                condition:
                  - sku: com.xsolla.year_1_season_pass
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
            simple:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_1
                  - quantity: 2
                    sku: com.xsolla.elven_shield_1
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_1
                condition:
                  - sku: com.xsolla.elven_boots_1
                  - sku: com.xsolla.elven_knife_1
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                  - date_from: '2020-05-15T18:16:00+05:00'
                    date_until: '2020-05-25T18:16:00+05:00'
            with excluded promotions:
              value:
                bonus:
                  - quantity: 50000
                    sku: com.xsolla.mp_credits
                condition:
                  - sku: com.xsolla.year_1_season_pass
                excluded_promotions:
                  - 12
                  - 789
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
            with price conditions:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_2
                  - quantity: 2
                    sku: com.xsolla.elven_shield_2
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_2
                condition:
                  - sku: com.xsolla.elven_boots_2
                  - sku: com.xsolla.elven_knife_2
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                price_conditions:
                  - operator: gt
                    value: '10.0000'
                  - operator: lt
                    value: '20.0000'
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
          schema:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/promotion_user-attribute_conditions_model-post
              bonus:
                items:
                  description: >-
                    Liste des objets qui seront ajoutés à l'achat de
                    l'utilisateur en tant que bonus.
                  properties:
                    quantity:
                      default: 1
                      description: Quantité de l'objet.
                      type: number
                    sku:
                      default: elven_shield
                      description: UGS de l'objet.
                      type: string
                  type: object
                nullable: true
                type: array
              condition:
                description: >-
                  Ensemble d'objets devant être inclus dans l'achat pour
                  l'application d'une promotion. Si ce paramètre est défini sur
                  `null`, la promotion s'applique à tous les achats effectués
                  dans au sein du projet.
                items:
                  properties:
                    sku:
                      default: elven_sword
                      description: UGS de l'objet.
                      type: string
                  type: object
                nullable: true
                type: array
              excluded_promotions:
                $ref: '#/components/schemas/excluded_promotions'
              id:
                description: >-
                  ID de la promotion. Identifiant unique de la promotion au sein
                  du projet.
                type: integer
              is_enabled:
                $ref: '#/components/schemas/Promotions_is_enabled'
              limits:
                $ref: '#/components/schemas/Promotions_promotion_limits'
              name:
                additionalProperties:
                  type: string
                description: >-
                  Nom de la promotion. Doit comprendre des paires clé/valeur, où
                  la clé est une région au format "^[a-z]{2}-[A-Z]{2}$", la
                  valeur est une chaîne.
                example:
                  de-DE: Sommersaison Bonus
                  en-US: Summer season bonus
                type: object
              price_conditions:
                $ref: '#/components/schemas/price_conditions_bonus'
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
            required:
              - condition
              - bonus
              - name
            type: object
    Promotions_create-update-item-promotion:
      content:
        application/json:
          examples:
            personalized:
              value:
                attribute_conditions:
                  - attribute: race
                    operator: eq
                    type: string
                    value: ork
                  - attribute: level
                    can_be_missing: true
                    operator: eq
                    type: number
                    value: '10'
                discount:
                  percent: '24.00'
                is_enabled: true
                items: []
                name:
                  en-US: Ork set discount
                  ru-RU: Скидка на набор для орка
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
            simple:
              value:
                discount:
                  percent: '10.00'
                is_enabled: true
                items:
                  - sku: com.xsolla.elven_sword_1
                  - sku: com.xsolla.elven_helmet_1
                  - sku: com.xsolla.elven_armor_1
                name:
                  en-US: Promotion
                  ru-RU: Акция
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                  - date_from: '2020-05-16T18:16:00+05:00'
                    date_until: '2020-05-25T18:16:00+05:00'
            with excluded promotions:
              value:
                discount:
                  percent: '24.00'
                excluded_promotions:
                  - 12
                  - 789
                is_enabled: true
                items: []
                name:
                  en-US: Ork set discount
                  ru-RU: Скидка на набор для орка
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
            with price condition:
              value:
                discount:
                  percent: '24.00'
                items: []
                name:
                  en-US: Ork set discount
                  ru-RU: Скидка на набор для орка
                price_conditions:
                  - operator: ge
                    value: '10.5000'
                  - operator: lt
                    value: '20.5000'
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
          schema:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/promotion_user-attribute_conditions_model-post
              discount:
                properties:
                  percent:
                    description: >-
                      Pourcentage de la remise.

                      Le prix de l'objet sera réduit d'une valeur calculée à
                      l'aide de ce pourcentage et arrondie à 2 décimales.
                    example: 10
                    type: string
                required:
                  - percent
                type: object
              excluded_promotions:
                $ref: '#/components/schemas/excluded_promotions'
              is_enabled:
                $ref: '#/components/schemas/Promotions_is_enabled'
              items:
                items:
                  description: Liste des objets qui seront concernés par la remise.
                  properties:
                    sku:
                      default: elven_sword
                      description: UGS de l'objet.
                      type: string
                  required:
                    - sku
                  type: object
                type: array
              limits:
                $ref: '#/components/schemas/Promotions_promotion_limits'
              name:
                additionalProperties:
                  type: string
                description: >-
                  Nom de la promotion. Doit comprendre des paires clé/valeur,

                  où la clé est une région au format "^[a-z]{2}-[A-Z]{2}$", la
                  valeur est une chaîne.
                example:
                  en-US: Promotion
                  ru-RU: Акция
                type: object
              price_conditions:
                $ref: '#/components/schemas/price_conditions_discount'
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
            required:
              - items
              - discount
              - name
            type: object
      description: Objet contenant des données de la promotion.
      required: true
    Promotions_promocode-create:
      content:
        application/json:
          examples:
            personalized:
              value:
                attribute_conditions:
                  - attribute: account_status
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: golden
                discount:
                  percent: '10.10'
                external_id: coupon_external_id
                name:
                  de-DE: Neujahrsrabatt
                  en-US: New Year Discount
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            simple bonus:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_1
                  - quantity: 2
                    sku: com.xsolla.elven_shield_1
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_1
                external_id: promo_code_external_id
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                  - date_from: '2020-05-15T18:16:00+05:00'
                    date_until: '2020-05-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            simple discount:
              value:
                discount:
                  percent: '10.10'
                external_id: promo_code_external_id
                name:
                  de-DE: Neujahrsrabatt
                  en-US: New Year Discount
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            with excluded promotions:
              value:
                discount:
                  percent: '10.10'
                excluded_promotions:
                  - 12
                  - 789
                external_id: coupon_external_id
                name:
                  de-DE: Neujahrsrabatt
                  en-US: New Year Discount
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            with item price conditions:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_3
                  - quantity: 2
                    sku: com.xsolla.elven_shield_3
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_3
                discount:
                  percent: '10.10'
                external_id: promo_code_external_id
                item_price_conditions:
                  - operator: ge
                    value: '10.5000'
                  - operator: lt
                    value: '50.0000'
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            with price conditions:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_2
                  - quantity: 2
                    sku: com.xsolla.elven_shield_2
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_2
                external_id: promo_code_external_id
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                price_conditions:
                  - operator: ge
                    value: '10.5000'
                  - operator: lt
                    value: '50.0000'
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
          schema:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/promotion_user-attribute_conditions_model-post
              bonus:
                $ref: '#/components/schemas/Promotions_coupon_bonus'
              discount:
                example:
                  percent: '10.10'
                nullable: true
                properties:
                  percent:
                    $ref: '#/components/schemas/Promotions_promotion_discount_percent'
                type: object
              discounted_items:
                $ref: '#/components/schemas/Promotions_discounted_items'
              excluded_promotions:
                $ref: '#/components/schemas/excluded_promotions'
              external_id:
                $ref: '#/components/schemas/Promotions_coupon-external_id'
              item_price_conditions:
                $ref: '#/components/schemas/item_price_conditions_promocode'
              name:
                $ref: '#/components/schemas/Promotions_coupon_name'
              price_conditions:
                $ref: '#/components/schemas/price_conditions_promocode'
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
              redeem_code_limit:
                $ref: '#/components/schemas/Promotions_redeem_code_limit'
              redeem_total_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
              redeem_user_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
            required:
              - external_id
              - name
            type: object
    Promotions_promocode-update:
      content:
        application/json:
          examples:
            personalized:
              value:
                attribute_conditions:
                  - attribute: account_status
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: golden
                discount:
                  percent: '10.10'
                name:
                  de-DE: Neujahrsrabatt
                  en-US: New Year Discount
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            simple bonus:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_1
                  - quantity: 2
                    sku: com.xsolla.elven_shield_1
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_1
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                  - date_from: '2020-05-15T18:16:00+05:00'
                    date_until: '2020-05-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            simple discount:
              value:
                discount:
                  percent: '10.10'
                name:
                  de-DE: Neujahrsrabatt
                  en-US: New Year Discount
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            with excluded promotions:
              value:
                discount:
                  percent: '10.10'
                excluded_promotions:
                  - 12
                  - 789
                name:
                  de-DE: Neujahrsrabatt
                  en-US: New Year Discount
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            with item price conditions:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_3
                  - quantity: 2
                    sku: com.xsolla.elven_shield_3
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_3
                discount:
                  percent: '10.10'
                item_price_conditions:
                  - operator: gt
                    value: '10.5000'
                  - operator: lt
                    value: '50.0000'
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            with price conditions:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_2
                  - quantity: 2
                    sku: com.xsolla.elven_shield_2
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_2
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                price_conditions:
                  - operator: gt
                    value: '10.5000'
                  - operator: lt
                    value: '50.0000'
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
          schema:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/promotion_user-attribute_conditions_model-post
              bonus:
                $ref: '#/components/schemas/Promotions_coupon_bonus'
              discount:
                example:
                  percent: '10.10'
                nullable: true
                properties:
                  percent:
                    $ref: '#/components/schemas/Promotions_promotion_discount_percent'
                type: object
              discounted_items:
                $ref: '#/components/schemas/Promotions_discounted_items'
              excluded_promotions:
                $ref: '#/components/schemas/excluded_promotions'
              item_price_conditions:
                $ref: '#/components/schemas/item_price_conditions_promocode'
              name:
                $ref: '#/components/schemas/Promotions_coupon_name'
              price_conditions:
                $ref: '#/components/schemas/price_conditions_promocode'
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
              redeem_code_limit:
                $ref: '#/components/schemas/Promotions_redeem_code_limit'
              redeem_total_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
              redeem_user_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
            required:
              - name
            type: object
    Promotions_redeem-coupon-model:
      content:
        application/json:
          schema:
            properties:
              coupon_code:
                default: WINTER2021
                description: Code unique de coupon. Comprend des lettres et des chiffres.
                example: WINTER2021
                maxLength: 128
                minLength: 1
                type: string
              selected_unit_items:
                $ref: '#/components/schemas/Promotions_selected_unit_items'
            type: object
    Promotions_redeem-promo-code-model:
      content:
        application/json:
          schema:
            properties:
              cart:
                nullable: true
                properties:
                  id:
                    default: current
                    description: ID de panier.
                    type: string
                required:
                  - id
                type: object
              coupon_code:
                default: SUMMER2021
                description: >-
                  Code unique du code promo. Comprend des lettres et des
                  chiffres.
                example: SUMMER2021
                maxLength: 128
                minLength: 1
                type: string
              selected_unit_items:
                $ref: '#/components/schemas/Promotions_selected_unit_items'
            type: object
    Promotions_unique_catalog_offer-create:
      content:
        application/json:
          examples:
            limited:
              value:
                date_end: '2020-04-25T18:16:00+05:00'
                date_start: '2020-04-15T18:16:00+05:00'
                external_id: offer_external_id
                items:
                  - elven_sword
                  - elven_boots
                name:
                  de-DE: Neujahrsangebot
                  en-US: New Year Offer
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            simple:
              value:
                date_end: '2020-04-25T18:16:00+05:00'
                date_start: '2020-04-15T18:16:00+05:00'
                external_id: offer_external_id
                items:
                  - elven_sword
                  - elven_boots
                name:
                  de-DE: Neujahrsangebot
                  en-US: New Year Offer
          schema:
            properties:
              date_end:
                $ref: '#/components/schemas/Promotions_coupon_date_end'
              date_start:
                $ref: '#/components/schemas/Promotions_coupon_date_start'
              external_id:
                $ref: '#/components/schemas/Promotions_coupon-external_id'
              items:
                $ref: '#/components/schemas/Promotions_unique_catalog_offer_items'
                type: array
              name:
                $ref: '#/components/schemas/Promotions_coupon_name'
              redeem_code_limit:
                $ref: '#/components/schemas/Promotions_redeem_code_limit'
              redeem_total_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
              redeem_user_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
            required:
              - external_id
              - name
            type: object
    Promotions_unique_catalog_offer-update:
      content:
        application/json:
          examples:
            limited:
              value:
                items:
                  - elven_sword
                  - elven_boots
                name:
                  de-DE: Neujahrsangebot
                  en-US: New Year Offer
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                redeem_code_limit: 1
                redeem_total_limit: 100
                redeem_user_limit: 1
            simple:
              value:
                items:
                  - elven_sword
                  - elven_boots
                name:
                  de-DE: Neujahrsangebot
                  en-US: New Year Offer
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
                  - date_from: '2020-05-15T18:16:00+05:00'
                    date_until: '2020-05-25T18:16:00+05:00'
          schema:
            properties:
              items:
                $ref: '#/components/schemas/Promotions_unique_catalog_offer_items'
              name:
                $ref: '#/components/schemas/Promotions_coupon_name'
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
              redeem_code_limit:
                $ref: '#/components/schemas/Promotions_redeem_code_limit'
              redeem_total_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
              redeem_user_limit:
                $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
            required:
              - name
            type: object
    create-daily-chain:
      content:
        application/json:
          examples:
            calendar_hard:
              summary: Récompense quotidienne de type `calendar_hard`
              value:
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  en: New daily reward short description
                is_enabled: true
                name:
                  en: New daily reward
                  ru: Новая ежедневная награда
                order: 4
                steps:
                  - items:
                      - quantity: 2
                        sku: vg_enabled_shown_in_store_1
                    step_number: 1
                  - items:
                      - quantity: 2
                        sku: >-
                          bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg
                    step_number: 2
                  - items:
                      - quantity: 2
                        sku: >-
                          vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1
                    step_number: 3
                  - items:
                      - quantity: 1
                        sku: vg_enabled_shown_in_store_1
                    step_number: 4
                  - items:
                      - quantity: 1
                        sku: >-
                          bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg
                    step_number: 5
                  - items:
                      - quantity: 1
                        sku: >-
                          vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1
                    step_number: 6
                type: calendar_hard
            rolling_skippable:
              summary: Récompense quotidienne de type `rolling_skippable`
              value:
                date_end: '2023-05-31T10:00:00+05:00'
                date_start: '2023-05-01T10:00:00+05:00'
                description:
                  en: New skippable login reward short description
                is_enabled: true
                is_recurrent: true
                name:
                  en: New skippable login reward
                order: 1
                steps:
                  - items:
                      - quantity: 1
                        sku: monday_reward_item_one
                    step_number: 1
                  - items:
                      - quantity: 1
                        sku: tuesday_reward_item_two
                    step_number: 2
                  - items:
                      - quantity: 1
                        sku: wednesday_reward_item_three
                    step_number: 3
                  - items:
                      - quantity: 1
                        sku: thursday_reward_item_four
                    step_number: 4
                  - items:
                      - quantity: 1
                        sku: friday_reward_item_five
                    step_number: 5
                  - items:
                      - quantity: 1
                        sku: saturday_reward_item_six
                    step_number: 6
                  - items:
                      - quantity: 1
                        sku: sunday_reward_item_seven
                    step_number: 7
                type: rolling_skippable
            rolling_unskippable:
              summary: Récompense quotidienne de type `rolling_unskippable`
              value:
                date_end: '2023-06-30T10:00:00+05:00'
                date_start: '2023-06-01T10:00:00+05:00'
                description:
                  en: New unskippable login reward short description
                is_enabled: true
                is_recurrent: false
                name:
                  en: New unskippable login reward
                order: 2
                steps:
                  - items:
                      - quantity: 1
                        sku: monday_reward_item_one
                    step_number: 1
                  - items:
                      - quantity: 1
                        sku: tuesday_reward_item_two
                    step_number: 2
                  - items:
                      - quantity: 1
                        sku: wednesday_reward_item_three
                    step_number: 3
                  - items:
                      - quantity: 1
                        sku: thursday_reward_item_four
                    step_number: 4
                  - items:
                      - quantity: 1
                        sku: friday_reward_item_five
                    step_number: 5
                type: rolling_unskippable
          schema:
            oneOf:
              - $ref: '#/components/schemas/create-calendar-hard-daily-chain-model'
              - $ref: >-
                  #/components/schemas/create-rolling-skippable-daily-chain-model
              - $ref: >-
                  #/components/schemas/create-rolling-unskippable-daily-chain-model
    create-offer-chain:
      content:
        application/json:
          examples:
            default:
              summary: Exemple de chaîne d'offres classique
              value:
                date_end: null
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  de: Eine kurze Beschreibung einer regulären Angebotskette
                  en: A short description of a regular offer chain
                  fr: Une brève description d'une chaîne d'offres régulière
                  it: Una breve descrizione di una catena di offerte regolare
                  ru: Краткое описание обычной цепочки предложений
                is_always_visible: true
                is_enabled: true
                name:
                  de: Neue Angebotskette
                  en: New offer chain
                  fr: Nouvelle chaîne d'offres
                  it: Nuova catena di offerte
                  ru: Новая цепочка предложений
                order: 4
                recurrent_schedule: null
                steps:
                  - is_free: false
                    items:
                      - quantity: 2
                        sku: chain_step_1_paid_bundle_sku
                    step_number: 1
                  - is_free: true
                    items:
                      - quantity: 1
                        sku: chain_step_2_free_virtual_good_sku
                    step_number: 2
                  - is_free: false
                    items:
                      - quantity: 5
                        sku: chain_step_3_paid_virtual_currency_package_sku
                    step_number: 3
                  - is_free: true
                    items:
                      - quantity: 1
                        sku: chain_step_4_free_bundle_sku
                    step_number: 4
            personalized-default:
              summary: Exemple de chaîne d'offres par défaut personnalisée
              value:
                date_end: null
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  de: >-
                    Standard-personalisierte Angebotskette für Benutzer, die die
                    Bedingungen anderer personalisierter Ketten nicht erfüllen
                  en: >-
                    Default personalized offer chain for users that do not meet
                    the conditions of other personalized chains
                  fr: >-
                    Chaîne d'offres personnalisée par défaut pour les
                    utilisateurs qui ne répondent pas aux conditions des autres
                    chaînes personnalisées
                  it: >-
                    Catena di offerte personalizzata predefinita per gli utenti
                    che non soddisfano le condizioni di altre catene
                    personalizzate
                  ru: >-
                    Персонализированная цепочка по умолчанию для пользователей,
                    не подходящих под условия других персонализированных цепочек
                is_always_visible: false
                is_enabled: true
                name:
                  de: Neue personalisierte Standard-Angebotskette
                  en: New personalized default offer chain
                  fr: Nouvelle chaîne d'offres personnalisée par défaut
                  it: Nuova catena di offerte personalizzata predefinita
                  ru: Новая персонализированная цепочка предложений по умолчанию
                order: 4
                recurrent_schedule: null
                steps:
                  - is_free: false
                    items:
                      - quantity: 1
                        sku: chain_x_step_1_item_default
                    step_number: 1
                  - is_free: false
                    items:
                      - quantity: 2
                        sku: chain_x_step_2_item_default
                    step_number: 2
                  - is_free: true
                    items:
                      - quantity: 1
                        sku: chain_x_step_3_free_item_default
                    step_number: 3
            personalized-with-conditions:
              summary: >-
                Exemple de chaîne d'offres personnalisée selon les attributs
                utilisateur
              value:
                attribute_conditions:
                  - attribute: race
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: elf
                  - attribute: level
                    can_be_missing: false
                    operator: ge
                    type: number
                    value: '10'
                  - attribute: 10_level_up_date
                    can_be_missing: false
                    operator: le
                    type: date
                    value: '2026-01-01T00:00:00'
                date_end: null
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  de: >-
                    Personalisierte Angebotskette mit
                    Benutzerattributbedingungen - für Elfen der Stufe 10 und
                    höher, die Stufe 10 spätestens am 2026-01-01 00:00:00
                    erreicht haben, einschließlich
                  en: >-
                    Personalized offer chain with user attribute conditions -
                    for level 10 and above elves who reached level 10 no later
                    than 2026-01-01 00:00:00, inclusive
                  fr: >-
                    Chaîne d'offres personnalisée avec des conditions d'attribut
                    utilisateur - pour les elfes de niveau 10 et plus qui ont
                    atteint le niveau 10 au plus tard le 2026-01-01 00:00:00,
                    inclus
                  it: >-
                    Catena di offerte personalizzata con condizioni di attributo
                    utente - per elfi di livello 10 e superiore che hanno
                    raggiunto il livello 10 non più tardi del 2026-01-01
                    00:00:00, inclusi
                  ru: >-
                    Персонализированная цепочка предложений с условиями по
                    атрибутам пользователя - для эльфов уровня 10 и выше,
                    достигших 10 уровня не позднее 2026-01-01 00:00:00
                    включительно
                is_always_visible: false
                is_enabled: true
                name:
                  de: Neue personalisierte Angebotskette
                  en: New personalized offer chain
                  fr: Nouvelle chaîne d'offres personnalisée
                  it: Nuova catena di offerte personalizzata
                  ru: Новая персонализированная цепочка предложений
                order: 4
                recurrent_schedule: null
                steps:
                  - is_free: false
                    items:
                      - quantity: 1
                        sku: chain_x_step_1_item_for_elves_level_10_and_above
                    step_number: 1
                  - is_free: false
                    items:
                      - quantity: 2
                        sku: chain_x_step_2_item_for_elves_level_10_and_above
                    step_number: 2
                  - is_free: true
                    items:
                      - quantity: 1
                        sku: chain_x_step_3_free_item_for_elves_level_10_and_above
                    step_number: 3
            recurrent:
              summary: Exemple de chaîne d'offres récurrente
              value:
                date_end: '2025-04-25T18:16:00+05:00'
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  de: >-
                    Eine wiederkehrende Angebotskette, die wöchentlich mittwochs
                    um 07:00 Uhr GMT+3 zurückgesetzt wird
                  en: >-
                    A recurring offer chain that resets weekly on Wednesdays at
                    07:00 AM GMT+3
                  fr: >-
                    Une chaîne d'offres récurrente qui se réinitialise chaque
                    semaine le mercredi à 07h00 GMT+3
                  it: >-
                    Una catena di offerte ricorrente che si resetta
                    settimanalmente il mercoledì alle 07:00 GMT+3
                  ru: >-
                    Рекуррентная цепочка предложений, которая сбрасывается
                    еженедельно по средам в 07:00 по GMT+3
                is_always_visible: true
                is_enabled: false
                name:
                  de: Neue wiederkehrende Angebotskette
                  en: New recurrent offer chain
                  fr: Nouvelle chaîne d'offres récurrente
                  it: Nuova catena di offerte ricorrente
                  ru: Новая рекуррентная цепочка предложений
                order: 1
                recurrent_schedule:
                  day_of_week: 3
                  interval_type: weekly
                  time: 07:00:00+03:00
                steps:
                  - is_free: false
                    items:
                      - quantity: 2
                        sku: chain_step_1_paid_bundle_sku
                    step_number: 1
                  - is_free: true
                    items:
                      - quantity: 3
                        sku: chain_step_2_free_virtual_good_sku
                    step_number: 2
          schema:
            $ref: '#/components/schemas/create-offer-chain-model'
    create-reward-chain:
      content:
        application/json:
          examples:
            clan:
              summary: Exemple de chaîne de récompenses de clan
              value:
                clan_type: guild
                description:
                  en: Clan reward chain description.
                image_url: >-
                  https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                is_enabled: true
                long_description:
                  en: Clan reward chain long description.
                name:
                  en: Clan reward chain
                order: 1
                periods:
                  - date_from: '2026-01-01T01:00:00+05:00'
                    date_until: '2026-01-31T23:59:59+05:00'
                  - date_from: '2026-02-01T01:00:00+05:00'
                    date_until: '2026-02-28T23:59:59+05:00'
                popup_header:
                  en: How to unlock rewards
                popup_image_url: >-
                  https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                popup_instruction:
                  en: >-
                    You must be a clan member to get clan rewards. You join a
                    clan when a clan member invites you to the clan, and you
                    accept the invite. You can also create your own clan.
                recurrent_schedule:
                  day_of_week: 1
                  interval_type: weekly
                  time: 01:00:00+08:00
                steps:
                  - image_url: >-
                      https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                    name:
                      en: First step of the reward chain
                    price:
                      amount: 10
                    reward:
                      - quantity: 5
                        sku: com.xsolla.item_1
                      - quantity: 1
                        sku: com.xsolla.item_2
                  - image_url: >-
                      https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                    name:
                      en: Second step of the reward chain
                    price:
                      amount: 15
                    reward:
                      - quantity: 5
                        sku: com.xsolla.item_3
                      - quantity: 1
                        sku: com.xsolla.item_4
                value_point:
                  sku: com.xsolla.clan_value_point_1
            default:
              summary: Exemple de chaîne de récompenses
              value:
                attribute_conditions:
                  - attribute: race
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: ork
                description:
                  en: Reward chain description.
                image_url: >-
                  https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                is_always_visible: true
                is_enabled: true
                is_reset_after_end: true
                long_description:
                  en: Reward chain long description.
                name:
                  en: Reward chain
                order: 1
                periods:
                  - date_from: '2026-01-01T01:00:00+05:00'
                    date_until: '2026-01-31T23:59:59+05:00'
                  - date_from: '2026-02-01T01:00:00+05:00'
                    date_until: '2026-02-28T23:59:59+05:00'
                recurrent_schedule:
                  day_of_week: 1
                  interval_type: weekly
                  time: 01:00:00+08:00
                steps:
                  - image_url: >-
                      https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                    name:
                      en: First step of the reward chain
                    price:
                      amount: 10
                    reward:
                      - quantity: 5
                        sku: com.xsolla.item_1
                      - quantity: 1
                        sku: com.xsolla.item_2
                  - image_url: >-
                      https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                    name:
                      en: Second step of the reward chain
                    price:
                      amount: 15
                    reward:
                      - quantity: 5
                        sku: com.xsolla.item_3
                      - quantity: 1
                        sku: com.xsolla.item_4
                value_point:
                  sku: com.xsolla.value_point_1
          schema:
            oneOf:
              - $ref: '#/components/schemas/create-reward-chain-model'
              - $ref: '#/components/schemas/create-clan-reward-chain-model'
    create-upsell:
      content:
        application/json:
          examples:
            fixed_list:
              summary: Exemple de vente incitative avec une liste fixe d'objets
              value:
                is_enabled: true
                items:
                  - game_sku_1
                  - game_sku_2
                  - game_sku_3
                type: fixed_list
            special_type_most_sellable:
              summary: "Exemple de vente incitative avec les objets les plus vendus au cours des 30\_derniers jours"
              value:
                is_enabled: true
                items: []
                type: most_sellable
            special_type_promotions:
              summary: >-
                Exemple de vente incitative avec des objets en promotion
                uniquement
              value:
                is_enabled: true
                items: []
                type: only_promotions
          schema:
            oneOf:
              - $ref: '#/components/schemas/Upsell-model'
              - $ref: '#/components/schemas/Upsell-model-not-fixed-list'
    create-value-point:
      content:
        application/json:
          examples:
            clan:
              summary: Point de valeur pour la chaîne de récompenses de clans
              value:
                description:
                  en: Value points for clan reward system.
                image_url: >-
                  https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                is_clan: true
                is_enabled: true
                long_description:
                  en: >-
                    Value points given to clans to get new rewards in a reward
                    chain.
                media_list: []
                name:
                  en: Clan Reward VP 1
                order: 3
                sku: com.xsolla.clan_value_point_1
            default:
              summary: Point de valeur pour la chaîne de récompenses
              value:
                description:
                  en: Value points for reward system.
                image_url: >-
                  https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                is_enabled: true
                long_description:
                  en: >-
                    Value points given to users to get new rewards in a reward
                    chain.
                media_list: []
                name:
                  en: Reward VP 1
                order: 1
                sku: com.xsolla.reward_vp_1
          schema:
            $ref: '#/components/schemas/admin_value_points-create'
    personalized-catalog_create-update-body:
      content:
        application/json:
          example:
            attribute_conditions:
              - attribute: race
                can_be_missing: false
                operator: eq
                type: string
                value: ork
            is_enabled: true
            is_satisfied_for_unauth: false
            items:
              - item_id: 1
            name: Ork race armor rule
          schema:
            $ref: >-
              #/components/schemas/user-attribute_personalized-catalog-body-required
    reset-user-limits:
      content:
        application/json:
          example:
            user:
              user_external_id: d342dad2-9d59-11e9-a384-42010aa8003f
          schema:
            properties:
              user:
                $ref: '#/components/schemas/User-limit_user'
            required:
              - user
            type: object
    reset-user-limits-flexible:
      content:
        application/json:
          example:
            user:
              user_external_id: d342dad2-9d59-11e9-a384-42010aa8003f
          schema:
            properties:
              user:
                $ref: '#/components/schemas/User-limit_user_flexible'
            required:
              - user
            type: object
    set-item-value-point-reward:
      content:
        application/json:
          example:
            - amount: 100
              sku: com.xsolla.booster_1
            - amount: 200
              sku: com.xsolla.booster_mega
          schema:
            $ref: '#/components/schemas/item-value-point-reward-set'
    set-item-value-point-reward-for-patch:
      content:
        application/json:
          example:
            - amount: 100
              sku: booster_1
            - amount: 0
              sku: booster_mega
          schema:
            $ref: '#/components/schemas/item-value-point-reward-set-for-patch'
    update-daily-chain:
      content:
        application/json:
          examples:
            calendar_hard:
              summary: Récompense quotidienne de type `calendar_hard`
              value:
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  en: Updated daily reward description
                is_enabled: true
                name:
                  en: Updated daily reward
                  ru: Обновленная ежедневная награда
                order: 4
                steps:
                  - items:
                      - quantity: 1
                        sku: vg_enabled_shown_in_store_1
                    step_number: 1
                  - items:
                      - quantity: 1
                        sku: vg_enabled_shown_in_store_2
                    step_number: 2
                  - items:
                      - quantity: 1
                        sku: vg_not_shown_in_store
                    step_id: 10
                    step_number: 3
                  - items:
                      - quantity: 1
                        sku: >-
                          bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg
                    step_id: 8
                    step_number: 4
                  - items:
                      - quantity: 1
                        sku: >-
                          vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1
                    step_number: 5
                type: calendar_hard
            rolling_skippable:
              summary: Récompense quotidienne de type `rolling_skippable`
              value:
                date_end: '2023-08-31T10:00:00+05:00'
                date_start: '2023-08-01T10:00:00+05:00'
                description:
                  en: Updated login reward description
                is_enabled: true
                name:
                  en: Updated login reward
                order: 4
                steps:
                  - items:
                      - quantity: 1
                        sku: monday_reward_item_one
                    step_number: 1
                  - items:
                      - quantity: 1
                        sku: tuesday_reward_item_two
                    step_number: 2
                  - items:
                      - quantity: 1
                        sku: wednesday_reward_item_three
                    step_number: 3
                  - items:
                      - quantity: 1
                        sku: thursday_reward_item_four
                    step_number: 4
                  - items:
                      - quantity: 1
                        sku: friday_reward_item_five
                    step_number: 5
                  - items:
                      - quantity: 1
                        sku: saturday_reward_item_six
                    step_number: 6
                  - items:
                      - quantity: 1
                        sku: sunday_reward_item_seven
                    step_number: 7
                type: rolling_skippable
            rolling_unskippable:
              summary: Récompense quotidienne de type `rolling_unskippable`
              value:
                date_end: '2023-09-30T10:00:00+05:00'
                date_start: '2023-09-01T10:00:00+05:00'
                description:
                  en: Updated unskippable login reward description
                is_enabled: true
                name:
                  en: Updated unskippable login reward
                order: 2
                steps:
                  - items:
                      - quantity: 1
                        sku: monday_reward_item_one
                    step_number: 1
                  - items:
                      - quantity: 1
                        sku: tuesday_reward_item_two
                    step_number: 2
                  - items:
                      - quantity: 1
                        sku: wednesday_reward_item_three
                    step_number: 3
                  - items:
                      - quantity: 1
                        sku: thursday_reward_item_four
                    step_number: 4
                  - items:
                      - quantity: 1
                        sku: friday_reward_item_five
                    step_number: 5
                type: rolling_unskippable
          schema:
            oneOf:
              - $ref: '#/components/schemas/update-calendar-hard-daily-chain-model'
              - $ref: >-
                  #/components/schemas/update-rolling-skippable-daily-chain-model
              - $ref: >-
                  #/components/schemas/update-rolling-unskippable-daily-chain-model
    update-offer-chain:
      content:
        application/json:
          examples:
            default:
              summary: Exemple par défaut
              value:
                date_end: null
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  de: Eine kurze Beschreibung einer regulären Angebotskette
                  en: A short description of a regular offer chain
                  fr: Une brève description d'une chaîne d'offres régulière
                  it: Una breve descrizione di una catena di offerte regolare
                  ru: Краткое описание обычной цепочки предложений
                is_always_visible: true
                is_enabled: true
                name:
                  de: Aktualisierte Angebotskette
                  en: Updated offer chain
                  fr: Chaîne d'offres mise à jour
                  it: Catena di offerte aggiornata
                  ru: Обновляемая цепочка предложений
                order: 4
                recurrent_schedule: null
                steps:
                  - is_free: false
                    items:
                      - quantity: 2
                        sku: chain_step_1_paid_bundle_sku
                    step_id: 10
                    step_number: 1
                  - is_free: true
                    items:
                      - quantity: 1
                        sku: chain_step_2_free_virtual_good_sku
                    step_number: 2
                  - is_free: false
                    items:
                      - quantity: 5
                        sku: chain_step_3_paid_virtual_currency_package_sku
                    step_number: 3
                  - is_free: true
                    items:
                      - quantity: 1
                        sku: chain_step_4_free_bundle_sku
                    step_id: 9
                    step_number: 4
            personalized-default:
              summary: Exemple de chaîne d'offres par défaut personnalisée
              value:
                date_end: null
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  de: >-
                    Standard-personalisierte Angebotskette für Benutzer, die die
                    Bedingungen anderer personalisierter Ketten nicht erfüllen
                  en: >-
                    Default personalized offer chain for users that do not meet
                    the conditions of other personalized chains
                  fr: >-
                    Chaîne d'offres personnalisée par défaut pour les
                    utilisateurs qui ne répondent pas aux conditions des autres
                    chaînes personnalisées
                  it: >-
                    Catena di offerte personalizzata predefinita per gli utenti
                    che non soddisfano le condizioni di altre catene
                    personalizzate
                  ru: >-
                    Персонализированная цепочка по умолчанию для пользователей,
                    не подходящих под условия других персонализированных цепочек
                is_always_visible: false
                is_enabled: true
                name:
                  de: Neue personalisierte Standard-Angebotskette
                  en: New personalized default offer chain
                  fr: Nouvelle chaîne d'offres personnalisée par défaut
                  it: Nuova catena di offerte personalizzata predefinita
                  ru: Новая персонализированная цепочка предложений по умолчанию
                order: 4
                recurrent_schedule: null
                steps:
                  - is_free: false
                    items:
                      - quantity: 1
                        sku: chain_x_step_1_item_default
                    step_id: 10
                    step_number: 1
                  - is_free: false
                    items:
                      - quantity: 2
                        sku: chain_x_step_2_item_default
                    step_number: 2
                  - is_free: true
                    items:
                      - quantity: 1
                        sku: chain_x_step_3_free_item_default
                    step_id: 9
                    step_number: 3
            personalized-with-conditions:
              summary: >-
                Exemple de chaîne d'offres personnalisée selon les attributs
                utilisateur
              value:
                attribute_conditions:
                  - attribute: race
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: elf
                  - attribute: level
                    can_be_missing: false
                    operator: ge
                    type: number
                    value: '10'
                  - attribute: 10_level_up_date
                    can_be_missing: false
                    operator: le
                    type: date
                    value: '2026-01-01T00:00:00'
                date_end: null
                date_start: '2023-04-15T18:16:00+05:00'
                description:
                  de: >-
                    Personalisierte Angebotskette mit
                    Benutzerattributbedingungen - für Elfen der Stufe 10 und
                    höher, die Stufe 10 spätestens am 2026-01-01 00:00:00
                    erreicht haben, einschließlich
                  en: >-
                    Personalized offer chain with user attribute conditions -
                    for level 10 and above elves who reached level 10 no later
                    than 2026-01-01 00:00:00, inclusive
                  fr: >-
                    Chaîne d'offres personnalisée avec des conditions d'attribut
                    utilisateur - pour les elfes de niveau 10 et plus qui ont
                    atteint le niveau 10 au plus tard le 2026-01-01 00:00:00,
                    inclus
                  it: >-
                    Catena di offerte personalizzata con condizioni di attributo
                    utente - per elfi di livello 10 e superiore che hanno
                    raggiunto il livello 10 non più tardi del 2026-01-01
                    00:00:00, inclusi
                  ru: >-
                    Персонализированная цепочка предложений с условиями по
                    атрибутам пользователя - для эльфов уровня 10 и выше,
                    достигших 10 уровня не позднее 2026-01-01 00:00:00
                    включительно
                is_always_visible: false
                is_enabled: true
                name:
                  de: Neue personalisierte Angebotskette
                  en: New personalized offer chain
                  fr: Nouvelle chaîne d'offres personnalisée
                  it: Nuova catena di offerte personalizzata
                  ru: Новая персонализированная цепочка предложений
                order: 4
                recurrent_schedule: null
                steps:
                  - is_free: false
                    items:
                      - quantity: 1
                        sku: chain_x_step_1_item_for_elves_level_10_and_above
                    step_id: 10
                    step_number: 1
                  - is_free: false
                    items:
                      - quantity: 2
                        sku: chain_x_step_2_item_for_elves_level_10_and_above
                    step_id: 8
                    step_number: 2
                  - is_free: true
                    items:
                      - quantity: 1
                        sku: chain_x_step_3_free_item_for_elves_level_10_and_above
                    step_number: 3
            recurrent:
              summary: Exemple de chaîne d'offres récurrente
              value:
                date_end: '2025-04-25T19:16:00+05:00'
                date_start: '2023-04-15T17:16:00+05:00'
                description:
                  de: >-
                    Aktualisierte Angebotskette, die wiederkehrend wird und
                    monatlich am 2. Tag um 03:00 Uhr GMT+8 zurückgesetzt wird
                  en: >-
                    Updated offer chain that becomes recurrent and resets
                    monthly on the 2nd day at 03:00 AM GMT+8
                  fr: >-
                    Chaîne d'offres mise à jour qui devient récurrente et se
                    réinitialise mensuellement le 2e jour à 03h00 GMT+8
                  it: >-
                    Catena di offerte aggiornata che diventa ricorrente e si
                    resetta mensilmente il 2° giorno alle 03:00 GMT+8
                  ru: >-
                    Обновляемая цепочка предложений, которая становится
                    рекуррентной и сбрасывается ежемесячно во 2-й день в 03:00
                    по GMT+8
                id: 1
                is_enabled: true
                name:
                  de: Aktualisierte wiederkehrende Angebotskette
                  en: Updated recurrent offer chain
                  fr: Chaîne d'offres récurrente mise à jour
                  it: Catena di offerte ricorrente aggiornata
                  ru: Обновляемая рекуррентная цепочка предложений
                order: 4
                recurrent_schedule:
                  day_of_month: 2
                  interval_type: monthly
                  time: 03:00:00+08:00
                steps:
                  - is_free: false
                    items:
                      - quantity: 6
                        sku: chain_bundle_sku
                    step_number: 1
                  - is_free: true
                    items:
                      - quantity: 2
                        sku: chain_bundle_sku
                    step_number: 1
          schema:
            $ref: '#/components/schemas/modify-offer-chain-model'
    update-reward-chain:
      content:
        application/json:
          examples:
            clan:
              summary: Exemple de chaîne de récompenses de clan
              value:
                clan_type: guild
                description:
                  en: Clan reward chain description.
                image_url: >-
                  https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                is_enabled: true
                long_description:
                  en: Clan reward chain long description.
                name:
                  en: Clan reward chain
                order: 1
                periods:
                  - date_from: '2026-01-01T01:00:00+05:00'
                    date_until: '2026-01-31T23:59:59+05:00'
                  - date_from: '2026-02-01T01:00:00+05:00'
                    date_until: '2026-02-28T23:59:59+05:00'
                popup_header:
                  en: How to unlock rewards
                popup_image_url: >-
                  https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                popup_instruction:
                  en: >-
                    You should be a clan member to get clan rewards. You join a
                    clan when a clan member invited you to the clan, and you
                    accepted the invite. You can create your own clan.
                recurrent_schedule:
                  day_of_week: 1
                  interval_type: weekly
                  time: 01:00:00+08:00
                steps:
                  - image_url: >-
                      https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                    name:
                      en: First step of the reward chain
                    price:
                      amount: 10
                    reward:
                      - quantity: 5
                        sku: com.xsolla.item_1
                      - quantity: 1
                        sku: com.xsolla.item_2
                    step_id: 1
                  - image_url: >-
                      https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                    name:
                      en: Second step of the reward chain
                    price:
                      amount: 15
                    reward:
                      - quantity: 5
                        sku: com.xsolla.item_3
                      - quantity: 1
                        sku: com.xsolla.item_4
                    step_id: 2
            default:
              summary: Exemple de chaîne de récompenses
              value:
                attribute_conditions:
                  - attribute: race
                    can_be_missing: false
                    operator: eq
                    type: string
                    value: ork
                description:
                  en: Reward chain description.
                image_url: >-
                  https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                is_always_visible: true
                is_enabled: true
                is_reset_after_end: true
                long_description:
                  en: Reward chain long description.
                name:
                  en: Reward chain
                order: 1
                periods:
                  - date_from: '2026-01-01T01:00:00+05:00'
                    date_until: '2026-01-31T23:59:59+05:00'
                  - date_from: '2026-02-01T01:00:00+05:00'
                    date_until: '2026-02-28T23:59:59+05:00'
                recurrent_schedule:
                  day_of_week: 1
                  interval_type: weekly
                  time: 01:00:00+08:00
                steps:
                  - image_url: >-
                      https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                    name:
                      en: First step of the reward chain
                    price:
                      amount: 10
                    reward:
                      - quantity: 5
                        sku: com.xsolla.item_1
                      - quantity: 1
                        sku: com.xsolla.item_2
                    step_id: 1
                  - image_url: >-
                      https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png
                    name:
                      en: Second step of the reward chain
                    price:
                      amount: 15
                    reward:
                      - quantity: 5
                        sku: com.xsolla.item_3
                      - quantity: 1
                        sku: com.xsolla.item_4
                    step_id: 2
          schema:
            oneOf:
              - $ref: '#/components/schemas/update-reward-chain-model'
              - $ref: '#/components/schemas/update-clan-reward-chain-model'
    update-upsell:
      content:
        application/json:
          examples:
            fixed_list:
              summary: Exemple de vente incitative avec une liste fixe d'objets
              value:
                is_enabled: true
                items:
                  - game_sku_1
                  - game_sku_2
                  - game_sku_3
                type: fixed_list
            special_type_most_sellable:
              summary: "Exemple de vente incitative avec les objets les plus vendus au cours des 30\_derniers jours"
              value:
                is_enabled: true
                items: []
                type: most_sellable
            special_type_promotions:
              summary: >-
                Exemple de vente incitative avec des objets en promotion
                uniquement
              value:
                is_enabled: true
                items: []
                type: only_promotions
          schema:
            oneOf:
              - $ref: '#/components/schemas/Upsell-model'
              - $ref: '#/components/schemas/Upsell-model-not-fixed-list'
    update-user-limits-flexible:
      content:
        application/json:
          example:
            available: 0
            user:
              user_external_id: d342dad2-9d59-11e9-a384-42010aa8003f
          schema:
            properties:
              available:
                $ref: '#/components/schemas/User-limit_available_flexible'
              user:
                $ref: '#/components/schemas/User-limit_user'
            required:
              - user
              - available
            type: object
    update-user-limits-strict:
      content:
        application/json:
          example:
            available: 1
            user:
              user_external_id: d342dad2-9d59-11e9-a384-42010aa8003f
          schema:
            properties:
              available:
                $ref: '#/components/schemas/User-limit_available'
              user:
                $ref: '#/components/schemas/User-limit_user'
            required:
              - user
              - available
            type: object
  responses:
    200-admin-get-code-coupon-limits:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/code-limit'
          schema:
            properties:
              has_more:
                description: S'il existe une autre page avec des codes.
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/Code-limit-promo-code'
                type: array
              promotion_id:
                description: >-
                  ID de la promotion. Identifiant unique de la promotion au sein
                  du projet.
                type: integer
              total_items_count:
                description: Nombre total de codes.
                type: number
            type: object
      description: Les limites du coupon ont été reçues avec succès pour le code.
    200-admin-get-code-promo-code-limits:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/code-limit'
          schema:
            properties:
              has_more:
                description: S'il existe une autre page avec des codes.
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/Code-limit-promo-code'
                type: array
              promotion_id:
                description: >-
                  ID de la promotion. Identifiant unique de la promotion au sein
                  du projet.
                type: integer
              total_items_count:
                description: Nombre total de codes.
                type: number
            type: object
      description: Les limites du code promo ont été reçues avec succès pour le code.
    200-admin-get-daily-chain:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-admin-daily-chain'
          schema:
            $ref: '#/components/schemas/admin-daily-chain-long-model'
      description: Données de la récompense quotidienne récupérées avec succès.
    200-admin-get-list-daily-chains:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-admin-daily-chain-list'
          schema:
            properties:
              has_more:
                $ref: '#/components/schemas/Pagination_has-more'
              items:
                items:
                  $ref: '#/components/schemas/admin-daily-chain-short-model'
                type: array
              total_items_count:
                description: Nombre total de récompenses quotidiennes.
                example: 3
                type: integer
            type: object
      description: Liste des récompenses quotidiennes récupérée avec succès.
    200-admin-get-list-offer-chains:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-admin-offer-chain-list'
          schema:
            properties:
              has_more:
                $ref: '#/components/schemas/Pagination_has-more'
              items:
                items:
                  $ref: '#/components/schemas/admin-offer-chain-short-model'
                type: array
            type: object
      description: Liste de chaînes d'offres récupérée avec succès.
    200-admin-get-list-reward-chains:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-reward-chain-list'
          schema:
            properties:
              has_more:
                $ref: '#/components/schemas/Pagination_has-more'
              items:
                items:
                  oneOf:
                    - $ref: >-
                        #/components/schemas/admin-get-reward-chain-item-basic-model
                    - $ref: >-
                        #/components/schemas/admin-get-reward-chain-item-clan-basic-model
                type: array
            type: object
      description: La liste des chaînes de récompenses a été reçue avec succès.
    200-admin-get-list-value-point-rewards:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-value-points-rewards-list'
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/admin-item-value-point-reward'
                type: array
            type: object
      description: >-
        La liste des objets avec des récompenses en points de valeur a été reçue
        avec succès.
    200-admin-get-offer-chain:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-admin-offer-chain'
          schema:
            $ref: '#/components/schemas/admin-offer-chain-long-model'
      description: Données de la chaîne d'offres récupérées avec succès.
    200-admin-get-redeemable-by-code:
      content:
        application/json:
          examples:
            Coupon Response:
              value:
                bonus:
                  - quantity: 3
                    sku: epic_fall_hammer_1
                external_id: coupon_fall_hammer_2
                is_enabled: true
                name:
                  en: This is a Coupon code for Epic Fall Hammer
                  ru: Eto kod kupona на Epic Fall Hammer
                promotion_periods:
                  - date_from: '2023-04-15T01:00:00+05:00'
                    date_until: '2023-04-30T23:59:59+05:00'
                  - date_from: '2023-05-15T01:00:00+05:00'
                    date_until: '2023-05-30T23:59:59+05:00'
                redeem_code_limit: null
                redeem_total_limit: 99
                redeem_user_limit: 1
            Promo Code Response:
              value:
                bonus: []
                discount:
                  percent: null
                discounted_items:
                  - discount:
                      percent: '20.00'
                    sku: epic_fall_hammer_1
                external_id: falls2023
                is_enabled: true
                name:
                  en: Promo Code discount for Epic Fall Hammer
                  ru: Скидка по промокоду на Epic Fall Hammer
                promotion_periods:
                  - date_from: '2023-05-01T01:00:00+05:00'
                    date_until: '2023-05-31T23:59:59+05:00'
                  - date_from: '2023-06-01T01:00:00+05:00'
                    date_until: '2023-06-30T23:59:59+05:00'
                redeem_code_limit: null
                redeem_total_limit: 2
                redeem_user_limit: 3
                total_limit_state:
                  available: 1
                  reserved: 1
                  used: 0
          schema:
            $ref: >-
              #/components/schemas/admin-promotions_200-get-redeemable-coupon-promotion-model
      description: La promotion a été reçue avec succès.
    200-admin-get-reward-chain:
      content:
        application/json:
          examples:
            clan:
              $ref: '#/components/examples/200-clan-reward-chain'
            common:
              $ref: '#/components/examples/200-reward-chain'
          schema:
            oneOf:
              - $ref: '#/components/schemas/admin-get-reward-chain-item-full-model'
              - $ref: >-
                  #/components/schemas/admin-get-reward-chain-item-clan-full-model
      description: La chaîne de récompenses spécifiée a été reçue avec succès.
    200-admin-get-user-coupon-limits:
      content:
        application/json:
          examples:
            response:
              value:
                per_user:
                  available: 9
                  total: 10
          schema:
            $ref: '#/components/schemas/User-limit-coupon'
      description: Les limites du coupon pour un utilisateur ont été reçues avec succès.
    200-admin-get-user-promo-code-limits:
      content:
        application/json:
          examples:
            response:
              value:
                per_user:
                  available: 9
                  total: 10
          schema:
            $ref: '#/components/schemas/User-limit-promo-code'
      description: >-
        Les limites du code promo pour un utilisateur ont été reçues avec
        succès.
    200-admin-get-user-promotion-limits:
      content:
        application/json:
          examples:
            response:
              value:
                per_user:
                  available: 9
                  total: 10
          schema:
            $ref: '#/components/schemas/User-limit-promotion'
      description: >-
        Les limites de la promotion pour un utilisateur ont été reçues avec
        succès.
    200-admin-get-value-point:
      content:
        application/json:
          examples:
            response:
              $ref: >-
                #/components/examples/200-value-points-reward-chain_admin_get-value-point
          schema:
            $ref: '#/components/schemas/Value-point-item-model'
      description: Le point de valeur spécifié a été reçu avec succès.
    200-admin-get-value-points:
      content:
        application/json:
          examples:
            response:
              $ref: >-
                #/components/examples/200-value-points-reward-chain_admin_get-value-point-list
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/Value-points-item-model'
                type: array
            type: object
      description: La liste des points de valeur a été reçue avec succès.
    200-client-get-daily-chains-list:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-client-daily-chain-list'
          schema:
            properties:
              has_more:
                description: Utilisé pour indiquer qu'il y a plus de pages.
                example: true
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/client-daily-chain-model'
                type: array
              total_items_count:
                description: Nombre total de récompenses quotidiennes.
                example: 3
                type: integer
            type: object
      description: Récompenses quotidiennes de l'utilisateur récupérées avec succès.
    200-client-get-offer-chains-list:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-client-offer-chain-list'
          schema:
            properties:
              has_more:
                description: Indique si d'autres pages sont disponibles.
                example: true
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/client-offer-chain-model'
                type: array
              total_items_count:
                description: Nombre total de chaînes d'offres disponibles.
                example: 10
                type: integer
            type: object
      description: Liste de chaînes d'offres reçue avec succès.
    200-client-get-reward-chains-list:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-client-get-reward-chains-list'
          schema:
            properties:
              has_more:
                description: Utilisé pour indiquer qu'il y a plus de pages.
                example: true
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/client-reward-chain-item-model'
                type: array
              total_items_count:
                description: Nombre total de chaînes de récompenses dans le système.
                example: 10
                type: integer
            type: object
      description: La chaîne de récompenses de l'utilisateur a été récupérée avec succès.
    200-client-get-user-reward-chain-balance:
      content:
        application/json:
          examples:
            clan:
              $ref: >-
                #/components/examples/200-client-get-user-clan-reward-chain-balance
            common:
              $ref: '#/components/examples/200-client-get-user-reward-chain-balance'
          schema:
            properties:
              amount:
                description: Quantité de points de valeur.
                type: integer
              description:
                $ref: '#/components/schemas/value-point-description'
              image_url:
                $ref: '#/components/schemas/Common_admin-image_url'
              is_clan:
                $ref: '#/components/schemas/is_clan'
              long_description:
                $ref: '#/components/schemas/value-point-long-description'
              name:
                $ref: '#/components/schemas/value-point-name'
              sku:
                $ref: '#/components/schemas/value-point-sku'
            type: object
      description: >-
        Le solde de points de valeur de l'utilisateur a été récupéré avec
        succès.
    200-client-update-user-clan:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-client-update-user-clan'
          schema:
            properties:
              reward:
                items:
                  properties:
                    bundle_type:
                      description: Type de lot. Renvoyé si le type d'objet est un lot.
                      enum:
                        - standard
                        - virtual_currency_package
                      type: string
                    description:
                      description: Description de l'objet.
                      example: Super box with items
                      type: string
                    image_url:
                      $ref: '#/components/schemas/Common_admin-image_url'
                    name:
                      description: Nom de l'objet.
                      example: Super box
                      type: string
                    quantity:
                      description: Quantité de l'objet.
                      example: 2
                      type: integer
                    sku:
                      $ref: '#/components/schemas/sku'
                    type:
                      description: Type d'objet.
                      example: bundle
                      type: string
                  type: object
                type: array
            type: object
      description: Le clan de l'utilisateur a été mis à jour avec succès.
    201-admin-create-daily-chain:
      content:
        application/json:
          examples:
            response:
              value:
                daily_chain_id: 10
          schema:
            properties:
              daily_chain_id:
                example: 10
                type: integer
            type: object
      description: Récompense quotidienne créée avec succès.
    201-admin-create-offer-chain:
      content:
        application/json:
          examples:
            response:
              value:
                offer_chain_id: 10
          schema:
            properties:
              offer_chain_id:
                example: 10
                type: integer
            type: object
      description: Chaîne d'offres créée avec succès.
    201-admin-create-reward-chain:
      content:
        application/json:
          examples:
            response:
              value:
                reward_chain_id: 10
          schema:
            properties:
              reward_chain_id:
                example: 10
                type: integer
            type: object
      description: La chaîne de récompenses a été créée avec succès.
    201-admin-create-value-point:
      content:
        application/json:
          examples:
            response:
              value:
                item_id: 10
                sku: com.xsolla.item_new
          schema:
            properties:
              item_id:
                example: 10
                type: integer
              sku:
                example: new-sku
                type: string
            type: object
      description: Le point de valeur a été créé avec succès.
    204-admin-delete-reward-chain:
      content: {}
      description: La chaîne de récompenses a été supprimée avec succès.
    204-admin-reset-reward-chain:
      content: {}
      description: La chaîne des récompenses a été réinitialisée.
    204-admin-toggle-reward-chain:
      content: {}
      description: La chaîne de récompenses a été désactivée/activée.
    204-admin-update-reward-chain:
      content: {}
      description: La chaîne de récompenses a été mise à jour avec succès.
    401-client-auth-error:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1501
                errorMessage: '[0401-1501]: Authorization failed: Provide authorization'
                statusCode: 401
          schema:
            properties:
              errorCode:
                example: 1501
                type: integer
              errorMessage:
                example: '[0401-1501]: Authorization failed: Provide authorization'
                type: string
              statusCode:
                example: 401
                type: integer
            type: object
      description: L'authentification n'a pas été passée ou est incorrecte.
    401-invalid-basic-auth:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1020
                errorMessage: '[0401-1020]: Error in Authentication method occurred'
                statusCode: 401
          schema:
            properties:
              errorCode:
                example: 1020
                type: integer
              errorMessage:
                example: '[0401-1020]: Error in Authentication method occurred'
                type: string
              statusCode:
                example: 401
                type: integer
            type: object
      description: >-
        L'authentification de base n'a pas été passée ou est incorrecte.
        Vérifiez que vous avez utilisé l'authentification de base ou des
        informations d'identification correctes.
    403-auth-header-not-sent:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 0
                errorMessage: Authorization header not sent
                statusCode: 403
          schema:
            properties:
              errorCode:
                example: 0
                type: integer
              errorMessage:
                example: Authorization header not sent.
                type: string
              statusCode:
                example: 403
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: L'en-tête d'autorisation n'a pas été passé.
    404-admin-reward-chain-not-found:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 9901
                errorMessage: '[0401-4001]: Reward chain not found'
                statusCode: 404
          schema:
            properties:
              errorCode:
                example: 4001
                type: integer
              errorMessage:
                example: '[0401-4001]: Reward chain not found'
                type: string
              statusCode:
                example: 404
                type: integer
            type: object
      description: Chaîne de récompenses introuvable.
    404-code-not-found:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 9811
                errorMessage: '[0401-9811]: Code not found.'
                statusCode: 404
          schema:
            properties:
              errorCode:
                example: 9811
                type: integer
              errorMessage:
                example: '[0401-9811]: Code not found.'
                type: string
              statusCode:
                example: 404
                type: integer
            type: object
      description: >-
        Code utilisable non trouvé. Assurez-vous que la valeur du code fourni
        est correcte.
    404-daily-chain-not-found:
      content:
        application/json:
          examples:
            not-found:
              $ref: '#/components/examples/404-daily-chain-not-found'
          schema:
            $ref: '#/components/schemas/daily-chain-error-model'
      description: Récompense quotidienne non trouvée.
    404-daily-chain-step-not-found:
      content:
        application/json:
          examples:
            not-found:
              $ref: '#/components/examples/404-daily-chain-step-not-found'
          schema:
            $ref: '#/components/schemas/daily-chain-error-model'
      description: Récompense quotidienne ou étape de récompense quotidienne non trouvée.
    404-offer-chain-not-found:
      content:
        application/json:
          examples:
            not-found:
              $ref: '#/components/examples/404-offer-chain-not-found'
          schema:
            $ref: '#/components/schemas/offer-chain-error-model'
      description: Chaîne d'offres non trouvée.
    404-offer-chain-step-not-found:
      content:
        application/json:
          examples:
            not-found:
              $ref: '#/components/examples/404-offer-chain-step-not-found'
          schema:
            $ref: '#/components/schemas/offer-chain-error-model'
      description: Chaîne d'offres ou étape non trouvée.
    404-reward-chain-step-not-found:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 9911
                errorMessage: '[0401-9911]: Reward chain step not found.'
                statusCode: 404
          schema:
            properties:
              errorCode:
                example: 9911
                type: integer
              errorMessage:
                example: '[0401-9911]: Reward chain step not found.'
                type: string
              statusCode:
                example: 404
                type: integer
            type: object
      description: Étape de chaîne de récompenses introuvable.
    405-method-not-found:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 0
                errorMessage: 'Method is not allowed. Method must be one of: OPTIONS'
                statusCode: 405
          schema:
            properties:
              errorCode:
                example: 0
                type: integer
              errorMessage:
                example: 'Method is not allowed. Method must be one of: OPTIONS'
                type: string
              statusCode:
                example: 405
                type: integer
            type: object
      description: >-
        Format de code utilisable incorrect. Le code ne peut comprendre que des
        lettres et des chiffres.
    422-admin-create-error-list:
      content:
        application/json:
          examples:
            incorrect-items:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-incorrect-items
            incorrect-period:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-incorrect-period
            incorrect-steps-order-error:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-incorrect-steps-order
            invalid-dates:
              $ref: '#/components/examples/422-admin-daily-chain-error-invalid-dates'
            item-limit-exceeded:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-item-limit-exceeded
            too-many-steps-error:
              $ref: '#/components/examples/422-admin-daily-chain-error-too-many-steps'
          schema:
            $ref: '#/components/schemas/daily-chain-error-model'
      description: Erreurs de configuration de la récompense quotidienne.
    422-admin-create-update-rc-vp-invalid-request:
      content:
        application/json:
          examples:
            The property `sku` is required:
              $ref: '#/components/examples/422-property-sku-is-required'
          schema:
            $ref: '#/components/schemas/422-rc-vp-invalid-request'
      description: Demande non valide.
    422-admin-update-error-list:
      content:
        application/json:
          examples:
            active-daily-chain:
              $ref: '#/components/examples/422-admin-daily-chain-error-activated'
            chain-id-mismatch:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-chain-id-mismatch
            chain-step-ids-duplication:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-duplicate-step-ids
            incorrect-items:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-incorrect-items
            incorrect-period:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-incorrect-period
            incorrect-steps-order-error:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-incorrect-steps-order
            invalid-chain-step-ids:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-invalid-chain-step-ids
            invalid-dates:
              $ref: '#/components/examples/422-admin-daily-chain-error-invalid-dates'
            item-limit-exceeded:
              $ref: >-
                #/components/examples/422-admin-daily-chain-error-item-limit-exceeded
            too-many-steps-error:
              $ref: '#/components/examples/422-admin-daily-chain-error-too-many-steps'
          schema:
            $ref: '#/components/schemas/daily-chain-error-model'
      description: Erreurs de configuration de la récompense quotidienne.
    422-create-error-list:
      content:
        application/json:
          examples:
            incorrect-items:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-incorrect-items
            incorrect-period:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-incorrect-period
            incorrect-steps-order-error:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-incorrect-steps-order
            invalid-dates:
              $ref: '#/components/examples/422-admin-offer-chain-error-invalid-dates'
            item-limit-exceeded:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-item-limit-exceeded
            too-many-steps-error:
              $ref: '#/components/examples/422-admin-offer-chain-error-too-many-steps'
          schema:
            $ref: '#/components/schemas/offer-chain-error-model'
      description: Configuration de la chaîne d'offres non valide.
    422-reward-chain-step-reward-can-not-claimed:
      content:
        application/json:
          examples:
            Not enough VP to claim reward chain step reward:
              value:
                errorCode: 9913
                errorMessage: '[0401-9913]: Not enough value points to claim step reward.'
                statusCode: 422
            Reward chain step reward already claimed:
              value:
                errorCode: 9912
                errorMessage: '[0401-9912]: Reward already claimed.'
                statusCode: 422
          schema:
            properties:
              errorCode:
                example: 9912
                type: integer
              errorMessage:
                example: '[0401-9912]: Can''t claim the step reward.'
                type: string
              statusCode:
                example: 422
                type: integer
            type: object
      description: Impossible de réclamer la récompense de l'étape.
    422-update-error-list:
      content:
        application/json:
          examples:
            active-offer-chain:
              $ref: '#/components/examples/422-admin-offer-chain-error-activated'
            chain-id-mismatch:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-chain-id-mismatch
            chain-step-ids-duplication:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-duplicate-step-ids
            incorrect-items:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-incorrect-items
            incorrect-period:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-incorrect-period
            incorrect-steps-order-error:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-incorrect-steps-order
            invalid-chain-step-ids:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-invalid-chain-step-ids
            invalid-dates:
              $ref: '#/components/examples/422-admin-offer-chain-error-invalid-dates'
            item-limit-exceeded:
              $ref: >-
                #/components/examples/422-admin-offer-chain-error-item-limit-exceeded
            too-many-steps-error:
              $ref: '#/components/examples/422-admin-offer-chain-error-too-many-steps'
          schema:
            $ref: '#/components/schemas/offer-chain-error-model'
      description: Configuration de la chaîne d'offres non valide.
    Cart-Payment_200-order-created:
      content:
        application/json:
          examples:
            response:
              value:
                order_id: 641
                token: f4puMEFFDZcx9nv5HoNHIkPe9qghvBQo
          schema:
            properties:
              order_id:
                description: ID de commande.
                type: integer
              token:
                description: Jeton de paiement.
                type: string
            type: object
      description: La commande a été créée avec succès.
    Common_401-complex:
      content:
        application/json:
          examples:
            Authorization header not sent:
              $ref: '#/components/examples/401-complex-auth-header-not-found'
            Incorrect credentials:
              $ref: '#/components/examples/401-complex-auth-incorrect-credentials'
          schema:
            properties:
              errorCode:
                example: 1501
                type: integer
              errorMessage:
                example: >-
                  [0401-1501]: Authorization failed: Authorization header not
                  sent
                type: string
              statusCode:
                example: 401
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: >-
        L'authentification n'a pas été passée ou est incorrecte. Vérifiez que
        vous avez utilisé l'authentification ou des informations
        d'identification correctes.
    Common_401-invalid-basic-auth:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1020
                errorMessage: '[0401-1020]: Error in Authentication method occurred'
                statusCode: 401
          schema:
            properties:
              errorCode:
                example: 1020
                type: integer
              errorMessage:
                example: '[0401-1020]: Error in Authentication method occurred'
                type: string
              statusCode:
                example: 401
                type: integer
            type: object
      description: >-
        L'authentification de base n'a pas été passée ou est incorrecte.
        Vérifiez que vous avez utilisé l'authentification de base ou des
        informations d'identification correctes.
    Common_422-body-validation:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1102
                errorMessage: >-
                  [0401-1102]: Unprocessable Entity. The property `name` is
                  required
                statusCode: 422
                transactionId: da145238620011eb8e24fe6913ff226a
          schema:
            $ref: '#/components/schemas/422-invalid-request'
      description: Erreur de validation de la requête.
    Promotions_200-admin-get-bonus-promotion:
      content:
        application/json:
          examples:
            response:
              value:
                bonus:
                  - quantity: 1
                    sku: com.xsolla.elven_sword_1
                  - quantity: 2
                    sku: com.xsolla.elven_shield_1
                  - quantity: 2
                    sku: com.xsolla.elven_gloves_1
                condition:
                  - sku: com.xsolla.elven_boots_1
                  - sku: com.xsolla.elven_knife_1
                excluded_promotions:
                  - 23
                  - 45
                id: 1
                is_enabled: true
                limits:
                  per_item: null
                  per_user:
                    total: 10
                  recurrent_schedule:
                    per_user:
                      displayable_reset_next_date: '2023-02-28T11:00:00+08:00'
                      displayable_reset_start_date: '2023-02-28T11:00:00+08:00'
                      interval_type: daily
                      reset_next_date: 1677553200
                      time: 11:00:00+08:00
                name:
                  de-DE: Neujahrsbonus
                  en-US: New Year Bonus
                price_conditions:
                  - operator: gt
                    value: '10.0000'
                  - operator: lt
                    value: '50.0000'
                promotion_periods:
                  - date_from: '2020-04-15T18:16:00+05:00'
                    date_until: '2020-04-25T18:16:00+05:00'
          schema:
            $ref: '#/components/schemas/Promotions_200-get-bonus-promotion-model'
      description: La promotion par bonus a été reçue avec succès.
    Promotions_200-coupon-code-list:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-coupon-code-list'
          schema:
            properties:
              codes:
                items:
                  properties:
                    code:
                      $ref: '#/components/schemas/Promotions_coupon_code'
                  type: object
                type: array
              total_count:
                description: Nombre total de codes de coupon.
                type: number
            type: object
      description: La liste des codes pour un coupon a été reçue avec succès.
    Promotions_200-coupon-redeemed:
      content:
        application/json:
          examples:
            response:
              value:
                items:
                  - attributes: []
                    description: >-
                      Take it, take it all! All of Xsolla's riches in one Mega
                      Booster.
                    groups:
                      - external_id: powerups
                        name: Power Ups
                    image_url: >-
                      https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png
                    is_free: true
                    name: Xsolla Booster Mega
                    price: null
                    quantity: 1
                    sku: com.xsolla.booster_mega_1
                    type: virtual_good
                    virtual_item_type: consumable
                    virtual_prices: []
          schema:
            properties:
              items:
                example:
                  - attributes: []
                    description: >-
                      Take it, take it all! All of Xsolla's riches in one Mega
                      Booster.
                    groups:
                      - external_id: powerups
                        name: Power Ups
                    image_url: >-
                      https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png
                    is_free: false
                    name: Xsolla Booster Mega
                    price:
                      amount: '50.0000000000000000'
                      amount_without_discount: '100.0000000000000000'
                      currency: USD
                    quantity: 1
                    sku: com.xsolla.booster_mega_1
                    type: virtual_good
                    virtual_item_type: consumable
                    virtual_prices: []
                items:
                  properties:
                    attributes:
                      type: array
                    description:
                      type: string
                    groups:
                      items:
                        properties:
                          external_id:
                            type: string
                          name:
                            type: string
                        type: object
                      type: array
                    image_url:
                      type: string
                    is_free:
                      type: boolean
                    name:
                      nullable: true
                      type: string
                    price:
                      description: Prix de l'objet.
                      nullable: true
                      properties:
                        amount:
                          description: Prix de l'objet avec remise.
                          example: '2.9900'
                          type: string
                        amount_without_discount:
                          description: Prix de l'objet.
                          example: '2.9900'
                          type: string
                        currency:
                          description: >-
                            Devise du prix de l'article. Code à trois lettres
                            selon [ISO
                            4217](https://en.wikipedia.org/wiki/ISO_4217).
                          example: USD
                          type: string
                      type: object
                    quantity:
                      type: integer
                    sku:
                      type: string
                    type:
                      type: string
                    virtual_item_type:
                      description: Type d'objet virtuel.
                      enum:
                        - consumable
                        - non_consumable
                        - non_renewing_subscription
                      example: non-consumable
                      type: string
                      x-enumDescriptions:
                        consumable: >-
                          Un objet qui disparaît de l'inventaire après
                          utilisation (par exemple, des munitions).
                        non_consumable: >-
                          Un objet qui reste dans l'inventaire pour une durée
                          illimitée.
                        non_renewing_subscription: >-
                          Objet à durée limitée qui peut représenter l'accès à
                          des services ou à du contenu pour une période de temps
                          limitée.
                    virtual_prices:
                      type: array
                  type: object
                type: array
            type: object
      description: Le coupon a été échangé avec succès.
    Promotions_200-coupon-rewards:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-get-coupon-rewards'
          schema:
            properties:
              bonus:
                items:
                  $ref: '#/components/schemas/Promotions_200-coupon-bonus-reward'
                type: array
              discount:
                $ref: '#/components/schemas/Promotions_200-coupon-discount-reward'
              is_selectable:
                description: >-
                  Si `true`, l'utilisateur doit choisir le bonus avant
                  d'échanger un coupon.
                type: boolean
            type: object
      description: La liste des récompenses associées au coupon a été reçue avec succès.
    Promotions_200-get-bonus-promotions:
      content:
        application/json:
          examples:
            response:
              value:
                active_promotions_count: 2
                inactive_promotions_count: 0
                promotions:
                  - bonus:
                      - quantity: 1
                        sku: com.xsolla.elven_sword_1
                      - quantity: 2
                        sku: com.xsolla.elven_shield_1
                      - quantity: 2
                        sku: com.xsolla.elven_gloves_1
                    condition:
                      - sku: com.xsolla.elven_boots_1
                      - sku: com.xsolla.elven_knife_1
                    id: 1
                    is_enabled: true
                    limits:
                      per_item: null
                      per_user: null
                      recurrent_schedule: null
                    name:
                      de-DE: Neujahrsbonus
                      en-US: New Year Bonus
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                      - date_from: '2020-05-15T18:16:00+05:00'
                        date_until: '2020-05-25T18:16:00+05:00'
                  - bonus:
                      - quantity: 100
                        sku: com.xsolla.diamonds_1
                    condition: null
                    excluded_promotions:
                      - 1
                    id: 2
                    is_enabled: true
                    limits:
                      per_item: null
                      per_user:
                        total: 10
                      recurrent_schedule:
                        per_user:
                          displayable_reset_next_date: '2023-02-28T11:00:00+08:00'
                          displayable_reset_start_date: '2023-02-28T11:00:00+08:00'
                          interval_type: daily
                          reset_next_date: 1677553200
                          time: 11:00:00+08:00
                    name:
                      de-DE: Sommersaison Bonus
                      en-US: Summer season bonus
                    price_conditions:
                      - operator: gt
                        value: '10.0000'
                      - operator: lt
                        value: '50.0000'
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                total_promotions_count: 2
          schema:
            properties:
              active_promotions_count:
                $ref: '#/components/schemas/active_promotions_count'
              inactive_promotions_count:
                $ref: '#/components/schemas/inactive_promotions_count'
              promotions:
                items:
                  $ref: >-
                    #/components/schemas/Promotions_200-get-bonus-promotion-model
                type: array
              total_promotions_count:
                $ref: '#/components/schemas/total_promotions_count'
            type: object
      description: La liste des promotions par bonus a été reçue avec succès.
    Promotions_200-get-coupons:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-admin-coupons'
          schema:
            properties:
              active_promotions_count:
                $ref: '#/components/schemas/active_promotions_count'
              inactive_promotions_count:
                $ref: '#/components/schemas/inactive_promotions_count'
              items:
                items:
                  $ref: >-
                    #/components/schemas/admin-promotions_200-get-coupon-promotion-model
                type: array
              total_promotions_count:
                $ref: '#/components/schemas/total_promotions_count'
            type: object
      description: La liste des coupons a été reçue avec succès.
    Promotions_200-get-item-promotions:
      content:
        application/json:
          examples:
            response:
              value:
                active_promotions_count: 4
                inactive_promotions_count: 0
                promotions:
                  - discount:
                      percent: '20.00'
                    id: 1
                    is_enabled: true
                    items:
                      - sku: com.xsolla.elven_sword_1
                    limits:
                      per_item: null
                      per_user: null
                      recurrent_schedule: null
                    name:
                      en-US: Promotion
                      ru-RU: Акция
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                      - date_from: '2020-05-15T18:16:00+05:00'
                        date_until: '2020-05-25T18:16:00+05:00'
                  - discount:
                      percent: '10.00'
                    excluded_promotions:
                      - 1
                      - 3
                    id: 2
                    is_enabled: true
                    items:
                      - sku: com.xsolla.elven_helmet_1
                      - sku: com.xsolla.elven_armor_1
                    limits:
                      per_item: null
                      per_user:
                        total: 10
                      recurrent_schedule:
                        per_user:
                          displayable_reset_next_date: '2023-02-28T11:00:00+08:00'
                          displayable_reset_start_date: '2023-02-28T11:00:00+08:00'
                          interval_type: daily
                          reset_next_date: 1677553200
                          time: 11:00:00+08:00
                    name:
                      en-US: Promotion
                      ru-RU: Акция
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                  - discount:
                      percent: '10.00'
                    id: 3
                    is_enabled: true
                    items:
                      - sku: com.xsolla.elven_helmet_2
                      - sku: com.xsolla.elven_armor_2
                    limits:
                      per_item: null
                      per_user:
                        total: 10
                      recurrent_schedule:
                        per_user:
                          displayable_reset_next_date: '2023-02-28T11:00:00+08:00'
                          displayable_reset_start_date: '2023-02-28T11:00:00+08:00'
                          interval_type: daily
                          reset_next_date: 1677553200
                          time: 11:00:00+08:00
                    name:
                      en-US: Promotion
                      ru-RU: Акция
                    price_conditions:
                      - operator: gt
                        value: '10.0000'
                      - operator: lt
                        value: '20.0000'
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                  - discount:
                      percent: '10.00'
                    id: 4
                    is_enabled: true
                    items: null
                    limits:
                      per_item: null
                      per_user:
                        total: 10
                      recurrent_schedule:
                        per_user:
                          displayable_reset_next_date: '2023-02-28T11:00:00+08:00'
                          displayable_reset_start_date: '2023-02-28T11:00:00+08:00'
                          interval_type: daily
                          reset_next_date: 1677553200
                          time: 11:00:00+08:00
                    name:
                      en-US: Promotion
                      ru-RU: Акция
                    price_conditions:
                      - operator: lt
                        value: '20.0000'
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                total_promotions_count: 4
          schema:
            properties:
              active_promotions_count:
                $ref: '#/components/schemas/active_promotions_count'
              inactive_promotions_count:
                $ref: '#/components/schemas/inactive_promotions_count'
              promotions:
                items:
                  properties:
                    attribute_conditions:
                      $ref: >-
                        #/components/schemas/promotion_user-attribute_conditions_model-get
                    discount:
                      properties:
                        percent:
                          default: '10.00'
                          description: >-
                            Pourcentage de la remise.

                            Le prix de l'objet sera diminué d'une valeur
                            calculée à l'aide de ce pourcentage.
                          nullable: true
                          type: string
                      type: object
                    excluded_promotions:
                      $ref: '#/components/schemas/excluded_promotions'
                    id:
                      description: >-
                        ID de la promotion. Identifiant unique de la promotion
                        au sein du projet.
                      type: integer
                    is_enabled:
                      $ref: '#/components/schemas/Promotions_is_enabled'
                    items:
                      items:
                        description: Liste des objets qui seront concernés par la remise.
                        properties:
                          sku:
                            default: elven_sword
                            description: UGS de l'objet.
                            nullable: true
                            type: string
                        type: object
                      nullable: true
                      type: array
                    limits:
                      $ref: >-
                        #/components/schemas/Promotions_promotion_limits_response
                    name:
                      additionalProperties:
                        type: string
                      description: >-
                        Nom de la promotion. Doit comprendre des paires
                        clé/valeur, où la clé est une région au format
                        "^[a-z]{2}-[A-Z]{2}$", la valeur est une chaîne.
                      example:
                        en-US: Promotion
                        ru-RU: Акция
                      type: object
                    price_conditions:
                      $ref: '#/components/schemas/price_conditions_discount'
                    promotion_periods:
                      $ref: '#/components/schemas/promotion_periods'
                  type: object
                type: array
              total_promotions_count:
                $ref: '#/components/schemas/total_promotions_count'
            type: object
      description: La liste des promotions sur des objets a été reçue avec succès.
    Promotions_200-get-promocodes:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-admin-promocodes'
          schema:
            properties:
              active_promotions_count:
                $ref: '#/components/schemas/active_promotions_count'
              inactive_promotions_count:
                $ref: '#/components/schemas/inactive_promotions_count'
              items:
                items:
                  $ref: >-
                    #/components/schemas/Promotions_200-get-promocode-promotion-model
                type: array
              total_promotions_count:
                $ref: '#/components/schemas/total_promotions_count'
            type: object
      description: La liste des codes promo a été reçue avec succès.
    Promotions_200-get-promotions:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-admin-promotions'
          schema:
            properties:
              active_promotions_count:
                $ref: '#/components/schemas/active_promotions_count'
              inactive_promotions_count:
                $ref: '#/components/schemas/inactive_promotions_count'
              promotions:
                items:
                  $ref: '#/components/schemas/Promotions_200-get-promotion-model'
                type: array
              total_promotions_count:
                $ref: '#/components/schemas/total_promotions_count'
            type: object
      description: La liste des promotions a été reçue avec succès.
    Promotions_200-get-unique-catalog-offers:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-admin-unique-catalog-offers'
          schema:
            properties:
              active_promotions_count:
                $ref: '#/components/schemas/active_promotions_count'
              inactive_promotions_count:
                $ref: '#/components/schemas/inactive_promotions_count'
              items:
                items:
                  $ref: >-
                    #/components/schemas/Promotions_200-get-unique-catalog-offer-promotion-model
                type: array
              total_promotions_count:
                $ref: '#/components/schemas/total_promotions_count'
            type: object
      description: La liste des coupons a été reçue avec succès.
    Promotions_200-promo-code-canceled:
      content:
        application/json:
          examples:
            response:
              value:
                cart_id: cart_id
                is_free: false
                items:
                  - attributes: []
                    can_be_bought: true
                    description: >-
                      Take it, take it all! All of Xsolla's riches in one Mega
                      Booster.
                    groups:
                      - external_id: powerups
                        name: Power Ups
                    image_url: >-
                      https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png
                    is_free: false
                    limits:
                      per_user:
                        available: 3
                        recurrent_schedule:
                          interval_type: weekly
                          reset_next_date: 1746057600
                        total: 5
                    name: Xsolla Booster Mega
                    periods:
                      - date_from: '2020-08-11T10:00:00+03:00'
                        date_until: '2020-08-11T20:00:00+03:00'
                    price:
                      amount: '50.0000000000000000'
                      amount_without_discount: '100.0000000000000000'
                      currency: USD
                    promotions:
                      - bonus:
                          - image_url: >-
                              https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png
                            name: Xsolla Minigun
                            quantity: 1
                            sku: com.xsolla.minigun_1
                            type: virtual_good
                        date_end: '2026-04-15T16:16:00+03:00'
                        date_start: '2020-04-15T16:16:00+03:00'
                        discount:
                          percent: '50.00'
                        name: Bonus promotion
                    quantity: 123
                    sku: com.xsolla.booster_mega_1
                    type: virtual_good
                    virtual_item_type: consumable
                    virtual_prices: []
                    vp_rewards:
                      - amount: 130
                        image_url: >-
                          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                        item_id: 175232
                        name: Value point
                        sku: com.xsolla.value_point_1
                      - amount: 50
                        image_url: >-
                          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                        is_clan: true
                        item_id: 186321
                        name: Clan Reward VP 1
                        sku: com.xsolla.clan_value_point_1
                price:
                  amount: '6150.0000000000000000'
                  amount_without_discount: '6150.0000000000000000'
                  currency: USD
          schema:
            properties:
              cart_id:
                description: ID de panier.
                example: cart_id
                type: string
              is_free:
                $ref: '#/components/schemas/value-is_free'
              items:
                example:
                  - attributes: []
                    can_be_bought: true
                    description: >-
                      Take it, take it all! All of Xsolla's riches in one Mega
                      Booster.
                    groups:
                      - external_id: powerups
                        name: Power Ups
                    image_url: >-
                      https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png
                    is_free: false
                    limits:
                      per_user:
                        available: 3
                        recurrent_schedule:
                          interval_type: weekly
                          reset_next_date: 1746057600
                        total: 5
                    name: Xsolla Booster Mega
                    periods:
                      - date_from: '2020-08-11T10:00:00+03:00'
                        date_until: '2020-08-11T20:00:00+03:00'
                    price:
                      amount: '50.0000000000000000'
                      amount_without_discount: '100.0000000000000000'
                      currency: USD
                    promotions:
                      - bonus:
                          - image_url: >-
                              https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png
                            name: Xsolla Minigun
                            quantity: 1
                            sku: com.xsolla.minigun_1
                            type: virtual_good
                        date_end: '2026-04-15T16:16:00+03:00'
                        date_start: '2020-04-15T16:16:00+03:00'
                        discount:
                          percent: '50.00'
                        name: Bonus promotion
                    quantity: 123
                    sku: com.xsolla.booster_mega_1
                    type: virtual_good
                    virtual_item_type: consumable
                    virtual_prices: []
                    vp_rewards:
                      - amount: 130
                        image_url: >-
                          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                        item_id: 175232
                        name: Value point
                        sku: com.xsolla.value_point_1
                      - amount: 50
                        image_url: >-
                          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                        is_clan: true
                        item_id: 186321
                        name: Clan Reward VP 1
                        sku: com.xsolla.clan_value_point_1
                items:
                  properties:
                    attributes:
                      $ref: '#/components/schemas/client-attributes'
                    can_be_bought:
                      $ref: '#/components/schemas/Can_be_bought'
                    description:
                      type: string
                    groups:
                      items:
                        properties:
                          external_id:
                            type: string
                          name:
                            type: string
                        type: object
                      type: array
                    image_url:
                      type: string
                    is_free:
                      $ref: '#/components/schemas/value-is_free'
                    limits:
                      $ref: '#/components/schemas/Catalog_item_limits'
                    name:
                      nullable: true
                      type: string
                    periods:
                      $ref: '#/components/schemas/item-periods'
                    price:
                      description: Prix de l'objet.
                      nullable: true
                      properties:
                        amount:
                          description: Prix de l'objet avec remise.
                          example: '2.9900'
                          type: string
                        amount_without_discount:
                          description: Prix de l'objet.
                          example: '2.9900'
                          type: string
                        currency:
                          description: >-
                            Devise du prix de l'article. Code à trois lettres
                            selon [ISO
                            4217](https://en.wikipedia.org/wiki/ISO_4217).
                          example: USD
                          type: string
                      type: object
                    promotions:
                      $ref: '#/components/schemas/Catalog_item_promotions'
                    quantity:
                      type: integer
                    sku:
                      type: string
                    type:
                      type: string
                    virtual_item_type:
                      description: Type d'objet virtuel.
                      enum:
                        - consumable
                        - non_consumable
                        - non_renewing_subscription
                      example: non-consumable
                      type: string
                      x-enumDescriptions:
                        consumable: >-
                          Un objet qui disparaît de l'inventaire après
                          utilisation (par exemple, des munitions).
                        non_consumable: >-
                          Un objet qui reste dans l'inventaire pour une durée
                          illimitée.
                        non_renewing_subscription: >-
                          Objet à durée limitée qui peut représenter l'accès à
                          des services ou à du contenu pour une période de temps
                          limitée.
                    virtual_prices:
                      type: array
                    vp_rewards:
                      $ref: '#/components/schemas/client-item-value-point-reward'
                  type: object
                type: array
              price:
                description: Prix du panier.
                example:
                  amount: '6150.0000000000000000'
                  amount_without_discount: '6150.0000000000000000'
                  currency: USD
                nullable: true
                properties:
                  amount:
                    default: '50.0000000000000000'
                    type: string
                  amount_without_discount:
                    default: '100.0000000000000000'
                    type: string
                  currency:
                    default: USD
                    type: string
                type: object
            type: object
      description: Le code promo est annulé avec succès.
    Promotions_200-promo-code-redeemed:
      content:
        application/json:
          examples:
            response:
              value:
                cart_id: cart_id
                is_free: false
                items:
                  - attributes: []
                    can_be_bought: true
                    description: >-
                      Take it, take it all! All of Xsolla's riches in one Mega
                      Booster.
                    groups:
                      - external_id: powerups
                        name: Power Ups
                    image_url: >-
                      https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png
                    is_free: false
                    limits:
                      per_user:
                        available: 3
                        recurrent_schedule:
                          interval_type: weekly
                          reset_next_date: 1746057600
                        total: 5
                    name: Xsolla Booster Mega
                    periods:
                      - date_from: '2020-08-11T10:00:00+03:00'
                        date_until: '2020-08-11T20:00:00+03:00'
                    price:
                      amount: '50.0000000000000000'
                      amount_without_discount: '100.0000000000000000'
                      currency: USD
                    promotions:
                      - bonus:
                          - image_url: >-
                              https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png
                            name: Xsolla Minigun
                            quantity: 1
                            sku: com.xsolla.minigun_1
                            type: virtual_good
                        date_end: '2026-04-15T16:16:00+03:00'
                        date_start: '2020-04-15T16:16:00+03:00'
                        discount:
                          percent: '50.00'
                        name: Bonus promotion
                    quantity: 123
                    sku: com.xsolla.booster_mega_1
                    type: virtual_good
                    virtual_item_type: consumable
                    virtual_prices: []
                    vp_rewards:
                      - amount: 130
                        image_url: >-
                          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                        is_clan: false
                        item_id: 175232
                        name: Value point
                        sku: com.xsolla.value_point_1
                      - amount: 50
                        image_url: >-
                          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                        is_clan: true
                        item_id: 186321
                        name: Clan Reward VP 1
                        sku: com.xsolla.clan_value_point_1
                  - attributes: []
                    can_be_bought: true
                    description: >-
                      Honshu Boshin Wakizashi - Modern Tactical Samurai / Ninja
                      Sword - Hand Forged 1060 Carbon Steel - Full Tang, Fully
                      Functional, Battle Ready - Black TPR, Steel Guard and
                      Pommel.
                    groups: []
                    image_url: >-
                      https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png
                    is_free: true
                    limits:
                      per_user:
                        available: 3
                        recurrent_schedule:
                          interval_type: weekly
                          reset_next_date: 1746057600
                        total: 5
                    name: Sword Xsolla Skin
                    periods:
                      - date_from: '2020-08-11T10:00:00+03:00'
                        date_until: '2020-08-11T20:00:00+03:00'
                    price: []
                    promotions:
                      - bonus:
                          - image_url: >-
                              https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png
                            name: Xsolla Minigun
                            quantity: 1
                            sku: com.xsolla.minigun_1
                            type: virtual_good
                        date_end: '2026-04-15T16:16:00+03:00'
                        date_start: '2020-04-15T16:16:00+03:00'
                        discount:
                          percent: '50.00'
                        name: Bonus promotion
                    quantity: 1
                    sku: com.xsolla.swords_1
                    type: virtual_good
                    virtual_item_type: non_consumable
                    virtual_prices: []
                    vp_rewards:
                      - amount: 130
                        image_url: >-
                          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                        item_id: 175232
                        name: Value point
                        sku: com.xsolla.value_point_1
                      - amount: 50
                        image_url: >-
                          https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg
                        is_clan: true
                        item_id: 186321
                        name: Clan Reward VP 1
                        sku: com.xsolla.clan_value_point_1
                price:
                  amount: '6150.0000000000000000'
                  amount_without_discount: '12300.0000000000000000'
                  currency: USD
                rewards:
                  bonus:
                    - item:
                        description: >-
                          Honshu Boshin Wakizashi - Modern Tactical Samurai /
                          Ninja Sword - Hand Forged 1060 Carbon Steel - Full
                          Tang, Fully Functional, Battle Ready - Black TPR,
                          Steel Guard and Pommel.
                        image_url: >-
                          https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png
                        name: Sword Xsolla Skin
                        sku: com.xsolla.swords_1
                        type: virtual_good
                        virtual_item_type: non_consumable
                      quantity: 1
                  discount:
                    percent: null
                  discounted_items:
                    - discount:
                        percent: '50.00'
                      sku: com.xsolla.booster_mega_1
                  is_selectable: false
          schema:
            properties:
              cart_id:
                description: ID de panier.
                example: cart_id
                type: string
              is_free:
                $ref: '#/components/schemas/value-is_free'
              items:
                example:
                  - attributes: []
                    can_be_bought:
                      $ref: ../schemas/Can_be_bought.yaml
                    description: >-
                      Take it, take it all! All of Xsolla's riches in one Mega
                      Booster.
                    groups:
                      - external_id: powerups
                        name: Power Ups
                    image_url: >-
                      https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png
                    is_free: false
                    limits:
                      $ref: ../schemas/Catalog_item_limits.yaml
                    name: Xsolla Booster Mega
                    periods:
                      $ref: ../schemas/item-periods.yaml
                    price:
                      amount: '50.0000000000000000'
                      amount_without_discount: '100.0000000000000000'
                      currency: USD
                    promotions:
                      $ref: ../schemas/Catalog_item_promotions.yaml
                    quantity: 123
                    sku: com.xsolla.booster_mega_1
                    type: virtual_good
                    virtual_item_type: consumable
                    virtual_prices: []
                    vp_rewards:
                      $ref: >-
                        ../schemas/reward-chain-client/client-item-value-point-reward.yaml
                items:
                  properties:
                    can_be_bought:
                      $ref: '#/components/schemas/Can_be_bought'
                    description:
                      type: string
                    groups:
                      items:
                        properties:
                          external_id:
                            type: string
                          name:
                            type: string
                        type: object
                      type: array
                    image_url:
                      type: string
                    is_free:
                      $ref: '#/components/schemas/value-is_free'
                    limits:
                      $ref: '#/components/schemas/Catalog_item_limits'
                    name:
                      nullable: true
                      type: string
                    periods:
                      $ref: '#/components/schemas/item-periods'
                    promotions:
                      $ref: '#/components/schemas/Catalog_item_promotions'
                    quantity:
                      type: integer
                    sku:
                      type: string
                    type:
                      type: string
                    vp_rewards:
                      $ref: '#/components/schemas/client-item-value-point-reward'
                  type: object
                type: array
              price:
                description: Prix du panier.
                example:
                  amount: '6150.0000000000000000'
                  amount_without_discount: '6150.0000000000000000'
                  currency: USD
                nullable: true
                properties:
                  amount:
                    example: '50.0000000000000000'
                    type: string
                  amount_without_discount:
                    example: '100.0000000000000000'
                    type: string
                  currency:
                    example: USD
                    type: string
                type: object
              rewards:
                $ref: '#/components/schemas/Promo_code_rewards'
            type: object
      description: Le code promo a été utilisé avec succès.
    Promotions_200-promocode-code-list:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-coupon-code-list'
          schema:
            properties:
              codes:
                items:
                  properties:
                    code:
                      $ref: '#/components/schemas/Promotions_coupon_code'
                  type: object
                type: array
              total_count:
                description: Nombre total de codes pour un code promo.
                type: number
            type: object
      description: La liste des codes pour un code promo a été reçue avec succès.
    Promotions_200-promocode-rewards:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-get-promocode-rewards'
          schema:
            $ref: '#/components/schemas/Promo_code_rewards'
      description: >-
        La liste des récompenses associées au code promo a été reçue avec
        succès.
    Promotions_200-unique-catalog-offer-code-list:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/Promotions_200-coupon-code-list'
          schema:
            properties:
              codes:
                items:
                  properties:
                    code:
                      $ref: '#/components/schemas/Promotions_coupon_code'
                  type: object
                type: array
              total_count:
                description: Nombre total de codes d'offres uniques dans le catalogue.
                type: number
            type: object
      description: >-
        La liste des codes d'offres uniques dans le catalogue a été reçue avec
        succès.
    Promotions_200-verify-promo-code:
      content:
        application/json:
          examples:
            coupon info:
              value:
                code: WINTER2023
                rewards:
                  bonus:
                    - item:
                        description: Game description
                        image_url: >-
                          https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
                        name: Game name
                        sku: com.xsolla.game_1
                        type: unit
                        unit_items:
                          - drm_name: Steam
                            drm_sku: steam_key_1
                            is_free: false
                            name: Game name
                            sku: com.xsolla.game_key_01
                            type: game_key
                          - drm_name: Origin
                            drm_sku: origin_key_1
                            name: Game name
                            sku: com.xsolla.game_key_02
                            type: game_key
                      quantity: 1
                    - item:
                        description: Game description
                        image_url: >-
                          https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
                        name: Game name
                        sku: com.xsolla.game_2
                        type: unit
                        unit_items:
                          - drm_name: Steam
                            drm_sku: steam_key_1
                            name: Game name
                            sku: com.xsolla.game_key_01
                            type: game_key
                      quantity: 2
                  is_selectable: true
                type: coupon
            promocode info:
              value:
                code: SUMMER2023
                rewards:
                  bonus:
                    - item:
                        description: Game description
                        image_url: >-
                          https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
                        name: Game name
                        sku: com.xsolla.game_2
                        type: unit
                        unit_items:
                          - drm_name: Steam
                            drm_sku: steam_key_1
                            name: Game name
                            sku: com.xsolla.game_key_01
                            type: game_key
                      quantity: 2
                  discount:
                    percent: '10.00'
                  discounted_items:
                    - description: sword
                      discount:
                        percent: '10.00'
                      image_url: null
                      name: Elven sword
                      sku: com.xsolla.elven_sword_1
                      type: virtual_good
                  is_selectable: true
                type: promocode
          schema:
            properties:
              code:
                $ref: '#/components/schemas/Promotions_coupon_code'
              rewards:
                oneOf:
                  - $ref: '#/components/schemas/Coupon_rewards'
                  - $ref: '#/components/schemas/Promo_code_rewards_verify'
              type:
                description: "Type de code\_: `promocode`/`coupon`."
                type: string
            type: object
      description: Informations sur le code.
    Promotions_201-coupon-promocode-code-created:
      content:
        application/json:
          examples:
            response:
              value:
                code: WINTER2021
          schema:
            properties:
              code:
                $ref: '#/components/schemas/Promotions_coupon_code'
            type: object
      description: Le code a été créé avec succès.
    Promotions_201-create-promotion:
      content:
        application/json:
          examples:
            response:
              value:
                promotion_id: 2384756
          schema:
            properties:
              promotion_id:
                description: >-
                  ID de la promotion. Identifiant unique de la promotion au sein
                  du projet.
                type: integer
            type: object
      description: La promotion a été créée avec succès.
    Promotions_401-invalid-basic-auth:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1020
                errorMessage: '[0401-1020]: Error in Authentication method occurred'
                statusCode: 401
          schema:
            properties:
              errorCode:
                example: 1020
                type: integer
              errorMessage:
                example: '[0401-1020]: Error in Authentication method occurred'
                type: string
              statusCode:
                example: 401
                type: integer
            type: object
      description: >-
        L'authentification de base n'a pas été passée ou est incorrecte.
        Vérifiez que vous avez utilisé l'authentification de base ou des
        informations d'identification correctes.
    Promotions_401-invalid-client-auth:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1501
                errorMessage: '[0401-1501]: Authorization failed: Provide authorization'
                statusCode: 401
          schema:
            properties:
              errorCode:
                example: 1501
                type: integer
              errorMessage:
                example: '[0401-1501]: Authorization failed: Provide authorization'
                type: string
              statusCode:
                example: 401
                type: integer
            type: object
      description: L'authentification n'a pas été passée ou est incorrecte.
    Promotions_403-auth-header:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 0
                errorMessage: Authorization header not sent
                statusCode: 403
          schema:
            properties:
              errorCode:
                example: 0
                type: integer
              errorMessage:
                example: Authorization header not sent.
                type: string
              statusCode:
                example: 403
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: L'en-tête d'autorisation n'a pas été passé.
    Promotions_404-admin-coupon:
      content:
        application/json:
          schema:
            properties:
              errorCode:
                example: 4001
                type: integer
              errorMessage:
                example: '[0401-9802]: Coupon not found'
                type: string
              statusCode:
                example: 404
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: >-
        Coupon non trouvé. Assurez-vous que le paramètre `external_id` est
        correct.
    Promotions_404-admin-promocode:
      content:
        application/json:
          schema:
            properties:
              errorCode:
                example: 4001
                type: integer
              errorMessage:
                example: '[0401-9802]: Promocode not found'
                type: string
              statusCode:
                example: 404
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: >-
        Code promo non trouvé. Assurez-vous que le paramètre `external_id` est
        correct.
    Promotions_404-admin-promotion:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 9502
                errorMessage: >-
                  [0401-9502]: Can not find promotion with ID = 111425 in
                  project 59080
                statusCode: 404
          schema:
            properties:
              errorCode:
                example: 9502
                type: integer
              errorMessage:
                example: >-
                  [0401-9502]: Can not find promotion with ID = 111425 in
                  project 59080
                type: string
              statusCode:
                example: 404
                type: integer
            type: object
      description: >-
        Promotion non trouvée. Assurez-vous que le paramètre `promotion_id` est
        correct.
    Promotions_404-coupon:
      content:
        application/json:
          schema:
            properties:
              errorCode:
                example: 4001
                type: integer
              errorMessage:
                example: '[0401-9807]: Enter valid coupon code.'
                type: string
              statusCode:
                example: 404
                type: integer
            type: object
      description: Entrez un code de coupon valide.
    Promotions_404-promo-code:
      content:
        application/json:
          schema:
            properties:
              errorCode:
                example: 4001
                type: integer
              errorMessage:
                example: '[0401-9807]: Enter valid promo code.'
                type: string
              statusCode:
                example: 404
                type: integer
            type: object
      description: Entrez un code promo valide.
    Promotions_404-verify-promo-code:
      content:
        application/json:
          schema:
            properties:
              errorCode:
                example: 9811
                type: integer
              errorMessage:
                example: '[0401-9811]: Code not found.'
                type: string
              statusCode:
                example: 404
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: Code non trouvé. Assurez-vous que la valeur de `code` est correcte.
    Promotions_422-activate-deactivate-promotion:
      content:
        application/json:
          examples:
            Error was occurred:
              $ref: '#/components/examples/422-activate-deactivate-promotion'
          schema:
            properties:
              errorCode:
                example: 1102
                type: integer
              errorMessage:
                example: >-
                  [0401-9505]: Error was occurred while promotion was being
                  updated
                type: string
              statusCode:
                example: 422
                type: integer
              transactionId:
                example: da145238620011eb8e24fe6913ff226a
                type: string
            type: object
      description: Demande non valide.
    Promotions_422-admin-promotion-error:
      content:
        application/json:
          schema:
            properties:
              errorCode:
                example: 9502
                type: integer
              errorMessage:
                example: >-
                  [0401-9502]: Error occurred while receiving the promotion from
                  the promotion service
                type: string
              statusCode:
                example: 422
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: >-
        Une erreur s'est produite lors de la réception de la promotion par le
        service de promotion.
    Promotions_422-admin-promotion-missed-bonus-property:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1102
                errorMessage: >-
                  [0401-1102]: Unprocessable Entity. The property `bonus` is
                  required
                statusCode: 422
                transactionId: x-x-x-x-transactionId-mock-x-x-x
          schema:
            properties:
              errorCode:
                example: 1102
                type: integer
              errorMessage:
                example: >-
                  [0401-1102]:  Unprocessable Entity. The property `bonus` is
                  required
                type: string
              statusCode:
                example: 422
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: Demande non valide.
    Promotions_422-admin-promotion-missed-items-property:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1102
                errorMessage: >-
                  [0401-1102]: Unprocessable Entity. The property `items` is
                  required
                statusCode: 422
                transactionId: x-x-x-x-transactionId-mock-x-x-x
          schema:
            properties:
              errorCode:
                example: 1102
                type: integer
              errorMessage:
                example: >-
                  [0401-1102]:  Unprocessable Entity. The property `items` is
                  required
                type: string
              statusCode:
                example: 422
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: Demande non valide.
    Promotions_422-cancel-promo-code:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1102
                errorMessage: >-
                  [0401-1102]: Unprocessable Entity. The property `id` is
                  required
                statusCode: 422
          schema:
            properties:
              errorCode:
                example: 1102
                type: integer
              errorMessage:
                example: >-
                  [0401-1102]: Unprocessable Entity. The property `id` is
                  required
                type: string
              statusCode:
                example: 422
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: Demande non valide.
    Promotions_422-coupon-promocode-same-code-exists:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 9803
                errorMessage: '[0401-9803]: The code already exists.'
                statusCode: 422
                transactionId: x-x-x-x-transactionId-mock-x-x-x
          schema:
            properties:
              errorCode:
                example: 9803
                type: integer
              errorMessage:
                example: '[0401-9803]: The code already exists.'
                type: string
              statusCode:
                example: 422
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: Requête non valide. Le code existe déjà.
    Promotions_422-invalid-coupon:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1102
                errorMessage: >-
                  [0401-1102]: Unprocessable Entity. The property `external_id`
                  is required
                statusCode: 422
          schema:
            properties:
              errorCode:
                example: 1102
                type: integer
              errorMessage:
                example: >-
                  [0401-1102]: Unprocessable Entity. The property `external_id`
                  is required
                type: string
              statusCode:
                example: 422
                type: integer
            type: object
      description: Demande non valide.
    Promotions_422-redeem-coupon:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 1102
                errorMessage: >-
                  [0401-1102]: Unprocessable Entity. The property `coupon_code`
                  is required
                statusCode: 422
          schema:
            properties:
              errorCode:
                example: 1102
                type: integer
              errorMessage:
                example: >-
                  [0401-1102]: Unprocessable Entity. The property `coupon_code`
                  is required
                type: string
              statusCode:
                example: 422
                type: integer
              transactionId:
                example: x-x-x-x-transactionId-mock-x-x-x
                type: string
            type: object
      description: Demande non valide.
    Promotions_422-rewards:
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Promotions_422_limit_error'
              - $ref: '#/components/schemas/Promotions_422_reglock_error'
      description: Demande non valide.
    Promotions_422-verify-promo-code:
      content:
        application/json:
          examples:
            code redemption limit:
              value:
                errorCode: 9804
                errorMessage: '[0401-9804]: You have reached the coupon redemption limit.'
                statusCode: 422
            regionally restricted:
              value:
                errorCode: 9808
                errorMessage: '[0401-9808]: Coupon is not available in your region.'
                statusCode: 422
          schema:
            properties:
              errorCode:
                type: integer
              errorMessage:
                type: string
              statusCode:
                type: integer
            type: object
      description: Code promo non valide.
    Upsell-200-get-client-list:
      content:
        application/json:
          examples:
            response:
              value:
                has_more: true
                items:
                  - attributes:
                      - external_id: stack_size
                        name:
                          en: Quantity of items in the upsell set
                        values:
                          - external_id: size_e3364991f92e751689a68b96598a5a5a84010b85
                            value: '5'
                    can_be_bought: true
                    custom_attributes:
                      attr: value
                      purchased: 0
                    description: Big Rocket - description
                    groups:
                      - external_id: accessory
                        name:
                          en: accessory
                    image_url: >-
                      https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png
                    is_free: false
                    limits:
                      per_user:
                        available: 3
                        limit_exceeded_visibility: show
                        recurrent_schedule:
                          interval_type: weekly
                          reset_next_date: 1746057600
                        total: 5
                    name: Big Rocket
                    periods:
                      - date_from: '2020-08-11T10:00:00+03:00'
                        date_until: '2020-08-11T20:00:00+03:00'
                    price:
                      amount: '100.99'
                      amount_without_discount: '100.99'
                      currency: USD
                    promotions:
                      - bonus:
                          - image_url: >-
                              https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png
                            name: Xsolla Minigun
                            quantity: 1
                            sku: com.xsolla.minigun_1
                            type: virtual_good
                          - quantity: 1
                            sku: com.xsolla.phys_good_1
                            type: physical_good
                          - bundle_type: standard
                            image_url: >-
                              https://cdn.xsolla.net/img/misc/images/9676f06265375087e607cb79c5283688.png
                            name: Super Lootbox with items
                            quantity: 1
                            sku: com.xsolla.SuperLootboxBundle_1
                            type: bundle
                        date_end: '2026-04-15T16:16:00+03:00'
                        date_start: '2020-04-15T16:16:00+03:00'
                        discount: null
                        name: Bonus promotion
                    sku: com.xsolla.big_rocket_1
                    type: virtual_good
                    virtual_item_type: non_renewing_subscription
                    virtual_prices:
                      - amount: 100
                        amount_without_discount: 100
                        description: description
                        image_url: http://image.png
                        is_default: true
                        name: SHOTGUN FOR TRUE RAIDERS
                        sku: com.xsolla.vc_1
                        type: virtual_currency
                    vp_rewards: []
                  - attributes:
                      - external_id: stack_size
                        name:
                          en: Quantity of items in the upsell set
                        values:
                          - external_id: size_e3364991f92e751689a68b96598a5a5a84010b85
                            value: '5'
                      - external_id: rating
                        name:
                          en: Items rating
                        values:
                          - external_id: rating_e3364991f92e751689a68b96598a5a5a84010b85
                            value: '3.9'
                    can_be_bought: true
                    description: description
                    groups:
                      - external_id: hair
                        name:
                          en: hair
                    image_url: http://image.png
                    is_free: false
                    limits: null
                    name: SHOTGUN FOR TRUE RAIDERS
                    periods:
                      - date_from: '2020-08-11T20:00:00+03:00'
                        date_until: null
                    price:
                      amount: '101.0'
                      amount_without_discount: '101.0'
                      currency: USD
                    promotions: []
                    sku: com.xsolla.shotgun_raider_1
                    type: virtual_good
                    virtual_item_type: non_renewing_subscription
                    virtual_prices:
                      - amount: 100
                        amount_without_discount: 100
                        description: description
                        image_url: http://image.png
                        is_default: true
                        name: SHOTGUN FOR TRUE RAIDERS
                        sku: com.xsolla.vc_2
                        type: virtual_currency
                      - amount: 200
                        amount_without_discount: 200
                        description: description
                        image_url: http://image.png
                        is_default: false
                        name: SHOTGUN FOR TRUE RAIDERS
                        sku: com.xsolla.vc_3
                        type: virtual_currency
                    vp_rewards: []
                  - attributes: []
                    can_be_bought: true
                    description: description
                    groups: []
                    image_url: http://image.png
                    is_free: true
                    limits: null
                    name: SHOTGUN FOR TRUE RAIDERS
                    periods: []
                    price: null
                    promotions: []
                    sku: com.xsolla.shotgun_raider_2
                    type: virtual_good
                    virtual_item_type: non_renewing_subscription
                    virtual_prices: []
                    vp_rewards: []
          schema:
            $ref: '#/components/schemas/Upsell_item-list'
      description: Liste des objets de vente incitative reçue avec succès.
    Upsell-404-item-not-found:
      content:
        application/json:
          examples:
            response:
              value:
                errorCode: 9901
                errorMessage: '[0401-4001]: Items weren''t found: sku1, sku2'
                statusCode: 404
          schema:
            properties:
              errorCode:
                example: 4001
                type: integer
              errorMessage:
                example: '[0401-4001]: Items weren''t found: sku1, sku2'
                type: string
              statusCode:
                example: 404
                type: integer
            type: object
      description: Objet non trouvé.
    Upsell-422-invalid-request:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Upsell-422-invalid-request'
      description: Demande non valide.
    sellable-item-by-sku_404:
      content:
        application/json:
          schema:
            properties:
              errorCode:
                example: 4001
                type: integer
              errorMessage:
                example: '[0401-4001]: Item with sku = ''electric_shiel'' not found'
                type: string
              statusCode:
                example: 404
                type: integer
            type: object
      description: >-
        Objet non trouvé. Assurez-vous que les paramètres `project_id` et `sku`
        sont corrects.
  schemas:
    422-invalid-request:
      properties:
        errorCode:
          description: Code d'erreur.
          example: 1102
          type: number
        errorMessage:
          description: Message d'erreur lisible.
          example: >-
            [0401-1102]: Unprocessable Entity. The property `external_id` is
            required
          type: string
        statusCode:
          description: Code d'état de la réponse.
          example: 422
          type: number
        transactionId:
          description: ID unique de la demande.
          example: da145238620011eb8e24fe6913ff226a
          type: string
      type: object
    422-rc-vp-invalid-request:
      properties:
        errorCode:
          example: 1102
          type: integer
        errorMessage:
          example: >-
            [0401-1102]: Unprocessable Entity. The property `property_name` is
            required
          type: string
        statusCode:
          example: 422
          type: integer
        transactionId:
          example: x-x-x-x-transactionId-mock-x-x-x
          type: string
      type: object
    Can_be_bought:
      description: Si `true`, l'utilisateur peut acheter l'objet.
      example: true
      type: boolean
    Catalog_item_limits:
      description: Limites d'objets.
      nullable: true
      properties:
        per_item:
          description: Informations sur les limites pour un objet.
          nullable: true
          properties:
            available:
              description: >-
                Nombre d'objets restants que tous les utilisateurs peuvent
                acheter.
              example: 3
              type: integer
            total:
              description: >-
                Nombre maximal d'objets que tous les utilisateurs peuvent
                acheter.
              example: 5
              type: integer
          type: object
        per_user:
          description: Limites d'objets pour un utilisateur.
          nullable: true
          properties:
            available:
              description: Nombre d'objets restants que l'utilisateur actuel peut acheter.
              example: 3
              type: integer
            limit_exceeded_visibility:
              $ref: '#/components/schemas/limit_exceeded_visibility'
            recurrent_schedule:
              description: >-
                Délai d'actualisation récurrent des limites d'un objet pour un
                utilisateur.
              properties:
                interval_type:
                  description: Type de délai d'actualisation récurrent.
                  enum:
                    - daily
                    - weekly
                    - monthly
                    - hourly
                  type: string
                reset_next_date:
                  description: >-
                    Date et heure de la réinitialisation des limites (horodatage
                    Unix).
                  example: 1677553200
                  type: integer
              type: object
            total:
              description: Nombre maximal d'objets qu'un utilisateur unique peut acheter.
              example: 5
              type: integer
          type: object
      type: object
    Catalog_item_promotions:
      description: "Promotions appliquées à des objets spécifiques du panier. Le tableau est renvoyé dans les cas suivants\_:\n\n* Une promotion par réduction est configurée pour un objet spécifique.\n\n* Un code promo avec le paramètre **Discount on selected items** est appliqué.\n\nSi aucune promotion de ce type n'est appliquée, un tableau vide est renvoyé."
      items:
        properties:
          bonus:
            items:
              properties:
                bundle_type:
                  description: >-
                    Type de lot bonus. Disponible uniquement pour le type
                    d'objet `bundle`.
                  enum:
                    - standard
                    - virtual_currency_package
                  type: string
                image_url:
                  description: >-
                    URL de l'image de l'objet bonus. Non disponible pour le type
                    d'objet bonus `physical_good`.
                  type: string
                name:
                  description: >-
                    Nom de l'objet bonus. Non disponible pour le type d'objet
                    bonus `physical_good`.
                  type: string
                quantity:
                  type: integer
                sku:
                  type: string
                type:
                  description: Type d'objet bonus.
                  enum:
                    - virtual_good
                    - virtual_currency
                    - bundle
                    - physical_good
                    - game_key
                    - nft
                  type: string
              type: object
            type: array
          date_end:
            format: date-time
            nullable: true
            type: string
          date_start:
            format: date-time
            nullable: true
            type: string
          discount:
            nullable: true
            properties:
              percent:
                nullable: true
                type: string
              value:
                nullable: true
                type: string
            type: object
          limits:
            properties:
              per_user:
                properties:
                  available:
                    type: integer
                  total:
                    type: integer
                type: object
            type: object
          name:
            type: string
        type: object
      type: array
    Code-limit-promo-code:
      properties:
        code:
          $ref: '#/components/schemas/Promotions_coupon_code'
        per_code:
          properties:
            available:
              description: Nombre restant de fois qu'un code promo peut être utilisé.
              type: integer
            reserved:
              description: Nombre de fois qu'un code promo est réservé.
              type: integer
            total:
              description: Nombre maximum de fois qu'un code promo peut être utilisé.
              type: integer
            used:
              description: Nombre de fois qu'un code promo est utilisé.
              type: integer
          type: object
      type: object
    Common_admin-image_url:
      description: URL de l'image.
      example: https://image.example.com
      type: string
    Coupon_rewards:
      properties:
        bonus:
          items:
            $ref: '#/components/schemas/Promotions_200-coupon-bonus-reward'
          type: array
        is_selectable:
          description: >-
            Si `true`, l'utilisateur doit choisir le bonus avant d'échanger un
            coupon.
          type: boolean
      type: object
    Pagination_has-more:
      description: Utilisé pour indiquer qu'il y a plus de pages.
      example: true
      type: boolean
    Promo_code_rewards:
      properties:
        bonus:
          items:
            $ref: '#/components/schemas/Promotions_200-promo-code-bonus-reward'
          type: array
        discount:
          $ref: '#/components/schemas/Promotions_200-coupon-discount-reward'
        discounted_items:
          $ref: '#/components/schemas/Promotions_discounted_items'
        is_selectable:
          description: >-
            Si `true`, l'utilisateur doit choisir le bonus avant d'échanger un
            code promo.
          type: boolean
      type: object
    Promo_code_rewards_verify:
      properties:
        bonus:
          items:
            $ref: '#/components/schemas/Promotions_200-promo-code-bonus-reward'
          type: array
        discount:
          $ref: '#/components/schemas/Promotions_200-coupon-discount-reward'
        discounted_items:
          $ref: '#/components/schemas/Promotions_discounted_items_verify'
        is_selectable:
          description: >-
            Si `true`, l'utilisateur doit choisir le bonus avant d'échanger un
            code promo.
          type: boolean
      type: object
    Promotions_200-coupon-bonus-reward:
      properties:
        item:
          properties:
            bundle_type:
              description: Type de lot. Renvoyé si le type d'objet est un lot.
              enum:
                - standard
                - virtual_currency_package
              type: string
            content:
              type: array
            description:
              description: Description de l'objet.
              example: Game description
              nullable: true
              type: string
            image_url:
              description: URL de l'image.
              example: >-
                https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
              nullable: true
              type: string
            name:
              description: Nom de l'objet.
              example:
                en: Game name
              type: object
            sku:
              description: >-
                ID unique de l'objet. L'UGS ne peut comprendre que des
                caractères alphanumériques latins minuscules et majuscules, des
                points, des tirets et des traits bas.
              example: game_01
              type: string
            type:
              description: "Type d'objet\_: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`."
              example: unit
              type: string
            unit_items:
              description: >-
                Si l'objet est de type unit, il inclut tous les objets dans
                l'unité. Dans la plupart des cas, l'utilisateur doit en choisir
                un comme bonus de coupon.
              items:
                properties:
                  drm_name:
                    description: Nom du DRM.
                    example: Steam
                    type: string
                  drm_sku:
                    description: >-
                      ID unique du DRM. L'UGS ne peut comprendre que des
                      caractères alphanumériques latins minuscules et
                      majuscules, des points, des tirets et des traits bas.
                    example: steam
                    type: string
                  is_free:
                    type: boolean
                  name:
                    description: Nom de l'objet.
                    example: Game name
                    type: string
                  sku:
                    description: >-
                      ID unique de l'objet. L'UGS ne peut comprendre que des
                      caractères alphanumériques latins minuscules et
                      majuscules, des points, des tirets et des traits bas.
                    example: game_01
                    type: string
                  type:
                    description: "Type d'objet\_: `game_key`."
                    example: game_key
                    type: string
                type: object
              type: array
          type: object
        quantity:
          default: 1
          description: Quantité de l'objet.
          type: number
      type: object
    Promotions_200-coupon-discount-reward:
      description: >-
        Pourcentage de la remise.

        Le prix du panier sera réduit d'une valeur calculée à l'aide de ce
        pourcentage et arrondie à 2 décimales.
      nullable: true
      properties:
        percent:
          example: '10.00'
          type: string
      type: object
    Promotions_200-get-bonus-promotion-model:
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/promotion_user-attribute_conditions_model-get'
        bonus:
          items:
            description: >-
              Liste des objets qui seront ajoutés à l'achat de l'utilisateur en
              tant que bonus.
            properties:
              quantity:
                default: 1
                description: Quantité de l'objet.
                type: number
              sku:
                default: elven_shield
                description: UGS de l'objet.
                type: string
            type: object
          nullable: true
          type: array
        condition:
          description: >-
            Ensemble d'objets devant être inclus dans l'achat pour l'application
            d'une promotion. Si ce paramètre est défini sur `null`, la promotion
            s'applique à tous les achats effectués dans au sein du projet.
          items:
            properties:
              sku:
                default: elven_sword
                description: UGS de l'objet.
                type: string
            type: object
          nullable: true
          type: array
        excluded_promotions:
          $ref: '#/components/schemas/excluded_promotions'
        id:
          description: >-
            ID de la promotion. Identifiant unique de la promotion au sein du
            projet.
          type: integer
        is_enabled:
          default: true
          type: boolean
        limits:
          $ref: '#/components/schemas/Promotions_promotion_limits_response'
        name:
          additionalProperties:
            type: string
          description: >-
            Nom de la promotion. Doit comprendre des paires clé/valeur

            où la clé est une région au format "^[a-z]{2}-[A-Z]{2}$", la valeur
            est une chaîne.
          example:
            de-DE: Sommersaison Bonus
            en-US: Summer season bonus
          type: object
        price_conditions:
          $ref: '#/components/schemas/price_conditions_bonus'
        promotion_periods:
          $ref: '#/components/schemas/promotion_periods'
      type: object
    Promotions_200-get-promocode-promotion-model:
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/promotion_user-attribute_conditions_model-get'
        bonus:
          $ref: '#/components/schemas/Promotions_coupon_bonus'
        discount:
          example:
            discount:
              percent: '10.99'
          nullable: true
          properties:
            percent:
              $ref: '#/components/schemas/Promotions_promotion_discount_percent'
          type: object
        discounted_items:
          $ref: '#/components/schemas/Promotions_discounted_items'
        excluded_promotions:
          $ref: '#/components/schemas/excluded_promotions'
        external_id:
          $ref: '#/components/schemas/Promotions_coupon-external_id'
        is_enabled:
          $ref: '#/components/schemas/Promotions_coupon-is_enabled'
        item_price_conditions:
          $ref: '#/components/schemas/item_price_conditions_promocode'
        name:
          $ref: '#/components/schemas/Promotions_coupon_name'
        price_conditions:
          $ref: '#/components/schemas/price_conditions_promocode'
        promotion_periods:
          $ref: '#/components/schemas/promotion_periods'
        redeem_code_limit:
          $ref: '#/components/schemas/Promotions_redeem_code_limit'
        redeem_total_limit:
          $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
        redeem_user_limit:
          $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
        total_limit_state:
          $ref: '#/components/schemas/Promotions_promocode_total_limit_state'
      type: object
    Promotions_200-get-promotion-model:
      properties:
        bonus:
          items:
            $ref: '#/components/schemas/Promotions_200-coupon-bonus-reward'
          type: array
        condition:
          $ref: '#/components/schemas/Promotions_promotion_condition'
        discount:
          example:
            discount:
              percent: '10.99'
          nullable: true
          properties:
            percent:
              $ref: '#/components/schemas/Promotions_promotion_discount_percent'
          type: object
        id:
          $ref: '#/components/schemas/Promotions_promotion_id'
        is_enabled:
          $ref: '#/components/schemas/Promotions_coupon-is_enabled'
        limits:
          $ref: '#/components/schemas/Promotions_promotion_limits_response'
        name:
          $ref: '#/components/schemas/Promotions_coupon_name'
        promotion_periods:
          $ref: '#/components/schemas/promotion_periods'
        type:
          $ref: '#/components/schemas/Promotions_promotion_type'
      type: object
    Promotions_200-get-unique-catalog-offer-promotion-model:
      properties:
        external_id:
          $ref: '#/components/schemas/Promotions_coupon-external_id'
        is_enabled:
          $ref: '#/components/schemas/Promotions_coupon-is_enabled'
        items:
          $ref: '#/components/schemas/Promotions_unique_catalog_offer_items'
        name:
          $ref: '#/components/schemas/Promotions_coupon_name'
        promotion_periods:
          $ref: '#/components/schemas/promotion_periods'
        redeem_code_limit:
          $ref: '#/components/schemas/Promotions_redeem_code_limit'
        redeem_total_limit:
          $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
        redeem_user_limit:
          $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
        total_limit_state:
          $ref: '#/components/schemas/Promotions_coupon_total_limit_state'
      type: object
    Promotions_200-promo-code-bonus-reward:
      properties:
        item:
          properties:
            description:
              description: Description de l'objet.
              example: Game description
              type: string
            image_url:
              description: URL de l'image.
              example: >-
                https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
              type: string
            name:
              description: Nom de l'objet.
              example: Game name
              type: string
            sku:
              description: >-
                ID unique de l'objet. L'UGS ne peut comprendre que des
                caractères alphanumériques latins minuscules et majuscules, des
                points, des tirets et des traits bas.
              example: game_01
              type: string
            type:
              description: "Type d'objet\_: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`."
              example: unit
              type: string
            unit_items:
              description: >-
                Si l'objet est de type unit, il inclut tous les objets dans
                l'unité. Dans la plupart des cas, l'utilisateur doit en choisir
                un comme bonus de code promo.
              items:
                properties:
                  drm_name:
                    description: Nom du DRM.
                    example: Steam
                    type: string
                  drm_sku:
                    description: >-
                      ID unique du DRM. L'UGS ne peut comprendre que des
                      caractères alphanumériques latins minuscules et
                      majuscules, des points, des tirets et des traits bas.
                    example: steam
                    type: string
                  is_free:
                    $ref: '#/components/schemas/value-is_free'
                  name:
                    description: Nom de l'objet.
                    example: Game name
                    type: string
                  sku:
                    description: >-
                      ID unique de l'objet. L'UGS ne peut comprendre que des
                      caractères alphanumériques latins minuscules et
                      majuscules, des points, des tirets et des traits bas.
                    example: game_01
                    type: string
                  type:
                    description: "Type d'objet\_: `game_key`."
                    example: game_key
                    type: string
                type: object
              type: array
          type: object
        quantity:
          default: 1
          description: Quantité de l'objet.
          type: number
      type: object
    Promotions_422_limit_error:
      description: La limite des échanges est atteinte.
      example:
        errorCode: 9804
        errorMessage: '[0401-9804]: You have reached the coupon redemption limit.'
        statusCode: 422
      properties:
        errorCode:
          example: 9804
          type: integer
        errorMessage:
          example: '[0401-9804]: You have reached the coupon redemption limit.'
          type: string
        statusCode:
          example: 422
          type: integer
        transactionId:
          example: x-x-x-x-transactionId-mock-x-x-x
          type: string
      type: object
    Promotions_422_reglock_error:
      description: Le coupon n'est pas disponible dans la région de l'utilisateur.
      example:
        errorCode: 9804
        errorMessage: '[0401-9804]: You have reached the coupon redemption limit.'
        statusCode: 422
      properties:
        errorCode:
          example: 9808
          type: integer
        errorMessage:
          example: '[0401-9808]: Coupon is not available in your region.'
          type: string
        statusCode:
          example: 422
          type: integer
        transactionId:
          example: x-x-x-x-transactionId-mock-x-x-x
          type: string
      type: object
    Promotions_cart_item_discount:
      default: '10.00'
      description: |-
        Pourcentage de la remise.

        Le prix du panier sera réduit d'une valeur
        calculée à l'aide de ce pourcentage et arrondie
        à 2 décimales.
      example: '10.00'
      nullable: false
      type: string
    Promotions_coupon-external_id:
      default: coupon_external_id
      description: >-
        ID unique de la promotion. Le `external_id` ne peut comprendre que des
        caractères alphanumériques latins minuscules et majuscules, des points,
        des tirets et des traits bas.
      example: coupon_external_id
      type: string
    Promotions_coupon-generate-count:
      example: 10
      maximum: 100000
      minimum: 1
      type: integer
    Promotions_coupon-is_enabled:
      default: true
      type: boolean
    Promotions_coupon-redeem_total_limit:
      default: 10
      description: Limite le nombre total de coupons.
      example: 10
      nullable: true
      type: integer
    Promotions_coupon-redeem_user_limit:
      default: 10
      description: >-
        Limite le nombre total de coupons pouvant être échangés par un seul
        utilisateur.
      example: 10
      nullable: true
      type: integer
    Promotions_coupon_bonus:
      items:
        description: >-
          Liste des objets qui seront ajoutés à l'achat de l'utilisateur en tant
          que bonus.
        properties:
          quantity:
            default: 1
            description: Quantité de l'objet.
            type: number
          sku:
            default: elven_shield
            description: UGS de l'objet.
            type: string
        type: object
      nullable: true
      type: array
    Promotions_coupon_code:
      default: WINTER2021
      description: Code unique sensible à la casse. Comprend des lettres et des chiffres.
      example: WINTER2021
      maxLength: 128
      minLength: 1
      pattern: ^[a-zA-Z0-9]+$
      type: string
    Promotions_coupon_date_end:
      default: '2020-04-15T18:16:00+05:00'
      description: >-
        Date de fin de la promotion. Peut prendre la valeur `null`. Si
        `date_end` est défini sur `null`, la promotion sera illimitée dans le
        temps.
      format: date-time
      nullable: true
      type: string
    Promotions_coupon_date_start:
      default: '2020-04-15T18:16:00+05:00'
      description: Date de début de la promotion.
      format: date-time
      nullable: true
      type: string
    Promotions_coupon_name:
      additionalProperties:
        type: string
      default:
        de-DE: Gutscheintitel
        en-US: Coupon title
      description: >-
        Nom de la promotion. Doit comprendre des paires clé/valeur

        où la clé est une région au format "^[a-z]{2}-[A-Z]{2}$", la valeur est
        une chaîne.
      example:
        de-DE: Gutscheintitel
        en-US: Coupon title
      type: object
    Promotions_coupon_total_limit_state:
      description: Limites pour chaque code de coupon unique.
      nullable: true
      properties:
        available:
          description: Nombre restant de fois qu'un coupon peut être utilisé.
          example: 3
          type: integer
        reserved:
          description: Numéro réservé d'un coupon.
          example: 3
          type: integer
        used:
          description: Nombre de fois qu'un coupon est utilisé.
          example: 5
          type: integer
      type: object
    Promotions_discounted_items:
      description: Liste des objets bénéficiant d'une remise grâce à un code promo.
      items:
        description: Remise pour des objets spécifiques du panier.
        minItems: 1
        properties:
          discount:
            nullable: false
            properties:
              percent:
                $ref: '#/components/schemas/Promotions_cart_item_discount'
            required:
              - percent
            type: object
          sku:
            default: elven_shield
            description: UGS de l'objet.
            type: string
        required:
          - sku
          - discount
        type: object
      nullable: true
      type: array
    Promotions_discounted_items_verify:
      description: Liste des objets bénéficiant d'une remise grâce à un code promo.
      items:
        description: Remise pour des objets spécifiques.
        properties:
          description:
            description: Description de l'objet.
            example: Game description
            type: string
          discount:
            nullable: false
            properties:
              percent:
                $ref: '#/components/schemas/Promotions_cart_item_discount'
            type: object
          image_url:
            description: URL de l'image.
            example: >-
              https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
            type: string
          name:
            description: Nom de l'objet.
            example: Game name
            type: string
          sku:
            description: >-
              ID unique de l'objet. L'UGS ne peut comprendre que des caractères
              alphanumériques latins minuscules et majuscules, des points, des
              tirets et des traits bas.
            example: game_01
            type: string
          type:
            description: "Type d'objet\_: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`."
            example: unit
            type: string
          unit_items:
            description: >-
              Si l'objet est de type unit, il inclut tous les objets dans
              l'unité. Dans la plupart des cas, l'utilisateur doit en choisir un
              comme bonus de code promo.
            items:
              properties:
                drm_name:
                  description: Nom du DRM.
                  example: Steam
                  type: string
                drm_sku:
                  description: >-
                    ID unique du DRM. L'UGS ne peut comprendre que des
                    caractères alphanumériques latins minuscules et majuscules,
                    des points, des tirets et des traits bas.
                  example: steam
                  type: string
                name:
                  description: Nom de l'objet.
                  example: Game name
                  type: string
                sku:
                  description: >-
                    ID unique de l'objet. L'UGS ne peut comprendre que des
                    caractères alphanumériques latins minuscules et majuscules,
                    des points, des tirets et des traits bas.
                  example: game_01
                  type: string
                type:
                  description: "Type d'objet\_: `game_key`."
                  example: game_key
                  type: string
              type: object
            type: array
        type: object
      nullable: true
      type: array
    Promotions_is_enabled:
      description: Si la promotion est activée ou non.
      example: true
      type: boolean
    Promotions_name:
      additionalProperties:
        type: string
      default:
        de-DE: Artikeltitel
        en-US: Item title
      description: >-
        Nom de l'objet. Doit comprendre des paires clé/valeur

        où la clé est une région au format "^[a-z]{2}-[A-Z]{2}$", la valeur est
        une chaîne.
      example:
        de-DE: Artikeltitel
        en-US: Item title
      type: object
    Promotions_promocode_total_limit_state:
      description: Limites pour chaque code promo unique.
      nullable: true
      properties:
        available:
          description: Nombre restant de fois qu'un code promo peut être utilisé.
          example: 3
          type: integer
        reserved:
          description: Numéro réservé d'un code promo.
          example: 3
          type: integer
        used:
          description: Nombre de fois qu'un code promo est utilisé.
          example: 5
          type: integer
      type: object
    Promotions_promotion_condition:
      items:
        description: Liste des objets pour lesquels l'utilisateur a reçu un bonus.
        properties:
          item:
            properties:
              description:
                description: Description de l'objet.
                example: Game description
                nullable: true
                type: string
              external_id:
                description: >-
                  External ID de la promotion. Identifiant unique de la
                  promotion au sein du projet.
                maxLength: 255
                minLength: 1
                pattern: ^[-_.\d\w]+$
                type: string
              image_url:
                description: URL de l'image.
                example: >-
                  https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
                nullable: true
                type: string
              is_enabled:
                type: boolean
              name:
                $ref: '#/components/schemas/Promotions_name'
              redeem_code_limit:
                $ref: '#/components/schemas/Promotions_redeem_code_limit'
              redeem_total_limit:
                nullable: true
                type: integer
              redeem_user_limit:
                nullable: true
                type: integer
              sku:
                $ref: '#/components/schemas/Promotions_sku'
              type:
                $ref: '#/components/schemas/Promotions_type'
            type: object
        type: object
      nullable: true
      type: array
    Promotions_promotion_discount_percent:
      default: '10.00'
      description: >-
        Pourcentage de la remise.

        Le prix du panier sera réduit d'une valeur calculée à l'aide de ce
        pourcentage et arrondie à 2 décimales.
      example: '10.00'
      nullable: true
      type: string
    Promotions_promotion_id:
      description: >-
        ID de la promotion. Identifiant unique de la promotion au sein du
        projet.
      example: 1
      type: integer
    Promotions_promotion_limits:
      description: Limites de la promotion.
      properties:
        per_user:
          description: Limites de la promotion pour un utilisateur spécifique.
          nullable: true
          type: integer
        recurrent_schedule:
          $ref: '#/components/schemas/promotion_recurrent_schedule_response'
      type: object
    Promotions_promotion_limits_response:
      description: Limites de la promotion.
      properties:
        per_item:
          description: Limites globales d'objets.
          example: 10
          nullable: true
          type: integer
        per_user:
          description: Limites de la promotion pour un utilisateur spécifique.
          nullable: true
          properties:
            total:
              description: >-
                Nombre total d'objets qu'un utilisateur peut acheter. Définissez
                ce nombre dans le Compte éditeur ou utilisez les endpoints
                administrateur pour les entités de Store (objet contenant des
                limites).
              example: 5
              type: integer
          type: object
        recurrent_schedule:
          $ref: '#/components/schemas/promotion_recurrent_schedule_response'
      type: object
    Promotions_promotion_type:
      description: Type de promotion.
      example: item_discount
      type: string
    Promotions_redeem_code_limit:
      default: 10
      description: Nombre d'échanges par code.
      example: 10
      nullable: true
      type: integer
    Promotions_selected_unit_items:
      additionalProperties:
        type: string
      description: >-
        Récompense sélectionnée par l'utilisateur.

        La clé d'objet est l'UGS d'une unité et la valeur est l'UGS de l'un des
        objets de l'unité.
      example:
        game_1: game_1_steam
        game_2: game_2_playstation
      type: object
    Promotions_sku:
      description: >-
        ID unique de l'objet. L'UGS ne peut comprendre que des caractères
        alphanumériques latins minuscules et majuscules, des points, des tirets
        et des traits bas.
      example: booster_mega_1
      type: string
    Promotions_type:
      description: "Type d'objet\_: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`."
      type: string
    Promotions_unique_catalog_offer_items:
      description: >-
        Liste d'UGS des objets qui sont disponibles après avoir utilisé une
        offre unique du catalogue.
      items:
        $ref: '#/components/schemas/sku'
      type: array
    Upsell-422-invalid-request:
      properties:
        errorCode:
          example: 1102
          type: integer
        errorMessage:
          example: >-
            [0401-1102]: Unprocessable entity. The property `is_enabled` is
            required
          type: string
        statusCode:
          example: 422
          type: integer
        transactionId:
          example: x-x-x-x-transactionId-mock-x-x-x
          type: string
      type: object
    Upsell-model:
      description: Type de vente incitative.
      properties:
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        items:
          default: null
          description: Tableau des UGS d'objets.
          example:
            - game_sku
          items:
            type: string
          type: array
        type:
          enum:
            - fixed_list
          example: true
          type: string
      required:
        - is_enabled
        - type
        - items
      type: object
    Upsell-model-not-fixed-list:
      description: Type de vente incitative.
      properties:
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        items:
          default: null
          description: Tableau vide des UGS d'objets
          example:
            - null
          items:
            type: string
          type: array
        type:
          enum:
            - most_sellable
            - only_promotions
          example: true
          type: string
      required:
        - is_enabled
        - type
      type: object
    Upsell_item:
      properties:
        attributes:
          $ref: '#/components/schemas/Virtual-Items-Currency_client-attributes'
        can_be_bought:
          $ref: '#/components/schemas/Can_be_bought'
        custom_attributes:
          $ref: '#/components/schemas/item-custom-attributes-response'
        description:
          description: Description de l'objet.
          example: Big Rocket - description
          type: string
        groups:
          $ref: '#/components/schemas/Virtual-Items-Currency_admin-groups-response'
        image_url:
          description: URL de l'image.
          example: >-
            https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png
          type: string
        is_free:
          $ref: '#/components/schemas/value-is_free'
        limits:
          $ref: '#/components/schemas/Catalog_item_limits'
        name:
          description: Nom de l'objet.
          example: Big Rocket
          type: string
        periods:
          $ref: '#/components/schemas/item-periods-response'
        price:
          description: Prix de l'objet.
          nullable: true
          properties:
            amount:
              description: Prix de l'objet avec remise.
              example: '100.99'
              type: string
            amount_without_discount:
              description: Prix de l'objet.
              example: '100.99'
              type: string
            currency:
              description: >-
                Devise du prix de l'article. Code à trois lettres selon [ISO
                4217](https://en.wikipedia.org/wiki/ISO_4217).
              example: USD
              type: string
          type: object
        promotions:
          $ref: '#/components/schemas/Catalog_item_promotions'
        sku:
          description: >-
            ID unique de l'objet. L'UGS ne peut comprendre que des caractères
            alphanumériques latins minuscules et majuscules, des points, des
            tirets et des traits bas.
          example: big_rocket
          type: string
        type:
          description: "Type d'objet\_: `virtual_good`/`virtual_currency`/`bundle`."
          example: virtual_good
          type: string
        virtual_item_type:
          description: Type d'objet virtuel.
          enum:
            - consumable
            - non_consumable
            - non_renewing_subscription
          example: non-consumable
          type: string
          x-enumDescriptions:
            consumable: >-
              Un objet qui disparaît de l'inventaire après utilisation (par
              exemple, des munitions).
            non_consumable: Un objet qui reste dans l'inventaire pour une durée illimitée.
            non_renewing_subscription: >-
              Objet à durée limitée qui peut représenter l'accès à des services
              ou à du contenu pour une période de temps limitée.
        virtual_prices:
          description: Prix virtuels.
          items:
            description: Prix virtuel.
            properties:
              amount:
                description: Prix de l'objet réduit en monnaie virtuelle.
                example: 100
                type: integer
              amount_without_discount:
                description: Prix de l'objet.
                example: 200
                type: integer
              description:
                description: Description de la monnaie virtuelle.
                example: Big Rocket - description
                type: string
              image_url:
                description: Image de la monnaie virtuelle.
                example: http://image.png
                type: string
              is_default:
                description: Indique si le prix est le prix par défaut de l'objet.
                example: true
                type: boolean
              name:
                description: Nom de la monnaie virtuelle.
                example: SHOTGUN FOR TRUE RAIDERS
                type: string
              sku:
                description: UGS de la monnaie virtuelle.
                example: vc_test
                type: string
              type:
                description: Type de monnaie virtuelle.
                example: virtual_currency
                type: string
            type: object
          type: array
        vp_rewards:
          $ref: '#/components/schemas/client-item-value-point-reward'
      type: object
    Upsell_item-list:
      properties:
        has_more:
          $ref: '#/components/schemas/Pagination_has-more'
        items:
          items:
            $ref: '#/components/schemas/Upsell_item'
          type: array
      type: object
    User-limit-coupon:
      properties:
        per_user:
          properties:
            available:
              description: >-
                Nombre restant de fois qu'un utilisateur peut utiliser un
                coupon.
              example: 9
              type: integer
            total:
              description: >-
                Nombre maximum de fois qu'un utilisateur peut utiliser un
                coupon.
              example: 10
              type: integer
          type: object
      type: object
    User-limit-promo-code:
      properties:
        per_user:
          properties:
            available:
              description: >-
                Nombre restant de fois qu'un utilisateur peut utiliser un code
                promo.
              example: 9
              type: integer
            total:
              description: >-
                Nombre maximum de fois qu'un utilisateur peut utiliser un code
                promo.
              example: 10
              type: integer
          type: object
      type: object
    User-limit-promotion:
      properties:
        per_user:
          properties:
            available:
              description: >-
                Nombre restant de fois qu'un utilisateur peut utiliser une
                promotion.
              example: 9
              type: integer
            total:
              description: >-
                Nombre maximum de fois qu'un utilisateur peut utiliser une
                promotion.
              example: 10
              type: integer
          type: object
      type: object
    User-limit_available:
      description: >-
        Nombre restant d'objets ou d'utilisations de la promotion disponibles
        pour l'utilisateur dans la limite appliquée.
      minimum: 1
      type: integer
    User-limit_available_flexible:
      description: >-
        Nombre restant d'objets ou d'utilisations de la promotion disponibles
        pour l'utilisateur dans la limite appliquée.
      minimum: 0
      type: integer
    User-limit_user:
      properties:
        user_external_id:
          $ref: '#/components/schemas/User-limit_user-external-id'
      required:
        - user_external_id
      type: object
    User-limit_user-external-id:
      description: External ID de l'utilisateur
      minLength: 1
      pattern: ^\S+$
      type: string
    User-limit_user_flexible:
      nullable: true
      properties:
        user_external_id:
          $ref: '#/components/schemas/User-limit_user-external-id'
      type: object
    Value-point-item-model:
      properties:
        can_delete:
          description: >-
            Détermine si un point de valeur peut être supprimé. Si la valeur est
            `false`, le point de valeur ne peut être supprimé, car il est
            utilisé dans une ou plusieurs chaînes de récompenses. Pour le
            supprimer, vous devez d'abord
            [supprimer](https://developers.xsolla.com/fr/api/shop-builder/operation/admin-delete-reward-chain/)
            toutes les chaînes de récompenses qui le contiennent.


            Si la valeur est `true`, le point de valeur n'est utilisé dans
            aucune chaîne de récompenses et vous pouvez [le
            supprimer](https://developers.xsolla.com/fr/api/shop-builder/operation/admin-delete-value-point/).
          type: boolean
        description:
          $ref: '#/components/schemas/description-localization-object'
        image_url:
          type: string
        is_clan:
          $ref: '#/components/schemas/is_clan'
        is_enabled:
          type: boolean
        long_description:
          $ref: '#/components/schemas/long-description-localization-object'
        media_list:
          description: >-
            Ressources supplémentaires de l'objet, telles que des captures
            d'écran, des vidéos de gameplay, etc.
          example:
            - type: image
              url: >-
                https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
          items:
            properties:
              type:
                description: "Type de média\_: `image`/`video`."
                enum:
                  - image
                  - video
                example: image
                type: string
              url:
                description: Fichier de ressources.
                example: >-
                  https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
                type: string
            type: object
          type: array
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          description: Définit l'ordre d'empilement.
          example: 1
          type: integer
        sku:
          description: >-
            ID unique de l'objet. L'UGS ne peut comprendre que des caractères
            alphanumériques latins minuscules et majuscules, des points, des
            tirets et des traits bas.
          example: booster_mega_1
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_\-–.]*$
          type: string
        type:
          description: Type d'objet.
          type: string
      type: object
    Value-points-item-model:
      properties:
        description:
          $ref: '#/components/schemas/description-localization-object'
        image_url:
          type: string
        is_clan:
          $ref: '#/components/schemas/is_clan'
        is_enabled:
          type: boolean
        long_description:
          $ref: '#/components/schemas/long-description-localization-object'
        media_list:
          description: >-
            Ressources supplémentaires de l'objet, telles que des captures
            d'écran, des vidéos de gameplay, etc.
          example:
            - type: image
              url: >-
                https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
          items:
            properties:
              type:
                description: "Type de média\_: `image`/`video`."
                enum:
                  - image
                  - video
                example: image
                type: string
              url:
                description: Fichier de ressources.
                example: >-
                  https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
                type: string
            type: object
          type: array
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          description: Définit l'ordre d'empilement.
          example: 1
          type: integer
        sku:
          description: >-
            ID unique de l'objet. L'UGS ne peut comprendre que des caractères
            alphanumériques latins minuscules et majuscules, des points, des
            tirets et des traits bas.
          example: booster_mega_1
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_\-–.]*$
          type: string
        type:
          description: Type d'objet.
          type: string
      type: object
    Virtual-Items-Currency_admin-groups-response:
      default: []
      description: Groupes auxquels l'objet appartient.
      example:
        - external_id: horror
          name:
            en: Horror
      items:
        properties:
          external_id:
            example: horror
            type: string
          name:
            additionalProperties:
              type: string
            default:
              en: Horror
            description: >-
              Nom de l'objet. Doit comprendre des paires clé/valeur

              où la clé est une région au format "^[a-z]{2}", la valeur est une
              chaîne.
            example:
              de: Horror
              en: Horror
            type: object
        type: object
      type: array
    Virtual-Items-Currency_client-attributes:
      default: []
      description: >-
        Liste des attributs et de leurs valeurs correspondantes pour l'objet.
        Peut être utilisée pour le filtrage du catalogue.
      example:
        value:
          external_id: genre
          name: Жанр
          values:
            - external_id: genre_e3364991f92e751689a68b96598a5a5a84010b85
              value: Casual
            - external_id: genre_eba07bfd0f982940773cba3744d97264dd58acd7
              value: Strategy
            - external_id: genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8
              value: Mobile
      items:
        properties:
          external_id:
            $ref: '#/components/schemas/admin-attribute-external_id'
          name:
            additionalProperties:
              nullable: true
              type: string
            description: Nom de l'attribut.
            example: Genre
            type: object
          values:
            items:
              properties:
                external_id:
                  $ref: '#/components/schemas/value-external_id'
                value:
                  description: Valeur de l'attribut.
                  example: Strategy
                  type: string
              type: object
            type: array
        type: object
      type: array
    active_promotions_count:
      description: Nombre de promotions actives.
      type: integer
    admin-attribute-external_id:
      description: >-
        ID unique de l'attribut. Le `external_id` ne peut comprendre que des
        caractères alphanumériques latins minuscules et majuscules, des tirets
        et des traits bas.
      example: attribute_1
      maxLength: 255
      minLength: 1
      pattern: ^[a-zA-Z0-9-_]+$
      type: string
    admin-calendar-hard-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/calendar-hard-daily-chain-base'
        - description: >-
            Récompense quotidienne de type calendar_hard pour les réponses des
            administrateurs.
          properties:
            date_end:
              $ref: '#/components/schemas/daily_chain_date_end'
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            number_of_steps:
              $ref: '#/components/schemas/daily_chain_number_of_step'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/admin-daily-chain-step-model'
              type: array
          type: object
    admin-calendar-hard-daily-chain-short-model:
      allOf:
        - $ref: '#/components/schemas/calendar-hard-daily-chain-base'
        - description: Récompense quotidienne de `calendar_hard` (version courte).
          properties:
            date_end:
              $ref: '#/components/schemas/daily_chain_date_end'
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            number_of_steps:
              $ref: '#/components/schemas/daily_chain_number_of_step'
            order:
              $ref: '#/components/schemas/order'
          type: object
    admin-daily-chain-item-model:
      properties:
        description:
          $ref: '#/components/schemas/long-description-localization-object'
        image_url:
          $ref: '#/components/schemas/image_url'
        item_id:
          $ref: '#/components/schemas/item_id'
        name:
          $ref: '#/components/schemas/two-letter-locale'
        quantity:
          description: Nombre d'objets.
          example: 1
          minimum: 1
          type: integer
        sku:
          $ref: '#/components/schemas/sku'
        type:
          $ref: '#/components/schemas/item_type'
      type: object
    admin-daily-chain-long-model:
      discriminator:
        mapping:
          calendar_hard: '#/components/schemas/admin-calendar-hard-daily-chain-model'
          rolling_skippable: '#/components/schemas/admin-rolling-skippable-daily-chain-model'
          rolling_unskippable: '#/components/schemas/admin-rolling-unskippable-daily-chain-model'
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/admin-calendar-hard-daily-chain-model'
        - $ref: '#/components/schemas/admin-rolling-skippable-daily-chain-model'
        - $ref: '#/components/schemas/admin-rolling-unskippable-daily-chain-model'
    admin-daily-chain-short-model:
      discriminator:
        mapping:
          calendar_hard: '#/components/schemas/admin-calendar-hard-daily-chain-short-model'
          rolling_skippable: '#/components/schemas/admin-rolling-skippable-daily-chain-short-model'
          rolling_unskippable: >-
            #/components/schemas/admin-rolling-unskippable-daily-chain-short-model
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/admin-calendar-hard-daily-chain-short-model'
        - $ref: '#/components/schemas/admin-rolling-skippable-daily-chain-short-model'
        - $ref: >-
            #/components/schemas/admin-rolling-unskippable-daily-chain-short-model
    admin-daily-chain-step-model:
      description: Étape de récompense quotidienne.
      properties:
        items:
          items:
            $ref: '#/components/schemas/admin-daily-chain-item-model'
          type: array
        step_id:
          $ref: '#/components/schemas/daily_chain_step_id'
        step_number:
          $ref: '#/components/schemas/daily_chain_step_number'
      type: object
    admin-get-reward-chain-item-basic-model:
      description: Chaîne de récompenses.
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/chain_user-attribute_conditions_model-get'
        description:
          $ref: '#/components/schemas/description-localization-object'
        image_url:
          $ref: '#/components/schemas/image_url'
        is_always_visible:
          $ref: '#/components/schemas/chain_is_always_visible'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        is_reset_after_end:
          $ref: '#/components/schemas/is_reset_after_end'
        long_description:
          $ref: '#/components/schemas/long-description-localization-object'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        periods:
          $ref: '#/components/schemas/periods'
        recurrent_schedule:
          $ref: '#/components/schemas/admin_recurrent_schedule'
        reward_chain_id:
          $ref: '#/components/schemas/reward_chain_id'
        value_point:
          properties:
            amount:
              $ref: '#/components/schemas/value-point-amount'
            description:
              $ref: '#/components/schemas/value-point-description'
            image_url:
              $ref: '#/components/schemas/Common_admin-image_url'
            is_clan:
              $ref: '#/components/schemas/is_clan'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            long_description:
              $ref: '#/components/schemas/value-point-long-description'
            media_list:
              $ref: '#/components/schemas/media_list'
            name:
              $ref: '#/components/schemas/value-point-name'
            order:
              $ref: '#/components/schemas/order'
            sku:
              $ref: '#/components/schemas/value-point-sku'
            type:
              example: value_point
              type: string
          type: object
      type: object
    admin-get-reward-chain-item-clan-basic-model:
      allOf:
        - $ref: '#/components/schemas/admin-get-reward-chain-item-basic-model'
        - description: Chaîne de récompense de clan.
          properties:
            clan_type:
              $ref: '#/components/schemas/clan_type'
            popup_header:
              $ref: '#/components/schemas/popup_header-two-letter-locale'
            popup_image_url:
              $ref: '#/components/schemas/popup_image_url'
            popup_instruction:
              $ref: '#/components/schemas/popup_instruction-two-letter-locale'
            value_point:
              description: >-
                Point de valeur configuré pour une chaîne de récompenses de
                clan.
              properties:
                amount:
                  $ref: '#/components/schemas/value-point-amount'
                description:
                  $ref: '#/components/schemas/value-point-description'
                image_url:
                  $ref: '#/components/schemas/Common_admin-image_url'
                is_clan:
                  $ref: '#/components/schemas/is_clan'
                is_enabled:
                  $ref: '#/components/schemas/is_enabled'
                long_description:
                  $ref: '#/components/schemas/value-point-long-description'
                media_list:
                  $ref: '#/components/schemas/media_list'
                name:
                  $ref: '#/components/schemas/value-point-name'
                order:
                  $ref: '#/components/schemas/order'
                sku:
                  $ref: '#/components/schemas/value-point-sku'
                type:
                  example: value_point
                  type: string
              required:
                - sku
              type: object
          type: object
    admin-get-reward-chain-item-clan-full-model:
      allOf:
        - $ref: '#/components/schemas/admin-get-reward-chain-item-full-model'
        - description: Chaîne de récompense de clan.
          properties:
            clan_type:
              $ref: '#/components/schemas/clan_type'
            popup_header:
              $ref: '#/components/schemas/popup_header-two-letter-locale'
            popup_image_url:
              $ref: '#/components/schemas/popup_image_url'
            popup_instruction:
              $ref: '#/components/schemas/popup_instruction-two-letter-locale'
            top_contributors:
              $ref: '#/components/schemas/top_contributors'
            value_point:
              description: >-
                Point de valeur configuré pour une chaîne de récompenses de
                clan.
              properties:
                description:
                  $ref: '#/components/schemas/description-localization-object'
                image_url:
                  $ref: '#/components/schemas/image_url'
                is_clan:
                  $ref: '#/components/schemas/is_clan'
                is_enabled:
                  $ref: '#/components/schemas/is_enabled'
                long_description:
                  $ref: '#/components/schemas/long-description-localization-object'
                media_list:
                  $ref: '#/components/schemas/media_list'
                name:
                  $ref: '#/components/schemas/name-localization-object'
                order:
                  $ref: '#/components/schemas/order'
                sku:
                  $ref: '#/components/schemas/sku'
                type:
                  type: string
              required:
                - sku
              type: object
          type: object
    admin-get-reward-chain-item-full-model:
      description: Chaîne de récompenses.
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/chain_user-attribute_conditions_model-get'
        description:
          $ref: '#/components/schemas/description-localization-object'
        image_url:
          $ref: '#/components/schemas/image_url'
        is_always_visible:
          $ref: '#/components/schemas/chain_is_always_visible'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        is_reset_after_end:
          $ref: '#/components/schemas/is_reset_after_end'
        long_description:
          $ref: '#/components/schemas/long-description-localization-object'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        periods:
          $ref: '#/components/schemas/periods'
        recurrent_schedule:
          $ref: '#/components/schemas/admin_recurrent_schedule'
        reward_chain_id:
          $ref: '#/components/schemas/reward_chain_id'
        steps:
          items:
            $ref: '#/components/schemas/reward_step_short'
          type: array
        value_point:
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            image_url:
              $ref: '#/components/schemas/image_url'
            is_clan:
              $ref: '#/components/schemas/is_clan'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            long_description:
              $ref: '#/components/schemas/long-description-localization-object'
            media_list:
              $ref: '#/components/schemas/media_list'
            name:
              $ref: '#/components/schemas/name-localization-object'
            order:
              $ref: '#/components/schemas/order'
            sku:
              $ref: '#/components/schemas/sku'
            type:
              type: string
          type: object
      type: object
    admin-item-value-point-reward:
      properties:
        amount:
          description: Montant des points de valeur.
          type: integer
        image_url:
          $ref: '#/components/schemas/Common_admin-image_url'
        item_id:
          $ref: '#/components/schemas/item_id'
        name:
          $ref: '#/components/schemas/name-localization-object'
        sku:
          $ref: '#/components/schemas/sku'
      type: object
    admin-offer-chain-item-model:
      properties:
        description:
          $ref: '#/components/schemas/description-localization-object'
        image_url:
          $ref: '#/components/schemas/image_url'
        is_free:
          $ref: '#/components/schemas/value-is_free'
        item_id:
          $ref: '#/components/schemas/item_id'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        quantity:
          description: Nombre d'objets.
          example: 1
          minimum: 1
          type: integer
        sku:
          $ref: '#/components/schemas/sku'
        type:
          $ref: '#/components/schemas/item_type'
      type: object
    admin-offer-chain-long-model:
      description: Chaine d'offres.
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/chain_user-attribute_conditions_model-get'
        date_end:
          $ref: '#/components/schemas/offer_chain_date_end'
        date_start:
          $ref: '#/components/schemas/offer_chain_date_start'
        description:
          $ref: '#/components/schemas/description-localization-object'
        id:
          $ref: '#/components/schemas/offer_chain_id'
        is_always_visible:
          $ref: '#/components/schemas/chain_is_always_visible'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        recurrent_schedule:
          $ref: '#/components/schemas/offer_chain_recurrent_schedule'
        steps:
          items:
            $ref: '#/components/schemas/admin-offer-chain-step-model'
          type: array
      type: object
    admin-offer-chain-short-model:
      description: Chaine d'offres.
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/chain_user-attribute_conditions_model-get'
        date_end:
          $ref: '#/components/schemas/offer_chain_date_end'
        date_start:
          $ref: '#/components/schemas/offer_chain_date_start'
        description:
          $ref: '#/components/schemas/description-localization-object'
        id:
          $ref: '#/components/schemas/offer_chain_id'
        is_always_visible:
          $ref: '#/components/schemas/chain_is_always_visible'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        recurrent_schedule:
          $ref: '#/components/schemas/offer_chain_recurrent_schedule'
      type: object
    admin-offer-chain-step-model:
      description: Étape de la chaîne d'offres.
      properties:
        is_free:
          $ref: '#/components/schemas/offer_chain_is_free'
        items:
          items:
            $ref: '#/components/schemas/admin-offer-chain-item-model'
          type: array
        step_id:
          $ref: '#/components/schemas/offer_chain_step_id'
        step_number:
          $ref: '#/components/schemas/offer_chain_step_number'
        step_price:
          $ref: '#/components/schemas/offer_chain_step_price'
      type: object
    admin-promotions_200-get-coupon-promotion-model:
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/promotion_user-attribute_conditions_model-get'
        bonus:
          $ref: '#/components/schemas/Promotions_coupon_bonus'
        external_id:
          $ref: '#/components/schemas/Promotions_coupon-external_id'
        is_enabled:
          $ref: '#/components/schemas/Promotions_coupon-is_enabled'
        name:
          $ref: '#/components/schemas/Promotions_coupon_name'
        promotion_periods:
          $ref: '#/components/schemas/promotion_periods'
        redeem_code_limit:
          $ref: '#/components/schemas/Promotions_redeem_code_limit'
        redeem_total_limit:
          $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
        redeem_user_limit:
          $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
        total_limit_state:
          $ref: '#/components/schemas/Promotions_coupon_total_limit_state'
      type: object
    admin-promotions_200-get-redeemable-coupon-promotion-model:
      properties:
        bonus:
          $ref: '#/components/schemas/Promotions_coupon_bonus'
        discount:
          description: Uniquement pour les codes promo.
          example:
            discount:
              percent: '10.99'
          nullable: true
          properties:
            percent:
              default: '10.00'
              description: >-
                Pourcentage de la remise.

                Le prix du panier sera réduit d'une valeur calculée à l'aide de
                ce pourcentage et arrondie à 2 décimales.
              example: '10.00'
              nullable: true
              type: string
          type: object
        discounted_items:
          description: >-
            Liste des objets bénéficiant d'une remise grâce à un code promo.
            Uniquement pour les codes promo.
          items:
            description: Remise pour des objets spécifiques du panier.
            minItems: 1
            properties:
              discount:
                nullable: false
                properties:
                  percent:
                    $ref: '#/components/schemas/Promotions_cart_item_discount'
                required:
                  - percent
                type: object
              sku:
                default: elven_shield
                description: UGS de l'objet.
                type: string
            required:
              - sku
              - discount
            type: object
          nullable: true
          type: array
        external_id:
          $ref: '#/components/schemas/Promotions_coupon-external_id'
        is_enabled:
          $ref: '#/components/schemas/Promotions_coupon-is_enabled'
        name:
          $ref: '#/components/schemas/Promotions_coupon_name'
        promotion_periods:
          $ref: '#/components/schemas/promotion_periods'
        redeem_code_limit:
          $ref: '#/components/schemas/Promotions_redeem_code_limit'
        redeem_total_limit:
          $ref: '#/components/schemas/Promotions_coupon-redeem_total_limit'
        redeem_user_limit:
          $ref: '#/components/schemas/Promotions_coupon-redeem_user_limit'
        total_limit_state:
          $ref: '#/components/schemas/Promotions_coupon_total_limit_state'
      type: object
    admin-rolling-skippable-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/rolling-skippable-daily-chain-base'
        - description: >-
            Récompense quotidienne de type rolling_skippable pour les réponses
            des administrateurs.
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            number_of_steps:
              $ref: '#/components/schemas/daily_chain_number_of_step'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/admin-daily-chain-step-model'
              type: array
          type: object
    admin-rolling-skippable-daily-chain-short-model:
      allOf:
        - $ref: '#/components/schemas/rolling-skippable-daily-chain-base'
        - description: Récompense quotidienne de `rolling_skippable` (version courte).
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            number_of_steps:
              $ref: '#/components/schemas/daily_chain_number_of_step'
            order:
              $ref: '#/components/schemas/order'
          type: object
    admin-rolling-unskippable-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/rolling-unskippable-daily-chain-base'
        - description: >-
            Récompense quotidienne de type `rolling_unskippable` pour les
            réponses des administrateurs.
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            number_of_steps:
              $ref: '#/components/schemas/daily_chain_number_of_step'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/admin-daily-chain-step-model'
              type: array
          type: object
    admin-rolling-unskippable-daily-chain-short-model:
      allOf:
        - $ref: '#/components/schemas/rolling-unskippable-daily-chain-base'
        - description: Récompense quotidienne de `rolling_unskippable` (version courte).
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            number_of_steps:
              $ref: '#/components/schemas/daily_chain_number_of_step'
            order:
              $ref: '#/components/schemas/order'
          type: object
    admin_recurrent_schedule:
      description: Période de réinitialisation récurrente de la chaîne de récompenses.
      nullable: true
      oneOf:
        - description: Réinitialisation hebdomadaire de la chaîne de récompenses.
          properties:
            day_of_week:
              $ref: '#/components/schemas/day_of_week'
            displayable_reset_next_date:
              $ref: '#/components/schemas/displayable_reset_next_date'
            displayable_reset_start_date:
              $ref: '#/components/schemas/displayable_reset_start_date'
            interval_type:
              $ref: '#/components/schemas/interval_type_weekly'
            reset_next_date:
              $ref: '#/components/schemas/reset_next_date'
            time:
              $ref: '#/components/schemas/time'
          title: interval_type = weekly
          type: object
        - description: Réinitialisation mensuelle de la chaîne de récompenses.
          properties:
            day_of_month:
              $ref: '#/components/schemas/day_of_month'
            displayable_reset_next_date:
              $ref: '#/components/schemas/displayable_reset_next_date'
            displayable_reset_start_date:
              $ref: '#/components/schemas/displayable_reset_start_date'
            interval_type:
              $ref: '#/components/schemas/interval_type_monthly'
            reset_next_date:
              $ref: '#/components/schemas/reset_next_date'
            time:
              $ref: '#/components/schemas/time'
          title: interval_type = monthly
          type: object
        - description: >-
            Réinitialisation de la chaîne de récompenses effectuée selon
            l'intervalle de temps spécifié, en heures.
          properties:
            displayable_reset_next_date:
              $ref: '#/components/schemas/displayable_reset_next_date'
            displayable_reset_start_date:
              $ref: '#/components/schemas/displayable_reset_start_date'
            hours_interval:
              $ref: '#/components/schemas/reward_chain_hours_interval'
            interval_type:
              $ref: '#/components/schemas/interval_type_hourly_rc'
            reset_next_date:
              $ref: '#/components/schemas/reset_next_date'
            time:
              $ref: '#/components/schemas/time'
          title: interval_type = horaire
          type: object
      type: object
    admin_value_points-create:
      properties:
        description:
          $ref: '#/components/schemas/description-localization-object'
        image_url:
          $ref: '#/components/schemas/Common_admin-image_url'
        is_clan:
          $ref: '#/components/schemas/is_clan'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        long_description:
          $ref: '#/components/schemas/long-description-localization-object'
        media_list:
          $ref: '#/components/schemas/media_list'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        sku:
          $ref: '#/components/schemas/sku'
      required:
        - sku
        - name
      type: object
    bundle_type:
      description: Type de lot. Renvoyé si le type d'objet est un lot.
      enum:
        - standard
        - virtual_currency_package
        - partner_side_content
      type: string
    calendar-hard-daily-chain-base:
      description: >-
        Propriétés de base pour les récompenses quotidiennes de type
        `calendar_hard`.
      properties:
        date_start:
          $ref: '#/components/schemas/calendar_hard_date_start'
        is_recurrent:
          $ref: '#/components/schemas/calendar_hard_is_recurrent'
        type:
          allOf:
            - $ref: '#/components/schemas/daily_chain_type'
            - enum:
                - calendar_hard
      type: object
    calendar_hard_date_start:
      description: Date de début de la récompense quotidienne.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      type: string
    calendar_hard_is_recurrent:
      default: false
      description: >-
        Détermine si la récompense quotidienne est récurrente. Si `true`, elle
        est automatiquement réinitialisée après la date de fin. Le calendrier
        suivant `start_date` et `end_date` est basé sur le nombre d'étapes de la
        récompense quotidienne et l'heure définie initialement sur `start_date`.
      example: true
      type: boolean
    chain_is_always_visible:
      default: true
      description: "Détermine la visibilité de la chaîne pour tous les utilisateurs\_:\n* Si `true`, la chaîne s'affiche toujours, indépendamment du statut d'authentification ou des attributs de l'utilisateur.\n* Si `false`, la chaîne s'affiche uniquement si aucune chaîne personnalisée ne correspond\_; par exemple, si l'utilisateur n'est pas authentifié ou si ses attributs ne correspondent à aucune chaîne personnalisée.\n\nS'applique seulement dans le cadre des chaînes personnalisées et uniquement si le tableau `attribute_conditions` n'est pas passé."
      example: true
      type: boolean
    chain_user-attribute_conditions_model-get:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-get'
        - description: >-
            Conditions de validation des attributs utilisateur.

            Déterminez la disponibilité de la chaîne selon la correspondance des
            attributs utilisateur avec l'ensemble des conditions définies.
    chain_user-attribute_conditions_model-post:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-post'
        - description: >-
            Conditions de validation des attributs utilisateur.

            Déterminez la disponibilité de la chaîne selon la correspondance des
            attributs utilisateur avec l'ensemble des conditions définies.
    clan_type:
      description: Type de clan.
      enum:
        - clan
        - guild
        - faction
        - community
        - team
        - squad
        - alliance
        - association
        - coalition
        - union
        - group
        - civilizations
        - dynasty
        - order
        - league
        - brotherhood
        - kingdom
        - organization
        - house
        - empire
        - tribe
        - cartel
        - null
      nullable: true
      type: string
    client-attributes:
      default: []
      description: >-
        Liste des attributs et de leurs valeurs correspondantes pour l'objet.
        Peut être utilisée pour le filtrage du catalogue.
      example:
        value:
          external_id: genre
          name: Жанр
          values:
            - external_id: genre_e3364991f92e751689a68b96598a5a5a84010b85
              value: Casual
            - external_id: genre_eba07bfd0f982940773cba3744d97264dd58acd7
              value: Strategy
            - external_id: genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8
              value: Mobile
      items:
        properties:
          external_id:
            $ref: '#/components/schemas/admin-attribute-external_id'
          name:
            description: Nom de l'attribut.
            example: Genre
            type: string
          values:
            items:
              properties:
                external_id:
                  $ref: '#/components/schemas/value-external_id'
                value:
                  description: Valeur de l'attribut.
                  example: Strategy
                  type: string
              type: object
            type: array
        type: object
      type: array
    client-calendar-hard-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/calendar-hard-daily-chain-base'
        - description: >-
            Récompense quotidienne de type calendar_hard pour les réponses des
            administrateurs.
          properties:
            date_end:
              $ref: '#/components/schemas/daily_chain_date_end'
            description:
              description: Description de la récompense quotidienne.
              example: Major weekly quest
              nullable: true
              type: string
            id:
              description: ID de récompense quotidienne.
              example: 9
              type: integer
            name:
              description: Nom de la récompense quotidienne.
              example: Weekly quest
              type: string
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/client-daily-chain-step-model'
              type: array
          type: object
    client-daily-chain-item-model:
      properties:
        bundle_type:
          enum:
            - standard
            - virtual_currency_package
          nullable: true
          type: string
        content:
          items:
            $ref: '#/components/schemas/client-daily-chain-item-model'
          nullable: true
          type: array
        description:
          description: Description de l'objet.
          nullable: true
          type: string
        image_url:
          $ref: '#/components/schemas/image_url'
        is_free:
          $ref: '#/components/schemas/value-is_free'
        item_id:
          $ref: '#/components/schemas/item_id'
        name:
          description: Nom de l'objet.
          type: string
        quantity:
          description: Nombre d'objets.
          example: 1
          minimum: 1
          type: integer
        sku:
          $ref: '#/components/schemas/sku'
        type:
          $ref: '#/components/schemas/item_type'
      type: object
    client-daily-chain-model:
      discriminator:
        mapping:
          calendar_hard: '#/components/schemas/client-calendar-hard-daily-chain-model'
          rolling_skippable: '#/components/schemas/client-rolling-skippable-daily-chain-model'
          rolling_unskippable: '#/components/schemas/client-rolling-unskippable-daily-chain-model'
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/client-calendar-hard-daily-chain-model'
        - $ref: '#/components/schemas/client-rolling-skippable-daily-chain-model'
        - $ref: '#/components/schemas/client-rolling-unskippable-daily-chain-model'
    client-daily-chain-step-model:
      description: Étape de récompense quotidienne.
      properties:
        items:
          items:
            $ref: '#/components/schemas/client-daily-chain-item-model'
          type: array
        status:
          description: Définit l'état actuel de réclamation de l'étape.
          enum:
            - claimed
            - claimable
            - blocked
            - claim_in_future
          example: claimed
          type: string
          x-enumDescriptions:
            blocked: "L'étape ne peut pas être réclamée\_:\n  - Utilisateurs non autorisés\_: toutes les étapes sont bloquées.\n  - Type `calendar_hard`\_: l'étape n'a pas été réclamée et est désormais passée.\n  - Type `rolling_skippable`\_: l'étape reste bloquée tant que l'étape précédente n'a pas été réclamée."
            claim_in_future: L'étape n'a pas été réclamée et se situe dans le futur.
            claimable: L'étape peut être réclamé.
            claimed: Étape déjà réclamée.
        step_number:
          $ref: '#/components/schemas/daily_chain_step_number'
        unlocked_date:
          description: Horodatage Unix (en secondes) auquel l'étape sera déverrouillée.
          format: int64
          type: integer
      type: object
    client-item-value-point-reward:
      description: Récompense en points de valeur pour l'objet.
      items:
        properties:
          amount:
            $ref: '#/components/schemas/value-point-amount'
          image_url:
            $ref: '#/components/schemas/Common_admin-image_url'
          is_clan:
            $ref: '#/components/schemas/is_clan'
          item_id:
            $ref: '#/components/schemas/item_id'
          name:
            $ref: '#/components/schemas/value-point-name'
          sku:
            $ref: '#/components/schemas/value-point-sku'
        type: object
      type: array
    client-offer-chain-item-model:
      properties:
        bundle_type:
          enum:
            - standard
            - virtual_currency_package
          nullable: true
          type: string
        content:
          items:
            $ref: '#/components/schemas/client-offer-chain-item-model'
          nullable: true
          type: array
        description:
          description: Description de l'objet.
          nullable: true
          type: string
        image_url:
          $ref: '#/components/schemas/image_url'
        is_free:
          $ref: '#/components/schemas/value-is_free'
        item_id:
          $ref: '#/components/schemas/item_id'
        name:
          description: Nom de l'objet.
          type: string
        order:
          $ref: '#/components/schemas/order'
        quantity:
          description: Nombre d'objets.
          example: 1
          minimum: 1
          type: integer
        sku:
          $ref: '#/components/schemas/sku'
        type:
          $ref: '#/components/schemas/item_type'
      type: object
    client-offer-chain-model:
      description: Chaine d'offres.
      properties:
        date_end:
          $ref: '#/components/schemas/offer_chain_date_end'
        date_start:
          $ref: '#/components/schemas/offer_chain_date_start'
        description:
          description: Description de la chaîne d'offres.
          example: Major weekly quest
          nullable: true
          type: string
        id:
          description: ID de la chaîne d'offres.
          example: 9
          type: integer
        name:
          description: Nom de la chaîne d'offres.
          example: Weekly quest
          type: string
        next_step_number:
          description: >-
            Numéro de l'étape suivante de la chaîne d'offres. `null` si la
            chaîne d'offres est terminée.
          example: 1
          nullable: true
          type: integer
        order:
          $ref: '#/components/schemas/order'
        recurrent_schedule:
          $ref: '#/components/schemas/offer_chain_recurrent_schedule_client_side'
        steps:
          items:
            $ref: '#/components/schemas/client-offer-chain-step-model'
          type: array
      type: object
    client-offer-chain-step-model:
      description: Étape de la chaîne d'offres.
      properties:
        is_claimed:
          description: Indique si la récompense d'étape est réclamée ou achetée.
          example: false
          type: boolean
        is_free:
          $ref: '#/components/schemas/offer_chain_is_free'
        items:
          items:
            $ref: '#/components/schemas/client-offer-chain-item-model'
          type: array
        step_loyalty_rewards:
          items:
            properties:
              amount:
                description: Quantité de points de fidélité.
                example: 1
                type: integer
              description:
                description: Description des points de fidélité.
                example: First Loyalty Point Desc
                type: string
              image_url:
                $ref: '#/components/schemas/image_url'
              name:
                description: Nom des points de fidélité.
                example: First Loyalty Point
                type: string
              sku:
                description: UGS des points de fidélité.
                example: 0c745ef0-4243-46e1-aa90-54dee07da622
                type: string
            type: object
          nullable: true
          type: array
        step_number:
          $ref: '#/components/schemas/offer_chain_step_number'
        step_price:
          $ref: '#/components/schemas/offer_chain_step_price'
        step_vp_rewards:
          description: >-
            Tableau des points de valeur du système de récompenses, accordés en
            tant que récompense.
          items:
            properties:
              amount:
                $ref: '#/components/schemas/value-point-amount'
              image_url:
                $ref: '#/components/schemas/Common_admin-image_url'
              is_clan:
                $ref: '#/components/schemas/is_clan'
              item_id:
                $ref: '#/components/schemas/item_id'
              name:
                $ref: '#/components/schemas/value-point-name'
              sku:
                $ref: '#/components/schemas/value-point-sku'
            type: object
          nullable: true
          type: array
      type: object
    client-reward-chain-item-model:
      properties:
        clan_type:
          $ref: '#/components/schemas/clan_type'
        date_end:
          $ref: '#/components/schemas/date_end'
        date_start:
          $ref: '#/components/schemas/date_start'
        description:
          description: Description de la chaîne de récompenses.
          example: Major weekly quest
          nullable: true
          type: string
        image_url:
          $ref: '#/components/schemas/image_url'
        long_description:
          description: Description détaillée de la chaîne de récompenses.
          example: >-
            You can get a lot of additional items just by shopping during the
            week
          nullable: true
          type: string
        name:
          description: Nom de la chaîne de récompenses.
          example: Weekly quest
          type: string
        order:
          $ref: '#/components/schemas/order'
        popup_header:
          $ref: '#/components/schemas/popup_header-two-letter-locale'
        popup_image_url:
          $ref: '#/components/schemas/popup_image_url'
        popup_instruction:
          $ref: '#/components/schemas/popup_instruction-two-letter-locale'
        recurrent_schedule:
          $ref: '#/components/schemas/recurrent_schedule_client_side'
        reward_chain_id:
          description: ID de la chaîne de récompenses.
          example: 9
          type: integer
        steps:
          items:
            description: Étape de la chaîne de récompenses.
            properties:
              image_url:
                $ref: '#/components/schemas/Common_admin-image_url'
              is_claimed:
                description: Détermine si la récompense d'étape est réclamée.
                example: false
                type: boolean
              name:
                description: Nom de l'étape.
                example: Level 1
                type: string
              price:
                properties:
                  amount:
                    description: >-
                      Nombre de points de valeur qu'un utilisateur réclame pour
                      l'étape.
                    example: 100
                    type: integer
                type: object
              reward:
                items:
                  properties:
                    description:
                      description: Description de l'objet.
                      example: Super box with items
                      type: string
                    image_url:
                      $ref: '#/components/schemas/Common_admin-image_url'
                    name:
                      description: Nom de l'objet.
                      example: Super box
                      type: string
                    quantity:
                      description: Quantité de l'objet.
                      example: 2
                      type: integer
                    sku:
                      $ref: '#/components/schemas/sku'
                    type:
                      description: Type d'objet.
                      example: bundle
                      type: string
                  type: object
                type: array
              step_id:
                description: ID de l'étape.
                example: 10
                type: integer
            type: object
          type: array
        top_contributors:
          items:
            $ref: '#/components/schemas/top_contributors'
          type: array
        value_point:
          properties:
            amount:
              $ref: '#/components/schemas/value-point-amount'
            description:
              $ref: '#/components/schemas/value-point-description'
            image_url:
              $ref: '#/components/schemas/Common_admin-image_url'
            is_clan:
              $ref: '#/components/schemas/is_clan'
            long_description:
              $ref: '#/components/schemas/value-point-long-description'
            name:
              $ref: '#/components/schemas/value-point-name'
            sku:
              $ref: '#/components/schemas/value-point-sku'
          type: object
      type: object
    client-rolling-skippable-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/rolling-skippable-daily-chain-base'
        - description: >-
            Récompense quotidienne de type rolling_skippable pour les réponses
            des administrateurs.
          properties:
            description:
              description: Description de la récompense quotidienne.
              example: Major weekly quest
              nullable: true
              type: string
            id:
              description: ID de récompense quotidienne.
              example: 9
              type: integer
            name:
              description: Nom de la récompense quotidienne.
              example: Weekly quest
              type: string
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/client-daily-chain-step-model'
              type: array
          type: object
    client-rolling-unskippable-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/rolling-unskippable-daily-chain-base'
        - description: >-
            Récompense quotidienne de type `rolling_unskippable` pour les
            réponses des administrateurs.
          properties:
            description:
              description: Description de la récompense quotidienne.
              example: Major weekly quest
              nullable: true
              type: string
            id:
              description: ID de récompense quotidienne.
              example: 9
              type: integer
            name:
              description: Nom de la récompense quotidienne.
              example: Weekly quest
              type: string
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/client-daily-chain-step-model'
              type: array
          type: object
    create-calendar-hard-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/calendar-hard-daily-chain-base'
        - description: Récompense quotidienne de type `calendar_hard`.
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/create-daily-chain-step-model'
              type: array
          required:
            - name
            - date_start
            - steps
            - is_enabled
            - type
          type: object
    create-clan-reward-chain-model:
      allOf:
        - $ref: '#/components/schemas/create-reward-chain-model'
        - description: Chaîne de récompense de clan.
          properties:
            clan_type:
              $ref: '#/components/schemas/clan_type'
            popup_header:
              $ref: '#/components/schemas/popup_header-two-letter-locale'
            popup_image_url:
              $ref: '#/components/schemas/popup_image_url'
            popup_instruction:
              $ref: '#/components/schemas/popup_instruction-two-letter-locale'
            value_point:
              description: >-
                Point de valeur configuré pour une chaîne de récompenses de
                clan.
              properties:
                sku:
                  $ref: '#/components/schemas/sku'
              required:
                - sku
              type: object
          required:
            - name
            - value_point
            - periods
            - steps
            - is_enabled
            - popup_header
            - popup_instruction
          type: object
    create-daily-chain-step-model:
      properties:
        items:
          items:
            $ref: '#/components/schemas/modify-daily-chain-item-model'
          minItems: 1
          type: array
        step_number:
          $ref: '#/components/schemas/daily_chain_step_number'
      required:
        - step_number
        - items
      type: object
    create-offer-chain-model:
      description: Chaine d'offres.
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/chain_user-attribute_conditions_model-post'
        date_end:
          $ref: '#/components/schemas/offer_chain_date_end'
        date_start:
          $ref: '#/components/schemas/offer_chain_date_start'
        description:
          $ref: '#/components/schemas/description-localization-object'
        is_always_visible:
          $ref: '#/components/schemas/chain_is_always_visible'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        recurrent_schedule:
          $ref: '#/components/schemas/offer_chain_recurrent_schedule_create_update'
        steps:
          items:
            $ref: '#/components/schemas/create-offer-chain-step-model'
          type: array
      required:
        - name
        - date_start
        - steps
        - is_enabled
      type: object
    create-offer-chain-step-model:
      properties:
        is_free:
          $ref: '#/components/schemas/offer_chain_is_free'
        items:
          items:
            $ref: '#/components/schemas/modify-offer-chain-item-model'
          minItems: 1
          type: array
        step_number:
          $ref: '#/components/schemas/offer_chain_step_number'
      required:
        - step_number
        - is_free
        - items
      type: object
    create-reward-chain-model:
      description: Chaîne de récompenses.
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/chain_user-attribute_conditions_model-post'
        description:
          $ref: '#/components/schemas/description-localization-object'
        image_url:
          $ref: '#/components/schemas/image_url'
        is_always_visible:
          $ref: '#/components/schemas/chain_is_always_visible'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        is_reset_after_end:
          $ref: '#/components/schemas/is_reset_after_end'
        long_description:
          $ref: '#/components/schemas/long-description-localization-object'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        periods:
          $ref: '#/components/schemas/periods'
        recurrent_schedule:
          $ref: '#/components/schemas/recurrent_schedule_create_update'
        steps:
          items:
            $ref: '#/components/schemas/create_reward_step'
          type: array
        value_point:
          properties:
            sku:
              $ref: '#/components/schemas/sku'
          required:
            - sku
          type: object
      required:
        - name
        - value_point
        - periods
        - steps
        - is_enabled
      type: object
    create-rolling-skippable-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/rolling-skippable-daily-chain-base'
        - description: Récompense quotidienne de type `rolling_skippable`.
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/create-daily-chain-step-model'
              type: array
          required:
            - name
            - date_start
            - steps
            - is_enabled
            - type
          type: object
    create-rolling-unskippable-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/rolling-unskippable-daily-chain-base'
        - description: Récompense quotidienne de type `rolling_unskippable`.
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/create-daily-chain-step-model'
              type: array
          required:
            - name
            - date_start
            - steps
            - is_enabled
            - type
          type: object
    create_reward_step:
      description: Étape de la chaîne de récompenses.
      properties:
        image_url:
          $ref: '#/components/schemas/image_url'
        name:
          $ref: '#/components/schemas/name-localization-object'
        price:
          $ref: '#/components/schemas/reward_step_price'
        reward:
          items:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-post
              quantity:
                $ref: '#/components/schemas/reward_item_quantity'
              sku:
                $ref: '#/components/schemas/sku'
            required:
              - sku
              - quantity
            type: object
          type: array
      required:
        - name
        - price
        - reward
      type: object
    daily-chain-error-model:
      properties:
        errorCode:
          example: 1102
          type: integer
        errorMessage:
          example: >-
            [0401-1102]: Unprocessable Entity. The property `property_name` is
            required
          type: string
        errorMessageExtended:
          nullable: true
          type: object
        statusCode:
          example: 422
          type: integer
        transactionId:
          example: x-x-x-x-transactionId-mock-x-x-x
          type: string
      type: object
    daily_chain_date_end:
      description: >-
        Date de fin de la récompense quotidienne. Peut être `null`. Si le type
        est `calendar_hard`, cette date est automatiquement définie selon le
        nombre d'étapes ajoutées, et vous pouvez donc la laisser à `null`.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      nullable: true
      type: string
    daily_chain_id:
      description: ID unique de la récompense quotidienne.
      example: 9
      type: integer
    daily_chain_number_of_step:
      description: >-
        Il s'agit du nombre d'étapes configurées dans la récompense quotidienne.
        Chaque étape correspond à un jour de la récompense.
      example: 3
      type: integer
    daily_chain_step_id:
      description: ID unique de l'étape de récompense quotidienne
      example: 10
      minimum: 1
      nullable: true
      type: integer
    daily_chain_step_number:
      description: Numéro de l'étape.
      example: 2
      minimum: 1
      nullable: false
      type: integer
    daily_chain_type:
      description: >-
        Type de récompense quotidienne définissant les moments où l'utilisateur
        peut la réclamer.
      enum:
        - calendar_hard
        - rolling_skippable
        - rolling_unskippable
      type: string
      x-enumDescriptions:
        calendar_hard: "Débloque la récompense de l'étape suivante toutes les 24\_heures. Toute récompense non réclamée est définitivement perdue dès que l'étape suivante devient disponible."
        rolling_skippable: "Débloque la récompense de l’étape suivante toutes les 24\_heures à partir de `date_start`. La progression est séquentielle\_: une nouvelle récompense ne se débloque que lorsque la précédente a été réclamée. Si un utilisateur saute un ou plusieurs jours, il reprend là où il s’est arrêté\_; les jours manqués ne génèrent pas de récompenses supplémentaires."
        rolling_unskippable: "Débloque la récompense de l’étape suivante toutes les 24\_heures à partir de `date_start`. La progression est séquentielle\_: une nouvelle récompense ne se débloque que lorsque la précédente a été réclamée. Toutefois, si un utilisateur saute un jour, sa progression est réinitialisée et il doit recommencer à partir de la première étape."
    daily_chain_update_step_id:
      description: >-
        ID unique de l'étape de la récompense quotidienne. Indiquez-le lors de
        la mise à jour pour conserver la progression de l'utilisateur pour cette
        étape.
      example: 10
      minimum: 1
      nullable: true
      type: integer
    daily_rolling_chain_date_start:
      description: >-
        Date et heure de début de la récompense quotidienne, définissant
        également le moment de réinitialisation quotidienne à partir duquel les
        utilisateurs peuvent la réclamer.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      type: string
    date_end:
      description: >-
        Date de fin de la promotion de chaîne de récompenses. Peut prendre la
        valeur `null`. Si `date_end` est défini sur `null`, la chaîne de
        récompenses sera illimitée dans le temps.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      nullable: true
      type: string
    date_start:
      description: Date de début de la chaîne de récompenses.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      type: string
    day_of_month:
      description: >-
        Jour du mois où la chaîne de récompenses est réinitialisée. Si le nombre
        de jours du mois est inférieur au nombre ordinal du jour spécifié, la
        réinitialisation a lieu le dernier jour du mois.
      maximum: 31
      minimum: 1
      type: integer
    day_of_week:
      description: >-
        Jour de la semaine où la chaîne de récompense est réinitialisée, où `1`
        est le lundi et `7`, le dimanche.
      maximum: 7
      minimum: 1
      type: integer
    description-localization-object:
      description: "Conteneur objet contenant les localisations de la description de l'objet (item). Il accepte deux formats de codes de langue\_: les codes à deux lettres minuscules (comme `en`) et les codes régionaux à cinq caractères (comme `en-US`). Les deux formats sont valides en entrée, mais les réponses utilisent toujours le format à deux lettres. Si les deux variantes sont fournies pour une même langue (par exemple, `en` et `en-US`), seule la dernière est conservée. Consultez la [documentation](/fr/doc/shop-builder/references/supported-languages/) pour la liste complète des langues prises en charge."
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/two-letter-locale'
        - $ref: '#/components/schemas/five-letter-locale'
      type: object
    displayable_reset_next_date:
      description: >-
        Date et heure calculées auxquelles la chaîne de récompenses sera
        réinitialisée la prochaine fois <a
        href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">(ISO
        8601)</a>. <br><br> Par exemple, la réinitialisation de la chaîne de
        récompenses est prévue chaque mois à partir du 1er mars 2024 à 01:00 de
        Kuala Lumpur. La date et l'heure de la prochaine remise à zéro de la
        chaîne de récompenses est le 1er avril 2024 à 01:00 de Kuala Lumpur,
        soit `2024-04-01T01:00:00+08:00` dans le format <a
        href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO
        8601</a>. <br><br> Example: `2024-04-01T01:00:00+08:00`
      format: date-time
      type: string
    displayable_reset_start_date:
      description: >-
        Date et heure de la première réinitialisation de la chaîne de
        récompenses. <br><br> Par exemple, la date et l'heure de la première
        réinitialisation de la chaîne de récompenses sont le 1er mars 2024 à
        01:00 de Kuala Lumpur, ou `2024-03-01T01:00:00+08:00` dans le format <a
        href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO
        8601</a>. <br><br> Example: `2024-03-01T01:00:00+08:00`
      format: date-time
      type: string
    drm_name:
      description: Nom du DRM de la clé de jeu.
      example: Steam
      type: string
    drm_sku:
      description: ID unique du DRM.
      example: steam
      type: string
    excluded_promotions:
      description: >-
        Liste des ID de promotion à exclure lors de l'application de cette
        promotion. <br>Example: `[12, 789]`
      example:
        - 12
        - 789
      items:
        type: integer
      type: array
    five-letter-locale:
      description: Codes régionaux à cinq caractères.
      nullable: true
      properties:
        ar-AE:
          description: Arabe
          nullable: true
          type: string
        bg-BG:
          description: Bulgare
          nullable: true
          type: string
        cs-CZ:
          description: Tchèque
          nullable: true
          type: string
        de-DE:
          description: Allemand
          nullable: true
          type: string
        en-US:
          description: Anglais
          nullable: true
          type: string
        es-ES:
          description: Espagnol (Espagne)
          nullable: true
          type: string
        fr-FR:
          description: Français
          nullable: true
          type: string
        he-IL:
          description: Hébreu
          nullable: true
          type: string
        id-ID:
          description: Indonésien
          nullable: true
          type: string
        it-IT:
          description: Italien
          nullable: true
          type: string
        ja-JP:
          description: Japonais
          nullable: true
          type: string
        km-KH:
          description: Khmer
          nullable: true
          type: string
        ko-KR:
          description: Coréen
          nullable: true
          type: string
        lo-LA:
          description: Laotien
          nullable: true
          type: string
        my-MM:
          description: Birman
          nullable: true
          type: string
        ne-NP:
          description: Népalais
          nullable: true
          type: string
        ph-PH:
          description: Philippin
          nullable: true
          type: string
        pl-PL:
          description: Polonais
          nullable: true
          type: string
        pt-BR:
          description: Portugais (Brésil)
          nullable: true
          type: string
        ro-RO:
          description: Roumain
          nullable: true
          type: string
        ru-RU:
          description: Russe
          nullable: true
          type: string
        th-TH:
          description: Thaï
          nullable: true
          type: string
        tr-TR:
          description: Turc
          nullable: true
          type: string
        vi-VN:
          description: Vietnamien
          nullable: true
          type: string
        zh-CN:
          description: Chinois (simplifié)
          nullable: true
          type: string
        zh-TW:
          description: Chinois (traditionnel)
          nullable: true
          type: string
      title: five-letter
      type: object
    image_url:
      description: URL de l'image.
      example: https://image.example.com
      nullable: true
      type: string
    inactive_promotions_count:
      description: Nombre de promotions désactivées.
      type: integer
    interval_type_hourly_rc:
      description: Fréquence de la réinitialisation récurrente de la chaîne de récompenses.
      enum:
        - hourly
      type: string
    interval_type_monthly:
      description: Fréquence de la réinitialisation récurrente de la chaîne de récompenses.
      enum:
        - monthly
      type: string
    interval_type_weekly:
      description: Fréquence de la réinitialisation récurrente de la chaîne de récompenses.
      enum:
        - weekly
      type: string
    is_clan:
      description: >-
        Détermine l'utilisation du point de valeur dans les chaînes de
        récompense de clan.
      example: true
      type: boolean
    is_enabled:
      example: true
      type: boolean
    is_reset_after_end:
      default: false
      description: "S'il faut réinitialiser la chaîne de récompenses (points de valeur et progression de tous les utilisateurs) après sa date de fin :\n* Si `true`, la chaîne de récompenses sera réinitialisée après sa date de fin.\n* Si `false`, la chaîne de récompenses ne sera pas réinitialisée après sa date de fin.\n\n<br>\n<div class=\"notice\"><strong>Avis</strong><br><br>\nNe peut pas être <code>true</code> si\_: <br>\n<ul>\n  <li>Une période de réinitialisation est définie dans <code>recurrent_schedule</code>.</li>\n  <li>La valeur <code>null</code> est passée dans <code>periods.date_until</code>.</li>\n</ul>\n</div>"
      example: false
      type: boolean
    item-custom-attributes-response:
      description: Un JSON contenant les attributs de l'objet et leurs valeurs.
      format: json
      type: object
    item-periods:
      description: Période de vente d'objets.
      items:
        properties:
          date_from:
            description: Date de mise en vente de l'objet spécifié.
            example: '2020-08-11T10:00:00+03:00'
            format: date-time
            type: string
          date_until:
            description: >-
              Date de retrait de la vente de l'objet spécifié. Peut prendre la
              valeur `null`.
            example: '2020-08-11T20:00:00+03:00'
            format: date-time
            nullable: true
            type: string
        type: object
      nullable: true
      type: array
    item-periods-response:
      description: Période de vente d'objets.
      items:
        properties:
          date_from:
            description: Date de mise en vente de l'objet spécifié.
            example: '2020-08-11T10:00:00+03:00'
            format: date-time
            nullable: true
            type: string
          date_until:
            description: >-
              Date de retrait de la vente de l'objet spécifié. Peut prendre la
              valeur `null`.
            example: '2020-08-11T20:00:00+03:00'
            format: date-time
            nullable: true
            type: string
        type: object
      type: array
    item-value-point-reward-set:
      items:
        properties:
          amount:
            description: Montant des points de valeur.
            type: integer
          sku:
            $ref: '#/components/schemas/sku'
        required:
          - sku
          - amount
        type: object
      type: array
    item-value-point-reward-set-for-patch:
      items:
        maxItems: 100
        properties:
          amount:
            description: Montant des points de valeur.
            minimum: 0
            type: integer
          sku:
            $ref: '#/components/schemas/sku'
        required:
          - sku
          - amount
        type: object
      type: array
    item_id:
      description: Internal ID unique de l'objet.
      example: 1
      type: integer
    item_price_conditions_promocode:
      description: >-
        Tableau d'objets avec des conditions définissant la fourchette de prix
        pour l'application de la promotion à certains biens du panier.<br>

        Le prix de chaque bien du panier de l'utilisateur est comparé à la
        fourchette de prix spécifiée dans la condition. Les
        [bonus](/fr/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request)
        et les
        [réductions](/fr/api/shop-builder/operation/create-promo-code/#!path=discount&t=request)
        ne s'appliquent qu'aux biens du panier dont le prix répond à la
        condition.<br>

        Si vous passez ce tableau, définissez la valeur du tableau
        [discounted_items](/fr/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request)
        sur `null`.
      items:
        $ref: '#/components/schemas/price_conditions_items'
      nullable: true
      type: array
    item_type:
      description: "Type d'objet\_: `virtual_good`/`virtual_currency`/`bundle`/`unit`."
      type: string
    limit_exceeded_visibility:
      default: show
      description: >-
        Détermine la visibilité de l'objet dans le catalogue une fois la limite
        d'achat atteinte, jusqu'à la prochaine réinitialisation de la limite.


        S'applique aux objets pour lesquels des réinitialisations de limite
        récurrentes sont configurées dans le tableau `recurrent_schedule`.


        Si aucune réinitialisation de limite n'est configurée, l'objet
        n'apparaît plus dans le catalogue après l'atteinte de la limite d'achat,
        quelle que soit la valeur de `limit_exceeded_visibility`.
      enum:
        - show
        - hide
      example: show
      type: string
      x-enumDescriptions:
        hide: >-
          L'objet n'est plus renvoyé dans les appels API de récupération du
          catalogue une fois la limite d'achat atteinte, et ce jusqu'à la
          réinitialisation de la limite.
        show: >-
          L'objet est renvoyé dans les appels API de récupération du catalogue
          une fois la limite d'achat atteinte.

          Dans les appels API de récupération du catalogue côté client, une fois
          la limite atteinte, l'objet est renvoyé avec l'indicateur
          `can_be_bought: false`.

          La date de prochaine réinitialisation est renvoyée dans
          `reset_next_date`.
    long-description-localization-object:
      anyOf:
        - $ref: '#/components/schemas/two-letter-locale'
        - $ref: '#/components/schemas/five-letter-locale'
      description: "Conteneur objet contenant les localisations de la description complète de l'objet (item). Il accepte deux formats de codes de langue\_: les codes à deux lettres minuscules (comme `en`) et les codes régionaux à cinq caractères (comme `en-US`). Les deux formats sont valides en entrée, mais les réponses utilisent toujours le format à deux lettres. Si les deux variantes sont fournies pour une même langue (par exemple, `en` et `en-US`), seule la dernière est conservée. Consultez la [documentation](/fr/doc/shop-builder/references/supported-languages/) pour la liste complète des langues prises en charge."
      nullable: true
      type: object
    media_list:
      description: >-
        Ressources supplémentaires de l'objet, telles que des captures d'écran,
        des vidéos de gameplay, etc.
      example:
        - type: image
          url: >-
            https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
      items:
        properties:
          type:
            description: "Type de média\_: `image`/`video`."
            enum:
              - image
              - video
            example: image
            type: string
          url:
            description: Fichier de ressources.
            example: >-
              https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
            type: string
        type: object
      type: array
    modify-daily-chain-item-model:
      properties:
        quantity:
          description: Nombre d'étapes de récompense quotidienne pour cette UGS
          minimum: 1
          type: integer
        sku:
          $ref: '#/components/schemas/sku'
      required:
        - sku
        - quantity
      type: object
    modify-daily-chain-step-model:
      properties:
        items:
          items:
            $ref: '#/components/schemas/modify-daily-chain-item-model'
          minItems: 1
          type: array
        step_id:
          $ref: '#/components/schemas/daily_chain_update_step_id'
        step_number:
          $ref: '#/components/schemas/daily_chain_step_number'
      required:
        - step_number
        - items
      type: object
    modify-offer-chain-item-model:
      properties:
        order:
          description: Ordre des récompenses pour l'étape de la chaîne d'offres.
          minimum: 0
          nullable: true
          type: integer
        quantity:
          description: Quantité d'objets de récompense pour cette étape de la chaîne.
          minimum: 1
          type: integer
        sku:
          $ref: '#/components/schemas/sku'
      required:
        - sku
        - quantity
      type: object
    modify-offer-chain-model:
      description: Chaine d'offres.
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/chain_user-attribute_conditions_model-post'
        date_end:
          $ref: '#/components/schemas/offer_chain_date_end'
        date_start:
          $ref: '#/components/schemas/offer_chain_date_start'
        description:
          $ref: '#/components/schemas/description-localization-object'
        id:
          $ref: '#/components/schemas/offer_chain_id'
        is_always_visible:
          $ref: '#/components/schemas/chain_is_always_visible'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        recurrent_schedule:
          $ref: '#/components/schemas/offer_chain_recurrent_schedule_create_update'
        steps:
          items:
            $ref: '#/components/schemas/modify-offer-chain-step-model'
          type: array
      required:
        - name
        - date_start
        - steps
        - is_enabled
      type: object
    modify-offer-chain-step-model:
      properties:
        is_free:
          $ref: '#/components/schemas/offer_chain_is_free'
        items:
          items:
            $ref: '#/components/schemas/modify-offer-chain-item-model'
          minItems: 1
          type: array
        step_id:
          $ref: '#/components/schemas/update_step_id'
        step_number:
          $ref: '#/components/schemas/offer_chain_step_number'
      required:
        - step_number
        - is_free
        - items
      type: object
    modify_reward_step:
      description: Étape de la chaîne de récompenses.
      properties:
        image_url:
          $ref: '#/components/schemas/image_url'
        name:
          $ref: '#/components/schemas/name-localization-object'
        price:
          $ref: '#/components/schemas/reward_step_price'
        reward:
          items:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-post
              quantity:
                $ref: '#/components/schemas/reward_item_quantity'
              sku:
                $ref: '#/components/schemas/sku'
            required:
              - sku
              - quantity
            type: object
          type: array
        step_id:
          $ref: '#/components/schemas/step_id'
      required:
        - name
        - price
        - reward
        - step_id
      type: object
    name-localization-object:
      description: "Conteneur objet contenant les localisations du nom de l'objet (item). Il accepte deux formats de codes de langue\_: les codes à deux lettres minuscules (comme `en`) et les codes régionaux à cinq caractères (comme `en-US`). Les deux formats sont valides en entrée, mais les réponses utilisent toujours le format à deux lettres. Si les deux variantes sont fournies pour une même langue (par exemple, `en` et `en-US`), seule la dernière est conservée. Consultez la [documentation](/fr/doc/shop-builder/references/supported-languages/) pour la liste complète des langues prises en charge."
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/two-letter-locale'
        - $ref: '#/components/schemas/five-letter-locale'
      type: object
    offer-chain-error-model:
      properties:
        errorCode:
          example: 1102
          type: integer
        errorMessage:
          example: >-
            [0401-1102]: Unprocessable Entity. The property `property_name` is
            required
          type: string
        errorMessageExtended:
          nullable: true
          type: object
        statusCode:
          example: 422
          type: integer
        transactionId:
          example: x-x-x-x-transactionId-mock-x-x-x
          type: string
      type: object
    offer_chain_date_end:
      description: >-
        Date de fin de la chaîne d’offres. Peut être `null`. Si `date_end` est
        `null`, la chaîne d'offres n'a pas de limite de temps.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      nullable: true
      type: string
    offer_chain_date_start:
      description: Date de début de la chaîne d'offres.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      type: string
    offer_chain_day_of_month:
      description: >-
        Jour du mois où la chaîne d'offres est réinitialisée. Si le mois
        comporte moins de jours que le jour spécifié, la réinitialisation aura
        lieu le dernier jour du mois.
      maximum: 31
      minimum: 1
      type: integer
    offer_chain_day_of_week:
      description: >-
        Jour de la semaine où la chaîne d'offres est réinitialisée, où `1` est
        le lundi et `7`, le dimanche.
      maximum: 7
      minimum: 1
      type: integer
    offer_chain_displayable_reset_next_date:
      description: "Date et heure calculées auxquelles la chaîne d'offres sera réinitialisée la prochaine fois, au format <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO\_8601</a>. <br><br> Par exemple, si la réinitialisation mensuelle commence le 1er\_mars\_2024 à 1\_h (heure de Kuala Lumpur), la réinitialisation suivante aura lieu le 1er\_avril\_2024 à 1\_h, ce qui correspond à `2024-04-01T01:00:00+08:00` au format <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO\_8601</a>. <br><br> Exemple\_: `2024-04-01T01:00:00+08:00`"
      format: date-time
      type: string
    offer_chain_displayable_reset_start_date:
      description: "Date et heure de la première réinitialisation de la chaîne d'offres. <br><br> Par exemple, la première réinitialisation prévue pour le 1er\_mars\_2024 à 1\_h (heure de Kuala Lumpur) correspond à `2024-03-01T01:00:00+08:00` au format <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO\_8601</a>. <br><br> Exemple\_: `2024-03-01T01:00:00+08:00`"
      format: date-time
      type: string
    offer_chain_hours_interval:
      description: "Intervalle en heures, après lequel la chaîne d'offres est réinitialisée. <br><br> Le compte à rebours commence à partir du paramètre <a href=\"https://developers.xsolla.com/fr/api/shop-builder/operation/admin-create-offer-chain/#!path=date_start&t=request\">date_start</a>. <br><br> Par exemple, si `date_start = \"2025-11-15T18:15:00+05:00\"` et `hours_interval = 2`, la chaîne d'offres se réinitialise toutes les 2\_h à partir de `\"2025-11-15T20:15:00+05:00\"`."
      maximum: 10000
      minimum: 1
      type: integer
    offer_chain_id:
      description: ID unique de la chaîne d'offres.
      example: 9
      type: integer
    offer_chain_interval_type_hourly:
      description: Fréquence de réinitialisation de la chaîne d'offres.
      enum:
        - hourly
      type: string
    offer_chain_interval_type_monthly:
      description: Fréquence de réinitialisation de la chaîne d'offres.
      enum:
        - monthly
      type: string
    offer_chain_interval_type_weekly:
      description: Fréquence de réinitialisation de la chaîne d'offres.
      enum:
        - weekly
      type: string
    offer_chain_is_free:
      description: "Indique si l'étape de la chaîne d'offres est gratuite\_:<ul><li>Si <code>true</code>, l'étape doit être réclamée à l'aide de l'appel <a href=\"/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Réclamer une étape de chaîne d'offres gratuite</a>.</li><li>Si <code>false</code>, elle doit être achetée à l'aide de l'appel <a href=\"/api/shop-builder/operation/order-user-offer-chain-step-reward\">Créer une commande pour une étape payante de la chaîne d'offres</a>.</li></ul>"
      type: boolean
    offer_chain_recurrent_schedule:
      description: Période de réinitialisation récurrente de la chaîne d'offres.
      nullable: true
      oneOf:
        - description: Réinitialisation hebdomadaire de la chaîne d'offres.
          nullable: true
          properties:
            day_of_week:
              $ref: '#/components/schemas/offer_chain_day_of_week'
            displayable_reset_next_date:
              $ref: '#/components/schemas/offer_chain_displayable_reset_next_date'
            displayable_reset_start_date:
              $ref: '#/components/schemas/offer_chain_displayable_reset_start_date'
            interval_type:
              $ref: '#/components/schemas/offer_chain_interval_type_weekly'
            reset_next_date:
              $ref: '#/components/schemas/offer_chain_reset_next_date'
            time:
              $ref: '#/components/schemas/offer_chain_time'
          title: interval_type = weekly
          type: object
        - description: Réinitialisation mensuelle de la chaîne d'offres.
          properties:
            day_of_month:
              $ref: '#/components/schemas/offer_chain_day_of_month'
            displayable_reset_next_date:
              $ref: '#/components/schemas/offer_chain_displayable_reset_next_date'
            displayable_reset_start_date:
              $ref: '#/components/schemas/offer_chain_displayable_reset_start_date'
            interval_type:
              $ref: '#/components/schemas/offer_chain_interval_type_monthly'
            reset_next_date:
              $ref: '#/components/schemas/offer_chain_reset_next_date'
            time:
              $ref: '#/components/schemas/offer_chain_time'
          title: interval_type = monthly
          type: object
        - description: >-
            Réinitialisation de la chaîne d'offres effectuée selon l'intervalle
            de temps spécifié, en heures.
          properties:
            hours_interval:
              $ref: '#/components/schemas/offer_chain_hours_interval'
            interval_type:
              $ref: '#/components/schemas/offer_chain_interval_type_hourly'
          title: interval_type = horaire
          type: object
      type: object
    offer_chain_recurrent_schedule_client_side:
      description: Période de réinitialisation de la chaîne d'offres.
      nullable: true
      properties:
        interval_type:
          description: Fréquence de réinitialisation de la chaîne d'offres.
          enum:
            - weekly
            - monthly
            - hourly
          type: string
        reset_next_date:
          $ref: '#/components/schemas/offer_chain_reset_next_date'
      type: object
    offer_chain_recurrent_schedule_create_update:
      description: Période de réinitialisation de la chaîne d'offres.
      nullable: true
      oneOf:
        - description: Réinitialisation hebdomadaire de la chaîne d'offres.
          nullable: true
          properties:
            day_of_week:
              $ref: '#/components/schemas/offer_chain_day_of_week'
            interval_type:
              $ref: '#/components/schemas/offer_chain_interval_type_weekly'
            time:
              $ref: '#/components/schemas/offer_chain_time'
          required:
            - interval_type
            - time
            - day_of_week
          title: interval_type = weekly
          type: object
        - description: Réinitialisation mensuelle de la chaîne d'offres.
          properties:
            day_of_month:
              $ref: '#/components/schemas/offer_chain_day_of_month'
            interval_type:
              $ref: '#/components/schemas/offer_chain_interval_type_monthly'
            time:
              $ref: '#/components/schemas/offer_chain_time'
          required:
            - interval_type
            - time
            - day_of_month
          title: interval_type = monthly
          type: object
        - description: >-
            Réinitialisation de la chaîne d'offres effectuée selon l'intervalle
            de temps spécifié, en heures.
          properties:
            hours_interval:
              $ref: '#/components/schemas/offer_chain_hours_interval'
            interval_type:
              $ref: '#/components/schemas/offer_chain_interval_type_hourly'
          required:
            - interval_type
            - hours_interval
          title: interval_type = horaire
          type: object
      type: object
    offer_chain_reset_next_date:
      description: "Date et heure calculées auxquelles la chaîne d'offres sera réinitialisée la prochaine fois, au format <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">Unix Timestamp</a>. <br><br> Par exemple, si la réinitialisation mensuelle de la chaîne d'offres commence le 1er\_mars\_2024 à 1\_h (heure de Kuala Lumpur, GMT+8), la réinitialisation suivante aura lieu le 1er\_avril\_2024 à 1\_h, ce qui correspond au 31\_mars\_2024 17:00 GMT+0 ou à `1711904400000` au format Unix Timestamp. <br><br> Exemple\_: `1711904400000`"
      type: integer
    offer_chain_step_id:
      description: ID unique de l'étape de la chaîne.
      example: 10
      minimum: 1
      nullable: true
      type: integer
    offer_chain_step_number:
      description: Numéro de l'étape.
      example: 2
      minimum: 1
      nullable: false
      type: integer
    offer_chain_step_price:
      nullable: true
      properties:
        amount:
          $ref: '#/components/schemas/offer_chain_step_price_amount'
        currency:
          $ref: '#/components/schemas/offer_chain_step_price_currency'
      required:
        - amount
        - currency
      type: object
    offer_chain_step_price_amount:
      description: Prix de l'étape en devises réelles.
      example: 99.99
      type: number
    offer_chain_step_price_currency:
      description: >-
        Devise du prix de l'objet. Code à trois lettres selon [ISO
        4217](https://en.wikipedia.org/wiki/ISO_4217).
      example: USD
      type: string
    offer_chain_time:
      description: "Heure à laquelle la chaîne d'offres est réinitialisée dans le fuseau horaire spécifié (arrondi aux heures). <br><br> Par exemple, si l'heure de réinitialisation est fixée à 1\_h, heure de Kuala Lumpur (GMT+8), la valeur du paramètre `time` est `01:00:00+08:00`."
      example: 01:00:00+08:00
      pattern: ((0[0-9]|1[0-9]|2[0-3]):00:00)(\+|-)(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])
      type: string
    order:
      description: Définit l'ordre d'empilement.
      example: 1
      type: integer
    periods:
      description: >-
        Périodes de validité de la chaîne de récompenses. Si plusieurs périodes
        sont spécifiées, les paramètres `date_from` et `date_until` sont tous
        deux requis.
      items:
        properties:
          date_from:
            description: Date de début de la chaîne de récompenses spécifiée.
            example: '2020-08-11T10:00:00+03:00'
            format: date-time
            nullable: false
            type: string
          date_until:
            description: >-
              Date de fin de la chaîne de récompenses spécifiée. Peut être
              définie à `null` uniquement lorsqu'une seule période de validité
              est spécifiée.
            example: '2020-08-11T20:00:00+03:00'
            format: date-time
            nullable: true
            type: string
        required:
          - date_from
        type: object
      nullable: false
      type: array
    personalized-catalog_user-attribute_conditions_model-get:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-get'
        - description: >-
            Conditions de validation des attributs utilisateur.

            Déterminez la disponibilité des objets dans le catalogue selon la
            correspondance des attributs utilisateur avec l'ensemble des
            conditions définies.
    personalized-catalog_user-attribute_conditions_model-post:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-post'
        - description: >-
            Conditions de validation des attributs utilisateur.

            Déterminez la disponibilité des objets dans le catalogue selon la
            correspondance des attributs utilisateur avec l'ensemble des
            conditions définies.
    popup_header-two-letter-locale:
      description: >-
        Objet contenant les localisations de l'en-tête de la fenêtre
        contextuelle de la chaîne de récompenses de clan. [Code de
        langue](https://developers.xsolla.com/fr/doc/pay-station/features/localization/)
        à deux lettres minuscules.
      nullable: true
      properties:
        ar:
          example: null
          nullable: true
          type: string
        bg:
          example: null
          nullable: true
          type: string
        cn:
          example: null
          nullable: true
          type: string
        cs:
          example: null
          nullable: true
          type: string
        de:
          example: Wie man Belohnungen freischaltet
          nullable: true
          type: string
        en:
          example: How to unlock rewards
          nullable: true
          type: string
        es:
          example: Cómo desbloquear recompensas
          nullable: true
          type: string
        fr:
          example: Comment débloquer des récompenses
          nullable: true
          type: string
        he:
          example: null
          nullable: true
          type: string
        it:
          example: Come sbloccare ricompense
          nullable: true
          type: string
        ja:
          example: 報酬をアンロックする方法
          nullable: true
          type: string
        ko:
          example: null
          nullable: true
          type: string
        pl:
          example: null
          nullable: true
          type: string
        pt:
          example: null
          nullable: true
          type: string
        ro:
          example: null
          nullable: true
          type: string
        ru:
          example: null
          nullable: true
          type: string
        th:
          example: null
          nullable: true
          type: string
        tr:
          example: null
          nullable: true
          type: string
        tw:
          example: null
          nullable: true
          type: string
        vi:
          example: null
          nullable: true
          type: string
      type: object
    popup_image_url:
      description: Image pour la fenêtre contextuelle de la chaîne de récompenses de clan.
      example: https://image.example.com
      format: uri
      nullable: true
      type: string
    popup_instruction-two-letter-locale:
      description: >-
        Objet contenant les localisations des instructions de la fenêtre
        contextuelle de la chaîne de récompenses de clan. [Code de
        langue](https://developers.xsolla.com/fr/doc/pay-station/features/localization/)
        à deux lettres minuscules.
      nullable: true
      properties:
        ar:
          example: null
          nullable: true
          type: string
        bg:
          example: null
          nullable: true
          type: string
        cn:
          example: null
          nullable: true
          type: string
        cs:
          example: null
          nullable: true
          type: string
        de:
          example: >-
            Du musst ein Clanmitglied sein, um Clananreize zu erhalten. Du
            trittst einem Clan bei, wenn ein Clanmitglied dich einlädt, und du
            die Einladung annimmst. Du kannst auch deinen eigenen Clan
            erstellen.
          nullable: true
          type: string
        en:
          example: >-
            You must be a clan member to get clan rewards. You join a clan when
            a clan member invites you to the clan, and you accept the invite.
            You can also create your own clan.
          nullable: true
          type: string
        es:
          example: >-
            Debes ser miembro de un clan para obtener las recompensas del clan.
            Te unes a un clan cuando un miembro del clan te invita al clan y
            aceptas la invitación. También puedes crear tu propio clan.
          nullable: true
          type: string
        fr:
          example: >-
            Vous devez être membre d'un clan pour obtenir les récompenses du
            clan. Vous rejoignez un clan lorsque qu'un membre du clan vous
            invite au clan et que vous acceptez l'invitation. Vous pouvez
            également créer votre propre clan.
          nullable: true
          type: string
        he:
          example: null
          nullable: true
          type: string
        it:
          example: >-
            Devi essere un membro del clan per ottenere le ricompense del clan.
            Ti unisci a un clan quando un membro del clan ti invita al clan e
            accetti l'invito. Puoi anche creare il tuo clan.
          nullable: true
          type: string
        ja:
          example: >-
            クランリワードを受け取るには、クランメンバーでなければなりません。
            クランメンバーがあなたをクランに招待し、招待を受け入れると、クランに参加できます。 あなた自身のクランを作成することもできます。
          nullable: true
          type: string
        ko:
          example: null
          nullable: true
          type: string
        pl:
          example: null
          nullable: true
          type: string
        pt:
          example: null
          nullable: true
          type: string
        ro:
          example: null
          nullable: true
          type: string
        ru:
          example: null
          nullable: true
          type: string
        th:
          example: null
          nullable: true
          type: string
        tr:
          example: null
          nullable: true
          type: string
        tw:
          example: null
          nullable: true
          type: string
        vi:
          example: null
          nullable: true
          type: string
      type: object
    price_conditions_bonus:
      description: >-
        Tableau d'objets avec des conditions définissant la fourchette de prix
        pour l'application de la promotion.<br> La promotion ne s'applique
        qu'aux biens dont le prix répond à toutes les conditions du tableau. Si
        vous passez ce tableau, définissez la valeur de l'objet
        [condition](/fr/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request)
        sur `null`.
      items:
        $ref: '#/components/schemas/price_conditions_items'
      nullable: true
      type: array
    price_conditions_discount:
      description: >-
        Tableau d'objets avec des conditions définissant la fourchette de prix
        pour l'application de la promotion.<br> La promotion ne s'applique
        qu'aux biens dont le prix répond à toutes les conditions du tableau. Si
        vous passez ce tableau, définissez la valeur de l'objet
        [items](/fr/api/shop-builder/operation/create-item-promotion/#!path=items&t=request)
        sur `null`.
      items:
        $ref: '#/components/schemas/price_conditions_items'
      nullable: true
      type: array
    price_conditions_items:
      description: Chaque objet décrit une règle définissant le prix requis.
      properties:
        operator:
          description: >-
            Opérateur de comparaison pour définir la fourchette de prix pour
            l'application de la promotion.
          enum:
            - ge
            - gt
            - le
            - lt
            - eq
            - ne
          type: string
          x-enumDescriptions:
            eq: Égal
            ge: Supérieur ou égal
            gt: Supérieure à
            le: Inférieur ou égal
            lt: Inférieur à
            ne: Différent de
        value:
          description: >-
            Valeur permettant de déterminer la fourchette de prix pour
            l'application de la promotion.
          pattern: ^\d+(\.\d{1,4})?$
          type: string
      required:
        - operator
        - value
      type: object
    price_conditions_promocode:
      description: >-
        Tableau d'objets avec des conditions définissant la fourchette de prix
        pour l'application de la promotion à l'ensemble du panier.<br>

        Le prix total de tous les biens du panier de l'utilisateur est comparé à
        la fourchette de prix spécifiée dans la condition. Les
        [bonus](/fr/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request)
        et les
        [réductions](/fr/api/shop-builder/operation/create-promo-code/#!path=discount&t=request)
        s'appliquent à tous les biens du panier si le prix du panier répond à la
        condition spécifiée.<br>

        Si vous passez ce tableau, définissez la valeur du tableau
        [discounted_items](/fr/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request)
        sur `null`.
      items:
        $ref: '#/components/schemas/price_conditions_items'
      nullable: true
      type: array
    promotion_periods:
      description: >-
        Périodes de validité de la promotion. Si plusieurs périodes sont
        spécifiées, les paramètres `date_from` et `date_until` sont tous deux
        requis.
      items:
        properties:
          date_from:
            description: Date de début de la promotion spécifiée.
            example: '2020-08-11T10:00:00+03:00'
            format: date-time
            nullable: false
            type: string
          date_until:
            description: >-
              Date de fin de la promotion. Si la valeur est `null`, la promotion
              est illimitée. `null` n'est autorisé que si une seule période de
              validité est définie.
            example: '2020-08-11T20:00:00+03:00'
            format: date-time
            nullable: true
            type: string
        required:
          - date_from
        type: object
      nullable: false
      type: array
    promotion_recurrent_schedule_response:
      description: Délai d'actualisation des limites.
      nullable: true
      properties:
        per_user:
          description: Délai d'actualisation des limites pour un utilisateur.
          properties:
            day_of_month:
              description: >-
                Jour du mois où les limites sont actualisées. Si aucun jour du
                mois n'est sélectionné en raison d'un mois plus court,
                l'actualisation aura lieu le dernier jour du mois. Ne prend pas
                la valeur `null`. Uniquement pour le type de délai
                d'actualisation de limites `monthly`.
              maximum: 31
              minimum: 1
              nullable: true
              type: integer
            day_of_week:
              description: >-
                Jour de la semaine où les limites sont actualisées. Où 1
                correspond au lundi et 7 au dimanche. Ne prend pas la valeur
                `null`. Uniquement pour le type de délai d'actualisation de
                limites `weekly`.
              maximum: 7
              minimum: 1
              nullable: true
              type: integer
            displayable_reset_next_date:
              description: Date et heure de réinitialisation des limites (ISO 8601).
              example: '2023-02-28T11:00:00+08:00'
              format: date-time
              type: string
            displayable_reset_start_date:
              description: >-
                Date et heure de la première actualisation des limites (ISO
                8601).
              example: '2023-02-28T11:00:00+08:00'
              format: date-time
              type: string
            interval_type:
              description: Type de délai d'actualisation récurrent.
              enum:
                - daily
                - weekly
                - monthly
              type: string
            reset_next_date:
              description: Date et heure d'actualisation des limites (horodatage Unix).
              example: 1677553200
              type: integer
            time:
              description: >-
                Heure d'actualisation des limites dans le fuseau horaire
                souhaité (arrondie en heures).
              example: 11:00:00+03:00
              format: full-time
              type: string
          type: object
      type: object
    promotion_user-attribute_conditions_model-get:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-get'
        - description: >-
            Conditions de validation des attributs utilisateur.

            Déterminez la disponibilité de la promotion selon la correspondance
            des attributs utilisateur avec l'ensemble des conditions définies.
    promotion_user-attribute_conditions_model-post:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-post'
        - description: >-
            Conditions de validation des attributs utilisateur.

            Déterminez la disponibilité de la promotion selon la correspondance
            des attributs utilisateur avec l'ensemble des conditions définies.
    recurrent_schedule_client_side:
      description: Période de réinitialisation récurrente de la chaîne de récompenses.
      nullable: true
      properties:
        interval_type:
          oneOf:
            - $ref: '#/components/schemas/interval_type_weekly'
              title: interval_type = weekly
            - $ref: '#/components/schemas/interval_type_monthly'
              title: interval_type = monthly
            - $ref: '#/components/schemas/interval_type_hourly_rc'
              title: interval_type = horaire
        reset_next_date:
          $ref: '#/components/schemas/reset_next_date'
      type: object
    recurrent_schedule_create_update:
      description: Période de réinitialisation récurrente de la chaîne de récompenses.
      nullable: true
      oneOf:
        - description: Type hebdomadaire d'actualisation de la chaîne de récompenses.
          properties:
            day_of_week:
              $ref: '#/components/schemas/day_of_week'
            interval_type:
              $ref: '#/components/schemas/interval_type_weekly'
            time:
              $ref: '#/components/schemas/time'
          required:
            - interval_type
            - time
            - day_of_week
          title: interval_type = weekly
          type: object
        - description: Type mensuel d'actualisation de la chaîne de récompenses.
          properties:
            day_of_month:
              $ref: '#/components/schemas/day_of_month'
            interval_type:
              $ref: '#/components/schemas/interval_type_monthly'
            time:
              $ref: '#/components/schemas/time'
          required:
            - interval_type
            - time
            - day_of_month
          title: interval_type = monthly
          type: object
        - description: >-
            Réinitialisation de la chaîne de récompenses effectuée selon
            l'intervalle de temps spécifié, en heures.
          properties:
            hours_interval:
              $ref: '#/components/schemas/reward_chain_hours_interval'
            interval_type:
              $ref: '#/components/schemas/interval_type_hourly_rc'
          required:
            - interval_type
            - hours_interval
          title: interval_type = horaire
          type: object
      type: object
    reset_next_date:
      description: "Date et heure calculées auxquelles la chaîne de récompenses sera réinitialisée la prochaine fois <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">(horodatage Unix)</a>. <br><br> Par exemple, la réinitialisation de la chaîne de récompenses est prévue chaque mois à partir du 1er mars 2024 à 01:00 de Kuala Lumpur (GMT+8). La date et l'heure de la prochaine remise à zéro de la chaîne de récompenses est le 1er avril 2024 à 01:00 de Kuala Lumpur (GMT+8), soit le 31 mars 2024 17:00 GMT+0 ou `1711904400000` dans le format Unix Timestamp. <br><br> Exemple\_: `1711904400000`"
      type: integer
    reward-chain-step-reward_user-attribute_conditions_model-get:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-get'
        - description: >-
            Conditions de validation des attributs utilisateur.

            Déterminez la disponibilité de la récompense pour les étapes de la
            chaîne de récompenses selon la correspondance des attributs
            utilisateur avec l'ensemble des conditions définies.
    reward-chain-step-reward_user-attribute_conditions_model-post:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-post'
        - description: >-
            Conditions de validation des attributs utilisateur.

            Déterminez la disponibilité de la récompense pour les étapes de la
            chaîne de récompenses selon la correspondance des attributs
            utilisateur avec l'ensemble des conditions définies.
    reward_chain_hours_interval:
      description: "Intervalle en heures, après lequel la chaîne de récompenses est réinitialisée. <br><br> Le compte à rebours commence à partir du paramètre <a href=\"https://developers.xsolla.com/fr/api/shop-builder/operation/admin-create-reward-chain/#!path=0/date_start&t=request\">date_start</a>. <br><br> Par exemple, si `date_start = \"2025-11-15T18:15:00+05:00\"` et `hours_interval = 2`, la chaîne de récompenses se réinitialise toutes les 2\_h à partir de `\"2025-11-15T20:15:00+05:00\"`."
      maximum: 10000
      minimum: 1
      type: integer
    reward_chain_id:
      description: ID unique de la chaîne de récompenses.
      example: 9
      type: integer
    reward_item_quantity:
      description: Quantité de l'objet.
      example: 2
      type: integer
    reward_step_price:
      properties:
        amount:
          $ref: '#/components/schemas/step_price_amount'
      required:
        - amount
      type: object
    reward_step_short:
      description: Étape de la chaîne de récompenses.
      properties:
        image_url:
          $ref: '#/components/schemas/image_url'
        name:
          $ref: '#/components/schemas/name-localization-object'
        price:
          $ref: '#/components/schemas/reward_step_price'
        reward:
          items:
            properties:
              attribute_conditions:
                $ref: >-
                  #/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-get
              quantity:
                $ref: '#/components/schemas/reward_item_quantity'
              sku:
                $ref: '#/components/schemas/sku'
            type: object
          type: array
        step_id:
          $ref: '#/components/schemas/step_id'
      type: object
    rolling-skippable-daily-chain-base:
      description: >-
        Propriétés de base pour les récompenses quotidiennes de type
        `rolling_skippable`.
      properties:
        date_end:
          $ref: '#/components/schemas/rolling_date_end'
        date_start:
          $ref: '#/components/schemas/daily_rolling_chain_date_start'
        is_recurrent:
          $ref: '#/components/schemas/rolling_is_recurrent'
        type:
          allOf:
            - $ref: '#/components/schemas/daily_chain_type'
            - enum:
                - rolling_skippable
      type: object
    rolling-unskippable-daily-chain-base:
      description: >-
        Propriétés de base pour les récompenses quotidiennes de type
        `rolling_unskippable`.
      properties:
        date_end:
          $ref: '#/components/schemas/rolling_date_end'
        date_start:
          $ref: '#/components/schemas/daily_rolling_chain_date_start'
        is_recurrent:
          $ref: '#/components/schemas/rolling_is_recurrent'
        type:
          allOf:
            - $ref: '#/components/schemas/daily_chain_type'
            - enum:
                - rolling_unskippable
      type: object
    rolling_date_end:
      description: Date de fin de la récompense quotidienne.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      nullable: true
      type: string
    rolling_is_recurrent:
      default: false
      description: >-
        Détermine si la récompense quotidienne est récurrente. Si `true`, elle
        se réinitialise une fois toutes les étapes terminées, permettant à
        l'utilisateur de recommencer à l'étape 1. La récurrence est active
        uniquement pendant la période définie par `date_start` et `date_end`.
      example: true
      type: boolean
    sku:
      description: >-
        ID unique de l'objet. L'UGS ne peut comprendre que des caractères
        alphanumériques latins minuscules et majuscules, des points, des tirets
        et des traits bas.
      example: booster_mega_1
      maxLength: 255
      minLength: 1
      pattern: ^[a-zA-Z0-9_\-–.]*$
      type: string
    step_id:
      description: ID unique de l'étape.
      example: 10
      nullable: true
      type: integer
    step_price_amount:
      description: Prix de l'étape en points de valeur.
      example: 100
      type: integer
    time:
      description: >-
        Heure à laquelle la chaîne de récompenses est réinitialisée dans le
        fuseau horaire souhaité (arrondie aux heures). <br><br> Par exemple,
        l'heure de réinitialisation de la chaîne de récompenses est fixée à
        01:00 pour le fuseau horaire de Kuala Lumpur (GMT+8). Dans ce cas, la
        valeur du paramètre `time` est `01:00:00+08:00`.
      example: 01:00:00+08:00
      pattern: ((0[0-9]|1[0-9]|2[0-3]):00:00)(\+|-)(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])
      type: string
    top_contributors:
      nullable: true
      properties:
        contributed_amount:
          description: Montant des points de valeur gagnés par l'utilisateur.
          example: 100
          type: integer
        name:
          description: >-
            ID utilisateur transmis à Xsolla lors de l'autorisation. Cet ID
            utilisateur associe l'utilisateur à votre projet Xsolla Login et
            sert de pseudonyme. Si vous utilisez l'autorisation par [ID
            utilisateur](https://developers.xsolla.com/fr/solutions/web-shop/create-web-shop/set-up-authentication/?tabs=100-UserIDAuth&link=100-UserIDAuth),
            nous vous recommandons de passer le <code>name</code> paramètre dans
            [la réponse du
            webhook](https://developers.xsolla.com/fr/webhooks/operation/user-validation-in-webshop/).
            Ce paramètre contient le nom d'utilisateur utilisé comme pseudonyme.
          example: Rocket
          type: string
      type: object
    total_promotions_count:
      description: Nombre total de promotions.
      type: integer
    two-letter-locale:
      description: Codes de langue à deux lettres minuscules.
      nullable: true
      properties:
        ar:
          description: Arabe
          nullable: true
          type: string
        bg:
          description: Bulgare
          nullable: true
          type: string
        cn:
          description: Chinois (simplifié)
          nullable: true
          type: string
        cs:
          description: Tchèque
          nullable: true
          type: string
        de:
          description: Allemand
          nullable: true
          type: string
        en:
          description: Anglais
          nullable: true
          type: string
        es:
          description: Espagnol (Espagne)
          nullable: true
          type: string
        fr:
          description: Français
          nullable: true
          type: string
        he:
          description: Hébreu
          nullable: true
          type: string
        id:
          description: Indonésien
          nullable: true
          type: string
        it:
          description: Italien
          nullable: true
          type: string
        ja:
          description: Japonais
          nullable: true
          type: string
        km:
          description: Khmer
          nullable: true
          type: string
        ko:
          description: Coréen
          nullable: true
          type: string
        lo:
          description: Laotien
          nullable: true
          type: string
        my:
          description: Birman
          nullable: true
          type: string
        ne:
          description: Népalais
          nullable: true
          type: string
        ph:
          description: Philippin
          nullable: true
          type: string
        pl:
          description: Polonais
          nullable: true
          type: string
        pt:
          description: Portugais
          nullable: true
          type: string
        ro:
          description: Roumain
          nullable: true
          type: string
        ru:
          description: Russe
          nullable: true
          type: string
        th:
          description: Thaï
          nullable: true
          type: string
        tr:
          description: Turc
          nullable: true
          type: string
        tw:
          description: Chinois (traditionnel)
          nullable: true
          type: string
        vi:
          description: Vietnamien
          nullable: true
          type: string
      title: two-letter
      type: object
    unit_type:
      description: "Type d'unité\_: `game`."
      example: game
      type: string
    update-calendar-hard-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/calendar-hard-daily-chain-base'
        - description: Récompense quotidienne de type `calendar_hard`.
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/modify-daily-chain-step-model'
              type: array
          required:
            - name
            - date_start
            - steps
            - is_enabled
            - type
          type: object
    update-clan-reward-chain-model:
      allOf:
        - $ref: '#/components/schemas/create-reward-chain-model'
        - description: Chaîne de récompense de clan.
          properties:
            clan_type:
              $ref: '#/components/schemas/clan_type'
            popup_header:
              $ref: '#/components/schemas/popup_header-two-letter-locale'
            popup_image_url:
              $ref: '#/components/schemas/popup_image_url'
            popup_instruction:
              $ref: '#/components/schemas/popup_instruction-two-letter-locale'
          required:
            - name
            - periods
            - steps
            - is_enabled
            - popup_header
            - popup_instruction
          type: object
    update-reward-chain-model:
      description: Chaîne de récompenses.
      properties:
        attribute_conditions:
          $ref: '#/components/schemas/chain_user-attribute_conditions_model-post'
        description:
          $ref: '#/components/schemas/description-localization-object'
        image_url:
          $ref: '#/components/schemas/image_url'
        is_always_visible:
          $ref: '#/components/schemas/chain_is_always_visible'
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        is_reset_after_end:
          $ref: '#/components/schemas/is_reset_after_end'
        long_description:
          $ref: '#/components/schemas/long-description-localization-object'
        name:
          $ref: '#/components/schemas/name-localization-object'
        order:
          $ref: '#/components/schemas/order'
        periods:
          $ref: '#/components/schemas/periods'
        recurrent_schedule:
          $ref: '#/components/schemas/recurrent_schedule_create_update'
        steps:
          items:
            $ref: '#/components/schemas/modify_reward_step'
          type: array
      required:
        - name
        - periods
        - steps
        - is_enabled
      type: object
    update-rolling-skippable-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/rolling-skippable-daily-chain-base'
        - description: Récompense quotidienne de type `rolling_skippable`.
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/modify-daily-chain-step-model'
              type: array
          required:
            - name
            - date_start
            - steps
            - is_enabled
            - type
          type: object
    update-rolling-unskippable-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/rolling-unskippable-daily-chain-base'
        - description: Récompense quotidienne de type `rolling_unskippable`.
          properties:
            description:
              $ref: '#/components/schemas/description-localization-object'
            id:
              $ref: '#/components/schemas/daily_chain_id'
            is_enabled:
              $ref: '#/components/schemas/is_enabled'
            name:
              $ref: '#/components/schemas/name-localization-object'
            order:
              $ref: '#/components/schemas/order'
            steps:
              items:
                $ref: '#/components/schemas/modify-daily-chain-step-model'
              type: array
          required:
            - name
            - date_start
            - steps
            - is_enabled
            - type
          type: object
    update_step_id:
      description: >-
        ID unique de l'étape de la chaîne. Indiquez-le lors de la mise à jour
        pour conserver la progression de l'utilisateur pour cette étape.
      example: 10
      minimum: 1
      nullable: true
      type: integer
    user-attribute_condition_date_model-get:
      properties:
        attribute:
          $ref: '#/components/schemas/user-attribute_conditions_properties_attribute'
        can_be_missing:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_can_be_missing
        operator:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_operator_date
        type:
          $ref: '#/components/schemas/user-attribute_conditions_properties_type-date'
        value:
          $ref: '#/components/schemas/user-attribute_conditions_properties_value'
      title: type = date
      type: object
    user-attribute_condition_date_model-post:
      properties:
        attribute:
          $ref: '#/components/schemas/user-attribute_conditions_properties_attribute'
        can_be_missing:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_can_be_missing
        operator:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_operator_date
        type:
          $ref: '#/components/schemas/user-attribute_conditions_properties_type-date'
        value:
          $ref: '#/components/schemas/user-attribute_conditions_properties_value'
      required:
        - attribute
        - operator
        - value
        - type
      title: type = date
      type: object
    user-attribute_condition_number_model-get:
      properties:
        attribute:
          $ref: '#/components/schemas/user-attribute_conditions_properties_attribute'
        can_be_missing:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_can_be_missing
        operator:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_operator_number
        type:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_type-number
        value:
          $ref: '#/components/schemas/user-attribute_conditions_properties_value'
      title: type = number
      type: object
    user-attribute_condition_number_model-post:
      properties:
        attribute:
          $ref: '#/components/schemas/user-attribute_conditions_properties_attribute'
        can_be_missing:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_can_be_missing
        operator:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_operator_number
        type:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_type-number
        value:
          $ref: '#/components/schemas/user-attribute_conditions_properties_value'
      required:
        - attribute
        - operator
        - value
        - type
      title: type = number
      type: object
    user-attribute_condition_string_model-get:
      properties:
        attribute:
          $ref: '#/components/schemas/user-attribute_conditions_properties_attribute'
        can_be_missing:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_can_be_missing
        operator:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_operator_string
        type:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_type-string
        value:
          $ref: '#/components/schemas/user-attribute_conditions_properties_value'
      title: type = string
      type: object
    user-attribute_condition_string_model-post:
      properties:
        attribute:
          $ref: '#/components/schemas/user-attribute_conditions_properties_attribute'
        can_be_missing:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_can_be_missing
        operator:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_operator_string
        type:
          $ref: >-
            #/components/schemas/user-attribute_conditions_properties_type-string
        value:
          $ref: '#/components/schemas/user-attribute_conditions_properties_value'
      required:
        - attribute
        - operator
        - value
        - type
      title: type = string
      type: object
    user-attribute_conditions_model-get:
      items:
        oneOf:
          - $ref: '#/components/schemas/user-attribute_condition_string_model-get'
          - $ref: '#/components/schemas/user-attribute_condition_number_model-get'
          - $ref: '#/components/schemas/user-attribute_condition_date_model-get'
      maxItems: 100
      minItems: 1
      type: array
    user-attribute_conditions_model-post:
      items:
        oneOf:
          - $ref: '#/components/schemas/user-attribute_condition_string_model-post'
          - $ref: '#/components/schemas/user-attribute_condition_number_model-post'
          - $ref: '#/components/schemas/user-attribute_condition_date_model-post'
      maxItems: 100
      minItems: 1
      type: array
    user-attribute_conditions_properties_attribute:
      description: Code d'attribut utilisateur.
      maxLength: 255
      minLength: 1
      pattern: ^[-_.\d\w]+$
      type: string
    user-attribute_conditions_properties_can_be_missing:
      description: >-
        Indique que la condition est remplie même si l'attribut est absent des
        attributs de l'utilisateur. Passez `true` pour afficher l'objet pour les
        utilisateurs ne possédant pas cet attribut. Les utilisateurs ayant
        l'attribut, mais dont la valeur ne correspond pas à celle définie dans
        la condition ne verront pas l'objet. Si vous passez `false`, les
        utilisateurs dont l'attribut est manquant ou dont la valeur ne
        correspond pas à celle spécifiée dans la condition ne verront pas
        l'objet.
      type: boolean
    user-attribute_conditions_properties_operator_date:
      description: >-
        Type d'opération effectuée par la condition. Pour le type d'attribut
        <code>date</code>.
      enum:
        - eq
        - ne
        - lt
        - gt
        - le
        - ge
      type: string
      x-enumDescriptions:
        eq: Égal
        ge: Postérieur ou égal
        gt: Postérieur
        le: Antérieur ou égal
        lt: Antérieur
        ne: Différent de
    user-attribute_conditions_properties_operator_number:
      description: >-
        Type d'opération effectuée par la condition. Pour le type d'attribut
        <code>number</code>.
      enum:
        - eq
        - ne
        - gt
        - ge
        - lt
        - le
      type: string
      x-enumDescriptions:
        eq: Égal
        ge: Supérieur ou égal
        gt: Supérieur
        le: Inférieur ou égal
        lt: Inférieur
        ne: Différent de
    user-attribute_conditions_properties_operator_string:
      description: >-
        Type d'opération effectuée par la condition. Pour le type d'attribut
        <code>string</code>.
      enum:
        - eq
        - ne
      type: string
      x-enumDescriptions:
        eq: Égal
        ne: Différent de
    user-attribute_conditions_properties_type-date:
      description: Type d'attribut utilisateur.
      enum:
        - date
      type: string
    user-attribute_conditions_properties_type-number:
      description: Type d'attribut utilisateur.
      enum:
        - number
      type: string
    user-attribute_conditions_properties_type-string:
      description: Type d'attribut utilisateur.
      enum:
        - string
      type: string
    user-attribute_conditions_properties_value:
      description: >-
        Valeur de la condition à laquelle la valeur de l'attribut utilisateur
        sera comparée. Le type dépend du type d'attribut.
      maxLength: 255
      type: string
    user-attribute_personalized-catalog:
      properties:
        attribute_conditions:
          $ref: >-
            #/components/schemas/personalized-catalog_user-attribute_conditions_model-get
        is_enabled:
          description: Si la règle est activée.
          type: boolean
        is_satisfied_for_unauth:
          description: >-
            Détermine l'affichage de l'objet aux utilisateurs non autorisés. Si
            `true`, l'objet s'affiche à l'utilisateur non autorisé sans tenir
            compte des règles d'affichage du catalogue. La valeur par défaut est
            `false`.
          type: boolean
        items:
          items:
            description: >-
              Objets qui seront affichés à l'utilisateur si les valeurs de ses
              attributs répondent aux conditions.
            properties:
              bundle_type:
                description: Type de lot. Renvoyé si le type d'objet est un lot.
                enum:
                  - standard
                  - virtual_currency_package
                type: string
              item_id:
                description: ID de l'objet
                type: number
              name:
                description: Nom de l'objet.
                type: string
              sku:
                description: UGS de l'objet.
                type: string
              type:
                description: Type d'objet.
                enum:
                  - virtual_good
                  - virtual_currency
                  - bundle
                  - physical_good
                  - unit
                type: string
            type: object
          type: array
        name:
          description: >-
            Nom lisible d'une règle. Utilisé pour afficher une règle dans le
            Compte éditeur.
          type: string
        rule_id:
          description: ID de règle.
          type: number
      required:
        - rule_id
        - name
        - is_enabled
        - attribute_conditions
        - items
      type: object
    user-attribute_personalized-catalog-body:
      properties:
        attribute_conditions:
          $ref: >-
            #/components/schemas/personalized-catalog_user-attribute_conditions_model-post
        is_enabled:
          description: Si la règle est activée.
          type: boolean
        is_satisfied_for_unauth:
          description: >-
            Détermine l'affichage de l'objet aux utilisateurs non autorisés. Si
            `true`, l'objet s'affiche à l'utilisateur non autorisé sans tenir
            compte des règles d'affichage du catalogue. La valeur par défaut est
            `false`.
          type: boolean
        items:
          items:
            oneOf:
              - description: >-
                  Objets qui sont affichés à l'utilisateur si les valeurs de ses
                  attributs répondent aux conditions.
                properties:
                  item_id:
                    description: ID de l'objet
                    type: number
                required:
                  - item_id
                type: object
              - description: >-
                  Objets qui sont affichés à l'utilisateur si les valeurs de ses
                  attributs répondent aux conditions.
                properties:
                  sku:
                    description: UGS de l'objet.
                    type: string
                required:
                  - sku
                type: object
          maxItems: 100
          minItems: 1
          type: array
        name:
          description: >-
            Nom lisible d'une règle. Utilisé pour afficher une règle dans le
            Compte éditeur.
          maxLength: 255
          minLength: 1
          pattern: ^\S
          type: string
      type: object
    user-attribute_personalized-catalog-body-required:
      properties:
        attribute_conditions:
          $ref: >-
            #/components/schemas/personalized-catalog_user-attribute_conditions_model-post
        is_enabled:
          description: Si la règle est activée.
          type: boolean
        is_satisfied_for_unauth:
          description: >-
            Détermine l'affichage de l'objet aux utilisateurs non autorisés. Si
            `true`, l'objet s'affiche à l'utilisateur non autorisé sans tenir
            compte des règles d'affichage du catalogue. La valeur par défaut est
            `false`.
          type: boolean
        items:
          items:
            oneOf:
              - description: >-
                  Objets qui sont affichés à l'utilisateur si les valeurs de ses
                  attributs répondent aux conditions.
                properties:
                  item_id:
                    description: ID de l'objet
                    type: number
                required:
                  - item_id
                type: object
              - description: >-
                  Objets qui sont affichés à l'utilisateur si les valeurs de ses
                  attributs répondent aux conditions.
                properties:
                  sku:
                    description: UGS de l'objet.
                    type: string
                required:
                  - sku
                type: object
          maxItems: 100
          minItems: 1
          type: array
        name:
          description: >-
            Nom lisible d'une règle. Utilisé pour afficher une règle dans le
            Compte éditeur.
          maxLength: 255
          minLength: 1
          pattern: ^\S
          type: string
      required:
        - name
        - is_enabled
        - attribute_conditions
        - items
      type: object
    user-attribute_personalized-catalog_all:
      properties:
        is_enabled:
          description: Si la règle est activée.
          type: boolean
        is_satisfied_for_unauth:
          description: >-
            Détermine l'affichage de l'objet aux utilisateurs non autorisés. Si
            `true`, l'objet s'affiche à l'utilisateur non autorisé sans tenir
            compte des règles d'affichage du catalogue. La valeur par défaut est
            `false`.
          type: boolean
        name:
          description: >-
            Nom lisible d'une règle. Utilisé pour afficher une règle dans le
            Compte éditeur.
          type: string
        rule_id:
          description: ID de règle.
          type: number
      required:
        - rule_id
        - name
        - is_enabled
      type: object
    value-external_id:
      description: >-
        ID unique de la valeur d'un attribut. Le `external_id` ne peut
        comprendre que des caractères alphanumériques latins minuscules, des
        tirets et des tirets bas.
      example: attribute_value
      maxLength: 255
      minLength: 1
      pattern: ^[-_.\d\w]+$
      type: string
    value-is_free:
      default: false
      description: Si ce paramètre est défini sur `true`, l'objet est gratuit.
      example: false
      type: boolean
    value-point-amount:
      description: Montant des points de valeur.
      type: integer
    value-point-description:
      description: Description du point de valeur.
      nullable: true
      type: string
    value-point-long-description:
      description: Description détaillée du point de valeur.
      nullable: true
      type: string
    value-point-name:
      description: Nom du point de valeur.
      type: string
    value-point-sku:
      description: ID unique du point de valeur.
      type: string
  securitySchemes:
    AuthForCart:
      description: >-
        Lors de la vente d'un panier contenant des jeux, vous pouvez [appeler
        l'endpoint sans
        autorisation](/fr/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users).


        Pour ce faire:


        * Ajoutez un identifiant unique au paramètre `x-unauthorized-id` dans
        l'en-tête pour les jeux.

        * Ajoutez l'adresse e-mail de l'utilisateur au paramètre `x-user`
        (encodé en Base64) dans l'en-tête des jeux.


        Par défaut, JWT utilisateur Xsolla Login (jeton Bearer) est utilisé pour
        l'autorisation. Vous pouvez essayer d'appeler cet endpoint avec un JWT
        utilisateur Xsolla Login de test: `Bearer
        eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI`.


        Vous pouvez également utiliser le [jeton d'accès Pay
        Station](https://developers.xsolla.com/fr/api/pay-station/operation/create-token/). 
      scheme: bearer
      type: http
    XsollaLoginUserJWT:
      bearerFormat: JWT
      description: "Par défaut, JWT utilisateur Xsolla Login (jeton Bearer) est utilisé pour l'autorisation. Vous pouvez essayer d'appeler cet endpoint avec un JWT utilisateur Xsolla Login de test\_: `Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI`.\n\nVous pouvez également utiliser le [jeton d'accès Pay Station](https://developers.xsolla.com/fr/api/pay-station/operation/create-token/). "
      scheme: bearer
      type: http
    basicAuth:
      description: "L'API de Xsolla utilise une authentification d'accès de base. Toutes les requêtes à l'API doivent contenir l'en-tête `Authorization: Basic <your_authorization_basic_key>`, où `your_authorization_basic_key` est la paire `project_id:api_key` encodée en Base64.\n\nVous pouvez utiliser `merchant_id` au lieu de `project_id` si nécessaire. Cela n'affecte pas la fonctionnalité.\n\nAccédez au [Compte éditeur](https://publisher.xsolla.com/) pour trouver les valeurs des paramètres\_:\n\n* `merchant_id` s'affiche\_:\n  * Dans la section **Company settings > Company**\_;\n  * Dans l'URL dans la barre d'adresse du navigateur sur n'importe quelle page du Compte éditeur. L'URL présente le format suivant\_: `https://publisher.xsolla.com/<merchant_id>`.\n* `api_key` apparaît dans le Compte éditeur une seule fois lors de sa création. Elle doit être conservée de votre côté. Vous pouvez créer une nouvelle clé dans la section suivante\_:\n  * **Company settings > API keys**\_;\n  * **Project settings > API keys**.\n* `project_id` s'affiche\_:\n  * Dans le Compte éditeur, à côté du nom du projet\_;\n  * Dans l'URL dans la barre d'adresse du navigateur lorsque vous travaillez sur un projet dans le Compte éditeur. L'URL présente le format suivant\_: `https://publisher.xsolla.com/<merchant_id>/projets/<project_id>`.\n\nPour plus d'informations sur l'utilisation des clés API, voir la [référence API](https://developers.xsolla.com/fr/api/getting-started/#api_keys_overview)."
      scheme: basic
      type: http
    basicMerchantAuth:
      description: "L'API de Xsolla utilise une authentification d'accès de base. Toutes les requêtes à l'API doivent contenir l'en-tête `Authorization: Basic <your_authorization_basic_key>`, où `your_authorization_basic_key` est la paire `merchant_id:api_key` encodée en Base64.\n\nAccédez au [Compte éditeur](https://publisher.xsolla.com/) pour trouver les valeurs des paramètres\_:\n\n* `merchant_id` s'affiche\_:\n  * Dans la section **Company settings > Company**\_;\n  * Dans l'URL dans la barre d'adresse du navigateur sur n'importe quelle page du Compte éditeur. L'URL présente le format suivant\_: `https://publisher.xsolla.com/<merchant_id>`.\n* `api_key` apparaît dans le Compte éditeur une seule fois lors de sa création. Elle doit être conservée de votre côté. Vous pouvez créer une nouvelle clé dans la section suivante\_:\n  * **Company settings > API keys**\_;\n  * **Project settings > API keys**.\n\nPour plus d'informations sur l'utilisation des clés API, voir la [référence API](https://developers.xsolla.com/fr/api/getting-started/#api_keys_overview)."
      scheme: basic
      type: http
info:
  description: |-
    # Overview

    * **Version:** 2.0.0
    * **Servers**: `https://store.xsolla.com/api`
    * **[Contact Us by Email](mailto:integration@xsolla.com)**
    * **Contact URL:** https://xsolla.com/
    * **Required TLS version:** 1.2

    LiveOps API fournit des endpoints pour stimuler l'engagement des joueurs. 
  title: LiveOps API
  version: 2.0.0
openapi: 3.0.0
paths:
  /v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}:
    get:
      description: "Récupère le nombre restant de fois que les codes peuvent être utilisés. Pour filtrer les codes, utilisez le paramètre de requête `codes`.\n\nPour configurer la limite de codes elle-même, accédez à la section Administrateur\_:\n* [Codes promo](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-coupons/)"
      operationId: get-coupon-code-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
        - $ref: '#/components/parameters/codes-query-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-code-coupon-limits'
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Coupon not found:
                  $ref: '#/components/examples/404-coupon-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Lire les limites pour les code de coupon uniques
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/code/limit/promocode/external_id/{external_id}:
    get:
      description: "Récupère le nombre restant de fois que les codes peuvent être utilisés. Pour filtrer les codes, utilisez le paramètre de requête `codes`.\n\nPour configurer la limite de codes elle-même, accédez à la section Administrateur\_:\n* [Codes promo](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-promo-codes/)"
      operationId: get-promo-code-code-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
        - $ref: '#/components/parameters/codes-query-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-code-promo-code-limits'
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Promo code not found:
                  $ref: '#/components/examples/404-coupon-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Lire les limites pour les codes promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/coupon/{external_id}/activate:
    put:
      description: |-
        Active une promotion par coupon.
        Par défaut, une promotion par coupon créée est désactivée.
        Pour permettre l'échange de coupons, vous devez l'activer.
        Utilisez cet endpoint pour activer une promotion par coupon.
      operationId: activate-coupon
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: Le coupon a été activé avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
        '422':
          $ref: '#/components/responses/Promotions_422-admin-promotion-error'
      security:
        - basicAuth: []
      summary: Activer une promotion par coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/coupon/{external_id}/code:
    get:
      description: Récupère les codes de coupon.
      operationId: get-coupon-codes
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-coupon-code-list'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Lire les codes de coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée un code de coupon.
      operationId: create-coupon-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_create-coupon-promocode-code'
      responses:
        '201':
          $ref: '#/components/responses/Promotions_201-coupon-promocode-code-created'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
        '422':
          $ref: >-
            #/components/responses/Promotions_422-coupon-promocode-same-code-exists
      security:
        - basicAuth: []
      summary: Créer un code de coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/coupon/{external_id}/code/generate:
    put:
      description: Génère des codes de coupon.
      operationId: generate-coupon-codes
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                count:
                  $ref: '#/components/schemas/Promotions_coupon-generate-count'
              required:
                - count
              type: object
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    count: 10
              schema:
                properties:
                  count:
                    $ref: '#/components/schemas/Promotions_coupon-generate-count'
                type: object
          description: Les codes ont été générés avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Générer des codes de coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/coupon/{external_id}/deactivate:
    put:
      description: |-
        Désactive une promotion par coupon.
        Par défaut, une promotion par coupon créée est désactivée.
        Pour permettre l'échange de coupons, vous devez l'activer.
        Utilisez cet endpoint pour désactiver une promotion par coupon.
      operationId: deactivate-coupon
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: Le coupon a été désactivé avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
        '422':
          $ref: '#/components/responses/Promotions_422-admin-promotion-error'
      security:
        - basicAuth: []
      summary: Désactiver une promotion par coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/daily_chain:
    get:
      description: "Récupère une liste de récompenses quotidiennes pour administration.\n<div class=\"notice\"><strong>Remarque</strong><br><br>La méthode renvoie une liste paginée d'objets. La valeur maximale et par défaut est de <strong>50\_objets par réponse.</strong> Pour obtenir d'autres objets de la liste, utilisez les paramètres `limit` et `offset`, et récupérez d'autres pages. Par exemple, avec `limit = 25` et `offset = 100`, la réponse renvoie 25\_objets à partir du 101e objet de la liste globale.</div>"
      operationId: admin-get-daily-chains
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/enabled-query-param'
        - $ref: '#/components/parameters/is_expired-daily-chain-query-param'
        - $ref: '#/components/parameters/type-daily-chain-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-list-daily-chains'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire une liste de récompenses quotidiennes
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée une récompense quotidienne.
      operationId: admin-create-daily-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/create-daily-chain'
      responses:
        '201':
          $ref: '#/components/responses/201-admin-create-daily-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/422-admin-create-error-list'
      security:
        - basicAuth: []
      summary: Créer une récompense quotidienne
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}:
    delete:
      description: Supprime une récompense quotidienne spécifique.
      operationId: admin-delete-daily-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/daily_chain_id-path-param'
      responses:
        '204':
          content: {}
          description: Récompense quotidienne supprimée avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - basicAuth: []
      summary: Supprimer la récompense quotidienne
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Récupère une récompense quotidienne spécifique pour administration.
      operationId: admin-get-daily-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/daily_chain_id-path-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-daily-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - basicAuth: []
      summary: Lire une récompense quotidienne
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Met à jour une récompense quotidienne spécifique.
      operationId: admin-update-daily-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/daily_chain_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/update-daily-chain'
      responses:
        '204':
          content: {}
          description: Récompense quotidienne mise à jour avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
        '422':
          $ref: '#/components/responses/422-admin-update-error-list'
      security:
        - basicAuth: []
      summary: Mettre à jour la récompense quotidienne
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/reset:
    post:
      description: >-
        Réinitialise la progression de tous les utilisateurs pour cette
        récompense quotidienne. Applicable uniquement aux récompenses de type
        `rolling`.
      operationId: admin-reset-daily-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/daily_chain_id-path-param'
      responses:
        '204':
          content: {}
          description: Récompense quotidienne réinitialisée.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - basicAuth: []
      summary: Réinitialiser la récompense quotidienne
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/toggle:
    put:
      description: Active ou désactive une récompense quotidienne.
      operationId: admin-toggle-daily-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/daily_chain_id-path-param'
      responses:
        '204':
          content: {}
          description: Récompense quotidienne désactivée ou activée.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - basicAuth: []
      summary: Basculer une récompense quotidienne
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/items/upsell:
    get:
      description: "Récupère les informations relatives à la vente incitative dans le projet\_: si elle est activée, le type de vente incitative et la liste des UGS des objets concernés par cette vente."
      operationId: get-upsell-configurations-for-project-admin
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                upsell:
                  summary: Le projet possède une vente incitative
                  value:
                    - is_enabled: true
                      items:
                        - item_id: 1
                          name:
                            de: Name des Artikels
                            en: Item's name
                          sku: com.xsolla.booster_mega_1
                          type: virtual_good
                        - bundle_type: standard
                          item_id: 2
                          name:
                            de: Name des Artikels
                            en: Item's name
                          sku: com.xsolla.booster_mega_2
                          type: bundle
                        - item_id: 3
                          name:
                            en: Mega game
                          sku: com.xsolla.mega_game_1
                          type: unit
                          unit_items:
                            - drm_name: Steam
                              drm_sku: steam_key_1
                              item_id: 4
                              name:
                                en: Mega game steam
                              sku: com.xsolla.mega_game_steam_1
                          unit_type: game
                      type: fixed_list
              schema:
                items:
                  properties:
                    is_enabled:
                      description: >-
                        Détermine si la vente incitative est activée pour le
                        projet.
                      example: true
                      type: boolean
                    items:
                      description: >-
                        Liste des UGS des objets faisant partie de la vente
                        incitative dans le projet.
                      example:
                        - item_id: 1
                          name:
                            de: Name des Artikels
                            en: Item's name
                          sku: com.xsolla.booster_mega_1
                          type: virtual_good
                      items:
                        properties:
                          bundle_type:
                            $ref: '#/components/schemas/bundle_type'
                          item_id:
                            $ref: '#/components/schemas/item_id'
                          name:
                            $ref: '#/components/schemas/name-localization-object'
                          sku:
                            $ref: '#/components/schemas/sku'
                          type:
                            $ref: '#/components/schemas/item_type'
                          unit_items:
                            description: Clés de jeu pour différents DRM.
                            items:
                              description: >-
                                Clé de jeu. Elle représente un jeu sur une
                                certaine plateforme (steam, gog, etc.).
                              properties:
                                drm_name:
                                  $ref: '#/components/schemas/drm_name'
                                drm_sku:
                                  $ref: '#/components/schemas/drm_sku'
                                item_id:
                                  $ref: '#/components/schemas/item_id'
                                name:
                                  $ref: >-
                                    #/components/schemas/name-localization-object
                                sku:
                                  $ref: '#/components/schemas/sku'
                                type:
                                  $ref: '#/components/schemas/item_type'
                              type: object
                            type: array
                          unit_type:
                            $ref: '#/components/schemas/unit_type'
                        type: object
                      type: array
                    type:
                      description: Type de vente incitative.
                      enum:
                        - fixed_list
                        - most_sellable
                        - only_promotions
                      example: fixed_list
                      type: string
                  type: object
                type: array
          description: >-
            Liste des détails de configuration et des objets utilisés pour la
            vente incitative dans le projet.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire les informations sur les ventes incitatives dans le projet
      tags:
        - upsell-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée une vente incitative pour un projet.
      operationId: post-upsell
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/create-upsell'
      responses:
        '202':
          description: Vente incitative créée pour le projet.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '404':
          $ref: '#/components/responses/Upsell-404-item-not-found'
        '422':
          $ref: '#/components/responses/Upsell-422-invalid-request'
      security:
        - XsollaLoginUserJWT: []
      summary: Créer une vente incitative
      tags:
        - upsell-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Mettre à jour une vente incitative pour un projet.
      operationId: put-upsell
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/update-upsell'
      responses:
        '202':
          description: Vente incitative mise à jour pour le projet.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '404':
          $ref: '#/components/responses/Upsell-404-item-not-found'
        '422':
          $ref: '#/components/responses/Upsell-422-invalid-request'
      security:
        - XsollaLoginUserJWT: []
      summary: Mettre à jour une vente incitative
      tags:
        - upsell-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/items/upsell/{toggle}:
    put:
      description: >-
        Modifie l'état d'une vente incitative dans un projet en activant ou
        désactivant la promotion.
      operationId: put-upsell-toggle-active-inactive
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - description: Statut d'activation.
          in: path
          name: toggle
          required: true
          schema:
            example: activate
            type: string
      responses:
        '202':
          description: Vente incitative activée ou désactivée dans le projet.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
      security:
        - XsollaLoginUserJWT: []
      summary: Activer/désactiver la vente incitative d'un projet
      tags:
        - upsell-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/items/value_points:
    get:
      description: >-
        Récupère la liste des points de valeur au sein d'un projet à des fins
        d'administration.e
      operationId: admin-get-value-points-list
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-value-points'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire la liste des points de valeur
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée un point de valeur.
      operationId: admin-create-value-points
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/create-value-point'
      responses:
        '201':
          $ref: '#/components/responses/201-admin-create-value-point'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/422-admin-create-update-rc-vp-invalid-request'
      security:
        - basicAuth: []
      summary: Créer un point de valeur
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}:
    delete:
      description: Supprime un point de valeur spécifique par son UGS.
      operationId: admin-delete-value-point
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/item_sku-path-param'
      responses:
        '204':
          content: {}
          description: Le point de valeur a été supprimé avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Supprimer des points de valeur
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Récupère des informations sur un point de valeur par son UGS au sein
        d'un projet à des fins d'administration.
      operationId: admin-get-value-point
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/item_sku-path-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-value-point'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire un point de valeur
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Met à jour un point de valeur spécifique par son UGS.
      operationId: admin-update-value-point
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/item_sku-path-param'
      requestBody:
        $ref: '#/components/requestBodies/create-value-point'
      responses:
        '204':
          content: {}
          description: Le point de valeur a été mis à jour avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/422-admin-create-update-rc-vp-invalid-request'
      security:
        - basicAuth: []
      summary: Mettre à jour un point de valeur
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards:
    delete:
      description: Supprime les récompenses en points de valeur de TOUS les objets.
      operationId: admin-delete-items-value-point-reward
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/value_point_sku-path-param'
      responses:
        '204':
          content: {}
          description: >-
            Les récompenses en points de valeur des objets ont été supprimées
            avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Supprimer les points de valeur des objets
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Récupère la liste de tous les objets ayant des points de valeur au sein
        d'un projet à des fins d'administration.
      operationId: admin-get-items-value-point-reward
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/value_point_sku-path-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-list-value-point-rewards'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire la liste des objets ayant des points de valeur
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    patch:
      description: "Met à jour partiellement le nombre de points de valeur pour un ou plusieurs objets par UGS. Les utilisateurs reçoivent ces points de valeur après l'achat des objets spécifiés.\n\nPrincipes de mise à jour des points de valeur\_:\n * Si un objet ne possède pas encore de points de valeur, l'envoi d'une valeur non nulle dans le champ `amount`en crée.\n * Si un objet possède déjà des points de valeur, l'envoi d'une valeur non nulle dans le champ `amount` les met à jour.\n * Si le champ `amount` est fixé à 0, les points de valeur existants pour cet objet sont supprimés.\n\nContrairement à la méthode `PUT` ([Définir des points de valeur pour les objets](https://developers.xsolla.com/fr/api/shop-builder/operation/admin-set-items-value-point-reward/)), cette méthode `PATCH` n'écrase pas tous les points de valeur existants du projet, elle met uniquement à jour les objets spécifiés.\n\nUne seule requête peut mettre à jour jusqu'à 100\_objets. Les UGS en double ne sont pas autorisés dans la même requête."
      operationId: admin-patch-items-value-point-reward
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/value_point_sku-path-param'
      requestBody:
        $ref: '#/components/requestBodies/set-item-value-point-reward-for-patch'
      responses:
        '204':
          content: {}
          description: >-
            Les récompenses en points de valeur des objets ont été mises à jour
            avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/sellable-item-by-sku_404'
      security:
        - basicAuth: []
      summary: Mettre à jour partiellement les points de valeur des objets
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Attribue des points de valeur à un ou plusieurs objets par UGS. Les
        utilisateurs reçoivent des points de valeur en achetant ces objets.


        Notez que cette requête PUT écrase tous les points de valeur
        précédemment définis pour les objets du projet.


        Pour éviter la suppression involontaire de points de valeur, incluez
        tous les objets et leurs points de valeur respectifs dans chaque requête
        PUT.


        Si vous souhaitez uniquement mettre à jour les points de valeur d'un
        objet spécifique tout en préservant les points de valeur des autres
        objets, vous devez récupérer l'ensemble actuel des points de valeur à
        l'aide d'une requête GET, modifier les points de valeur de l'objet
        souhaité, puis renvoyer l'ensemble modifié des points de valeur avec les
        points de valeur mis à jour pour l'objet spécifique.
      operationId: admin-set-items-value-point-reward
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/value_point_sku-path-param'
      requestBody:
        $ref: '#/components/requestBodies/set-item-value-point-reward'
      responses:
        '204':
          content: {}
          description: >-
            Les récompenses en points de valeur des objets ont été mises à jour
            avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/sellable-item-by-sku_404'
      security:
        - basicAuth: []
      summary: Définir des points de valeur pour les objets
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/offer_chain:
    get:
      description: "Récupère une liste de chaînes d'offres à des fins d'administration.\n<div class=\"notice\"><strong>Attention</strong><br><br>Tous les projets sont soumis à une limite de nombre d'objets pouvant être renvoyés dans une seule réponse. La valeur par défaut et la valeur maximale sont de <strong>10\_objets par réponse</strong>. Pour obtenir plus de données, utilisez les paramètres de requête <code>limit</code> et <code>offset</code> pour la pagination.</div>"
      operationId: admin-get-offer-chains
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/enabled-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-list-offer-chains'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire une liste de chaînes d'offres
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée une chaîne d'offres
      operationId: admin-create-offer-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/create-offer-chain'
      responses:
        '201':
          $ref: '#/components/responses/201-admin-create-offer-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/422-create-error-list'
      security:
        - basicAuth: []
      summary: Créer une chaîne d'offres
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}:
    delete:
      description: "Supprime une chaîne d'offres spécifique.\n\nAprès la suppression\_:<ul><li>Toutes les récompenses déjà reçues par les utilisateurs sont conservées.</li><li>Les étapes non achevées deviennent indisponibles et les récompenses correspondantes ne peuvent plus être obtenues.</li></ul>\n\nContrairement à la désactivation de la chaîne d'offres via l'appel <a href=\"/api/shop-builder/operation/admin-toggle-offer-chain\">Activer/désactiver une chaîne d'offres</a>, la suppression est irréversible et la progression de l'utilisateur n'est pas préservée."
      operationId: admin-delete-offer-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/offer_chain_id-path-param'
      responses:
        '204':
          content: {}
          description: Chaîne d'offres supprimée avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-offer-chain-not-found'
      security:
        - basicAuth: []
      summary: Supprimer une chaîne d'offres
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Récupère une chaîne d'offres spécifique à des fin d'administration.
      operationId: admin-get-offer-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/offer_chain_id-path-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-offer-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-offer-chain-not-found'
      security:
        - basicAuth: []
      summary: Lire une chaîne d'offre
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Met à jour une chaîne d'offres spécifique.
      operationId: admin-update-offer-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/offer_chain_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/update-offer-chain'
      responses:
        '204':
          content: {}
          description: Chaîne d'offres mise à jour avec succès.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-offer-chain-not-found'
        '422':
          $ref: '#/components/responses/422-update-error-list'
      security:
        - basicAuth: []
      summary: Mettre à jour une chaîne
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}/toggle:
    put:
      description: >-
        Active ou désactive une chaîne d'offres.


        Lorsque la chaîne d'offres est désactivée, les utilisateurs n'y ont
        temporairement plus accès, mais leur progression est préservée.


        Lorsque la chaîne d'offres est réactivée, les utilisateurs peuvent
        continuer à partir de l'étape où ils se sont arrêtés.
      operationId: admin-toggle-offer-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/offer_chain_id-path-param'
      responses:
        '204':
          content: {}
          description: Chaîne d'offres désactivée/activée.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-offer-chain-not-found'
      security:
        - basicAuth: []
      summary: Activer/désactiver une chaîne d'offres
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/promocode/{external_id}/activate:
    put:
      description: |-
        Active une promotion par code promo.

        Par défaut, une promotion par code promo créée est désactivée.
        Pour permettre l'échange de coupons, vous devez l'activer.
        Utilisez cet endpoint pour activer une promotion par code promo.
      operationId: activate-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: Le code promo a été activé avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
        '422':
          $ref: '#/components/responses/Promotions_422-admin-promotion-error'
      security:
        - basicAuth: []
      summary: Activer une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/promocode/{external_id}/code:
    get:
      description: Récupère les codes d'une promotion par code promo.
      operationId: get-promocode-codes
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-promocode-code-list'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Lire les codes d'une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée un code pour une promotion par code promo.
      operationId: create-promo-code-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_create-coupon-promocode-code'
      responses:
        '201':
          $ref: '#/components/responses/Promotions_201-coupon-promocode-code-created'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
        '422':
          $ref: >-
            #/components/responses/Promotions_422-coupon-promocode-same-code-exists
      security:
        - basicAuth: []
      summary: Créer un code pour une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/promocode/{external_id}/code/generate:
    put:
      description: Génère des codes pour une promotion par code promo.
      operationId: generate-promo-code-codes
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                count:
                  $ref: '#/components/schemas/Promotions_coupon-generate-count'
              required:
                - count
              type: object
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    count: 10
              schema:
                properties:
                  count:
                    $ref: '#/components/schemas/Promotions_coupon-generate-count'
                type: object
          description: Les codes ont été générés avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Générer des codes pour une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/promocode/{external_id}/deactivate:
    put:
      description: |-
        Désactive une promotion par code promo.

        Par défaut, une promotion par code promo créée est désactivée.
        Pour permettre l'échange de coupons, vous devez l'activer.
        Utilisez cet endpoint pour désactiver une promotion par code promo.
      operationId: deactivate-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: Le coupon a été désactivé avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
        '422':
          $ref: '#/components/responses/Promotions_422-admin-promotion-error'
      security:
        - basicAuth: []
      summary: Désactiver une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/promotion/{promotion_id}/activate:
    put:
      description: Active une promotion.
      operationId: activate-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '204':
          description: La promotion a été activée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-activate-deactivate-promotion'
      security:
        - basicAuth: []
      summary: Activer une promotion
      tags:
        - promotions-common
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/promotion/{promotion_id}/deactivate:
    put:
      description: Désactive une promotion.
      operationId: deactivate-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '204':
          description: La promotion a été désactivée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-activate-deactivate-promotion'
      security:
        - basicAuth: []
      summary: Désactiver une promotion
      tags:
        - promotions-common
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/activate:
    put:
      description: >-
        Active une offre promotionnelle unique du catalogue.

        Une offre promotionnelle unique créée dans le catalogue est désactivée
        par défaut.

        Elle ne peut pas être utilisée tant que vous ne l'avez pas activée.

        Utilisez cet endpoint pour activer une promotion par coupon.
      operationId: activate-unique-catalog-offer
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: L'offre unique du catalogue a été activée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
        '422':
          $ref: '#/components/responses/Promotions_422-admin-promotion-error'
      security:
        - basicAuth: []
      summary: Activer une offre promotionnelle unique du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code:
    get:
      description: Récupère les codes d'une offre unique du catalogue.
      operationId: get-unique-catalog-offer-codes
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-unique-catalog-offer-code-list'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Lire les codes d'une offre unique du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée un code pour une offre unique du catalogue
      operationId: create-unique-catalog-offer-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_create-coupon-promocode-code'
      responses:
        '201':
          $ref: '#/components/responses/Promotions_201-coupon-promocode-code-created'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
        '422':
          $ref: >-
            #/components/responses/Promotions_422-coupon-promocode-same-code-exists
      security:
        - basicAuth: []
      summary: Créer un code pour une offre unique du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code/generate:
    put:
      description: Génère des codes pour une offre unique du catalogue.
      operationId: generate-unique-catalog-offer-codes
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                count:
                  $ref: '#/components/schemas/Promotions_coupon-generate-count'
              required:
                - count
              type: object
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    count: 10
              schema:
                properties:
                  count:
                    $ref: '#/components/schemas/Promotions_coupon-generate-count'
                type: object
          description: Les codes ont été générés avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Générer des codes pour une offre unique du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/deactivate:
    put:
      description: >-
        Désactive une offre promotionnelle unique du catalogue.

        Une offre promotionnelle unique créée dans le catalogue est désactivée
        par défaut.

        Elle ne peut pas être utilisée tant que vous ne l'avez pas activée.

        Utilisez cet endpoint pour désactiver une promotion par coupon.
      operationId: deactivate-unique-catalog-offer
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: L'offre unique du catalogue a été désactivée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
        '422':
          $ref: '#/components/responses/Promotions_422-admin-promotion-error'
      security:
        - basicAuth: []
      summary: Désactiver une offre promotionnelle unique du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/user/attribute/rule:
    get:
      description: Récupère toutes les règles s'appliquant aux attributs utilisateur.
      operationId: get-filter-rules
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/is_enabled-query-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    has_more: true
                    items:
                      - attribute_conditions:
                          - attribute: race
                            can_be_missing: false
                            operator: eq
                            type: string
                            value: ork
                        is_enabled: true
                        is_satisfied_for_unauth: false
                        items:
                          - item_id: 1
                            name: Ork Armor
                            sku: com.xsolla.ork_armor_1
                            type: virtual_good
                          - bundle_type: standard
                            item_id: 2
                            name: Potion pack
                            sku: com.xsolla.potion_pack_1
                            type: bundle
                        name: Ork race armor rule
                        rule_id: 1
                    total_items_count: 20
              schema:
                properties:
                  has_more:
                    description: S'il existe une autre page avec des règles.
                    type: boolean
                  items:
                    items:
                      $ref: '#/components/schemas/user-attribute_personalized-catalog'
                    type: array
                  total_items_count:
                    description: Nombre total de règles.
                    type: number
                type: object
          description: Les règles ont été reçues avec succès.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '403':
          $ref: '#/components/responses/403-auth-header-not-sent'
      security:
        - basicAuth: []
      summary: Lire la liste des règles de filtrage du catalogue
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée une règle pour les attributs utilisateur.
      operationId: create-filter-rule
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/personalized-catalog_create-update-body'
      responses:
        '201':
          content:
            application/json:
              examples:
                response:
                  value:
                    rule_id: 1
              schema:
                properties:
                  rule_id:
                    description: ID de règle.
                    type: number
                type: object
          description: La règle a été créée avec succès.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '422':
          $ref: '#/components/responses/Common_422-body-validation'
      security:
        - basicAuth: []
      summary: Créer une règle de filtrage du catalogue
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/user/attribute/rule/all:
    get:
      description: >-
        Récupère une liste de toutes les règles du catalogue pour la recherche
        côté client.

        <div class="notice"><strong>Attention</strong><br><br>Renvoie uniquement
        l'ID et le nom de la règle et is_enabled</div>
      operationId: get-all-filter-rules
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    items:
                      - is_enabled: true
                        is_satisfied_for_unauth: false
                        name: Ork race armor rule
                        rule_id: 1
                      - is_enabled: false
                        is_satisfied_for_unauth: false
                        name: Age
                        rule_id: 2
              schema:
                properties:
                  items:
                    items:
                      $ref: >-
                        #/components/schemas/user-attribute_personalized-catalog_all
                    type: array
                type: object
          description: Les règles ont été reçues avec succès.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '403':
          $ref: '#/components/responses/403-auth-header-not-sent'
      security:
        - basicAuth: []
      summary: Lire toutes les règles du catalogue pour une recherche côté client
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}:
    delete:
      description: Supprime une règle spécifique.
      operationId: delete-filter-rule-by-id
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/personalized-catalog-rule_id-path-param'
      responses:
        '204':
          description: La suppression a été effectuée avec succès.
        '401':
          $ref: '#/components/responses/Common_401-complex'
      security:
        - basicAuth: []
      summary: Supprimer une règle de filtrage du catalogue
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Récupère des informations sur une règle spécifique s'appliquant aux
        attributs utilisateur.
      operationId: get-filter-rule-by-id
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/personalized-catalog-rule_id-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    attribute_conditions:
                      - attribute: race
                        can_be_missing: false
                        operator: eq
                        type: string
                        value: ork
                    is_enabled: true
                    is_satisfied_for_unauth: true
                    items:
                      - item_id: 1
                        name: Ork Armor
                        sku: com.xsolla.ork_armor_1
                    name: Ork race armor rule
                    rule_id: 1
              schema:
                $ref: '#/components/schemas/user-attribute_personalized-catalog'
          description: La règle a été reçue avec succès.
        '401':
          $ref: '#/components/responses/Common_401-complex'
      security:
        - basicAuth: []
      summary: Lire une règle de filtrage du catalogue
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    patch:
      description: >-
        Met à jour une règle spécifique s'appliquant aux attributs utilisateur.
        La valeur actuelle sera utilisée pour une propriété non spécifiée.
      operationId: patch-filter-rule-by-id
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/personalized-catalog-rule_id-path-param'
      requestBody:
        content:
          application/json:
            example:
              is_enabled: false
            schema:
              $ref: '#/components/schemas/user-attribute_personalized-catalog-body'
      responses:
        '204':
          description: La mise à jour a été effectuée avec succès.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '422':
          $ref: '#/components/responses/Common_422-body-validation'
      security:
        - basicAuth: []
      summary: Appliquer une règle de filtrage de catalogue
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Met à jour une règle spécifique s'appliquant aux attributs utilisateur.
        La valeur par défaut sera utilisée pour une propriété non spécifiée (si
        la propriété n'est pas requise).
      operationId: update-filter-rule-by-id
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/personalized-catalog-rule_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/personalized-catalog_create-update-body'
      responses:
        '204':
          description: Mise à jour réussie.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '422':
          $ref: '#/components/responses/Common_422-body-validation'
      security:
        - basicAuth: []
      summary: Mettre à jour une règle de filtrage du catalogue
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/user/limit/coupon/external_id/{external_id}:
    get:
      description: "Récupère le nombre restant de fois qu'un utilisateur spécifique peut utiliser le coupon.\n\nL'API des limites utilisateur vous permet de limiter le nombre de fois que les utilisateurs peuvent utiliser un coupon. Pour configurer les limites utilisateur, référez-vous à la section Administrateur\_:\n* [Coupons](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-coupons/)"
      operationId: get-coupon-user-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
        - $ref: '#/components/parameters/user_external_id-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-user-coupon-limits'
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Coupon not found:
                  $ref: '#/components/examples/404-coupon-not-found'
                User not found:
                  $ref: '#/components/examples/404-user-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              examples:
                Invalid user_external_id:
                  $ref: '#/components/examples/Promotions_422-invalid-coupon'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Lire la limite de coupon pour un utilisateur spécifique
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/user/limit/promocode/external_id/{external_id}:
    get:
      description: "Récupère le nombre de fois restant qu'un utilisateur spécifique peut utiliser le code promo.\n\nL'API des limites utilisateur vous permet de limiter le nombre de fois que les utilisateurs peuvent utiliser un code promo. Pour configurer les limites utilisateur, référez-vous à la section Administrateur\_:\n* [Codes promo](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-promo-codes/)"
      operationId: get-promo-code-user-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
        - $ref: '#/components/parameters/user_external_id-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-user-promo-code-limits'
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Promo code not found:
                  $ref: '#/components/examples/404-coupon-not-found'
                User not found:
                  $ref: '#/components/examples/404-user-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              examples:
                Invalid user_external_id:
                  $ref: '#/components/examples/Promotions_422-invalid-coupon'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Lire la limite de code promo pour un utilisateur spécifique
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/user/limit/promotion/all:
    delete:
      description: >-
        Actualise toutes les limites de toutes les promotions pour un
        utilisateur spécifique afin qu'il puisse à nouveau utiliser ces
        promotions.


        L'API des limites utilisateur vous permet de limiter le nombre de fois
        qu'un utilisateur peut utiliser une promotion. Pour configurer les
        limites utilisateur, accédez à la section Administrateur du type de
        promotion souhaité :

        * [Promotions par
        réduction](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-discounts/)

        * [Promotions par
        bonus](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-bonuses/)
      operationId: reset-all-user-promotions-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/reset-user-limits'
      responses:
        '200':
          description: La limite de la promotion a été actualisée avec succès.
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                User not found:
                  $ref: '#/components/examples/404-user-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              examples:
                Invalid user_external_id:
                  $ref: '#/components/examples/422-user_external_id_invalid'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: >-
        Actualiser toutes les limites de promotion pour un utilisateur
        spécifique
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}:
    delete:
      description: >-
        Réduit le nombre de fois qu'un utilisateur spécifique peut utiliser une
        promotion dans la limite appliquée.


        L'API des limites utilisateur vous permet de limiter le nombre de fois
        qu'un utilisateur peut utiliser une promotion. Pour configurer les
        limites utilisateur, accédez à la section Administrateur du type de
        promotion souhaité :

        * [Promotions par
        réduction](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-discounts/)

        * [Promotions par
        bonus](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-bonuses/)
      operationId: remove-user-promotion-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/update-user-limits-strict'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-user-promotion-limits'
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Item not found:
                  $ref: '#/components/examples/404-promotion-by-id-not-found'
                User not found:
                  $ref: '#/components/examples/404-user-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              examples:
                Available promotion limit is out of range:
                  $ref: >-
                    #/components/examples/422-promotion-out-of-range-available-user-limit
                Invalid user_external_id:
                  $ref: '#/components/examples/422-user_external_id_invalid'
                Promotion does not have configured user limits:
                  $ref: '#/components/examples/422-promotion-without-user-limit'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Réduire la limite de promotion pour un utilisateur spécifique
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Récupère le nombre de fois qu'un utilisateur spécifique peut utiliser la
        promotion dans la limite appliquée.


        L'API des limites utilisateur vous permet de limiter le nombre de fois
        qu'un utilisateur peut utiliser une promotion. Pour configurer les
        limites utilisateur, accédez à la section Administrateur du type de
        promotion souhaité :

        * [Promotions par
        réduction](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-discounts/)

        * [Promotions par
        bonus](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-bonuses/)
      operationId: get-user-promotion-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
        - $ref: '#/components/parameters/user_external_id-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-user-promotion-limits'
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Item not found:
                  $ref: '#/components/examples/404-promotion-by-id-not-found'
                User not found:
                  $ref: '#/components/examples/404-user-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              examples:
                Invalid user_external_id:
                  $ref: '#/components/examples/422-user_external_id_invalid'
                Promotion does not have configured user limits:
                  $ref: '#/components/examples/422-promotion-without-user-limit'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Lire la limite de promotion pour un utilisateur spécifique
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: >-
        Augmente le nombre de fois qu'un utilisateur spécifique peut utiliser la
        promotion dans la limite appliquée.


        L'API des limites utilisateur vous permet de limiter le nombre de fois
        qu'un utilisateur peut utiliser une promotion. Pour configurer les
        limites utilisateur, accédez à la section Administrateur du type de
        promotion souhaité :

        * [Promotions par
        réduction](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-discounts/)

        * [Promotions par
        bonus](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-bonuses/)
      operationId: add-user-promotion-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/update-user-limits-strict'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-user-promotion-limits'
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Item not found:
                  $ref: '#/components/examples/404-promotion-by-id-not-found'
                User not found:
                  $ref: '#/components/examples/404-user-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              examples:
                Available promotion limit is out of range:
                  $ref: >-
                    #/components/examples/422-promotion-out-of-range-available-user-limit
                Invalid user_external_id:
                  $ref: '#/components/examples/422-user_external_id_invalid'
                Promotion does not have configured user limits:
                  $ref: '#/components/examples/422-promotion-without-user-limit'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Augmenter la limite de promotion pour un utilisateur spécifique
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Définit le nombre de fois qu'un utilisateur spécifique peut utiliser une
        promotion dans la limite appliquée après une augmentation ou une
        diminution.


        L'API des limites utilisateur vous permet de limiter le nombre de fois
        qu'un utilisateur peut utiliser une promotion. Pour configurer les
        limites utilisateur, accédez à la section Administrateur du type de
        promotion souhaité :

        * [Promotions par
        réduction](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-discounts/)

        * [Promotions par
        bonus](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-bonuses/)
      operationId: set-user-promotion-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/update-user-limits-flexible'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-user-promotion-limits'
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Item not found:
                  $ref: '#/components/examples/404-promotion-by-id-not-found'
                User not found:
                  $ref: '#/components/examples/404-user-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              examples:
                Invalid user_external_id:
                  $ref: '#/components/examples/422-user_external_id_invalid'
                Promotion does not have configured user limits:
                  $ref: '#/components/examples/422-promotion-without-user-limit'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Définir la limite de promotion pour un utilisateur spécifique
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}/all:
    delete:
      description: >-
        Actualise la limite de la promotion afin que l'utilisateur puisse à
        nouveau utiliser cette promotion. Si le paramètre *user* est défini sur
        `null`, cet appel actualise cette limite pour tous les utilisateurs.


        L'API des limites utilisateur vous permet de limiter le nombre de fois
        qu'un utilisateur peut utiliser une promotion. Pour configurer les
        limites utilisateur, accédez à la section Administrateur du type de
        promotion souhaité :

        * [Promotions par
        réduction](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-discounts/)

        * [Promotions par
        bonus](https://developers.xsolla.com/fr/api/shop-builder/tag/promotions-bonuses/)
      operationId: reset-user-promotion-limit
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/reset-user-limits-flexible'
      responses:
        '200':
          description: La limite de la promotion a été actualisée avec succès.
        '401':
          $ref: '#/components/responses/Common_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                Item not found:
                  $ref: '#/components/examples/404-promotion-by-id-not-found'
                User not found:
                  $ref: '#/components/examples/404-user-not-found'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Objet non trouvé.
        '422':
          content:
            application/json:
              examples:
                Invalid user_external_id:
                  $ref: '#/components/examples/422-user_external_id_invalid'
                Promotion does not have configured user limits:
                  $ref: '#/components/examples/422-promotion-without-user-limit'
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                  transactionId:
                    type: string
                type: object
          description: Demande non valide.
      security:
        - basicAuth: []
      summary: Actualiser la limite d'une promotion pour les utilisateurs
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/coupon/code/{coupon_code}/rewards:
    get:
      description: >-
        Récupère les récompenses associées au coupon par son code.

        Peut être utilisé pour permettre aux utilisateurs de choisir l'un des
        nombreux objets proposés comme bonus.

        Le cas habituel est le choix d'un DRM si le coupon contient un jeu comme
        bonus (`type=unit`).
      operationId: get-coupon-rewards-by-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/coupon_code-path-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-coupon-rewards'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '403':
          $ref: '#/components/responses/Promotions_403-auth-header'
        '404':
          $ref: '#/components/responses/Promotions_404-coupon'
        '422':
          $ref: '#/components/responses/Promotions_422-rewards'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire les récompenses d'un coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/coupon/redeem:
    post:
      description: >-
        Échange un code de coupon. L'utilisateur reçoit un bonus après
        l'échange.
      operationId: redeem-coupon
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_redeem-coupon-model'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-coupon-redeemed'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '403':
          $ref: '#/components/responses/Promotions_403-auth-header'
        '404':
          $ref: '#/components/responses/Promotions_404-coupon'
        '422':
          $ref: '#/components/responses/Promotions_422-redeem-coupon'
      security:
        - XsollaLoginUserJWT: []
      summary: Échanger un code de coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/items/upsell:
    get:
      description: >-
        Récupère la liste des objets de vente incitative d'un projet s'ils ont
        déjà été configurés.
      operationId: get-upsell-for-project-client
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      responses:
        '200':
          $ref: '#/components/responses/Upsell-200-get-client-list'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire la liste des objets de vente incitative dans le projet
      tags:
        - upsell-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/promocode/code/{promocode_code}/rewards:
    get:
      description: >-
        Récupère les récompenses associées au code promo par son code.

        Peut être utilisé pour permettre aux utilisateurs de choisir l'un des
        nombreux objets proposés comme bonus.

        Le cas habituel est le choix d'un DRM si le code promo contient un jeu
        comme bonus (`type=unit`).
      operationId: get-promo-code-rewards-by-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promocode_code-path-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-promocode-rewards'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '403':
          $ref: '#/components/responses/Promotions_403-auth-header'
        '404':
          $ref: '#/components/responses/Promotions_404-promo-code'
        '422':
          $ref: '#/components/responses/Promotions_422-rewards'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire les récompenses d'un code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/promocode/redeem:
    post:
      description: >-
        Échange un code d'une promotion par code promo.

        Après avoir échangé un code de promo, l'utilisateur reçoit des biens
        gratuits et/ou le prix du panier et/ou des objets spécifiques sera
        réduit.
      operationId: redeem-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_redeem-promo-code-model'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-promo-code-redeemed'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '403':
          $ref: '#/components/responses/Promotions_403-auth-header'
        '404':
          $ref: '#/components/responses/Promotions_404-promo-code'
        '422':
          $ref: '#/components/responses/Promotions_422-redeem-coupon'
      security:
        - AuthForCart: []
      summary: Échanger un code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/promocode/remove:
    put:
      description: >-
        Supprime un code promo d'un panier.

        Après la suppression du code promo, le prix total de tous les objets du
        panier sera recalculé sans les bonus et les remises accordés par un code
        promo.
      operationId: remove-cart-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_cancel-promo-code-model'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-promo-code-canceled'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '403':
          $ref: '#/components/responses/Promotions_403-auth-header'
        '422':
          $ref: '#/components/responses/Promotions_422-cancel-promo-code'
      security:
        - AuthForCart: []
      summary: Supprimer un code promo du panier
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/promotion/code/{code}/verify:
    get:
      description: >-
        Détermine si le code est un code promo ou un code de coupon et si
        l'utilisateur peut l'appliquer.
      operationId: verify-promotion-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/code-path-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-verify-promo-code'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '403':
          $ref: '#/components/responses/Promotions_403-auth-header'
        '404':
          $ref: '#/components/responses/Promotions_404-verify-promo-code'
        '422':
          $ref: '#/components/responses/Promotions_422-verify-promo-code'
      security:
        - XsollaLoginUserJWT: []
      summary: Vérifier un code promotionnel
      tags:
        - promotions-common
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top:
    get:
      description: "Récupère la liste des 10\_premiers contributeurs à la chaîne de récompense spécifique sous le clan de l'utilisateur actuel. Si l'utilisateur n'appartient pas à un clan, l'appel renvoie un tableau vide."
      operationId: get-user-clan-top-contributors
      parameters:
        - description: ID de projet.
          in: path
          name: project_id
          required: true
          schema:
            example: 44056
            type: integer
        - description: ID de la chaîne de récompenses.
          in: path
          name: reward_chain_id
          required: true
          schema:
            example: 101
            type: integer
      responses:
        '200':
          content:
            application/json:
              examples:
                clan:
                  summary: L'utilisateur appartient à un clan
                  value:
                    - contributed_amount: 555
                      name: winner
                    - contributed_amount: 398
                      name: Rocket
                    - contributed_amount: 201
                      name: MrJoe
                    - contributed_amount: 1
                      name: beginner
                without-clan:
                  summary: L'utilisateur n'appartient pas à un clan
                  value: []
              schema:
                items:
                  properties:
                    contributed_amount:
                      description: Nombre de points de valeur apportés par l'utilisateur.
                      example: 100
                      type: integer
                    name:
                      description: >-
                        ID de l'utilisateur. Il s'agit de l'ID envoyé à Xsolla
                        lors de l'autorisation. Cet ID lie l'utilisateur à votre
                        projet Xsolla Login.
                      example: Rocket
                      type: string
                  type: object
                type: array
          description: "Liste des 10\_premiers contributeurs à la chaîne de récompenses de clan."
      security:
        - XsollaLoginUserJWT: []
      summary: "Lire les 10\_premiers contributeurs à la chaîne de récompense au sein du clan"
      tags:
        - clan-reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/clan/update:
    put:
      description: >-
        Met à jour le clan de l'utilisateur actuel via les attributs
        utilisateur. Récupère toutes les récompenses non réclamées des chaînes
        de récompenses associées à un clan précédent et les renvoie dans la
        réponse. Si l'utilisateur quitte un clan, son appartenance sera
        révoquée. En cas de changement de clan, le nouveau clan sera mis à jour.
      operationId: user-clan-update
      parameters:
        - description: ID de projet.
          in: path
          name: project_id
          required: true
          schema:
            default: 44056
            type: integer
      responses:
        '200':
          $ref: '#/components/responses/200-client-update-user-clan'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
      security:
        - XsollaLoginUserJWT: []
      summary: Mise à jour du clan de l'utilisateur actuel
      tags:
        - clan-reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/daily_chain:
    get:
      description: "Endpoint client. Récupère les récompenses quotidiennes de l'utilisateur actuel.\n<div class=\"notice\"><strong>Remarque</strong><br><br>La méthode renvoie une liste paginée d'objets. La valeur maximale et par défaut est de <strong>50\_objets par réponse.</strong> Pour obtenir d'autres objets de la liste, utilisez les paramètres `limit` et `offset`, et récupérez d'autres pages. Par exemple, avec `limit = 25` et `offset = 100`, la réponse renvoie 25\_objets à partir du 101e objet de la liste globale.</div>"
      operationId: get-daily-chains-list
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-client-get-daily-chains-list'
        '401':
          $ref: '#/components/responses/401-client-auth-error'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire les récompenses quotidiennes de l'utilisateur actuel
      tags:
        - daily-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/daily_chain/{daily_chain_id}:
    get:
      description: >-
        Endpoint client. Récupère la récompense quotidienne de l'utilisateur
        actuel par son ID.
      operationId: get-user-daily-chain-by-id
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/daily_chain_id-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  $ref: '#/components/examples/200-client-daily-chain'
              schema:
                $ref: '#/components/schemas/client-daily-chain-model'
          description: Récompense quotidienne de l'utilisateur récupérée avec succès.
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire la récompense quotidienne de l'utilisateur actuel par son ID
      tags:
        - daily-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/daily_chain/{daily_chain_id}/step/number/{step_number}/claim:
    post:
      description: >-
        Endpoint client. Réclame la récompense d'une étape d'une récompense
        quotidienne de l'utilisateur actuel. Les étapes doivent être réclamées
        dans l'ordre séquentiel. Une récompense d'étape manquée ne peut être
        récupérée ni en monnaie virtuelle ou réelle, ni en regardant une
        publicité.
      operationId: claim-user-daily-chain-step-reward
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/daily_chain_id-path-param'
        - $ref: '#/components/parameters/daily_chain_step_number-path-param'
      responses:
        '204':
          description: >-
            Récompense de l'utilisateur actuel pour l'étape de la récompense
            quotidienne réclamée avec succès.
        '401':
          $ref: '#/components/responses/401-client-auth-error'
        '404':
          $ref: '#/components/responses/404-daily-chain-step-not-found'
        '422':
          content:
            application/json:
              examples:
                invalid-step:
                  $ref: >-
                    #/components/examples/422-daily-chain-claim-error-invalid-step
              schema:
                $ref: '#/components/schemas/daily-chain-error-model'
          description: Impossible de réclamer l'étape.
      security:
        - XsollaLoginUserJWT: []
      summary: Réclamer une étape de récompense quotidienne
      tags:
        - daily-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/offer_chain:
    get:
      description: "Récupère les chaînes d'offres de l'utilisateur actuel.\n<div class=\"notice\"><strong>Attention</strong><br><br>Tous les projets sont soumis a une limite de nombre d'objets pouvant être renvoyés dans une seule réponse. La valeur par défaut et la valeur maximale sont de <strong>30\_objets par réponse</strong>. Pour obtenir plus de données, utilisez les paramètres de requête <code>limit</code> et <code>offset</code> pour la pagination.</div>"
      operationId: get-offer-chains-list
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-client-get-offer-chains-list'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire les chaînes d'offres de l'utilisateur actuel
      tags:
        - offer-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/offer_chain/{offer_chain_id}:
    get:
      description: >-
        Récupère la chaîne d'offres de l'utilisateur actuel par l'ID de la
        chaîne d'offres.
      operationId: get-user-offer-chain-by-id
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/offer_chain_id-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  $ref: '#/components/examples/200-client-offer-chain'
              schema:
                $ref: '#/components/schemas/client-offer-chain-model'
          description: Chaîne d'offres de l'utilisateur récupérée avec succès.
        '404':
          $ref: '#/components/responses/404-offer-chain-not-found'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire une chaîne d'offres de l'utilisateur actuel par ID
      tags:
        - offer-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/claim:
    post:
      description: >-
        Termine la progression de l'utilisateur actuel dans l'étape de la chaîne
        d'offres et attribue la récompense associée.

        <div class="notice">
         <strong>Attention</strong><br><br>
         Utilisez cet appel uniquement pour les étapes gratuites de la chaîne d’offres.
         Pour les étapes nécessitant un paiement en devises réelles, utilisez plutôt l'appel <a href="/api/shop-builder/operation/order-user-offer-chain-step-reward">Créer une commande pour une étape payante de la chaîne d'offres</a>.
        </div>
      operationId: claim-user-offer-chain-step-reward
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/offer_chain_id-path-param'
        - $ref: '#/components/parameters/offer_chain_step_number-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    order_id: 641
              schema:
                properties:
                  order_id:
                    description: ID de commande.
                    type: integer
                type: object
          description: Étape gratuite réclamée avec succès et récompense attribuée.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '404':
          $ref: '#/components/responses/404-offer-chain-step-not-found'
        '422':
          content:
            application/json:
              examples:
                invalid-step:
                  $ref: >-
                    #/components/examples/422-offer-chain-claim-error-invalid-step
              schema:
                $ref: '#/components/schemas/offer-chain-error-model'
          description: >-
            Impossible de réclamer l'étape. Assurez-vous que toutes les étapes
            précédentes sont terminées et que l'étape est bien marquée comme
            gratuite.
      security:
        - XsollaLoginUserJWT: []
      summary: Réclamer une étape de chaîne d'offres gratuite
      tags:
        - offer-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order:
    post:
      description: "Crée une commande pour l'objet associé à une étape payante spécifique de la chaîne d'offres. La commande créée obtient le statut `new`.\n\nPour ouvrir l'interface de paiement dans une nouvelle fenêtre, utilisez le lien suivant : `https://secure.xsolla.com/paystation4/?token={token}`, où `{token}` est le jeton reçu.\n\nÀ des fins de test, utilisez cette URL\_: `https://sandbox-secure.xsolla.com/paystation4/?token={token}`.\n\n<div class=\"notice\">\n <strong>Attention</strong> <br><br>\n Cette méthode doit être utilisée côté client. L'adresse IP de l'utilisateur permet de déterminer son pays, ce qui influence la devise et les modes de paiement disponibles. Utiliser cette méthode côté serveur peut entraîner une détection incorrecte de la devise et affecter les modes de paiement dans <a href=\"https://developers.xsolla.com/fr/doc/pay-station/\">Pay Station</a>.\n</div><br>\n\n<div class=\"notice\">\n <strong>Attention</strong><br><br>\n Utilisez cet appel uniquement pour les étapes payantes de la chaîne d'offres.\n Pour les étapes gratuites, utilisez plutôt l'appel <a href=\"/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Réclamer une étape de chaîne d'offres gratuite</a>.\n</div>"
      operationId: order-user-offer-chain-step-reward
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/offer_chain_id-path-param'
        - $ref: '#/components/parameters/offer_chain_step_number-path-param'
      responses:
        '200':
          $ref: '#/components/responses/Cart-Payment_200-order-created'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '404':
          $ref: '#/components/responses/404-offer-chain-step-not-found'
        '422':
          content:
            application/json:
              examples:
                invalid-step:
                  $ref: >-
                    #/components/examples/422-offer-chain-claim-error-invalid-step
              schema:
                $ref: '#/components/schemas/offer-chain-error-model'
          description: Impossible d'acheter l'étape.
      security:
        - XsollaLoginUserJWT: []
      summary: Créer une commande pour une étape payante de la chaîne d'offres
      tags:
        - offer-chain-client
        - payment-client-side
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/reward_chain:
    get:
      description: "Endpoint client. Récupère des informations sur les chaînes de récompenses de l'utilisateur actuel.\n\n<div class=\"notice\"><strong>Attention</strong><br><br>Tous les projets sont soumis à une limite de nombre d'objets que vous pouvez obtenir dans la réponse. La valeur par défaut et la valeur maximale sont de <strong>50\_éléments par réponse.</strong> Pour obtenir plus de données page par page, utilisez les champs <b>limit</b> et <b>offset</b>.</div>"
      operationId: get-reward-chains-list
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-client-get-reward-chains-list'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire les chaînes de récompenses de l'utilisateur actuel
      tags:
        - reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance:
    get:
      description: >-
        Endpoint client. Récupère le solde de points de valeur de l'utilisateur
        actuel.
      operationId: get-user-reward-chain-balance
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/reward_chain_id-path-param'
      responses:
        '200':
          $ref: '#/components/responses/200-client-get-user-reward-chain-balance'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
      security:
        - XsollaLoginUserJWT: []
      summary: Lire le solde de points de valeur de l'utilisateur actuel
      tags:
        - reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/step/{step_id}/claim:
    post:
      description: >-
        Endpoint client. Réclame la récompense de l'utilisateur actuel pour
        l'étape de la chaîne de récompenses.
      operationId: claim-user-reward-chain-step-reward
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/reward_chain_id-path-param'
        - $ref: '#/components/parameters/reward_chain_step_id-path-param'
      responses:
        '204':
          description: >-
            Récompense de l'utilisateur actuel pour l'étape de la chaîne de
            récompenses réclamée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
        '404':
          $ref: '#/components/responses/404-reward-chain-step-not-found'
        '422':
          $ref: '#/components/responses/422-reward-chain-step-reward-can-not-claimed'
      security:
        - XsollaLoginUserJWT: []
      summary: Réclamer la récompense d'une étape
      tags:
        - reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v3/project/{project_id}/admin/coupon:
    get:
      description: Récupère la liste des promotions par coupon d'un projet.
      operationId: get-coupons
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-get-coupons'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire la liste des promotions par coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée une promotion par coupon.
      operationId: admin-create-coupon
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_coupon-create'
      responses:
        '201':
          content:
            application/json:
              examples:
                response:
                  value:
                    external_id: coupon_external_id
              schema:
                properties:
                  external_id:
                    $ref: '#/components/schemas/Promotions_coupon-external_id'
                type: object
          description: Le coupon a été créé avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Créer une promotion par coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/coupon/{external_id}:
    delete:
      description: "Supprime la [promotion par coupon](https://developers.xsolla.com/fr/doc/shop-builder/features/coupons/). Les conséquences suivantes s'en suivent\_:\n* La promotion disparaît de la liste des promotions configurées dans votre projet\_;\n* Elle n'est plus appliquée au catalogue des objets. L'utilisateur ne peut plus obtenir d'objets bonus à travers cette promotion.\n\nAprès la suppression, la promotion ne peut pas être restaurée.\nLes coupons de la promotion supprimée peuvent être [ajoutés](https://developers.xsolla.com/fr/api/shop-builder/operation/create-coupon-code/) à des promotions existantes."
      operationId: delete-coupon-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: Promotion par coupon supprimée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Supprimer une promotion par coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Récupère des informations sur une promotion par coupon spécifique.
      operationId: get-coupon
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    bonus:
                      - quantity: 100
                        sku: com.xsolla.diamonds_1
                    external_id: summer20221
                    is_enabled: true
                    name:
                      en-US: Coupon name
                      ru-RU: Название купона
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                      - date_from: '2020-05-15T18:16:00+05:00'
                        date_until: '2020-05-25T18:16:00+05:00'
                    redeem_code_limit: null
                    redeem_total_limit: 100
                    redeem_user_limit: null
                    total_limit_state:
                      available: 50
                      reserved: 10
                      used: 40
              schema:
                $ref: >-
                  #/components/schemas/admin-promotions_200-get-coupon-promotion-model
          description: Le coupon a été reçu avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Lire une promotion par coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Met à jour une promotion par coupon
      operationId: update-coupon-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_coupon-update'
      responses:
        '204':
          description: Le coupon a été mis à jour avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Mettre à jour une promotion par coupon
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promocode:
    get:
      description: Récupère la liste des codes promo d'un projet.
      operationId: get-promo-codes
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-get-promocodes'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire la liste des promotions par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée une promotion par code promo.
      operationId: create-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_promocode-create'
      responses:
        '201':
          content:
            application/json:
              examples:
                response:
                  value:
                    external_id: coupon_external_id
              schema:
                properties:
                  external_id:
                    $ref: '#/components/schemas/Promotions_coupon-external_id'
                type: object
          description: Le code promo a été créé avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Créer une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promocode/{external_id}:
    delete:
      description: "Supprime la [promotion par code promo](https://developers.xsolla.com/fr/doc/shop-builder/features/promo-codes/). Les conséquences suivantes s'en suivent\_:\n* La promotion disparaît de la liste des promotions configurées dans votre projet\_;\n* Elle n'est plus appliquée au catalogue des objets ni au panier. L'utilisateur ne peut plus obtenir d'objets bonus ou acheter des objets à travers cette promotion.\n\nAprès la suppression, la promotion ne peut pas être restaurée.\nLes codes promo de la promotion supprimée peuvent être [ajoutés](https://developers.xsolla.com/fr/api/shop-builder/operation/create-promo-code-code/) à des promotions existantes."
      operationId: delete-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: Code promo supprimé avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Supprimer une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Récupère des informations sur une promotion par code promo spécifique.
      operationId: get-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                simple:
                  value:
                    bonus:
                      - quantity: 100
                        sku: com.xsolla.diamonds_1
                    discount:
                      percent: '10.99'
                    discounted_items: null
                    excluded_promotions:
                      - 23
                      - 45
                    external_id: summer20221
                    is_enabled: true
                    name:
                      en-US: Coupon name
                      ru-RU: Название купона
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                      - date_from: '2020-05-15T18:16:00+05:00'
                        date_until: '2020-05-25T18:16:00+05:00'
                    redeem_code_limit: 1
                    redeem_total_limit: 100
                    redeem_user_limit: null
                    total_limit_state:
                      available: 50
                      reserved: 10
                      used: 40
                with item price conditions:
                  value:
                    bonus:
                      - quantity: 100
                        sku: com.xsolla.diamonds_3
                    discount:
                      percent: '10.99'
                    discounted_items: null
                    excluded_promotions:
                      - 23
                      - 45
                    external_id: summer20221
                    is_enabled: true
                    item_price_conditions:
                      - operator: gt
                        value: '10.0000'
                      - operator: lt
                        value: '50.0000'
                    name:
                      en-US: Coupon name
                      ru-RU: Название купона
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                    redeem_code_limit: 1
                    redeem_total_limit: 100
                    redeem_user_limit: null
                    total_limit_state:
                      available: 50
                      reserved: 10
                      used: 40
                with price conditions:
                  value:
                    bonus:
                      - quantity: 100
                        sku: com.xsolla.diamonds_2
                    discount:
                      percent: '10.99'
                    discounted_items: null
                    external_id: summer20221
                    is_enabled: true
                    name:
                      en-US: Coupon name
                      ru-RU: Название купона
                    price_conditions:
                      - operator: gt
                        value: '10.0000'
                      - operator: lt
                        value: '50.0000'
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                    redeem_code_limit: 1
                    redeem_total_limit: 100
                    redeem_user_limit: null
                    total_limit_state:
                      available: 50
                      reserved: 10
                      used: 40
              schema:
                $ref: >-
                  #/components/schemas/Promotions_200-get-promocode-promotion-model
          description: Le code promo a été reçu avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Lire une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Met à jour une promotion par code promo.
      operationId: update-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_promocode-update'
      responses:
        '204':
          description: Le code promo a été mis à jour avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Mettre à jour une promotion par code promo
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion:
    get:
      description: Récupère la liste des promotions d'un projet.
      operationId: get-promotion-list
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/enabled-query-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-get-promotions'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire la liste de toutes les promotions
      tags:
        - promotions-common
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion/bonus:
    get:
      description: >-
        Récupère la liste des promotions par bonus au sein d'un projet.


        La promotion ajoute des objets bonus gratuits à l'achat effectué par
        l'utilisateur.

        La promotion peut être appliquée à chaque achat au sein d'un projet ou à
        un achat comprenant des objets particuliers.
      operationId: get-bonus-promotion-list
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-get-bonus-promotions'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire la liste des promotions par bonus
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: >-
        Crée une promotion par bonus.


        La promotion ajoute des objets bonus gratuits à l'achat effectué par
        l'utilisateur.

        La promotion peut être appliquée à chaque achat au sein d'un projet ou à
        un achat comprenant des objets particuliers.
      operationId: create-bonus-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_create-update-bonus-promotion'
      responses:
        '201':
          $ref: '#/components/responses/Promotions_201-create-promotion'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: >-
            #/components/responses/Promotions_422-admin-promotion-missed-bonus-property
      security:
        - basicAuth: []
      summary: Créer une promotion par bonus
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion/item:
    get:
      description: |-
        Récupère la liste des promotions sur les objets d'un projet.

        Les promotions offrent une remise (%) sur les objets.
        La remise s'applique à tous les prix des objets spécifiés.
      operationId: get-item-promotion-list
      parameters:
        - description: ID de projet.
          in: path
          name: project_id
          required: true
          schema:
            default: 59080
            type: integer
        - description: Nombre maximal d'éléments sur une page.
          in: query
          name: limit
          required: false
          schema:
            type: integer
        - description: >-
            Numéro de l'élément à partir duquel la liste est générée (le
            décompte commence à 0).
          in: query
          name: offset
          required: false
          schema:
            type: integer
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-get-item-promotions'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire la liste des promotions sur des objets
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: |-
        Crée une promotion par réduction pour un objet.

        Les promotions offrent une remise (%) sur les objets.
        La remise s'applique à tous les prix des objets spécifiés.
      operationId: create-item-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_create-update-item-promotion'
      responses:
        '201':
          $ref: '#/components/responses/Promotions_201-create-promotion'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: >-
            #/components/responses/Promotions_422-admin-promotion-missed-items-property
      security:
        - basicAuth: []
      summary: Créer une promotion par réduction pour un objet
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion/redeemable/code/{code}:
    get:
      description: >-
        Récupère des informations sur la promotion par un code promo ou un code
        de coupon.
      operationId: get-redeemable-promotion-by-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/code-path-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-redeemable-by-code'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-code-not-found'
        '405':
          $ref: '#/components/responses/405-method-not-found'
      security:
        - basicAuth: []
      summary: Lire une promotion utilisable par code
      tags:
        - promotions-common
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus:
    delete:
      description: "Supprime la [promotion par bonus](https://developers.xsolla.com/fr/doc/shop-builder/features/bonuses/). Les conséquences suivantes s'en suivent\_:\n* La promotion disparaît de la liste des promotions configurées dans votre projet\_;\n* Elle n'est plus appliquée au catalogue des objets ni au panier. L'utilisateur ne peut plus obtenir d'objets bonus à travers cette promotion.\n\nAprès la suppression, la promotion ne peut pas être restaurée."
      operationId: delete-bonus-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '204':
          description: Promotion supprimée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promotion'
      security:
        - basicAuth: []
      summary: Supprimer une promotion par bonus
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Récupère des informations sur une promotion par bonus.


        La promotion ajoute des objets bonus gratuits à l'achat effectué par
        l'utilisateur.

        La promotion peut être appliquée à chaque achat au sein d'un projet ou à
        un achat comprenant des objets particuliers.
      operationId: get-bonus-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-admin-get-bonus-promotion'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promotion'
      security:
        - basicAuth: []
      summary: Lire une promotion par bonus
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Met à jour une promotion.


        <div class='note'><b>Note</b><br><br>Les nouvelles données remplaceront
        les anciennes. Si vous souhaitez mettre à jour une promotion
        partiellement, assurez-vous de passer toutes les données requises dans
        la requête.</div>


        La promotion ajoute des objets bonus gratuits à l'achat effectué par
        l'utilisateur.

        La promotion peut être appliquée à chaque achat au sein d'un projet ou à
        un achat comprenant des objets particuliers.
      operationId: update-bonus-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_create-update-bonus-promotion'
      responses:
        '204':
          description: La promotion a été mise à jour avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: >-
            #/components/responses/Promotions_422-admin-promotion-missed-bonus-property
      security:
        - basicAuth: []
      summary: Mettre à jour une promotion par bonus
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion/{promotion_id}/item:
    delete:
      description: "Supprime la [promotion par réduction](https://developers.xsolla.com/fr/doc/shop-builder/features/discounts/). Les conséquences suivantes s'en suivent\_:\n* La promotion disparaît de la liste des promotions configurées dans votre projet\_;\n* Elle n'est plus appliquée au catalogue des objets ni au panier. L'utilisateur ne peut plus acheter d'objets à travers cette promotion.\n\nAprès la suppression, la promotion ne peut pas être restaurée."
      operationId: delete-item-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '204':
          description: Promotion supprimée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promotion'
      security:
        - basicAuth: []
      summary: Supprimer une promotion sur les objets
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Récupère des informations sur les promotions qui s'appliquent à des
        objets spécifiques.


        Les promotions offrent une remise (%) sur des objets.

        La remise s'applique à tous les prix des objets spécifiés.
      operationId: get-item-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    discount:
                      percent: '20.00'
                    excluded_promotions:
                      - 23
                      - 45
                    id: 1
                    is_enabled: true
                    items:
                      - sku: com.xsolla.elven_helmet_1
                      - sku: com.xsolla.elven_armor_1
                    limits:
                      per_item: null
                      per_user:
                        total: 10
                      recurrent_schedule:
                        per_user:
                          day_of_month: null
                          day_of_week: null
                          displayable_reset_next_date: '2023-02-28T11:00:00+08:00'
                          displayable_reset_start_date: '2023-02-28T11:00:00+08:00'
                          interval_type: daily
                          reset_next_date: 1677553200
                          time: 11:00:00+08:00
                    name:
                      en-US: Promotion
                      ru-RU: Акция
                    price_conditions:
                      - operator: ge
                        value: '10.0000'
                      - operator: le
                        value: '50.0000'
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
              schema:
                example:
                  discount:
                    percent: '15.00'
                  id: 1
                  is_enabled: true
                  items:
                    - sku: com.xsolla.elven_sword_1
                    - sku: com.xsolla.elven_helmet_1
                    - sku: com.xsolla.elven_armor_1
                  name:
                    en-US: Promotion
                    ru-RU: Акция
                  promotion_periods:
                    - date_from: '2020-04-15T18:16:00+05:00'
                      date_until: '2020-04-25T18:16:00+05:00'
                properties:
                  attribute_conditions:
                    $ref: >-
                      #/components/schemas/promotion_user-attribute_conditions_model-get
                  discount:
                    properties:
                      percent:
                        default: '10.00'
                        description: >-
                          Pourcentage de la remise.

                          Le prix de l'objet sera diminué d'une valeur calculée
                          à l'aide de ce pourcentage.
                        nullable: true
                        type: string
                    type: object
                  excluded_promotions:
                    $ref: '#/components/schemas/excluded_promotions'
                  id:
                    description: >-
                      ID de la promotion. Identifiant unique de la promotion au
                      sein du projet.
                    type: integer
                  is_enabled:
                    $ref: '#/components/schemas/Promotions_is_enabled'
                  items:
                    items:
                      description: Liste des objets qui seront concernés par la remise.
                      properties:
                        sku:
                          default: elven_sword
                          description: UGS de l'objet.
                          type: string
                      type: object
                    nullable: true
                    type: array
                  limits:
                    $ref: '#/components/schemas/Promotions_promotion_limits_response'
                  name:
                    additionalProperties:
                      example:
                        en-US: Promotion
                        ru-RU: Акция
                      type: string
                    description: >-
                      Nom de la promotion. Doit comprendre des paires
                      clé/valeur,

                      où la clé est une région au format "^[a-z]{2}-[A-Z]{2}$",
                      la valeur est une chaîne.
                    type: object
                  price_conditions:
                    $ref: '#/components/schemas/price_conditions_discount'
                  promotion_periods:
                    $ref: '#/components/schemas/promotion_periods'
                type: object
          description: La promotion sur les objets a été reçu avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          content:
            application/json:
              examples:
                response:
                  value:
                    errorCode: 9502
                    errorMessage: >-
                      [0401-9502]: Can not find promotion with ID = 111425 in
                      project 59080
                    statusCode: 404
              schema:
                properties:
                  errorCode:
                    example: 9502
                    type: integer
                  errorMessage:
                    example: >-
                      [0401-9502]: Can not find promotion with ID = 111425 in
                      project 59080
                    type: string
                  statusCode:
                    example: 404
                    type: integer
                type: object
          description: >-
            Promotion non trouvée. Assurez-vous que le paramètre `promotion_id`
            est correct.
      security:
        - basicAuth: []
      summary: Lire une promotion sur les objets
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Met à jour la promotion.


        <div class='note'><b>Note</b><br><br>Les nouvelles données remplaceront
        les anciennes. Si vous souhaitez mettre à jour une promotion
        partiellement, assurez-vous de passer toutes les données requises dans
        la requête.</div>


        Les promotions offrent une remise (%) sur les objets.

        La remise s'applique à tous les prix des objets spécifiés.
      operationId: update-item-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_create-update-item-promotion'
      responses:
        '204':
          description: La promotion a été mise à jour avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promotion'
        '422':
          $ref: >-
            #/components/responses/Promotions_422-admin-promotion-missed-items-property
      security:
        - basicAuth: []
      summary: Mettre à jour une promotion sur les objets
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/reward_chain:
    get:
      description: "Récupère une liste de chaînes de récompenses.\n\n<div class=\"notice\"><strong>Attention</strong><br><br>Tous les projets sont soumis à une limite de nombre d'objets que vous pouvez obtenir dans la réponse. La valeur par défaut et la valeur maximale sont <strong>10\_éléments par réponse.</strong> Pour obtenir plus de données page par page, utilisez les champs <b>limit</b> et <b>offset</b>.</div>"
      operationId: admin-get-reward-chains
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/enabled-query-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-list-reward-chains'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire une liste de chaînes de récompenses
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée une chaîne de récompenses.
      operationId: admin-create-reward-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/create-reward-chain'
      responses:
        '201':
          $ref: '#/components/responses/201-admin-create-reward-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/422-admin-create-update-rc-vp-invalid-request'
      security:
        - basicAuth: []
      summary: Créer une chaîne de récompenses
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}:
    delete:
      description: Supprime une chaîne de récompenses spécifique.
      operationId: admin-delete-reward-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/reward_chain_id-path-param'
      responses:
        '204':
          $ref: '#/components/responses/204-admin-delete-reward-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Supprimer une chaîne de récompenses
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Récupère des informations sur une chaîne de récompenses spécifique.
      operationId: admin-get-reward-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/reward_chain_id-path-param'
      responses:
        '200':
          $ref: '#/components/responses/200-admin-get-reward-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-admin-reward-chain-not-found'
      security:
        - basicAuth: []
      summary: Lire une chaîne de récompenses
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Met à jour une chaîne de récompenses spécifique.
      operationId: admin-update-reward-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/reward_chain_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/update-reward-chain'
      responses:
        '204':
          $ref: '#/components/responses/204-admin-update-reward-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-admin-reward-chain-not-found'
        '422':
          $ref: '#/components/responses/422-admin-create-update-rc-vp-invalid-request'
      security:
        - basicAuth: []
      summary: Mettre à jour une chaîne de récompenses
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/reset:
    post:
      description: >-
        Réinitialise les points de valeur et la progression de tous les
        utilisateurs dans la chaîne de récompenses.<br> Après la
        réinitialisation, vous pouvez mettre à jour la période de validité de la
        chaîne de récompenses et l'utilisateur peut à nouveau progresser dans la
        chaîne.

        <div class="notice"><strong>Avis</strong>
          <br><br>
         Ne réinitialisez pas la chaîne de récompenses pendant sa période de validité. Dans ce cas, les utilisateurs risquent de perdre des points de valeur gagnés avant de réclamer leur récompense.
        </div>
      operationId: admin-reset-reward-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/reward_chain_id-path-param'
      responses:
        '204':
          $ref: '#/components/responses/204-admin-reset-reward-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Réinitialiser la chaîne de récompenses
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/toggle:
    put:
      description: Active/désactive la chaîne de récompenses.
      operationId: admin-toggle-reward-chain
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/reward_chain_id-path-param'
      responses:
        '204':
          $ref: '#/components/responses/204-admin-toggle-reward-chain'
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Basculer une chaîne de récompenses
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/unique_catalog_offer:
    get:
      description: Récupère la liste des offres promotionnelles uniques d'un projet.
      operationId: get-unique-catalog-offers
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
      responses:
        '200':
          $ref: '#/components/responses/Promotions_200-get-unique-catalog-offers'
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Lire la liste des offres promotionnelles uniques du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crée une offre promotionnelle unique dans le catalogue.
      operationId: admin-create-unique-catalog-offer
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_unique_catalog_offer-create'
      responses:
        '201':
          content:
            application/json:
              examples:
                response:
                  value:
                    external_id: coupon_external_id
              schema:
                properties:
                  external_id:
                    $ref: '#/components/schemas/Promotions_coupon-external_id'
                type: object
          description: L'offre unique a été créée avec succès dans le catalogue.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Créer une offre promotionnelle unique dans le catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}:
    delete:
      description: "Supprime la [promotion par offre unique du catalogue](https://developers.xsolla.com/fr/doc/shop-builder/features/unique-offer/). Les conséquences suivantes s'en suivent\_:\n* La promotion disparaît de la liste des promotions configurées dans votre projet\_;\n* Elle n'est plus appliquée au catalogue des objets ni au panier. L'utilisateur ne peut plus acheter d'objets à travers cette promotion.\n\nAprès la suppression, la promotion ne peut pas être restaurée."
      operationId: delete-unique-catalog-offer-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: Offre unique du catalogue supprimée avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Supprimer une promotion par offre unique du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Récupère une promotion par offre unique du catalogue spécifique.
      operationId: get-unique-catalog-offer
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                response:
                  value:
                    external_id: secret_shop
                    is_enabled: true
                    items:
                      - helmet
                      - sword
                      - shield
                    name:
                      en-US: Secret shop
                      ru-RU: Секретный магазин
                    promotion_periods:
                      - date_from: '2020-04-15T18:16:00+05:00'
                        date_until: '2020-04-25T18:16:00+05:00'
                      - date_from: '2020-05-15T18:16:00+05:00'
                        date_until: '2020-05-25T18:16:00+05:00'
                    redeem_code_limit: 1
                    redeem_total_limit: 100
                    redeem_user_limit: 1
                    total_limit_state:
                      available: 50
                      reserved: 10
                      used: 40
              schema:
                $ref: >-
                  #/components/schemas/Promotions_200-get-unique-catalog-offer-promotion-model
          description: Offre unique du catalogue reçue avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Lire une promotion par offre unique du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Met à jour une promotion par offre unique du catalogue.
      operationId: update-unique-catalog-offer-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      requestBody:
        $ref: '#/components/requestBodies/Promotions_unique_catalog_offer-update'
      responses:
        '204':
          description: Offre unique du catalogue mise à jour avec succès.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Mettre à jour une promotion par offre unique du catalogue
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
servers:
  - url: https://store.xsolla.com/api
tags:
  - name: promotions-common
    x-displayName: Communs
  - description: Cette API permet de gérer les coupons.
    name: promotions-coupons
    x-displayName: Coupons
  - description: Cette API permet de gérer les codes promo.
    name: promotions-promo-codes
    x-displayName: Codes promo
  - description: Cette API permet de gérer les offres uniques du catalogue.
    name: promotions-unique-catalog-offers
    x-displayName: Offres uniques du catalogue
  - description: Cette API permet de gérer les promotions par réduction
    name: promotions-discounts
    x-displayName: Remises
  - description: Cette API permet de gérer les promotions par bonus.
    name: promotions-bonuses
    x-displayName: Bonus
  - description: >-
      Cette API permet de spécifier des règles pour les attributs utilisateur.

      Si l'utilisateur remplit toutes les conditions d'une règle concrète, des
      objets personnalisés seront affichés.


      Pour les promotions personnalisées, voir la [section
      Promotions](/fr/api/shop-builder/tag/promotions-discounts).


      Pour passer des attributs avant un achat, utilisez [Xsolla Login
      API](/fr/api/login/operation/update-users-attributes-from-server/) ou
      passez-les dans la propriété [user.attributes lors de la génération du
      jeton à l'aide de Pay Station
      API](/fr/api/pay-station/operation/create-token). 
    name: personalized-catalog
    x-displayName: Catalogue personnalisé
  - name: user-limits-admin
    x-displayName: Gestion
  - name: reward-chain-value-points-admin
    x-displayName: Administrateur
  - name: reward-chain-client
    x-displayName: Client
  - name: clan-reward-chain-client
    x-displayName: Client clans
  - name: daily-chain-admin
    x-displayName: Administrateur
  - name: daily-chain-client
    x-displayName: Client
  - name: offer-chain-admin
    x-displayName: Administrateur
  - name: offer-chain-client
    x-displayName: Client
  - name: upsell-admin
    x-displayName: Administrateur
  - name: upsell-client
    x-displayName: Client
x-tagGroups:
  - name: PROMOTIONS
    tags:
      - promotions-common
      - promotions-coupons
      - promotions-promo-codes
      - promotions-unique-catalog-offers
      - promotions-discounts
      - promotions-bonuses
  - name: PERSONNALISATION
    tags:
      - personalized-catalog
  - name: LIMITES
    tags:
      - user-limits-admin
  - name: CHAÎNES DE RÉCOMPENSE ET POINTS DE VALEUR
    tags:
      - reward-chain-value-points-admin
      - reward-chain-client
      - clan-reward-chain-client
  - name: CHAINES QUOTIDIENNES
    tags:
      - daily-chain-admin
      - daily-chain-client
  - name: CHAÎNES D'OFFRES
    tags:
      - offer-chain-admin
      - offer-chain-client
  - name: UPSELL
    tags:
      - upsell-admin
      - upsell-client
