components:
  examples:
    200-admin-daily-chain:
      summary: Ejemplo de recompensa diaria
      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: Ejemplo de lista de recompensas diarias
      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: Ejemplo de cadena de ofertas
      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: Ejemplo de lista de cadena de ofertas
      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: Ejemplo de cadena de recompensas de un 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: Ejemplo de recompensa diaria del usuario
      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: Ejemplo de lista de recompensas diarias del usuario
      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: Ejemplo de cadena de recompensas de un 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: Ejemplo de cadena de recompensas
      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: Ejemplo de cadena de ofertas del usuario
      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: Ejemplo de lista de cadena de ofertas del usuario
      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: Ejemplo de cadena de recompensas
      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: Recompensa diaria no encontrada
      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: Paso de recompensa diaria no encontrado
      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: Cadena no encontrada
      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: Paso de cadena no encontrado
      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: No es posible actualizar la recompensa diaria activa
      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: No coincide el ID de la recompensa diaria
      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: Los ID de los pasos de recompensa diaria están duplicados
      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: Artículos de pasos incorrectos
      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: Periodo incorrecto de una recompensa diaria
      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: Orden incorrecto de los pasos
      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: No se han encontrado los ID de los pasos de recompensa diaria
      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: Formato de fecha no válido
      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: Límite de artículos superado
      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: Demasiados pasos
      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="/es/api/shop-builder/operation/admin-toggle-offer-chain">Toggle
        offer chain</a> call.
      summary: No es posible actualizar la cadena de ofertas activa
      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: El ID de cadena no coincide
      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: Los ID de los pasos de cadena están duplicados
      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: Artículos de pasos no válidos
      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: Periodo de cadenas no válido
      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: Pedido de pasos no válido
      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: No se han encontrado los ID de los pasos de la cadena
      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: Formato de fecha no válido
      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: Límite de artículos superado
      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: Demasiados pasos
      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: No es posible reclamar recompensa por paso
      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: No es posible reclamar recompensa por paso
      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: >-
        Código único que distingue entre mayúsculas y minúsculas. Contiene
        letras y números.
      in: path
      name: code
      required: true
      schema:
        example: WINTER2021
        maxLength: 128
        minLength: 1
        type: string
    codes-query-param:
      description: >-
        Códigos únicos que distinguen mayúsculas de minúsculas. Solo contienen
        letras y números.
      in: query
      name: codes[]
      schema:
        items:
          maxLength: 128
          minLength: 1
          type: string
        type: array
    coupon_code-path-param:
      description: >-
        Código único que distingue entre mayúsculas y minúsculas. Contiene
        letras y números.
      in: path
      name: coupon_code
      required: true
      schema:
        example: WINTER2021
        maxLength: 128
        minLength: 1
        type: string
    daily_chain_id-path-param:
      description: ID de recompensa diaria.
      in: path
      name: daily_chain_id
      required: true
      schema:
        example: 101
        type: integer
    daily_chain_step_number-path-param:
      description: Número de pasos de recompensa diaria.
      in: path
      name: step_number
      required: true
      schema:
        example: 1
        type: integer
    enabled-query-param:
      description: Filtrar elementos por la marca `is_enabled`.
      in: query
      name: enabled
      required: false
      schema:
        type: integer
    external_id-promotion-path-param:
      description: >-
        ID externo de la promoción. Identificador único de la promoción dentro
        del proyecto.
      in: path
      name: external_id
      required: true
      schema:
        example: coupon_44056_1
        type: integer
    is_enabled-query-param:
      description: Filtrar elementos por la marca `is_enabled`.
      in: query
      name: is_enabled
      required: false
      schema:
        type: integer
    is_expired-daily-chain-query-param:
      description: Filtrar las recompensas diarias para mostrar solo las caducadas.
      in: query
      name: is_expired
      required: false
      schema:
        type: integer
    item_sku-path-param:
      description: Código (SKU) del artículo.
      in: path
      name: item_sku
      required: true
      schema:
        example: booster_mega_1
        type: string
    limit-query-param:
      description: Límite para el número de elementos presentes en la página.
      example: 50
      in: query
      name: limit
      required: false
      schema:
        example: 50
        minimum: 1
        type: integer
    offer_chain_id-path-param:
      description: ID de cadena de ofertas.
      in: path
      name: offer_chain_id
      required: true
      schema:
        example: 101
        type: integer
    offer_chain_step_number-path-param:
      description: Número de paso de cadena de ofertas.
      in: path
      name: step_number
      required: true
      schema:
        example: 1
        type: integer
    offset-query-param:
      description: >-
        Número del elemento a partir del cual se genera la lista (el conteo
        empieza desde el 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 regla.
      in: path
      name: rule_id
      required: true
      schema:
        example: 1
        type: number
    project_id-path-param:
      description: >-
        ID del proyecto. Encontrará este parámetro en su [Cuenta del
        editor](https://publisher.xsolla.com/) junto al nombre del proyecto.
      in: path
      name: project_id
      required: true
      schema:
        example: 44056
        type: integer
    promocode_code-path-param:
      description: >-
        Código único que distingue entre mayúsculas y minúsculas. Contiene
        letras y números.
      in: path
      name: promocode_code
      required: true
      schema:
        example: SO6rew99j9
        maxLength: 128
        minLength: 1
        type: string
    promotion_id-path-param:
      description: ID de promoción. Identificador único de la promoción en el proyecto.
      in: path
      name: promotion_id
      required: true
      schema:
        example: 111425
        type: integer
    reward_chain_id-path-param:
      description: ID de la cadena de recompensas.
      in: path
      name: reward_chain_id
      required: true
      schema:
        example: 101
        type: integer
    reward_chain_step_id-path-param:
      description: ID del paso de la cadena de recompensas.
      in: path
      name: step_id
      required: true
      schema:
        example: 120
        type: integer
    type-daily-chain-query-param:
      description: Filtra las recompensas diarias para devolver solo el tipo especificado.
      in: query
      name: type
      required: false
      schema:
        enum:
          - calendar_hard
          - rolling_skippable
          - rolling_unskippable
        type: string
    user_external_id-query-param:
      description: ID externo del usuario
      in: query
      name: user_external_id
      required: true
      schema:
        example: d342dad2-9d59-11e9-a384-42010aa8003f
        type: string
    value_point_sku-path-param:
      description: SKU del punto de valor.
      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 la cesta.
                    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: >-
                    La lista de artículos que se añadirán a la compra del
                    usuario como bonificación.
                  properties:
                    quantity:
                      default: 1
                      description: Cantidad del artículo.
                      type: number
                    sku:
                      default: elven_shield
                      description: Código (SKU) del artículo.
                      type: string
                  type: object
                nullable: true
                type: array
              condition:
                description: >-
                  Conjunto de artículos que deben incluirse en la compra para
                  aplicar una promoción. Si este parámetro es `null`, se
                  aplicará una promoción a cualquier compra dentro de un
                  proyecto.
                items:
                  properties:
                    sku:
                      default: elven_sword
                      description: SKU del artículo.
                      type: string
                  type: object
                nullable: true
                type: array
              excluded_promotions:
                $ref: '#/components/schemas/excluded_promotions'
              id:
                description: >-
                  ID de promoción. Identificador único de la promoción en el
                  proyecto.
                type: integer
              is_enabled:
                $ref: '#/components/schemas/Promotions_is_enabled'
              limits:
                $ref: '#/components/schemas/Promotions_promotion_limits'
              name:
                additionalProperties:
                  type: string
                description: >-
                  Nombre de la promoción. Debe contener pares clave/valor en los
                  cuales la clave es una configuración regional con el formato
                  "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena (string).
                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: >-
                      Porcentaje de descuento.

                      El precio del artículo se reducirá utilizando un valor
                      calculado usando este porcentaje y luego se redondeará al
                      segundo decimal.
                    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: La lista de artículos a los que se aplicará el descuento.
                  properties:
                    sku:
                      default: elven_sword
                      description: Código (SKU) del artículo.
                      type: string
                  required:
                    - sku
                  type: object
                type: array
              limits:
                $ref: '#/components/schemas/Promotions_promotion_limits'
              name:
                additionalProperties:
                  type: string
                description: >-
                  Nombre de la promoción. Debe contener pares clave/valor,

                  en los cuales la clave es la configuración regional con el
                  formato "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena
                  (string).
                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: Objeto con datos de la promoción.
      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: Código único de cupón. Contiene letras y números.
                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 la cesta.
                    type: string
                required:
                  - id
                type: object
              coupon_code:
                default: SUMMER2021
                description: Código único de código promocional. Contiene letras y números.
                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: Recompensa diaria con el tipo `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: Recompensa diaria con el tipo `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: Recompensa diaria con el tipo `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: Ejemplo de cadena de ofertas habitual
              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: Ejemplo de cadena de ofertas predeterminada personalizada
              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: >-
                Ejemplo de cadena de ofertas personalizada con condiciones
                basadas en atributos del usuario
              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: Ejemplo de cadena de ofertas recurrente
              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: Ejemplo de cadena de recompensas de un 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: Ejemplo de cadena de recompensas
              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: Ejemplo de venta adicional con lista fija de artículos
              value:
                is_enabled: true
                items:
                  - game_sku_1
                  - game_sku_2
                  - game_sku_3
                type: fixed_list
            special_type_most_sellable:
              summary: >-
                Ejemplo de venta adicional con los artículos más vendibles de
                los últimos 30 días
              value:
                is_enabled: true
                items: []
                type: most_sellable
            special_type_promotions:
              summary: Ejemplo de venta adicional solo con artículos de promoción
              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: Punto de valor para la cadena de recompensas de clan
              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: Punto de valor para la cadena de recompensas
              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: Recompensa diaria con el tipo `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: Recompensa diaria con el tipo `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: Recompensa diaria con el tipo `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: Ejemplo por defecto
              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: Ejemplo de cadena de ofertas predeterminada personalizada
              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: >-
                Ejemplo de cadena de ofertas personalizada con condiciones
                basadas en atributos del usuario
              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: Ejemplo de cadena de ofertas recurrente
              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: Ejemplo de cadena de recompensas de un 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: Ejemplo de cadena de recompensas
              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: Ejemplo de venta adicional con lista fija de artículos
              value:
                is_enabled: true
                items:
                  - game_sku_1
                  - game_sku_2
                  - game_sku_3
                type: fixed_list
            special_type_most_sellable:
              summary: >-
                Ejemplo de venta adicional con los artículos más vendibles de
                los últimos 30 días
              value:
                is_enabled: true
                items: []
                type: most_sellable
            special_type_promotions:
              summary: Ejemplo de venta adicional solo con artículos de promoción
              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: Si existe otra página con códigos.
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/Code-limit-promo-code'
                type: array
              promotion_id:
                description: >-
                  ID de promoción. Identificador único de la promoción en el
                  proyecto.
                type: integer
              total_items_count:
                description: Número total de códigos.
                type: number
            type: object
      description: Se recibieron correctamente los límites del cupón para un código.
    200-admin-get-code-promo-code-limits:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/code-limit'
          schema:
            properties:
              has_more:
                description: Si existe otra página con códigos.
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/Code-limit-promo-code'
                type: array
              promotion_id:
                description: >-
                  ID de promoción. Identificador único de la promoción en el
                  proyecto.
                type: integer
              total_items_count:
                description: Número total de códigos.
                type: number
            type: object
      description: >-
        Se recibieron correctamente los límites del código promocional para un
        código.
    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: Los datos de recompensa diaria se han obtenido correctamente.
    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: Número total de recompensas diarias.
                example: 3
                type: integer
            type: object
      description: La lista de recompensas diarias se ha obtenido correctamente.
    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: La lista de cadenas de ofertas se ha obtenido correctamente.
    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 lista de cadenas de recompensas se recibió correctamente.
    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 lista de artículos cuya recompensa de puntos de valor se recibió
        correctamente.
    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: Los datos de la cadena de ofertas se han obtenido correctamente.
    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 promoción se recibió correctamente.
    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 cadena de recompensas especificada se recibió correctamente.
    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: Se recibieron correctamente los límites de cupón para un usuario.
    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: >-
        Se recibieron correctamente los límites de códigos promocionales para un
        usuario.
    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: Se recibieron correctamente los límites de la promoción para un usuario.
    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: El punto de valor especificado se recibió correctamente.
    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 lista de puntos de valor se recibió correctamente.
    200-client-get-daily-chains-list:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-client-daily-chain-list'
          schema:
            properties:
              has_more:
                description: Se utiliza como indicador de que hay más páginas.
                example: true
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/client-daily-chain-model'
                type: array
              total_items_count:
                description: Número total de recompensas diarias.
                example: 3
                type: integer
            type: object
      description: Las recompensas diarias del usuario se han obtenido correctamente.
    200-client-get-offer-chains-list:
      content:
        application/json:
          examples:
            response:
              $ref: '#/components/examples/200-client-offer-chain-list'
          schema:
            properties:
              has_more:
                description: Indica si hay más páginas disponibles.
                example: true
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/client-offer-chain-model'
                type: array
              total_items_count:
                description: Número total de cadenas de ofertas disponibles.
                example: 10
                type: integer
            type: object
      description: La lista de cadenas de ofertas se ha recibido correctamente.
    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: Se utiliza como indicador de que hay más páginas.
                example: true
                type: boolean
              items:
                items:
                  $ref: '#/components/schemas/client-reward-chain-item-model'
                type: array
              total_items_count:
                description: Número total de cadenas de recompensas del sistema.
                example: 10
                type: integer
            type: object
      description: La cadena de recompensas del usuario se recuperó correctamente.
    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: Cantidad de puntos de valor.
                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: Se recuperó correctamente el saldo de puntos de valor del usuario.
    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: >-
                        Tipo de lote. Se devuelve si un tipo de artículo es un
                        lote.
                      enum:
                        - standard
                        - virtual_currency_package
                      type: string
                    description:
                      description: Descripción del artículo.
                      example: Super box with items
                      type: string
                    image_url:
                      $ref: '#/components/schemas/Common_admin-image_url'
                    name:
                      description: Nombre del artículo.
                      example: Super box
                      type: string
                    quantity:
                      description: Cantidad del artículo.
                      example: 2
                      type: integer
                    sku:
                      $ref: '#/components/schemas/sku'
                    type:
                      description: Tipo de artículo.
                      example: bundle
                      type: string
                  type: object
                type: array
            type: object
      description: El clan del usuario se actualizó correctamente.
    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: La recompensa diaria se ha creado correctamente.
    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: La cadena de ofertas se ha creado correctamente.
    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 cadena de recompensas se creó correctamente.
    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: El punto de valor se creó correctamente.
    204-admin-delete-reward-chain:
      content: {}
      description: La cadena de recompensas se eliminó correctamente.
    204-admin-reset-reward-chain:
      content: {}
      description: Se ha reiniciado la cadena de recompensas.
    204-admin-toggle-reward-chain:
      content: {}
      description: Se ha deshabilitado/habilitado la cadena de recompensas.
    204-admin-update-reward-chain:
      content: {}
      description: La cadena de recompensas se actualizó correctamente.
    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: Autenticación no superada o errónea.
    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: >-
        Autenticación básica no superada o errónea. Asegúrese de haber utilizado
        la autenticación básica o las credenciales correctas.
    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: No se envió el encabezado de autorización.
    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: Cadena de recompensas no encontrada.
    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: >-
        Código canjeable no encontrado. Asegúrese de que el valor del código
        proporcionado es correcto.
    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: No se ha encontrado la recompensa diaria.
    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: No se ha encontrado la recompensa diaria o el paso de recompensa diaria.
    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: No se ha encontrado la cadena de ofertas.
    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: No se ha encontrado la cadena de oferta o el paso de oferta.
    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: Paso de la cadena de recompensas no encontrado.
    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: >-
        Formato incorrecto del código canjeable. El código solo puede contener
        letras y números.
    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: Errores de configuración incorrecta de recompensa diaria.
    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: Solicitud no válida.
    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: Errores de configuración incorrecta de recompensa diaria.
    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: Configuración de cadena de ofertas no válida.
    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: No puedo reclamar la recompensa por paso.
    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: Configuración de cadena de ofertas no válida.
    Cart-Payment_200-order-created:
      content:
        application/json:
          examples:
            response:
              value:
                order_id: 641
                token: f4puMEFFDZcx9nv5HoNHIkPe9qghvBQo
          schema:
            properties:
              order_id:
                description: ID del pedido.
                type: integer
              token:
                description: Token de pago.
                type: string
            type: object
      description: El pedido se creó correctamente.
    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: >-
        Autenticación no superada o errónea. Asegúrese de haber utilizado la
        autenticación o las credenciales correctas.
    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: >-
        Autenticación básica no superada o errónea. Asegúrese de haber utilizado
        la autenticación básica o las credenciales correctas.
    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: Error de validación de la solicitud.
    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 promoción de bonificaciones se recibió correctamente.
    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: Recuento total de códigos de cupón.
                type: number
            type: object
      description: Se recibió correctamente la lista de códigos para un cupón.
    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: Precios de artículos.
                      nullable: true
                      properties:
                        amount:
                          description: Precio del artículo con descuento.
                          example: '2.9900'
                          type: string
                        amount_without_discount:
                          description: Precio del artículo.
                          example: '2.9900'
                          type: string
                        currency:
                          description: >-
                            Divisa del precio del artículo. Código de tres
                            letras según [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: Tipo de artículo virtual.
                      enum:
                        - consumable
                        - non_consumable
                        - non_renewing_subscription
                      example: non-consumable
                      type: string
                      x-enumDescriptions:
                        consumable: "Artículo que desaparece del inventario tras su uso (p.\_ej., munición)."
                        non_consumable: >-
                          Un artículo que permanece en el inventario durante un
                          periodo ilimitado.
                        non_renewing_subscription: >-
                          Artículo de duración limitada que puede representar el
                          acceso a servicios o contenidos durante un periodo
                          limitado.
                    virtual_prices:
                      type: array
                  type: object
                type: array
            type: object
      description: El cupón fue canjeado correctamente.
    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 es `true`, el usuario debe elegir la bonificación antes de
                  canjear un cupón.
                type: boolean
            type: object
      description: La lista de recompensas de cupones se recibió correctamente.
    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 lista de promociones de bonificaciones se recibió correctamente.
    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 lista de cupones se recibió correctamente.
    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: >-
                            Porcentaje del descuento.

                            El precio del artículo se reducirá en función del
                            valor calculado de este porcentaje.
                          nullable: true
                          type: string
                      type: object
                    excluded_promotions:
                      $ref: '#/components/schemas/excluded_promotions'
                    id:
                      description: >-
                        ID de promoción. Identificador único de la promoción en
                        el proyecto.
                      type: integer
                    is_enabled:
                      $ref: '#/components/schemas/Promotions_is_enabled'
                    items:
                      items:
                        description: >-
                          La lista de artículos a los que se aplicará el
                          descuento.
                        properties:
                          sku:
                            default: elven_sword
                            description: SKU del artículo.
                            nullable: true
                            type: string
                        type: object
                      nullable: true
                      type: array
                    limits:
                      $ref: >-
                        #/components/schemas/Promotions_promotion_limits_response
                    name:
                      additionalProperties:
                        type: string
                      description: >-
                        Nombre de la promoción. Debe contener pares clave/valor,
                        en los cuales la clave es la configuración regional con
                        el formato "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena
                        (string).
                      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: Se recibió correctamente la lista de promociones del artículo.
    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 lista de códigos promocionales se recibió correctamente.
    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: Se recibió correctamente la lista de promociones.
    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 lista de cupones se ha recibido correctamente.
    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 la cesta.
                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: Precios de artículos.
                      nullable: true
                      properties:
                        amount:
                          description: Precio del artículo con descuento.
                          example: '2.9900'
                          type: string
                        amount_without_discount:
                          description: Precio del artículo.
                          example: '2.9900'
                          type: string
                        currency:
                          description: >-
                            Divisa del precio del artículo. Código de tres
                            letras según [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: Tipo de artículo virtual.
                      enum:
                        - consumable
                        - non_consumable
                        - non_renewing_subscription
                      example: non-consumable
                      type: string
                      x-enumDescriptions:
                        consumable: "Artículo que desaparece del inventario tras su uso (p.\_ej., munición)."
                        non_consumable: >-
                          Un artículo que permanece en el inventario durante un
                          periodo ilimitado.
                        non_renewing_subscription: >-
                          Artículo de duración limitada que puede representar el
                          acceso a servicios o contenidos durante un periodo
                          limitado.
                    virtual_prices:
                      type: array
                    vp_rewards:
                      $ref: '#/components/schemas/client-item-value-point-reward'
                  type: object
                type: array
              price:
                description: Precio de la cesta.
                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: El código promocional se canceló correctamente.
    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 la cesta.
                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: Precio de la cesta.
                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: El código promocional se canjeó correctamente.
    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: Número total de códigos para un código promocional.
                type: number
            type: object
      description: La lista de códigos para un código promocional se recibió correctamente.
    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 lista de recompensas de códigos promocionales se recibió
        correctamente.
    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: Número total de códigos de oferta de catálogo únicos.
                type: number
            type: object
      description: >-
        Se ha recibido correctamente la lista de códigos para una oferta de
        catálogo única.
    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: 'Tipo de código: `promocode`/`coupon`.'
                type: string
            type: object
      description: Información sobre el código.
    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: El código se creó correctamente.
    Promotions_201-create-promotion:
      content:
        application/json:
          examples:
            response:
              value:
                promotion_id: 2384756
          schema:
            properties:
              promotion_id:
                description: >-
                  ID de promoción. Identificador único de la promoción en el
                  proyecto.
                type: integer
            type: object
      description: La promoción se creó correctamente.
    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: >-
        Autenticación básica no superada o errónea. Asegúrese de haber utilizado
        la autenticación básica o las credenciales correctas.
    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: Autenticación no superada o errónea.
    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: No se envió el encabezado de autorización.
    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: Cupón no encontrado. Asegúrese de que el `external_id` es correcto.
    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: >-
        Código promocional no encontrado. Asegúrese de que el `external_id` es
        correcto.
    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: Promoción no encontrada. Asegúrese de que la `promotion_id` es correcto.
    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: Introduzca un código de cupón válido.
    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: Introduzca un código promocional válido.
    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: Código no encontrado. Asegúrese de que el valor `code` es correcto.
    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: Solicitud no válida.
    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: Se produjo un error al recibir la promoción del servicio de promoción.
    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: Solicitud no válida.
    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: Solicitud no válida.
    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: Solicitud no válida.
    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: Solicitud no válida. El código ya existe.
    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: Solicitud no válida.
    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: Solicitud no válida.
    Promotions_422-rewards:
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Promotions_422_limit_error'
              - $ref: '#/components/schemas/Promotions_422_reglock_error'
      description: Solicitud no válida.
    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: Promoción de códigos no válida.
    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: La lista de artículos de venta adicional se ha recibido correctamente.
    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: Artículo no encontrado.
    Upsell-422-invalid-request:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Upsell-422-invalid-request'
      description: Solicitud no válida.
    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: >-
        Artículo no encontrado. Asegúrese de que el `project_id` y el `sku` sean
        correctos.
  schemas:
    422-invalid-request:
      properties:
        errorCode:
          description: Código de error.
          example: 1102
          type: number
        errorMessage:
          description: Mensaje de error legible.
          example: >-
            [0401-1102]: Unprocessable Entity. The property `external_id` is
            required
          type: string
        statusCode:
          description: Código de estado de la respuesta.
          example: 422
          type: number
        transactionId:
          description: ID único de la solicitud.
          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 es `true`, el usuario puede comprar un artículo.
      example: true
      type: boolean
    Catalog_item_limits:
      description: Límites del artículo.
      nullable: true
      properties:
        per_item:
          description: Límites de artículos para un artículo.
          nullable: true
          properties:
            available:
              description: >-
                Número restante de artículos que todos los usuarios pueden
                comprar.
              example: 3
              type: integer
            total:
              description: >-
                Número máximo de artículos que pueden comprar todos los
                usuarios.
              example: 5
              type: integer
          type: object
        per_user:
          description: Límites de artículos para un usuario.
          nullable: true
          properties:
            available:
              description: >-
                Número restante de artículos que el usuario actual puede
                comprar.
              example: 3
              type: integer
            limit_exceeded_visibility:
              $ref: '#/components/schemas/limit_exceeded_visibility'
            recurrent_schedule:
              description: >-
                Periodo de actualización recurrente de los límites del artículo
                para un usuario.
              properties:
                interval_type:
                  description: Tipo de periodo de actualización recurrente.
                  enum:
                    - daily
                    - weekly
                    - monthly
                    - hourly
                  type: string
                reset_next_date:
                  description: >-
                    Fecha y hora en que se restablecen los límites (Marca de
                    tiempo Unix).
                  example: 1677553200
                  type: integer
              type: object
            total:
              description: Número máximo de artículos que un mismo usuario puede comprar.
              example: 5
              type: integer
          type: object
      type: object
    Catalog_item_promotions:
      description: >-
        Promociones aplicadas para artículos específicos de la cesta. La matriz
        se devuelve en los siguientes casos:


        * Se configura un descuento promocional para un artículo específico.


        * Se aplica un código promocional con el parámetro **Descuento en
        artículos seleccionados**.


        Si no se aplican promociones a nivel de artículo, se devuelve una matriz
        vacía.
      items:
        properties:
          bonus:
            items:
              properties:
                bundle_type:
                  description: >-
                    Tipo de artículo del lote de bonificación. Disponible solo
                    para el tipo de artículo de bonificación `bundle`.
                  enum:
                    - standard
                    - virtual_currency_package
                  type: string
                image_url:
                  description: >-
                    URL de la imagen del artículo de bonificación. No disponible
                    para el tipo de artículo de bonificación `physical_good`.
                  type: string
                name:
                  description: >-
                    Nombre del artículo de bonificación. No disponible para el
                    tipo de artículo de bonificación `physical_good`.
                  type: string
                quantity:
                  type: integer
                sku:
                  type: string
                type:
                  description: Tipo de artículo de bonificación.
                  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: >-
                El número restante de veces que se puede utilizar un código
                promocional.
              type: integer
            reserved:
              description: El número de veces que se reserva un código promocional.
              type: integer
            total:
              description: >-
                Número máximo de veces que se puede utilizar un código
                promocional.
              type: integer
            used:
              description: El número de veces que se utiliza un código promocional.
              type: integer
          type: object
      type: object
    Common_admin-image_url:
      description: URL de la imagen.
      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 es `true`, el usuario debe seleccionar una bonificación antes de
            canjear un cupón.
          type: boolean
      type: object
    Pagination_has-more:
      description: Se utiliza como indicador de que hay más páginas.
      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 es `true`, el usuario debe elegir la bonificación antes de
            canjear un código promocional.
          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 es `true`, el usuario debe elegir la bonificación antes de
            canjear un código promocional.
          type: boolean
      type: object
    Promotions_200-coupon-bonus-reward:
      properties:
        item:
          properties:
            bundle_type:
              description: Tipo de lote. Se devuelve si el tipo de artículo es un lote.
              enum:
                - standard
                - virtual_currency_package
              type: string
            content:
              type: array
            description:
              description: Descripción del artículo.
              example: Game description
              nullable: true
              type: string
            image_url:
              description: URL de la imagen.
              example: >-
                https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
              nullable: true
              type: string
            name:
              description: Nombre del artículo.
              example:
                en: Game name
              type: object
            sku:
              description: >-
                ID único del artículo. El SKU solo puede contener caracteres
                alfanuméricos latinos en minúsculas y mayúsculas, puntos,
                guiones y guiones bajos.
              example: game_01
              type: string
            type:
              description: >-
                Tipo de artículo:
                `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.
              example: unit
              type: string
            unit_items:
              description: >-
                Si el artículo tiene el tipo de unidad, incluye todos los
                artículos de la unidad. En la mayoría de los casos, el usuario
                debe elegir uno de ellos como bonificación del cupón.
              items:
                properties:
                  drm_name:
                    description: Nombre del DRM (gestión de derechos digitales).
                    example: Steam
                    type: string
                  drm_sku:
                    description: >-
                      ID único de DRM. El SKU solo puede contener caracteres
                      alfanuméricos latinos en minúsculas y mayúsculas, puntos,
                      guiones y guiones bajos.
                    example: steam
                    type: string
                  is_free:
                    type: boolean
                  name:
                    description: Nombre del artículo.
                    example: Game name
                    type: string
                  sku:
                    description: >-
                      ID único del artículo. El SKU solo puede contener
                      caracteres alfanuméricos latinos en minúsculas y
                      mayúsculas, puntos, guiones y guiones bajos.
                    example: game_01
                    type: string
                  type:
                    description: 'Tipo de artículo: `game_key`.'
                    example: game_key
                    type: string
                type: object
              type: array
          type: object
        quantity:
          default: 1
          description: Cantidad del artículo.
          type: number
      type: object
    Promotions_200-coupon-discount-reward:
      description: >-
        Porcentaje de descuento.

        El precio de la cesta se reducirá utilizando un valor calculado
        utilizando este porcentaje y luego se redondeará al segundo decimal.
      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: >-
              La lista de artículos que se añadirán a la compra del usuario como
              bonificación.
            properties:
              quantity:
                default: 1
                description: Cantidad del artículo.
                type: number
              sku:
                default: elven_shield
                description: SKU del artículo.
                type: string
            type: object
          nullable: true
          type: array
        condition:
          description: >-
            Conjunto de artículos que deben incluirse en la compra para aplicar
            una promoción. Si este parámetro es `null`, se aplicará una
            promoción a cualquier compra dentro de un proyecto.
          items:
            properties:
              sku:
                default: elven_sword
                description: SKU del artículo.
                type: string
            type: object
          nullable: true
          type: array
        excluded_promotions:
          $ref: '#/components/schemas/excluded_promotions'
        id:
          description: ID de promoción. Identificador único de la promoción en el proyecto.
          type: integer
        is_enabled:
          default: true
          type: boolean
        limits:
          $ref: '#/components/schemas/Promotions_promotion_limits_response'
        name:
          additionalProperties:
            type: string
          description: >-
            Nombre de la promoción. Debe contener pares clave/valor

            en los cuales la clave es una configuración regional con el formato
            "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena (string).
          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: Descripción del artículo.
              example: Game description
              type: string
            image_url:
              description: URL de la imagen.
              example: >-
                https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
              type: string
            name:
              description: Nombre del artículo.
              example: Game name
              type: string
            sku:
              description: >-
                ID único del artículo. El SKU solo puede contener caracteres
                alfanuméricos latinos en minúsculas y mayúsculas, puntos,
                guiones y guiones bajos.
              example: game_01
              type: string
            type:
              description: >-
                Tipo de artículo:
                `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.
              example: unit
              type: string
            unit_items:
              description: >-
                Si el artículo tiene el tipo de unidad, incluye todos los
                artículos de la unidad. En la mayoría de los casos, el usuario
                debe elegir uno de ellos como bonificación del código
                promocional.
              items:
                properties:
                  drm_name:
                    description: Nombre del DRM (gestión de derechos digitales).
                    example: Steam
                    type: string
                  drm_sku:
                    description: >-
                      ID único de DRM. El SKU solo puede contener caracteres
                      alfanuméricos latinos en minúsculas y mayúsculas, puntos,
                      guiones y guiones bajos.
                    example: steam
                    type: string
                  is_free:
                    $ref: '#/components/schemas/value-is_free'
                  name:
                    description: Nombre del artículo.
                    example: Game name
                    type: string
                  sku:
                    description: >-
                      ID único del artículo. El SKU solo puede contener
                      caracteres alfanuméricos latinos en minúsculas y
                      mayúsculas, puntos, guiones y guiones bajos.
                    example: game_01
                    type: string
                  type:
                    description: 'Tipo de artículo: `game_key`.'
                    example: game_key
                    type: string
                type: object
              type: array
          type: object
        quantity:
          default: 1
          description: Cantidad del artículo.
          type: number
      type: object
    Promotions_422_limit_error:
      description: Se alcanzó el límite de canje.
      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: El cupón no está disponible en la región del usuario.
      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: |-
        Porcentaje de descuento.

        El precio del artículo de la cesta se reducirá utilizando un valor
        calculado utilizando este porcentaje y luego se redondeará
        al segundo decimal.
      example: '10.00'
      nullable: false
      type: string
    Promotions_coupon-external_id:
      default: coupon_external_id
      description: >-
        ID único de promoción. El `external_id` solo puede contener caracteres
        alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y
        guiones bajos.
      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: Limita el número total de cupones.
      example: 10
      nullable: true
      type: integer
    Promotions_coupon-redeem_user_limit:
      default: 10
      description: Limita el número total de cupones canjeados por un mismo usuario.
      example: 10
      nullable: true
      type: integer
    Promotions_coupon_bonus:
      items:
        description: >-
          La lista de artículos que se añadirán a la compra del usuario como
          bonificación.
        properties:
          quantity:
            default: 1
            description: Cantidad del artículo.
            type: number
          sku:
            default: elven_shield
            description: SKU del artículo.
            type: string
        type: object
      nullable: true
      type: array
    Promotions_coupon_code:
      default: WINTER2021
      description: >-
        Código único que distingue entre mayúsculas y minúsculas. Contiene
        letras y números.
      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: >-
        Fecha de finalización de su promoción. Puede ser `null`. Si la
        `date_end` es `null`, la promoción será ilimitada en el tiempo.
      format: date-time
      nullable: true
      type: string
    Promotions_coupon_date_start:
      default: '2020-04-15T18:16:00+05:00'
      description: Fecha de inicio de la promoción.
      format: date-time
      nullable: true
      type: string
    Promotions_coupon_name:
      additionalProperties:
        type: string
      default:
        de-DE: Gutscheintitel
        en-US: Coupon title
      description: >-
        Nombre de la promoción. Debe contener pares clave/valor

        en los cuales la clave es una configuración regional con el formato
        "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena (string).
      example:
        de-DE: Gutscheintitel
        en-US: Coupon title
      type: object
    Promotions_coupon_total_limit_state:
      description: Límites para cada código único de cupón.
      nullable: true
      properties:
        available:
          description: El número restante de veces que se puede utilizar un cupón.
          example: 3
          type: integer
        reserved:
          description: El número reservado de un cupón.
          example: 3
          type: integer
        used:
          description: El número de veces que se utiliza un cupón.
          example: 5
          type: integer
      type: object
    Promotions_discounted_items:
      description: Lista de artículos con descuento mediante un código promocional.
      items:
        description: Descuento para determinados artículos de la cesta.
        minItems: 1
        properties:
          discount:
            nullable: false
            properties:
              percent:
                $ref: '#/components/schemas/Promotions_cart_item_discount'
            required:
              - percent
            type: object
          sku:
            default: elven_shield
            description: SKU del artículo.
            type: string
        required:
          - sku
          - discount
        type: object
      nullable: true
      type: array
    Promotions_discounted_items_verify:
      description: Lista de artículos con descuento mediante un código promocional.
      items:
        description: Descuento para artículos concretos.
        properties:
          description:
            description: Descripción del artículo.
            example: Game description
            type: string
          discount:
            nullable: false
            properties:
              percent:
                $ref: '#/components/schemas/Promotions_cart_item_discount'
            type: object
          image_url:
            description: URL de la imagen.
            example: >-
              https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png
            type: string
          name:
            description: Nombre del artículo.
            example: Game name
            type: string
          sku:
            description: >-
              ID único del artículo. El SKU solo puede contener caracteres
              alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones
              y guiones bajos.
            example: game_01
            type: string
          type:
            description: >-
              Tipo de artículo:
              `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.
            example: unit
            type: string
          unit_items:
            description: >-
              Si el artículo tiene el tipo de unidad, incluye todos los
              artículos de la unidad. En la mayoría de los casos, el usuario
              debe elegir uno de ellos como bonificación del código promocional.
            items:
              properties:
                drm_name:
                  description: Nombre del DRM (gestión de derechos digitales).
                  example: Steam
                  type: string
                drm_sku:
                  description: >-
                    ID único de DRM. El SKU solo puede contener caracteres
                    alfanuméricos latinos en minúsculas y mayúsculas, puntos,
                    guiones y guiones bajos.
                  example: steam
                  type: string
                name:
                  description: Nombre del artículo.
                  example: Game name
                  type: string
                sku:
                  description: >-
                    ID único del artículo. El SKU solo puede contener caracteres
                    alfanuméricos latinos en minúsculas y mayúsculas, puntos,
                    guiones y guiones bajos.
                  example: game_01
                  type: string
                type:
                  description: 'Tipo de artículo: `game_key`.'
                  example: game_key
                  type: string
              type: object
            type: array
        type: object
      nullable: true
      type: array
    Promotions_is_enabled:
      description: Si la promoción está habilitada o no.
      example: true
      type: boolean
    Promotions_name:
      additionalProperties:
        type: string
      default:
        de-DE: Artikeltitel
        en-US: Item title
      description: >-
        Nombre del artículo. Debe contener pares clave/valor

        en los cuales la clave es una configuración regional con formato
        "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena (string).
      example:
        de-DE: Artikeltitel
        en-US: Item title
      type: object
    Promotions_promocode_total_limit_state:
      description: Límites para cada código promocional único.
      nullable: true
      properties:
        available:
          description: >-
            El número restantes de veces que se puede utilizar un código
            promocional.
          example: 3
          type: integer
        reserved:
          description: El número reservado de un código promocional.
          example: 3
          type: integer
        used:
          description: El número de veces que se utiliza un código promocional.
          example: 5
          type: integer
      type: object
    Promotions_promotion_condition:
      items:
        description: La lista de artículos por los que el usuario recibió una bonificación.
        properties:
          item:
            properties:
              description:
                description: Descripción del artículo.
                example: Game description
                nullable: true
                type: string
              external_id:
                description: >-
                  ID externo de la promoción. Identificador único de la
                  promoción dentro del proyecto.
                maxLength: 255
                minLength: 1
                pattern: ^[-_.\d\w]+$
                type: string
              image_url:
                description: URL de la imagen.
                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: >-
        Porcentaje de descuento.

        El precio de la cesta se reducirá utilizando un valor calculado
        utilizando este porcentaje y luego se redondeará al segundo decimal.
      example: '10.00'
      nullable: true
      type: string
    Promotions_promotion_id:
      description: ID de promoción. Identificador único de la promoción en el proyecto.
      example: 1
      type: integer
    Promotions_promotion_limits:
      description: Límites de la promoción.
      properties:
        per_user:
          description: Limitaciones de la promoción para un usuario independiente.
          nullable: true
          type: integer
        recurrent_schedule:
          $ref: '#/components/schemas/promotion_recurrent_schedule_response'
      type: object
    Promotions_promotion_limits_response:
      description: Límites de la promoción.
      properties:
        per_item:
          description: Limitación global de artículos.
          example: 10
          nullable: true
          type: integer
        per_user:
          description: Limitaciones de la promoción para un usuario independiente.
          nullable: true
          properties:
            total:
              description: >-
                Número total de artículos que un usuario puede comprar. Puede
                establecer este número en Cuenta del editor o utilizar los
                puntos finales de administrador para las entidades de la tienda
                (objeto de límites).
              example: 5
              type: integer
          type: object
        recurrent_schedule:
          $ref: '#/components/schemas/promotion_recurrent_schedule_response'
      type: object
    Promotions_promotion_type:
      description: Tipo de promoción.
      example: item_discount
      type: string
    Promotions_redeem_code_limit:
      default: 10
      description: Número de canjes por cada código.
      example: 10
      nullable: true
      type: integer
    Promotions_selected_unit_items:
      additionalProperties:
        type: string
      description: >-
        La recompensa que selecciona un usuario.

        La clave del objeto es un SKU de una unidad, y el valor es un SKU de uno
        de los artículos de una unidad.
      example:
        game_1: game_1_steam
        game_2: game_2_playstation
      type: object
    Promotions_sku:
      description: >-
        ID único del artículo. El SKU solo puede contener caracteres
        alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y
        guiones bajos.
      example: booster_mega_1
      type: string
    Promotions_type:
      description: >-
        Tipo de artículo:
        `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.
      type: string
    Promotions_unique_catalog_offer_items:
      description: >-
        Una lista de artículos SKU que están disponibles después de utilizar la
        oferta única de catálogo.
      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: Tipo de venta adicional.
      properties:
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        items:
          default: null
          description: Matriz de SKU de artículos.
          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: Tipo de venta adicional.
      properties:
        is_enabled:
          $ref: '#/components/schemas/is_enabled'
        items:
          default: null
          description: Matriz de SKU de artículos vacía.
          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: Descripción del artículo.
          example: Big Rocket - description
          type: string
        groups:
          $ref: '#/components/schemas/Virtual-Items-Currency_admin-groups-response'
        image_url:
          description: URL de la imagen.
          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: Nombre del artículo.
          example: Big Rocket
          type: string
        periods:
          $ref: '#/components/schemas/item-periods-response'
        price:
          description: Precios de artículos.
          nullable: true
          properties:
            amount:
              description: Precio del artículo con descuento.
              example: '100.99'
              type: string
            amount_without_discount:
              description: Precio del artículo.
              example: '100.99'
              type: string
            currency:
              description: >-
                Divisa del precio del artículo. Código de tres letras según [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 único del artículo. El SKU solo puede contener caracteres
            alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y
            guiones bajos.
          example: big_rocket
          type: string
        type:
          description: 'Tipo de artículo: `virtual_good`/`virtual_currency`/`bundle`.'
          example: virtual_good
          type: string
        virtual_item_type:
          description: Tipo de artículo virtual.
          enum:
            - consumable
            - non_consumable
            - non_renewing_subscription
          example: non-consumable
          type: string
          x-enumDescriptions:
            consumable: "Artículo que desaparece del inventario tras su uso (p.\_ej., munición)."
            non_consumable: >-
              Un artículo que permanece en el inventario durante un periodo
              ilimitado.
            non_renewing_subscription: >-
              Artículo de duración limitada que puede representar el acceso a
              servicios o contenidos durante un periodo limitado.
        virtual_prices:
          description: Precios virtuales.
          items:
            description: Precio virtual.
            properties:
              amount:
                description: Precio del artículo con descuento en moneda virtual.
                example: 100
                type: integer
              amount_without_discount:
                description: Precio del artículo.
                example: 200
                type: integer
              description:
                description: Descripción de la moneda virtual.
                example: Big Rocket - description
                type: string
              image_url:
                description: Imagen de la moneda virtual.
                example: http://image.png
                type: string
              is_default:
                description: Si el precio está predeterminado para el artículo.
                example: true
                type: boolean
              name:
                description: Nombre de la moneda virtual.
                example: SHOTGUN FOR TRUE RAIDERS
                type: string
              sku:
                description: SKU del artículo de la moneda virtual.
                example: vc_test
                type: string
              type:
                description: Tipo de moneda virtual.
                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: Número restante de veces que un usuario puede utilizar un cupón.
              example: 9
              type: integer
            total:
              description: Número máximo de veces que un usuario puede utilizar un cupón.
              example: 10
              type: integer
          type: object
      type: object
    User-limit-promo-code:
      properties:
        per_user:
          properties:
            available:
              description: >-
                Número restante de veces que un usuario puede utilizar un código
                promocional.
              example: 9
              type: integer
            total:
              description: >-
                Número máximo de veces que un usuario puede utilizar un código
                promocional.
              example: 10
              type: integer
          type: object
      type: object
    User-limit-promotion:
      properties:
        per_user:
          properties:
            available:
              description: >-
                Número restante de veces que un usuario puede utilizar una
                promoción.
              example: 9
              type: integer
            total:
              description: >-
                Número máximo de veces que un usuario puede utilizar una
                promoción.
              example: 10
              type: integer
          type: object
      type: object
    User-limit_available:
      description: >-
        Número restante de artículos o usos de la promoción disponibles para el
        usuario dentro del límite aplicado.
      minimum: 1
      type: integer
    User-limit_available_flexible:
      description: >-
        Número restante de artículos o usos de la promoción disponibles para el
        usuario dentro del límite aplicado.
      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: ID externo del usuario.
      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: >-
            Si es posible eliminar un punto de valor o no. Si indica `false`, no
            se puede eliminar el punto de valor ya que hay una o más cadenas de
            recompensa en las que se utiliza. Para eliminar el punto de valor,
            [elimine](https://developers.xsolla.com/es/api/shop-builder/operation/admin-delete-reward-chain/)
            primero todas las cadenas de recompensa que lo contengan.


            Si indica `true`, el punto de valor no se está utilizando en ninguna
            cadena de recompensa y se puede
            [eliminar](https://developers.xsolla.com/es/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: >-
            Recursos adicionales del artículo como capturas de pantalla, vídeos
            de partidas del juego, etc.
          example:
            - type: image
              url: >-
                https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
          items:
            properties:
              type:
                description: 'Tipo de soporte multimedia: `image`/`video`.'
                enum:
                  - image
                  - video
                example: image
                type: string
              url:
                description: Archivo de recurso.
                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: Define el orden de disposición.
          example: 1
          type: integer
        sku:
          description: >-
            ID único del artículo. El SKU solo puede contener caracteres
            alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y
            guiones bajos.
          example: booster_mega_1
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_\-–.]*$
          type: string
        type:
          description: Tipo de artículo.
          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: >-
            Recursos adicionales del artículo como capturas de pantalla, vídeos
            de partidas del juego, etc.
          example:
            - type: image
              url: >-
                https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
          items:
            properties:
              type:
                description: 'Tipo de soporte multimedia: `image`/`video`.'
                enum:
                  - image
                  - video
                example: image
                type: string
              url:
                description: Archivo de recurso.
                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: Define el orden de disposición.
          example: 1
          type: integer
        sku:
          description: >-
            ID único del artículo. El SKU solo puede contener caracteres
            alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y
            guiones bajos.
          example: booster_mega_1
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_\-–.]*$
          type: string
        type:
          description: Tipo de artículo.
          type: string
      type: object
    Virtual-Items-Currency_admin-groups-response:
      default: []
      description: Grupos a los que pertenece el artículo.
      example:
        - external_id: horror
          name:
            en: Horror
      items:
        properties:
          external_id:
            example: horror
            type: string
          name:
            additionalProperties:
              type: string
            default:
              en: Horror
            description: >-
              Nombre del artículo. Debe contener pares clave/valor

              en los cuales clave es una configuración regional con formato
              "^[a-z]{2}", valor es una cadena (string).
            example:
              de: Horror
              en: Horror
            type: object
        type: object
      type: array
    Virtual-Items-Currency_client-attributes:
      default: []
      description: >-
        Lista de atributos y sus valores correspondientes al artículo. Puede
        utilizarse para filtrar el catálogo.
      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: Nombre del atributo.
            example: Genre
            type: object
          values:
            items:
              properties:
                external_id:
                  $ref: '#/components/schemas/value-external_id'
                value:
                  description: Valor del atributo.
                  example: Strategy
                  type: string
              type: object
            type: array
        type: object
      type: array
    active_promotions_count:
      description: Número de promociones activas.
      type: integer
    admin-attribute-external_id:
      description: >-
        ID único del atributo. `external_id` solo puede contener caracteres
        alfanuméricos latinos en minúsculas y mayúsculas, guiones y guiones
        bajos.
      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: >-
            Una recompensa diaria de calendar_hard por respuestas de
            administradores.
          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: Una recompensa diaria de `calendar_hard` (versión corta).
          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: Cantidad de artículos.
          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: Un paso de recompensa diaria.
      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: Una cadena de recompensas.
      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: Cadena de recompensas 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: >-
                Un punto de valor configurado para una cadena de recompensas 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: Cadena de recompensas 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: >-
                Un punto de valor configurado para una cadena de recompensas 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: Una cadena de recompensas.
      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: Cantidad de puntos de valor.
          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: Cantidad de artículos.
          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: Una cadena de ofertas.
      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: Una cadena de ofertas.
      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: Paso de cadena de ofertas.
      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: Solo para códigos promocionales.
          example:
            discount:
              percent: '10.99'
          nullable: true
          properties:
            percent:
              default: '10.00'
              description: >-
                Porcentaje de descuento.

                El precio de la cesta se reducirá utilizando un valor calculado
                utilizando este porcentaje y luego se redondeará al segundo
                decimal.
              example: '10.00'
              nullable: true
              type: string
          type: object
        discounted_items:
          description: >-
            Lista de artículos con descuento mediante un código promocional.
            Solo para códigos promocionales.
          items:
            description: Descuento para determinados artículos de la cesta.
            minItems: 1
            properties:
              discount:
                nullable: false
                properties:
                  percent:
                    $ref: '#/components/schemas/Promotions_cart_item_discount'
                required:
                  - percent
                type: object
              sku:
                default: elven_shield
                description: SKU del artículo.
                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: >-
            Una recompensa diaria de rolling_skippable por respuestas de
            administradores.
          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: Una recompensa diaria de `rolling_skippable` (versión corta).
          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: >-
            Una recompensa diaria de `rolling_unskippable` por respuestas de
            administradores.
          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: Una recompensa diaria de `rolling_unskippable` (versión corta).
          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: Periodo de reinicio recurrente de la cadena de recompensas.
      nullable: true
      oneOf:
        - description: Reinicio semanal de la cadena de recompensas.
          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: Reajuste mensual de la cadena de recompensas.
          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: >-
            Reinicio de la cadena de recompensas realizado en el intervalo
            especificado en horas.
          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 = hourly
          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: Tipo de lote. Se devuelve si el tipo de artículo es un lote.
      enum:
        - standard
        - virtual_currency_package
        - partner_side_content
      type: string
    calendar-hard-daily-chain-base:
      description: Propiedades base para el tipo de recompensa diaria `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: Fecha de inicio de la recompensa diaria.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      type: string
    calendar_hard_is_recurrent:
      default: false
      description: >-
        Si la recompensa diaria es recurrente. Si es `true`, la recompensa
        diaria se restablecerá automáticamente después de la fecha de
        finalización. La siguiente programación de `start_date` y `end_date` se
        basa en el número de pasos de recompensa diaria y el tiempo inicial
        establecidos en `start_date`.
      example: true
      type: boolean
    chain_is_always_visible:
      default: true
      description: >-
        Si todos los usuarios pueden ver la cadena:

        * Si es `true`, la cadena aparece siempre, independientemente del estado
        de autenticación o los atributos del usuario.

        * Si es `false`, la cadena aparece solo si no se encuentra ninguna
        cadena personalizada. Por ejemplo, si el usuario no está autenticado o
        sus atributos no coinciden con ninguna cadena personalizada.


        Solo se aplica en el contexto de cadenas personalizadas y se utiliza si
        no se transmite la matriz `attribute_conditions`.
      example: true
      type: boolean
    chain_user-attribute_conditions_model-get:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-get'
        - description: >-
            Condiciones para validar los atributos de usuario. 

            Determina la disponibilidad de la cadena en función de si los
            atributos de usuario cumplen todas las condiciones especificadas.
    chain_user-attribute_conditions_model-post:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-post'
        - description: >-
            Condiciones para validar los atributos de usuario. 

            Determina la disponibilidad de la cadena en función de si los
            atributos de usuario cumplen todas las condiciones especificadas.
    clan_type:
      description: Tipo 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: >-
        Lista de atributos y sus valores correspondientes al artículo. Puede
        utilizarse para filtrar el catálogo.
      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: Nombre del atributo.
            example: Genre
            type: string
          values:
            items:
              properties:
                external_id:
                  $ref: '#/components/schemas/value-external_id'
                value:
                  description: Valor del atributo.
                  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: Una recompensa diaria de calendar_hard por respuestas de clientes.
          properties:
            date_end:
              $ref: '#/components/schemas/daily_chain_date_end'
            description:
              description: Descripción de recompensa diaria.
              example: Major weekly quest
              nullable: true
              type: string
            id:
              description: ID de recompensa diaria.
              example: 9
              type: integer
            name:
              description: Nombre de recompensa diaria.
              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: Descripción del artículo.
          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: Nombre del artículo.
          type: string
        quantity:
          description: Cantidad de artículos.
          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: Paso de recompensa diaria.
      properties:
        items:
          items:
            $ref: '#/components/schemas/client-daily-chain-item-model'
          type: array
        status:
          description: Define el estado actual de la reclamación del paso.
          enum:
            - claimed
            - claimable
            - blocked
            - claim_in_future
          example: claimed
          type: string
          x-enumDescriptions:
            blocked: |-
              El paso no se puede reclamar:
               - Para usuarios no autorizados: Todos los pasos están bloqueados.
               - Para `calendar_hard`: El paso no se ha reclamado y está en el pasado.
               - Para `rolling_skippable`: El paso está bloqueado hasta que se reclame el paso anterior.
            claim_in_future: El paso no se ha reclamado y está en el futuro.
            claimable: El paso puede reclamarse.
            claimed: El paso ya ha sido reclamado.
        step_number:
          $ref: '#/components/schemas/daily_chain_step_number'
        unlocked_date:
          description: >-
            Marca de tiempo Unix (en segundos) de cuando se desbloqueará el
            paso.
          format: int64
          type: integer
      type: object
    client-item-value-point-reward:
      description: Recompensa de artículo del punto de valor.
      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: Descripción del artículo.
          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: Nombre del artículo.
          type: string
        order:
          $ref: '#/components/schemas/order'
        quantity:
          description: Cantidad de artículos.
          example: 1
          minimum: 1
          type: integer
        sku:
          $ref: '#/components/schemas/sku'
        type:
          $ref: '#/components/schemas/item_type'
      type: object
    client-offer-chain-model:
      description: Una cadena de ofertas.
      properties:
        date_end:
          $ref: '#/components/schemas/offer_chain_date_end'
        date_start:
          $ref: '#/components/schemas/offer_chain_date_start'
        description:
          description: Descripción de cadena de ofertas.
          example: Major weekly quest
          nullable: true
          type: string
        id:
          description: ID de cadena de ofertas.
          example: 9
          type: integer
        name:
          description: Nombre de cadena de ofertas.
          example: Weekly quest
          type: string
        next_step_number:
          description: >-
            Número del siguiente paso de la cadena de ofertas. `null` si se ha
            completado la cadena de ofertas.
          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: Paso de cadena de ofertas.
      properties:
        is_claimed:
          description: Indica si la recompensa por paso se reclama o se compra.
          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: Cantidad de puntos de fidelidad.
                example: 1
                type: integer
              description:
                description: Descripción de puntos de fidelidad.
                example: First Loyalty Point Desc
                type: string
              image_url:
                $ref: '#/components/schemas/image_url'
              name:
                description: Nombre de puntos de fidelidad.
                example: First Loyalty Point
                type: string
              sku:
                description: SKU de puntos de fidelidad.
                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: >-
            Un conjunto de puntos de valor del sistema de recompensas, que se
            conceden como recompensa.
          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: Descripción de la cadena de recompensas.
          example: Major weekly quest
          nullable: true
          type: string
        image_url:
          $ref: '#/components/schemas/image_url'
        long_description:
          description: Descripción larga de la cadena de recompensas.
          example: >-
            You can get a lot of additional items just by shopping during the
            week
          nullable: true
          type: string
        name:
          description: Nombre de la cadena de recompensas.
          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 cadena de recompensas.
          example: 9
          type: integer
        steps:
          items:
            description: Paso de la cadena de recompensas.
            properties:
              image_url:
                $ref: '#/components/schemas/Common_admin-image_url'
              is_claimed:
                description: Si se reclama la recompensa del paso.
                example: false
                type: boolean
              name:
                description: Nombre del paso.
                example: Level 1
                type: string
              price:
                properties:
                  amount:
                    description: >-
                      El número de puntos de valor que un usuario reclama para
                      el paso.
                    example: 100
                    type: integer
                type: object
              reward:
                items:
                  properties:
                    description:
                      description: Descripción del artículo.
                      example: Super box with items
                      type: string
                    image_url:
                      $ref: '#/components/schemas/Common_admin-image_url'
                    name:
                      description: Nombre del artículo.
                      example: Super box
                      type: string
                    quantity:
                      description: Cantidad del artículo.
                      example: 2
                      type: integer
                    sku:
                      $ref: '#/components/schemas/sku'
                    type:
                      description: Tipo de artículo.
                      example: bundle
                      type: string
                  type: object
                type: array
              step_id:
                description: ID del paso.
                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: >-
            Una recompensa diaria de rolling_skippable por respuestas de
            clientes.
          properties:
            description:
              description: Descripción de recompensa diaria.
              example: Major weekly quest
              nullable: true
              type: string
            id:
              description: ID de recompensa diaria.
              example: 9
              type: integer
            name:
              description: Nombre de recompensa diaria.
              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: >-
            Una recompensa diaria de `rolling_unskippable` por respuestas de
            clientes.
          properties:
            description:
              description: Descripción de recompensa diaria.
              example: Major weekly quest
              nullable: true
              type: string
            id:
              description: ID de recompensa diaria.
              example: 9
              type: integer
            name:
              description: Nombre de recompensa diaria.
              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: Una recompensa diaria para el tipo `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: Cadena de recompensas 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: >-
                Un punto de valor configurado para una cadena de recompensas 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: Una cadena de ofertas.
      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: Una cadena de recompensas.
      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: Una recompensa diaria para el tipo `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: Una recompensa diaria para el tipo `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: Paso de la cadena de recompensas.
      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: >-
        Fecha en la que finaliza su recompensa diaria. Puede ser `null`. Al
        establecer el tipo `calendar_hard`, esta fecha se fijará automáticamente
        en función del número de pasos añadidos, por lo que puede dejarla como
        `null`.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      nullable: true
      type: string
    daily_chain_id:
      description: ID único de recompensa diaria.
      example: 9
      type: integer
    daily_chain_number_of_step:
      description: >-
        Es el número de pasos configurados en la recompensa diaria. Cada paso
        aquí representa un día en la recompensa diaria.
      example: 3
      type: integer
    daily_chain_step_id:
      description: Identificador único del paso de recompensa diaria
      example: 10
      minimum: 1
      nullable: true
      type: integer
    daily_chain_step_number:
      description: Número del paso.
      example: 2
      minimum: 1
      nullable: false
      type: integer
    daily_chain_type:
      description: >-
        Tipo de recompensa diaria que determina cuándo los usuarios pueden
        reclamar recompensas.
      enum:
        - calendar_hard
        - rolling_skippable
        - rolling_unskippable
      type: string
      x-enumDescriptions:
        calendar_hard: >-
          Desbloquea la recompensa del siguiente paso cada 24 horas. Las
          recompensas de paso sin reclamar se pierden para siempre cuando se
          desbloquea la recompensa del siguiente paso.
        rolling_skippable: >-
          Desbloquea la recompensa del siguiente paso cada 24 horas en función
          de `date_start`. La progresión es secuencial: no se desbloqueará una
          nueva recompensa hasta que se haya reclamado la anterior. Si un
          usuario se salta uno o más días, continuará desde donde lo dejó; los
          días perdidos no otorgan múltiples recompensas.
        rolling_unskippable: >-
          Desbloquea la recompensa del siguiente paso cada 24 horas en función
          de `date_start`. La progresión es secuencial: no se desbloqueará una
          nueva recompensa hasta que se haya reclamado la anterior. Sin embargo,
          si un usuario se salta un día, su progreso se reinicia y debe volver a
          empezar desde el primer paso.
    daily_chain_update_step_id:
      description: >-
        Identificador único del paso de recompensa diaria. Especifíquelo durante
        la actualización para conservar el progreso del usuario en este paso.
      example: 10
      minimum: 1
      nullable: true
      type: integer
    daily_rolling_chain_date_start:
      description: >-
        Fecha y hora en que comienza la recompensa diaria. Esta hora también
        determina cuándo se reinicia el periodo diario para que los usuarios
        puedan reclamar su recompensa.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      type: string
    date_end:
      description: >-
        Fecha en la que finaliza la promoción de su cadena de recompensas. Puede
        ser `null`. Si `date_end` es `null`, la cadena de recompensas será
        ilimitada en el tiempo.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      nullable: true
      type: string
    date_start:
      description: Fecha de inicio de su cadena de recompensas.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      type: string
    day_of_month:
      description: >-
        Día del mes en que se reinicia la cadena de recompensas. Si el número de
        días del mes es inferior al número ordinal del día especificado, el
        reinicio de la cadena de recompensas se produce el último día del mes.
      maximum: 31
      minimum: 1
      type: integer
    day_of_week:
      description: >-
        Día de la semana en que se reinicia la cadena de recompensas; en cuyo
        sistema el "1" es lunes y el "7" es domingo.
      maximum: 7
      minimum: 1
      type: integer
    description-localization-object:
      description: "Objeto con traducciones para la descripción del artículo. Acepta valores en uno de dos formatos: códigos de idioma de dos\_letras en minúscula (p.\_ej., `en`) o códigos de configuración regional de cinco\_caracteres (p.\_ej., `en-US`). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos\_letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p.\_ej. `en` y `en-US`), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la [documentación](/es/doc/shop-builder/references/supported-languages/)."
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/two-letter-locale'
        - $ref: '#/components/schemas/five-letter-locale'
      type: object
    displayable_reset_next_date:
      description: >-
        Fecha y hora estimadas en las que se restablecerá la cadena de
        recompensas la próxima vez <a
        href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">(ISO
        8601)</a>. <br><br> Por ejemplo, la cadena de recompensas se restablece
        mensualmente, a partir del 1 de marzo de 2024, a las 01:00 h de Kuala
        Lumpur. La fecha y hora del próximo reinicio de la cadena de
        recompensas: 1 de abril de 2024 a las 01:00 h de Kuala Lumpur, que
        equivale a "2024-04-01T01:00:00+08:00" en el formato <a
        href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO
        8601</a>. <br><br> Ejemplo: "2024-04-01T01:00:00+08:00"
      format: date-time
      type: string
    displayable_reset_start_date:
      description: >-
        Fecha y hora del primer reinicio de la cadena de recompensas. <br><br>
        Por ejemplo, la fecha y hora del primer reinicio de la cadena de
        recompensas es el 1 de marzo de 2024, a las 01:00 h de Kuala Lumpur, o
        "2024-03-01T01:00:00+08:00" en el formato <a
        href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO
        8601</a>. <br><br> Ejemplo: "2024-03-01T01:00:00+08:00"
      format: date-time
      type: string
    drm_name:
      description: Nombre del DRM de la clave del juego.
      example: Steam
      type: string
    drm_sku:
      description: ID único del DRM.
      example: steam
      type: string
    excluded_promotions:
      description: >-
        Lista de ID de promociones a excluir al aplicar esta promoción.
        <br>Example: `[12, 789]`.
      example:
        - 12
        - 789
      items:
        type: integer
      type: array
    five-letter-locale:
      description: "Códigos de configuración regional de cinco\_caracteres."
      nullable: true
      properties:
        ar-AE:
          description: Árabe
          nullable: true
          type: string
        bg-BG:
          description: Búlgaro
          nullable: true
          type: string
        cs-CZ:
          description: Checo
          nullable: true
          type: string
        de-DE:
          description: Alemán
          nullable: true
          type: string
        en-US:
          description: Inglés
          nullable: true
          type: string
        es-ES:
          description: Español (España)
          nullable: true
          type: string
        fr-FR:
          description: Francés
          nullable: true
          type: string
        he-IL:
          description: Hebreo
          nullable: true
          type: string
        id-ID:
          description: Indonesio
          nullable: true
          type: string
        it-IT:
          description: Italiano
          nullable: true
          type: string
        ja-JP:
          description: Japonés
          nullable: true
          type: string
        km-KH:
          description: Jemer
          nullable: true
          type: string
        ko-KR:
          description: Coreano
          nullable: true
          type: string
        lo-LA:
          description: Lao
          nullable: true
          type: string
        my-MM:
          description: Birmano
          nullable: true
          type: string
        ne-NP:
          description: Nepalí
          nullable: true
          type: string
        ph-PH:
          description: Filipino
          nullable: true
          type: string
        pl-PL:
          description: Polaco
          nullable: true
          type: string
        pt-BR:
          description: Portugués (Brasil)
          nullable: true
          type: string
        ro-RO:
          description: Rumano
          nullable: true
          type: string
        ru-RU:
          description: Ruso
          nullable: true
          type: string
        th-TH:
          description: Tailandés
          nullable: true
          type: string
        tr-TR:
          description: Turco
          nullable: true
          type: string
        vi-VN:
          description: Vietnamita
          nullable: true
          type: string
        zh-CN:
          description: Chino (simplificado)
          nullable: true
          type: string
        zh-TW:
          description: Chino (tradicional)
          nullable: true
          type: string
      title: cinco letras
      type: object
    image_url:
      description: URL de la imagen.
      example: https://image.example.com
      nullable: true
      type: string
    inactive_promotions_count:
      description: Número de promociones desactivadas.
      type: integer
    interval_type_hourly_rc:
      description: Frecuencia del reinicio recurrente de la cadena de recompensas.
      enum:
        - hourly
      type: string
    interval_type_monthly:
      description: Frecuencia del reinicio recurrente de la cadena de recompensas.
      enum:
        - monthly
      type: string
    interval_type_weekly:
      description: Frecuencia del reinicio recurrente de la cadena de recompensas.
      enum:
        - weekly
      type: string
    is_clan:
      description: Si el punto de valor se utiliza en las cadenas de recompensas de clanes.
      example: true
      type: boolean
    is_enabled:
      example: true
      type: boolean
    is_reset_after_end:
      default: false
      description: >-
        Si se reinicia la cadena de recompensas (puntos de valor y progreso de
        todos los usuarios) después de su fecha de finalización:

        * Si es `true`, la cadena de recompensas se reiniciará después de su
        fecha de finalización.

        * Si es `false`, la cadena de recompensas no se reiniciará después de su
        fecha de finalización.


        <br>

        <div class="notice"><strong>Aviso</strong><br><br>

        No puede ser <code>true</code> si: <br>

        <ul>
          <li>se establece un periodo de reinicio en <code>recurrent_schedule</code>.</li>
          <li>El valor <code>null</code> se transmite en <code>periods.date_until</code>.</li>
        </ul>

        </div>
      example: false
      type: boolean
    item-custom-attributes-response:
      description: Un objeto JSON que contiene los atributos y valores del artículo.
      format: json
      type: object
    item-periods:
      description: Periodo de venta del artículo.
      items:
        properties:
          date_from:
            description: >-
              Fecha en la que el artículo especificado estará disponible para la
              venta.
            example: '2020-08-11T10:00:00+03:00'
            format: date-time
            type: string
          date_until:
            description: >-
              Fecha en la que el artículo especificado dejará de estar
              disponible para la venta. Puede ser `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: Periodo de venta del artículo.
      items:
        properties:
          date_from:
            description: >-
              Fecha en la que el artículo especificado estará disponible para la
              venta.
            example: '2020-08-11T10:00:00+03:00'
            format: date-time
            nullable: true
            type: string
          date_until:
            description: >-
              Fecha en la que el artículo especificado dejará de estar
              disponible para la venta. Puede ser `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: Cantidad de puntos de valor.
            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: Cantidad de puntos de valor.
            minimum: 0
            type: integer
          sku:
            $ref: '#/components/schemas/sku'
        required:
          - sku
          - amount
        type: object
      type: array
    item_id:
      description: ID único interno del artículo.
      example: 1
      type: integer
    item_price_conditions_promocode:
      description: >-
        Matriz de objetos con condiciones que establecen el rango de precios
        para aplicar la promoción a determinados artículos de la cesta.<br>
         El precio de cada artículo en la cesta del usuario se compara con el rango de precios especificado en la condición. Se aplican [bonificaciones](/es/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) y [descuentos](/es/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) únicamente a aquellos artículos de la cesta cuyo precio cumple la condición.<br>
         Si transmite esta matriz, establezca el valor de la matriz [discounted_items](/es/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) como `null`.
      items:
        $ref: '#/components/schemas/price_conditions_items'
      nullable: true
      type: array
    item_type:
      description: 'Tipo de artículo: `virtual_good`/`virtual_currency`/`bundle`/`unit`.'
      type: string
    limit_exceeded_visibility:
      default: show
      description: >-
        Determina la visibilidad del artículo en el catálogo tras alcanzar el
        límite de compra, hasta el siguiente restablecimiento del límite.


        Se aplica a los artículos para los que se han configurado
        restablecimientos periódicos del límite en la matriz
        `recurrent_schedule`.


        Si no se han configurado restablecimientos de límite, el artículo no
        aparecerá en el catálogo una vez alcanzado el límite de compra,
        independientemente del valor de `limit_exceeded_visibility`.
      enum:
        - show
        - hide
      example: show
      type: string
      x-enumDescriptions:
        hide: >-
          El artículo no se devuelve en las llamadas API de recuperación de
          catálogos tras alcanzar el límite de compra, hasta que se restablezca
          el límite.
        show: >-
          El artículo se devuelve en las llamadas API de recuperación de
          catálogo tras alcanzar el límite de compra.

          En las llamadas API de recuperación de catálogo del lado del cliente,
          una vez alcanzado el límite, el artículo se devuelve con el indicador
          `can_be_bought: false`.

          La siguiente fecha de reinicio se devuelve en `reset_next_date`.
    long-description-localization-object:
      anyOf:
        - $ref: '#/components/schemas/two-letter-locale'
        - $ref: '#/components/schemas/five-letter-locale'
      description: "Objeto con traducciones para la descripción larga del artículo. Acepta valores en uno de estos dos\_formatos: códigos de idioma de dos\_letras en minúscula (p.\_ej., `en`) o códigos de configuración regional de cinco\_caracteres (p.\_ej., `en-US`). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos\_letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p.\_ej. `en` y `en-US`), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la [documentación](/es/doc/shop-builder/references/supported-languages/)."
      nullable: true
      type: object
    media_list:
      description: >-
        Recursos adicionales del artículo como capturas de pantalla, vídeos de
        partidas del juego, etc.
      example:
        - type: image
          url: >-
            https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
      items:
        properties:
          type:
            description: 'Tipo de soporte multimedia: `image`/`video`.'
            enum:
              - image
              - video
            example: image
            type: string
          url:
            description: Archivo de recurso.
            example: >-
              https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg
            type: string
        type: object
      type: array
    modify-daily-chain-item-model:
      properties:
        quantity:
          description: Cantidad de pasos de recompensa diaria para este sku
          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: Orden de recompensa para el paso de la cadena de ofertas.
          minimum: 0
          nullable: true
          type: integer
        quantity:
          description: Cantidad del artículo de recompensa para este paso de cadena.
          minimum: 1
          type: integer
        sku:
          $ref: '#/components/schemas/sku'
      required:
        - sku
        - quantity
      type: object
    modify-offer-chain-model:
      description: Una cadena de ofertas.
      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: Paso de la cadena de recompensas.
      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: "Objeto con traducciones para la descripción del artículo. Acepta valores en uno de estos dos\_formatos: códigos de idioma de dos\_letras en minúscula (p.\_ej., `en`) o códigos de idioma de cinco\_caracteres (p.\_ej., `en-US`). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos\_letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p.\_ej. `en` y `en-US`), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la [documentación](/es/doc/shop-builder/references/supported-languages/)."
      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: >-
        Fecha en la que finaliza la cadena de ofertas. Puede ser `null`. Si
        `date_end` es `null`, la cadena de ofertas no tendrá límite de tiempo.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      nullable: true
      type: string
    offer_chain_date_start:
      description: Fecha de inicio de la cadena de ofertas.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      type: string
    offer_chain_day_of_month:
      description: >-
        El día del mes en que se restablece la cadena de ofertas. Si un mes
        tiene menos días que el día especificado, se restablecerá el último día
        del mes.
      maximum: 31
      minimum: 1
      type: integer
    offer_chain_day_of_week:
      description: >-
        Día de la semana en que se restablece la cadena de ofertas, en cuyo
        sistema el `1` es lunes y el `7` es domingo.
      maximum: 7
      minimum: 1
      type: integer
    offer_chain_displayable_reset_next_date:
      description: >-
        La fecha y hora calculadas en las que la cadena de ofertas se
        restablecerá la próxima vez de conformidad con la norma <a
        href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO
        8601</a>. <br><br> Por ejemplo, el reinicio mensual de la cadena de
        ofertas comienza el 1 de marzo de 2024 a la 01:00 hora de Kuala Lumpur.
        El siguiente reinicio se produce el 1 de abril de 2024 a la 01:00 hora
        de Kuala Lumpur, lo que equivale a "2024-04-01T01:00:00+08:00" según la
        norma <a href="https://en.wikipedia.org/wiki/ISO_8601"
        target="_blank">ISO 8601</a>. <br><br> Ejemplo:
        "2024-04-01T01:00:00+08:00"
      format: date-time
      type: string
    offer_chain_displayable_reset_start_date:
      description: >-
        La fecha y hora del primer reinicio de la cadena de ofertas. <br><br>
        Por ejemplo, el primer reinicio programado para el 1 de marzo de 2024, a
        la 01:00 hora de Kuala Lumpur, corresponde a "2024-03-01T01:00:00+08:00"
        según la norma <a href="https://en.wikipedia.org/wiki/ISO_8601"
        target="_blank">ISO 8601</a>. <br><br> Ejemplo:
        "2024-03-01T01:00:00+08:00"
      format: date-time
      type: string
    offer_chain_hours_interval:
      description: "Intervalo en horas tras el cual se reinicia la cadena de ofertas. <br><br> La cuenta atrás comienza a partir del parámetro <a href=\"https://developers.xsolla.com/es/api/shop-builder/operation/admin-create-offer-chain/#!path=date_start&t=request\">date_start</a>. <br><br> Por ejemplo, si `date_start = \"2025-11-15T18:15:00+05:00\"` y `hours_interval = 2`, la cadena de ofertas se reiniciará cada 2\_horas a partir de `\"2025-11-15T20:15:00+05:00\"`."
      maximum: 10000
      minimum: 1
      type: integer
    offer_chain_id:
      description: ID único de cadena de ofertas.
      example: 9
      type: integer
    offer_chain_interval_type_hourly:
      description: Frecuencia con la que se restablece la cadena de ofertas.
      enum:
        - hourly
      type: string
    offer_chain_interval_type_monthly:
      description: Frecuencia con la que se restablece la cadena de ofertas.
      enum:
        - monthly
      type: string
    offer_chain_interval_type_weekly:
      description: Frecuencia con la que se restablece la cadena de ofertas.
      enum:
        - weekly
      type: string
    offer_chain_is_free:
      description: >-
        Indica si el paso de la cadena de ofertas es gratuito:<ul><li>Si es
        <code>true</code>, el paso debe reclamarse mediante la llamada <a
        href="/api/shop-builder/operation/claim-user-offer-chain-step-reward">Reclamar
        paso de cadena de ofertas gratuito</a>.</li><li>Si es
        <code>false</code>, debe comprarse mediante la llamada <a
        href="/api/shop-builder/operation/order-user-offer-chain-step-reward">Crear
        pedido para el paso de cadena de ofertas de pago</a>.</li></ul>
      type: boolean
    offer_chain_recurrent_schedule:
      description: Periodo de reinicio recurrente de la cadena de ofertas.
      nullable: true
      oneOf:
        - description: Reinicio semanal de la cadena de ofertas.
          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: Reinicio mensual de la cadena de ofertas.
          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: >-
            Reinicio de la cadena de ofertas realizado en el intervalo
            especificado en horas.
          properties:
            hours_interval:
              $ref: '#/components/schemas/offer_chain_hours_interval'
            interval_type:
              $ref: '#/components/schemas/offer_chain_interval_type_hourly'
          title: interval_type = hourly
          type: object
      type: object
    offer_chain_recurrent_schedule_client_side:
      description: Periodo de reinicio de la cadena de ofertas.
      nullable: true
      properties:
        interval_type:
          description: Frecuencia con la que se restablece la cadena de ofertas.
          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: Periodo de reinicio de la cadena de ofertas.
      nullable: true
      oneOf:
        - description: Reinicio semanal de la cadena de ofertas.
          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: Reinicio mensual de la cadena de ofertas.
          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: >-
            Reinicio de la cadena de ofertas realizado en el intervalo
            especificado en horas.
          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 = hourly
          type: object
      type: object
    offer_chain_reset_next_date:
      description: >-
        La fecha y hora calculadas en las que se restablecerá la cadena de
        ofertas la próxima vez, en formato <a
        href="https://en.wikipedia.org/wiki/Unix_time" target="_blank">Unix
        Timestamp</a>. <br><br> Por ejemplo, el reinicio mensual de la cadena de
        ofertas comienza el 1 de marzo de 2024 a las 01:00 hora de Kuala Lumpur
        (GMT+8). El siguiente reinicio se produce el 1 de abril de 2024 a las
        01:00 hora de Kuala Lumpur (GMT+8), lo que corresponde al 31 de marzo de
        2024 17:00 GMT+0 o "1711904400000" según el formato Unix Timestamp.
        <br><br> Ejemplo: "1711904400000"
      type: integer
    offer_chain_step_id:
      description: ID único del paso de cadena.
      example: 10
      minimum: 1
      nullable: true
      type: integer
    offer_chain_step_number:
      description: Número del paso.
      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: Precio del paso en moneda real.
      example: 99.99
      type: number
    offer_chain_step_price_currency:
      description: >-
        Moneda del precio del artículo. Código de tres letras de conformidad con
        la norma [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
      example: USD
      type: string
    offer_chain_time:
      description: >-
        La hora a la que se restablece la cadena de ofertas en la zona horaria
        especificada (se redondea a la hora). <br><br> Por ejemplo, la hora de
        reinicio se establece en 01:00 para la zona horaria de Kuala Lumpur
        (GMT+8), por lo que el valor del parámetro `time` es `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: Define el orden de disposición.
      example: 1
      type: integer
    periods:
      description: >-
        Periodos de validez de la cadena de recompensas. Si se especifican
        varios periodos, es necesario tanto `date_from` como `date_until`.
      items:
        properties:
          date_from:
            description: Fecha de inicio de la cadena de recompensas especificada.
            example: '2020-08-11T10:00:00+03:00'
            format: date-time
            nullable: false
            type: string
          date_until:
            description: >-
              Fecha de finalización de la cadena de recompensas especificada.
              Solo puede ser `null` si se especifica un único periodo de
              validez.
            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: >-
            Condiciones para validar los atributos de usuario. 

            Determina la disponibilidad de artículos en el catálogo en función
            de si los atributos de usuario cumplen todas las condiciones
            especificadas.
    personalized-catalog_user-attribute_conditions_model-post:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-post'
        - description: >-
            Condiciones para validar los atributos de usuario. 

            Determina la disponibilidad de artículos en el catálogo en función
            de si los atributos de usuario cumplen todas las condiciones
            especificadas.
    popup_header-two-letter-locale:
      description: >-
        Objeto con traducciones para el encabezado de una ventana emergente con
        información sobre la cadena de recompensas de un clan. Código de idioma
        [de dos letras
        minúsculas](https://developers.xsolla.com/es/doc/pay-station/features/localization/).
      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: Imagen de la ventana emergente de una cadena de recompensas de clan.
      example: https://image.example.com
      format: uri
      nullable: true
      type: string
    popup_instruction-two-letter-locale:
      description: >-
        Objeto con traducciones para una ventana emergente con información sobre
        la cadena de recompensas de un clan. Código de idioma [de dos letras
        minúsculas](https://developers.xsolla.com/es/doc/pay-station/features/localization/).
      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: >-
        Matriz de objetos con condiciones que establecen el rango de precios
        para aplicar la promoción.<br> La promoción solo se aplica a los
        artículos cuyo precio cumple todas las condiciones de la matriz. Si
        transmite esta matriz, establezca el valor del objeto
        [condition](/es/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request)
        en `null`.
      items:
        $ref: '#/components/schemas/price_conditions_items'
      nullable: true
      type: array
    price_conditions_discount:
      description: >-
        Matriz de objetos con condiciones que establecen el rango de precios
        para aplicar la promoción.<br> La promoción solo se aplica a los
        artículos cuyo precio cumple todas las condiciones de la matriz. Si
        transmite esta matriz, establezca el valor del objeto
        [items](/es/api/shop-builder/operation/create-item-promotion/#!path=items&t=request)
        en `null`.
      items:
        $ref: '#/components/schemas/price_conditions_items'
      nullable: true
      type: array
    price_conditions_items:
      description: Cada objeto describe una regla que define el precio.
      properties:
        operator:
          description: >-
            Operador de comparación para establecer el rango de precios para
            aplicar la promoción.
          enum:
            - ge
            - gt
            - le
            - lt
            - eq
            - ne
          type: string
          x-enumDescriptions:
            eq: Igual que
            ge: Mayor o igual que
            gt: Mayor que
            le: Menos o igual que
            lt: Menos que
            ne: No es igual que
        value:
          description: Valor para determinar el rango de precios para aplicar la promoción.
          pattern: ^\d+(\.\d{1,4})?$
          type: string
      required:
        - operator
        - value
      type: object
    price_conditions_promocode:
      description: >-
        Matriz de objetos con condiciones que establecen el rango de precios
        para aplicar la promoción a toda la cesta.<br>

        El precio total de todos los artículos de la cesta del usuario se
        compara con el rango de precios especificado en la condición. Las
        [bonificaciones](/es/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request)
        y los
        [descuentos](/es/api/shop-builder/operation/create-promo-code/#!path=discount&t=request)
        se aplican a todos los artículos de la cesta si el precio de la cesta
        cumple la condición especificada.<br>

        Si transmite esta matriz, establezca el valor de la matriz
        [discounted_items](/es/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request)
        como `null`.
      items:
        $ref: '#/components/schemas/price_conditions_items'
      nullable: true
      type: array
    promotion_periods:
      description: >-
        Periodos de validez de la promoción.  Si se especifican varios periodos,
        es necesario tanto `date_from` como `date_until`.
      items:
        properties:
          date_from:
            description: Fecha de inicio de la promoción especificada.
            example: '2020-08-11T10:00:00+03:00'
            format: date-time
            nullable: false
            type: string
          date_until:
            description: >-
              Fecha de finalización de la promoción especificada. Si se
              establece como `null`, la promoción es indefinida. Puede ser
              `null` solamente si se especifica un único periodo de validez.
            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: Periodo de actualización del límite.
      nullable: true
      properties:
        per_user:
          description: Periodo de actualización del límite del usuario.
          properties:
            day_of_month:
              description: >-
                Día del mes en que se actualizan los límites. Si no hay ningún
                día del mes seleccionado porque el mes es más corto, la
                actualización se producirá el último día del mes. No `null`
                solamente para el tipo de periodo de actualización del límite
                `monthly`.
              maximum: 31
              minimum: 1
              nullable: true
              type: integer
            day_of_week:
              description: >-
                Día de la semana en que se actualizan los límites. En el cual 1
                es lunes y 7 es domingo. No `null` solo para el tipo de periodo
                de actualización del límite `weekly`.
              maximum: 7
              minimum: 1
              nullable: true
              type: integer
            displayable_reset_next_date:
              description: Fecha y hora en que deben restablecerse los límites (ISO 8601).
              example: '2023-02-28T11:00:00+08:00'
              format: date-time
              type: string
            displayable_reset_start_date:
              description: Fecha y hora de la primera actualización del límite (ISO 8601).
              example: '2023-02-28T11:00:00+08:00'
              format: date-time
              type: string
            interval_type:
              description: Tipo de periodo de actualización recurrente.
              enum:
                - daily
                - weekly
                - monthly
              type: string
            reset_next_date:
              description: >-
                Fecha y hora de actualización de los límites (Marca de tiempo
                Unix).
              example: 1677553200
              type: integer
            time:
              description: >-
                Hora de actualización del límite en la zona horaria deseada
                (redondeo a horas).
              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: >-
            Condiciones para validar los atributos de usuario. 

            Determina la disponibilidad de la promoción en función de si los
            atributos de usuario cumplen todas las condiciones especificadas.
    promotion_user-attribute_conditions_model-post:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-post'
        - description: >-
            Condiciones para validar los atributos de usuario. 

            Determina la disponibilidad de la promoción en función de si los
            atributos de usuario cumplen todas las condiciones especificadas.
    recurrent_schedule_client_side:
      description: Periodo de reinicio recurrente de la cadena de recompensas.
      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 = hourly
        reset_next_date:
          $ref: '#/components/schemas/reset_next_date'
      type: object
    recurrent_schedule_create_update:
      description: Periodo de reinicio recurrente de la cadena de recompensas.
      nullable: true
      oneOf:
        - description: Tipo semanal de actualización de la cadena de recompensas.
          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: Tipo mensual de actualización de la cadena de recompensas.
          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: >-
            Reinicio de la cadena de recompensas realizado en el intervalo
            especificado en horas.
          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 = hourly
          type: object
      type: object
    reset_next_date:
      description: "Fecha y hora estimadas en las que se restablecerá la cadena de recompensas la próxima vez <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">(Marca de tiempo Unix)</a>. <br><br> Por ejemplo, la cadena de recompensas se reinicia mensualmente, a partir del 1 de marzo de 2024, a las 01:00\_h de Kuala Lumpur (GMT+8). La fecha y hora del próximo reinicio de la cadena de recompensas, el día 1 de abril de 2024 a las 01:00\_h de Kuala Lumpur (GMT+8), lo cual equivale al 31 de marzo de 2024 a las 17:00 GMT+0 o \"1711904400000\" en el formato Marca de tiempo Unix. <br><br> Ejemplo: \"1711904400000\""
      type: integer
    reward-chain-step-reward_user-attribute_conditions_model-get:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-get'
        - description: >-
            Condiciones para validar los atributos de usuario. 

            Determina la disponibilidad de recompensas para pasos de cadenas de
            recompensas en función de si los atributos de usuario cumplen todas
            las condiciones especificadas.
    reward-chain-step-reward_user-attribute_conditions_model-post:
      allOf:
        - $ref: '#/components/schemas/user-attribute_conditions_model-post'
        - description: >-
            Condiciones para validar los atributos de usuario. 

            Determina la disponibilidad de recompensas para pasos de cadenas de
            recompensas en función de si los atributos de usuario cumplen todas
            las condiciones especificadas.
    reward_chain_hours_interval:
      description: "Intervalo en horas tras el cual se reinicia la cadena de recompensas. <br><br> La cuenta atrás comienza a partir del parámetro <a href=\"https://developers.xsolla.com/es/api/shop-builder/operation/admin-create-offer-chain/#!path=date_start&t=request\">date_start</a>. <br><br> Por ejemplo, si `date_start = \"2025-11-15T18:15:00+05:00\"` y `hours_interval = 2`, la cadena de recompensas se reiniciará cada 2\_horas a partir de `\"2025-11-15T20:15:00+05:00\"`."
      maximum: 10000
      minimum: 1
      type: integer
    reward_chain_id:
      description: ID único de la cadena de recompensas.
      example: 9
      type: integer
    reward_item_quantity:
      description: Cantidad del artículo.
      example: 2
      type: integer
    reward_step_price:
      properties:
        amount:
          $ref: '#/components/schemas/step_price_amount'
      required:
        - amount
      type: object
    reward_step_short:
      description: Paso de la cadena de recompensas.
      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: Propiedades base para el tipo de recompensa diaria `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: >-
        Propiedades base para el tipo de recompensa diaria
        `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: Fecha en la que finaliza la recompensa diaria.
      example: '2020-04-15T18:16:00+05:00'
      format: date-time
      nullable: true
      type: string
    rolling_is_recurrent:
      default: false
      description: >-
        Si la recompensa diaria es recurrente. Si es `true`, la recompensa
        diaria se reinicia cuando el usuario completa todos los pasos, lo que le
        permite comenzar de nuevo desde el paso 1. La recurrencia solo es válida
        dentro del periodo de recompensa activo, tal y como queda definido por
        `date_start` y `date_end`.
      example: true
      type: boolean
    sku:
      description: >-
        ID único del artículo. El SKU solo puede contener caracteres
        alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y
        guiones bajos.
      example: booster_mega_1
      maxLength: 255
      minLength: 1
      pattern: ^[a-zA-Z0-9_\-–.]*$
      type: string
    step_id:
      description: ID único del paso.
      example: 10
      nullable: true
      type: integer
    step_price_amount:
      description: Precio del paso en puntos de valor.
      example: 100
      type: integer
    time:
      description: >-
        Hora a la que se restablece la cadena de recompensas en la zona horaria
        deseada (redondeo a horas). <br><br> Por ejemplo, la hora establecida
        para el reinicio de la cadena de recompensas es la 01:00 para la zona
        horaria de Kuala Lumpur (GMT+8). En este caso, el valor del parámetro
        `time` es `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: La cantidad de puntos de valor ganados por el usuario.
          example: 100
          type: integer
        name:
          description: >-
            El ID de usuario que se envía a Xsolla durante el proceso de
            autorización. El ID de usuario se utiliza para vincular al usuario
            con su proyecto de Xsolla Login y se muestra como un apodo. Si
            utiliza la autorización por [ID de
            usuario](https://developers.xsolla.com/es/solutions/web-shop/create-web-shop/set-up-authentication/?tabs=100-UserIDAuth&link=100-UserIDAuth),
            le recomendamos transmitir el parámetro <code>name</code> en la
            [respuesta del
            webhook](https://developers.xsolla.com/es/webhooks/operation/user-validation-in-webshop/).
            Este parámetro contiene el nombre de usuario que se utilizará como
            apodo.
          example: Rocket
          type: string
      type: object
    total_promotions_count:
      description: Número total de promociones.
      type: integer
    two-letter-locale:
      description: Códigos lingüísticos de dos letras minúsculas.
      nullable: true
      properties:
        ar:
          description: Árabe
          nullable: true
          type: string
        bg:
          description: Búlgaro
          nullable: true
          type: string
        cn:
          description: Chino (simplificado)
          nullable: true
          type: string
        cs:
          description: Checo
          nullable: true
          type: string
        de:
          description: Alemán
          nullable: true
          type: string
        en:
          description: Inglés
          nullable: true
          type: string
        es:
          description: Español (España)
          nullable: true
          type: string
        fr:
          description: Francés
          nullable: true
          type: string
        he:
          description: Hebreo
          nullable: true
          type: string
        id:
          description: Indonesio
          nullable: true
          type: string
        it:
          description: Italiano
          nullable: true
          type: string
        ja:
          description: Japonés
          nullable: true
          type: string
        km:
          description: Jemer
          nullable: true
          type: string
        ko:
          description: Coreano
          nullable: true
          type: string
        lo:
          description: Lao
          nullable: true
          type: string
        my:
          description: Birmano
          nullable: true
          type: string
        ne:
          description: Nepalí
          nullable: true
          type: string
        ph:
          description: Filipino
          nullable: true
          type: string
        pl:
          description: Polaco
          nullable: true
          type: string
        pt:
          description: Portugués
          nullable: true
          type: string
        ro:
          description: Rumano
          nullable: true
          type: string
        ru:
          description: Ruso
          nullable: true
          type: string
        th:
          description: Tailandés
          nullable: true
          type: string
        tr:
          description: Turco
          nullable: true
          type: string
        tw:
          description: Chino (tradicional)
          nullable: true
          type: string
        vi:
          description: Vietnamita
          nullable: true
          type: string
      title: two-letter
      type: object
    unit_type:
      description: 'Tipo de unidad: `game`.'
      example: game
      type: string
    update-calendar-hard-daily-chain-model:
      allOf:
        - $ref: '#/components/schemas/calendar-hard-daily-chain-base'
        - description: Una recompensa diaria para el tipo `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: Cadena de recompensas 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: Una cadena de recompensas.
      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: Una recompensa diaria para el tipo `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: Una recompensa diaria para el tipo `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 único de paso de cadena. Especifíquelo durante la actualización para
        mantener el progreso del usuario para este paso.
      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: tipo = 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: tipo = 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: tipo = 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: tipo = 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: tipo = 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: tipo = 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: Código de atributo de usuario.
      maxLength: 255
      minLength: 1
      pattern: ^[-_.\d\w]+$
      type: string
    user-attribute_conditions_properties_can_be_missing:
      description: >-
        Indica que se cumple la condición aunque falte el atributo en los
        atributos del usuario. Transmita `true` para mostrar el elemento a los
        usuarios que no tengan este atributo. Los usuarios que tengan el
        atributo, pero el valor no coincida con el especificado en la condición,
        no verán el artículo. `false` - Los usuarios que tengan el atributo,
        pero el valor no coincida con el especificado en la condición, o falte
        el atributo, no verán el artículo.
      type: boolean
    user-attribute_conditions_properties_operator_date:
      description: >-
        Tipo de operación realizada por condición. Para el tipo de atributo
        <code>date</code>.
      enum:
        - eq
        - ne
        - lt
        - gt
        - le
        - ge
      type: string
      x-enumDescriptions:
        eq: Igual que
        ge: Después o en la misma fecha
        gt: Después
        le: Antes o en la misma fecha
        lt: Antes
        ne: No es igual que
    user-attribute_conditions_properties_operator_number:
      description: >-
        Tipo de operación realizada por condición. Para el tipo de atributo
        <code>number</code>.
      enum:
        - eq
        - ne
        - gt
        - ge
        - lt
        - le
      type: string
      x-enumDescriptions:
        eq: Igual que
        ge: Mayor o igual que
        gt: Mayor
        le: Menor o igual que
        lt: Menor
        ne: No es igual que
    user-attribute_conditions_properties_operator_string:
      description: >-
        Tipo de operación realizada por condición. Para el tipo de atributo
        <code>string</code>.
      enum:
        - eq
        - ne
      type: string
      x-enumDescriptions:
        eq: Igual que
        ne: No es igual que
    user-attribute_conditions_properties_type-date:
      description: Tipo de atributo de usuario.
      enum:
        - date
      type: string
    user-attribute_conditions_properties_type-number:
      description: Tipo de atributo de usuario.
      enum:
        - number
      type: string
    user-attribute_conditions_properties_type-string:
      description: Tipo de atributo de usuario.
      enum:
        - string
      type: string
    user-attribute_conditions_properties_value:
      description: >-
        Valor de la condición con el que se comparará el valor de atributo del
        usuario. El tipo depende del tipo de atributo.
      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 regla está habilitada.
          type: boolean
        is_satisfied_for_unauth:
          description: >-
            Si el artículo se muestra a usuarios no autorizados. Si es `true`,
            el artículo se muestra al usuario no autorizado independientemente
            de las reglas de visualización del catálogo. Es `false` por defecto.
          type: boolean
        items:
          items:
            description: >-
              Artículos que se mostrarán al usuario si los valores de sus
              atributos cumplen las condiciones.
            properties:
              bundle_type:
                description: Tipo de lote. Se devuelve si el tipo de artículo es un lote.
                enum:
                  - standard
                  - virtual_currency_package
                type: string
              item_id:
                description: ID del artículo.
                type: number
              name:
                description: Nombre del artículo.
                type: string
              sku:
                description: SKU del artículo.
                type: string
              type:
                description: Tipo de artículo.
                enum:
                  - virtual_good
                  - virtual_currency
                  - bundle
                  - physical_good
                  - unit
                type: string
            type: object
          type: array
        name:
          description: >-
            Nombre legible de una regla. Se utiliza para visualizar una regla en
            Cuenta del editor.
          type: string
        rule_id:
          description: ID de regla.
          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 regla está habilitada.
          type: boolean
        is_satisfied_for_unauth:
          description: >-
            Si el artículo se muestra a usuarios no autorizados. Si es `true`,
            el artículo se muestra al usuario no autorizado independientemente
            de las reglas de visualización del catálogo. Es `false` por defecto.
          type: boolean
        items:
          items:
            oneOf:
              - description: >-
                  Artículos que se muestran a un usuario si sus valores de
                  atributos cumplen unas condiciones.
                properties:
                  item_id:
                    description: ID del artículo.
                    type: number
                required:
                  - item_id
                type: object
              - description: >-
                  Artículos que se muestran a un usuario si sus valores de
                  atributos cumplen unas condiciones.
                properties:
                  sku:
                    description: SKU del artículo.
                    type: string
                required:
                  - sku
                type: object
          maxItems: 100
          minItems: 1
          type: array
        name:
          description: >-
            Nombre legible de una regla. Se utiliza para visualizar una regla en
            Cuenta del editor.
          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 regla está habilitada.
          type: boolean
        is_satisfied_for_unauth:
          description: >-
            Si el artículo se muestra a usuarios no autorizados. Si es `true`,
            el artículo se muestra al usuario no autorizado independientemente
            de las reglas de visualización del catálogo. Es `false` por defecto.
          type: boolean
        items:
          items:
            oneOf:
              - description: >-
                  Artículos que se muestran a un usuario si sus valores de
                  atributos cumplen unas condiciones.
                properties:
                  item_id:
                    description: ID del artículo.
                    type: number
                required:
                  - item_id
                type: object
              - description: >-
                  Artículos que se muestran a un usuario si sus valores de
                  atributos cumplen unas condiciones.
                properties:
                  sku:
                    description: SKU del artículo.
                    type: string
                required:
                  - sku
                type: object
          maxItems: 100
          minItems: 1
          type: array
        name:
          description: >-
            Nombre legible de una regla. Se utiliza para visualizar una regla en
            Cuenta del editor.
          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 regla está habilitada.
          type: boolean
        is_satisfied_for_unauth:
          description: >-
            Si el artículo se muestra a usuarios no autorizados. Si es `true`,
            el artículo se muestra al usuario no autorizado independientemente
            de las reglas de visualización del catálogo. Es `false` por defecto.
          type: boolean
        name:
          description: >-
            Nombre legible de una regla. Se utiliza para visualizar una regla en
            Cuenta del editor.
          type: string
        rule_id:
          description: ID de regla.
          type: number
      required:
        - rule_id
        - name
        - is_enabled
      type: object
    value-external_id:
      description: >-
        ID del valor único para un atributo. `external_id` solo puede contener
        caracteres alfanuméricos latinos en minúsculas, guiones y guiones bajos.
      example: attribute_value
      maxLength: 255
      minLength: 1
      pattern: ^[-_.\d\w]+$
      type: string
    value-is_free:
      default: false
      description: Si es `true`, el artículo es gratuito.
      example: false
      type: boolean
    value-point-amount:
      description: Cantidad de puntos de valor.
      type: integer
    value-point-description:
      description: Descripción del punto de valor.
      nullable: true
      type: string
    value-point-long-description:
      description: Descripción larga del punto de valor.
      nullable: true
      type: string
    value-point-name:
      description: Nombre del punto de valor.
      type: string
    value-point-sku:
      description: ID único del punto de valor.
      type: string
  securitySchemes:
    AuthForCart:
      description: >-
        Al vender una cesta con juegos, puede [llamar al punto final sin
        autorización](/es/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users).


        Para ello, haga lo siguiente:


        * Añada un identificador único al parámetro `x-unauthorized-id` en el
        encabezado de los juegos.

        * Añada el correo electrónico del usuario al parámetro `x-user` (con
        codificación Base64) en el encabezado de los juegos.


        Por defecto, el JWT de usuario de Login de Xsolla (Bearer Token) se
        utiliza para la autorización. Puede intentar llamar a este punto final
        con un token JWT de usuario de Login de Xsolla de prueba: `Bearer
        eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI`.


        Como alternativa, puede utilizar el token de acceso a [Pay
        Station](https://developers.xsolla.com/es/api/pay-station/operation/create-token/). 
      scheme: bearer
      type: http
    XsollaLoginUserJWT:
      bearerFormat: JWT
      description: >-
        Por defecto, el JWT de usuario de Login de Xsolla (Bearer Token) se
        utiliza para la autorización. Puede intentar llamar a este punto final
        con un token JWT de usuario de Login de Xsolla de prueba: `Bearer
        eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI`.


        Como alternativa, puede utilizar el token de acceso a [Pay
        Station](https://developers.xsolla.com/es/api/pay-station/operation/create-token/). 
      scheme: bearer
      type: http
    basicAuth:
      description: >-
        La API de Xsolla utiliza autenticación básica de acceso. Todas las
        solicitudes a la API deben contener el encabezado `Authorization: Basic
        <your_authorization_basic_key>`, en el cual
        `your_authorization_basic_key` es el par `project_id:api_key` codificado
        según el estándar Base64.


        Puede utilizar `merchant_id` en lugar de `project_id` si lo necesita. No
        afecta a la funcionalidad.


        Vaya a [Cuenta de editor](https://publisher.xsolla.com/) para encontrar
        los valores de los parámetros:


        * Se muestra el `merchant_id`:
          * En la sección **Configuración de la empresa > Empresa**
          * En la URL de la barra de direcciones del navegador en cualquier página de cuenta de editor. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>`.
        * `api_key` se muestra en la cuenta de editor solo una vez cuando se
        crea y debe almacenarse en tu lado. Puedes crear una nueva clave en la
        siguiente sección:
          * **Configuración de la empresa > Claves API**
          * **Configuración del proyecto > Claves API**
        * Se muestra el `project_id`:
          * En Cuenta del editor junto al nombre del proyecto.
          * En la URL de la barra de direcciones del navegador cuando se trabaja en el proyecto en la cuenta de Publisher. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.

        Para más información sobre cómo trabajar con claves API, consulte la
        [referencia
        API](https://developers.xsolla.com/es/api/getting-started/#api_keys_overview). 
      scheme: basic
      type: http
    basicMerchantAuth:
      description: >-
        La API de Xsolla usa una autenticación básica de acceso. Todas las
        solicitudes a la API deben contener el encabezado `Authorization: Basic
        <your_authorization_basic_key>`, en el cual
        `your_authorization_basic_key` es el par `merchant_id:api_key`
        codificado según el estándar Base64.


        Vaya a [Cuenta de editor](https://publisher.xsolla.com/) para encontrar
        los valores de los parámetros:


        * Se muestra el `merchant_id`:
          * En la sección **Configuración de la empresa > Empresa**
          * En la URL de la barra de direcciones del navegador en cualquier página de cuenta de editor. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>`
        * `api_key` se muestra en la cuenta de editor solo una vez cuando se
        crea y debe almacenarse en tu lado. Puedes crear una nueva clave en la
        siguiente sección:
          * **Configuración de la empresa > Claves API**
          * **Configuración del proyecto > Claves API**

        Para más información sobre cómo trabajar con claves API, consulte la
        [referencia
        API](https://developers.xsolla.com/es/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 ofrece endpoints para impulsar la participación de los
    jugadores. 
  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: >-
        Obtiene el número restante de veces que se pueden utilizar los códigos.
        Para filtrar los códigos, utilice el parámetro de consulta `codes`.


        Para configurar el límite de códigos propiamente dicho, vaya a Admin:

        *
        [Coupons.](https://developers.xsolla.com/es/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: Artículo no encontrado.
        '422':
          content:
            application/json:
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                type: object
          description: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Obtener límites de código único de cupón
      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: >-
        Obtiene el número restante de veces que se pueden utilizar los códigos.
        Para filtrar los códigos, utilice el parámetro de consulta `codes`.


        Para configurar el límite de códigos propiamente dicho, vaya a Admin:

        * [Promo
        Codes](https://developers.xsolla.com/es/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: Artículo no encontrado.
        '422':
          content:
            application/json:
              schema:
                properties:
                  errorCode:
                    type: integer
                  errorMessage:
                    type: string
                  errorMessageExtended:
                    type: array
                  statusCode:
                    type: integer
                type: object
          description: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Obtener límite del código promocional para los códigos
      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: >-
        Activa una promoción de cupones.

        La promoción de cupones creada está deshabilitada por defecto.

        No estará lista para el canje hasta que la active.

        Utilice este punto final para habilitar y activar una promoción de
        cupones.
      operationId: activate-coupon
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: El cupón se activó correctamente.
        '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: Activar promoción de cupones
      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: Obtiene códigos de cupón.
      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: Obtener códigos de cupón
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea un código de cupón.
      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: Crear código de cupón
      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: Genera códigos de cupón.
      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: Los códigos se generaron correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Generar códigos de cupón
      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: >-
        Desactiva una promoción de cupones.

        La promoción de cupones creada está deshabilitada por defecto.

        No estará lista para su canje hasta que la active.

        Utilice este punto final para deshabilitar y desactivar una promoción de
        cupones.
      operationId: deactivate-coupon
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: El cupón se desactivó correctamente.
        '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: Desactivar promoción de cupones
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/daily_chain:
    get:
      description: >-
        Obtiene una lista de recompensas diarias para su administración.

        <div class="notice"><strong>Aviso</strong><br><br>Un método devuelve una
        lista paginada de artículos. El valor máximo y por defecto es <strong>50
        artículos por respuesta.</strong> Para obtener más artículos de la
        lista, utilice los parámetros `limit` y `offset` y obtenga más páginas.
        Por ejemplo, al llamar a un método con `limit = 25` y `offset = 100`, la
        respuesta devuelve 25 artículos empezando por el artículo 101 de la
        lista global.</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: Obtener lista de recompensas diarias
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea una recompensa diaria.
      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: Crear recompensa diaria
      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: Elimina una recompensa diaria concreta.
      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: La recompensa diaria se ha eliminado correctamente.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - basicAuth: []
      summary: Eliminar recompensa diaria
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Obtiene una recompensa diaria concreta para su administración.
      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: Obtener recompensa diaria
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Actualiza una recompensa diaria concreta.
      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: La recompensa diaria se ha actualizado correctamente.
        '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: Actualizar recompensa diaria
      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: >-
        Restablece el progreso de todos los usuarios en la recompensa diaria.
        Solo se aplica a las recompensas diarias del tipo `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: Se ha restablecido la recompensa diaria.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - basicAuth: []
      summary: Restablecer recompensa diaria
      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: Activa o desactiva una recompensa diaria.
      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: Se ha desactivado o activado la recompensa diaria.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - basicAuth: []
      summary: Activar o desactivar recompensa diaria
      tags:
        - daily-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/items/upsell:
    get:
      description: >-
        Recupera la información sobre la venta adicional en el proyecto: si está
        activada, el tipo de venta adicional y la lista de SKU de los artículos
        que forman parte de esta venta adicional.
      operationId: get-upsell-configurations-for-project-admin
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      responses:
        '200':
          content:
            application/json:
              examples:
                upsell:
                  summary: Proyecto tiene venta adicional
                  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: Si está activada la venta adicional para el proyecto.
                      example: true
                      type: boolean
                    items:
                      description: >-
                        La lista de SKU de artículos que forman parte de la
                        venta adicional en el proyecto.
                      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: >-
                              Claves del juego para diferentes DRM (gestión de
                              derechos digitales).
                            items:
                              description: >-
                                Artículo de clave del juego. Representa el juego
                                en una plataforma determinada (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: El tipo de venta adicional.
                      enum:
                        - fixed_list
                        - most_sellable
                        - only_promotions
                      example: fixed_list
                      type: string
                  type: object
                type: array
          description: >-
            La lista de detalles de configuración y artículos utilizados para la
            venta adicional en el proyecto.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
      security:
        - XsollaLoginUserJWT: []
      summary: Obtener información sobre la venta adicional en proyecto
      tags:
        - upsell-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea una venta adicional para un proyecto.
      operationId: post-upsell
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/create-upsell'
      responses:
        '202':
          description: Se ha creado una venta adicional para el proyecto.
        '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: Crear venta adicional
      tags:
        - upsell-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Actualizar una venta adicional de un proyecto.
      operationId: put-upsell
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/update-upsell'
      responses:
        '202':
          description: Se ha actualizado la venta adicional del proyecto.
        '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: Actualizar venta adicional
      tags:
        - upsell-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/items/upsell/{toggle}:
    put:
      description: >-
        Cambia el estado de una venta adicional en un proyecto a activo o
        inactivo.
      operationId: put-upsell-toggle-active-inactive
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - description: Estado de activación.
          in: path
          name: toggle
          required: true
          schema:
            example: activate
            type: string
      responses:
        '202':
          description: Se ha activado o desactivado una venta adicional en un proyecto.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-client-auth'
      security:
        - XsollaLoginUserJWT: []
      summary: Activar/Desactivar la venta adicional de un proyecto
      tags:
        - upsell-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v2/project/{project_id}/admin/items/value_points:
    get:
      description: >-
        Obtiene la lista de puntos de valor dentro de un proyecto para su
        administración.
      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: Obtener lista de puntos de valor
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea un punto de valor.
      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: Crear un punto de valor
      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: Elimina un punto de valor identificado por un SKU.
      operationId: admin-delete-value-point
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/item_sku-path-param'
      responses:
        '204':
          content: {}
          description: El punto de valor se eliminó correctamente.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Eliminar puntos de valor
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Obtiene un punto de valor por el SKU dentro de un proyecto para su
        administración.
      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: Obtener punto de valor
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Actualiza un punto de valor identificado por un SKU.
      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: El punto de valor se actualizó correctamente.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/422-admin-create-update-rc-vp-invalid-request'
      security:
        - basicAuth: []
      summary: Actualizar punto de valor
      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: Elimina las recompensas de puntos de valor de TODOS los artículos.
      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: >-
            Las recompensas de puntos de valor para los artículos se eliminaron
            correctamente.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
      security:
        - basicAuth: []
      summary: Eliminar puntos de valor de los artículos
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Obtiene la lista de todos los artículos con puntos de valor dentro de un
        proyecto para su administración.
      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: Obtener lista de artículos con puntos de valor
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    patch:
      description: "Actualiza parcialmente la cantidad de puntos de valor de uno o más artículos según el SKU del artículo. Los usuarios reciben estos puntos de valor después de comprar los artículos especificados.\n\nPrincipios de actualización de los puntos de valor:\n  * Si un artículo aún no tiene puntos de valor, el envío de un valor distinto de cero en el campo `amount` los genera.\n  * Si un artículo ya tiene puntos de valor, enviar un valor distinto de cero en el campo `amount` los actualiza.\n  * Si `amount` se establece en 0, se eliminan los puntos de valor existentes para ese artículo.\n\nA diferencia del método `PUT` ([Establecer puntos de valor para artículos](https://developers.xsolla.com/es/api/shop-builder/operation/admin-set-items-value-point-reward/)), este método `PATCH` no sobrescribe todos los puntos de valor existentes para los artículos del proyecto, solo actualiza los artículos especificados.\n\nUna sola solicitud puede actualizar hasta 100\_artículos. No se pueden incluir SKU de artículos duplicados en la misma solicitud."
      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: >-
            Se actualizaron correctamente las recompensas de puntos de valor
            para los artículos.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/sellable-item-by-sku_404'
      security:
        - basicAuth: []
      summary: Actualizar parcialmente los puntos de valor para los artículos
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Asigna puntos de valor a uno o varios artículos por un SKU. Los usuarios
        reciben puntos de valor después de comprar estos artículos.


        Recuerde que esta solicitud PUT sobrescribe todos los puntos de valor
        establecidos previamente para los artículos del proyecto.


        Para evitar la eliminación involuntaria de puntos de valor, incluya
        todos los artículos y sus respectivos puntos de valor en cada solicitud
        PUT.


        Si solo desea actualizar los puntos de valor de un artículo específico
        conservando los puntos de valor de otros artículos, debe recuperar el
        conjunto actual de puntos de valor mediante una solicitud GET, modificar
        los puntos de valor del artículo deseado y, luego, devolver el conjunto
        modificado de puntos de valor con los puntos de valor actualizados para
        el artículo específico.
      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: >-
            Se actualizaron correctamente las recompensas de puntos de valor
            para los artículos.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/sellable-item-by-sku_404'
      security:
        - basicAuth: []
      summary: Establecer puntos de valor para los artículos
      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: >-
        Obtiene la lista de cadenas de ofertas para su administración.

        <div class="notice"><strong>Aviso</strong><br><br>Todos los proyectos
        tienen un límite en el número de artículos que se pueden devolver en una
        sola respuesta. El valor por defecto y máximo es <strong>10 artículos
        por respuesta</strong>. Para obtener más datos, utilice los parámetros
        de consulta <code>limit</code> y <code>offset</code> para la
        paginación.</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: Obtener lista de cadenas de ofertas
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea una cadena de ofertas.
      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: Crear cadena de ofertas
      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: >-
        Elimina una cadena de ofertas determinada.


        Tras la eliminación:<ul><li>Se mantienen todas las recompensas ya
        recibidas por los usuarios.</li><li>Los pasos no completados dejan de
        estar disponibles y ya no se pueden obtener sus recompensas.</li></ul>


        A diferencia de la desactivación de la cadena de ofertas mediante la
        llamada <a
        href="/api/shop-builder/operation/admin-toggle-offer-chain">Activar o
        desactivar cadena de ofertas</a>, la eliminación es irreversible y no se
        mantiene el progreso del usuario.
      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: La cadena de ofertas se ha eliminado correctamente.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-offer-chain-not-found'
      security:
        - basicAuth: []
      summary: Eliminar cadena de ofertas
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Obtiene una cadena de ofertas concreta para su administración.
      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: Obtener cadena de ofertas
      tags:
        - offer-chain-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Actualiza una cadena de ofertas determinada.
      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: La cadena de ofertas se ha actualizado correctamente.
        '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: Actualizar cadena de ofertas
      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: >-
        Activa o desactiva una cadena de ofertas.


        Cuando se desactiva la cadena de ofertas, los usuarios pierden
        temporalmente el acceso a ella, pero se guarda su progreso.


        Cuando se vuelve a activar la cadena de ofertas, los usuarios pueden
        continuar desde el paso en el que lo dejaron.
      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: Se ha desactivado o activado la cadena de ofertas.
        '401':
          $ref: '#/components/responses/401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/404-offer-chain-not-found'
      security:
        - basicAuth: []
      summary: Activar o desactivar cadena de ofertas
      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: >-
        Activa una promoción de códigos promocionales.


        La promoción de códigos promocionales creada está desactivada por
        defecto.

        No estará lista para el canje hasta que la active.

        Utilice este punto final para habilitar y activar una promoción de
        códigos promocionales.
      operationId: activate-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: El código promocional se activó correctamente.
        '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: Activar promoción de códigos promocionales
      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: Obtiene los códigos de una promoción de códigos promocionales.
      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: Obtener códigos de una promoción de códigos promocionales
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea un código para una promoción de códigos promocionales.
      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: Crear código de promoción de códigos promocionales
      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: Genera códigos para una promoción de códigos promocionales.
      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: Los códigos se generaron correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Generar códigos para una promoción de códigos promocionales
      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: >-
        Desactiva una promoción de códigos promocionales.


        La promoción de códigos promocionales creada está deshabilitada por
        defecto.

        No estará lista para el canje hasta que la active.

        Utilice este punto final para deshabilitar y desactivar una promoción de
        códigos promocionales.
      operationId: deactivate-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: El cupón se desactivó correctamente.
        '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: Desactivar promoción de códigos promocionales
      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: Activa una promoción.
      operationId: activate-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '204':
          description: La promoción se activó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-activate-deactivate-promotion'
      security:
        - basicAuth: []
      summary: Activar promoción
      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: Desactiva una promoción.
      operationId: deactivate-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '204':
          description: La promoción se desactivó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-activate-deactivate-promotion'
      security:
        - basicAuth: []
      summary: Desactivar promoción
      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: >-
        Activa una promoción de oferta única de catálogo.

        La promoción de oferta única de catálogo creada está desactivada por
        defecto.

        No se puede canjear hasta que la active.

        Utilice este punto final para activar y activar una promoción de
        cupones.
      operationId: activate-unique-catalog-offer
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: La oferta de catálogo único se ha activado correctamente.
        '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: Activar promoción de oferta única de catálogo
      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: Obtiene códigos de oferta de catálogo únicos.
      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: Obtenga códigos de oferta de catálogos exclusivos
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea un código de oferta de catálogo único.
      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: Crear un código de oferta de catálogo único
      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: Genera códigos de oferta de catálogo únicos.
      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: Los códigos se han generado correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Generar códigos de oferta de catálogo únicos
      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: >-
        Desactiva una promoción de oferta única de catálogo.

        La promoción de oferta única de catálogo creada está desactivada por
        defecto.

        No se puede canjear hasta que la active.

        Utilice este punto final para desactivar y desactivar una promoción de
        cupones.
      operationId: deactivate-unique-catalog-offer
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: La oferta única de catálogo se ha desactivado correctamente.
        '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: Desactivar la promoción de oferta única de catálogo
      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: Obtiene todas las reglas que se aplican a los atributos de usuario.
      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: Si existe otra página con reglas.
                    type: boolean
                  items:
                    items:
                      $ref: '#/components/schemas/user-attribute_personalized-catalog'
                    type: array
                  total_items_count:
                    description: Número total de reglas.
                    type: number
                type: object
          description: Las reglas se recibieron correctamente.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '403':
          $ref: '#/components/responses/403-auth-header-not-sent'
      security:
        - basicAuth: []
      summary: Obtener lista de reglas de filtrado del catálogo
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crear regla para atributos de usuario.
      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 regla.
                    type: number
                type: object
          description: La regla se creó correctamente.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '422':
          $ref: '#/components/responses/Common_422-body-validation'
      security:
        - basicAuth: []
      summary: Crear regla de filtrado del catálogo
      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: >-
        Obtiene una lista de todas las reglas del catálogo para buscar en el
        lado del cliente.

        <div class="notice"><strong>Atención</strong><br><br>Devuelve solo el ID
        de la regla, el nombre y 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: Las reglas se recibieron correctamente.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '403':
          $ref: '#/components/responses/403-auth-header-not-sent'
      security:
        - basicAuth: []
      summary: >-
        Obtener todas las reglas del catálogo para la búsqueda en el lado del
        cliente
      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: Elimina una regla específica.
      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 eliminación se realizó correctamente.
        '401':
          $ref: '#/components/responses/Common_401-complex'
      security:
        - basicAuth: []
      summary: Eliminar regla de filtro del catálogo
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Obtiene una regla específica que se aplica a los atributos del usuario.
      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 regla se recibió correctamente.
        '401':
          $ref: '#/components/responses/Common_401-complex'
      security:
        - basicAuth: []
      summary: Obtener regla de filtro del catálogo
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    patch:
      description: >-
        Actualiza una regla específica que se aplica a los atributos de usuario.
        Se utilizará el valor actual para una propiedad no especificada.
      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 actualización se realizó correctamente.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '422':
          $ref: '#/components/responses/Common_422-body-validation'
      security:
        - basicAuth: []
      summary: Revisar regla de filtro del catálogo
      tags:
        - personalized-catalog
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Actualiza una regla específica que se aplica a los atributos de usuario.
        Se utilizará el valor por defecto para una propiedad no especificada (si
        la propiedad no es obligatoria).
      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: Actualización realizada correctamente.
        '401':
          $ref: '#/components/responses/Common_401-complex'
        '422':
          $ref: '#/components/responses/Common_422-body-validation'
      security:
        - basicAuth: []
      summary: Actualizar regla de filtro del catálogo
      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: >-
        Obtiene el número restante de veces que el usuario especificado puede
        utilizar el cupón.


        La API de límite del usuario le permite limitar el número de veces que
        los usuarios pueden utilizar un cupón. Para configurar este límite de
        usuario, vaya a Admin:

        *
        [Coupons](https://developers.xsolla.com/es/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: Artículo no encontrado.
        '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: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Obtener el límite de cupones para un usuario especificado
      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: >-
        Obtiene el número restante de veces que el usuario especificado puede
        utilizar el código promocional.


        La API de límite del usuario permite limitar el número de veces que los
        usuarios pueden utilizar un código promocional. Para configurar el
        límite del usuario, vaya a Admin:

        * [Promo
        Codes](https://developers.xsolla.com/es/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: Artículo no encontrado.
        '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: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Obtener el límite de códigos promocionales para el usuario especificado
      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: >-
        Actualiza todos los límites de todas las promociones destinadas al
        usuario especificado para que pueda utilizar estas promociones de nuevo.


        La API de límite del usuario le permite limitar el número de veces que
        los usuarios pueden utilizar una promoción. Para configurar el límite
        del usuario, vaya a la sección Admin del tipo de promoción deseada:

        * [Discount
        Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)

        * [Bonus
        Promotions](https://developers.xsolla.com/es/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: El límite de la promoción se actualizó correctamente.
        '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: Artículo no encontrado.
        '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: Solicitud no válida.
      security:
        - basicAuth: []
      summary: >-
        Actualizar todos los límites de la promoción para un usuario
        especificado
      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: >-
        Reduce el número de veces que el usuario especificado puede utilizar una
        promoción dentro del límite aplicado.


        La API de límite de usuarios permite limitar el número de veces que los
        usuarios pueden utilizar una promoción. Para configurar el límite de
        usuario, vaya a la sección Admin del tipo de promoción deseado:

        * [Discount
        Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)

        * [Bonus
        Promotions](https://developers.xsolla.com/es/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: Artículo no encontrado.
        '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: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Reducir el límite de la promoción para el usuario especificado
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Obtiene el número restante de veces que el usuario especificado puede
        utilizar la promoción dentro del límite aplicado.


        La API de límite de usuarios permite limitar el número de veces que los
        usuarios pueden usar una promoción. Para configurar el límite de
        usuario, vaya a la sección Admin del tipo de promoción deseado:

        * [Discount
        Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)

        * [Bonus
        Promotions](https://developers.xsolla.com/es/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: Artículo no encontrado.
        '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: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Obtener el límite de promoción para el usuario especificado
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: >-
        Aumenta el número restante de veces que el usuario especificado puede
        utilizar la promoción dentro del límite aplicado.


        La API de límite de usuarios permite limitar el número de veces que los
        usuarios pueden usar una promoción. Para configurar el límite de
        usuario, vaya a la sección Admin del tipo de promoción deseado:

        * [Discount
        Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)

        * [Bonus
        Promotions](https://developers.xsolla.com/es/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: Artículo no encontrado.
        '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: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Aumentar el límite de la promoción para el usuario especificado
      tags:
        - user-limits-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Establece el número de veces que el usuario especificado puede usar una
        promoción dentro del límite aplicado después de que se haya aumentado o
        reducido.


        La API de límite del usuario le permite limitar el número de veces que
        los usuarios pueden utilizar una promoción. Para configurar el límite de
        usuario, vaya a la sección Admin del tipo de promoción deseado:

        * [Discount
        Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)

        * [Bonus
        Promotions](https://developers.xsolla.com/es/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: Artículo no encontrado.
        '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: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Establecer el límite de la promoción para el usuario especificado
      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: >-
        Actualiza el límite de la promoción para que un usuario pueda utilizar
        esta promoción de nuevo. Si el parámetro *user* es `null`, esta llamada
        actualiza este límite para todos los usuarios.


        La API de límite del usuario le permite limitar el número de veces que
        los usuarios pueden usar una promoción. Para configurar el límite del
        usuario, vaya a la sección Admin del tipo de promoción deseada:

        * [Discount
        Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)

        * [Bonus
        Promotions](https://developers.xsolla.com/es/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: El límite de la promoción se actualizó correctamente.
        '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: Artículo no encontrado.
        '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: Solicitud no válida.
      security:
        - basicAuth: []
      summary: Actualizar el límite de promoción para los usuarios
      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: >-
        Obtiene las recompensas en forma de cupones por su código.

        Puede utilizarse para permitir a los usuarios elegir uno de varios
        artículos como bonificación.

        El caso más habitual es elegir un DRM (gestión de derechos digitales) si
        el cupón contiene un juego como bonificación (`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: Consigue recompensas en forma de cupones
      tags:
        - promotions-coupons
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/coupon/redeem:
    post:
      description: >-
        Canjea un código de cupón. El usuario recibe una bonificación tras
        canjear un cupón.
      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: Canjear código de cupón
      tags:
        - promotions-coupons
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/items/upsell:
    get:
      description: >-
        Obtiene una lista de los artículos de venta adicional en un proyecto si
        ya han sido configurados.
      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: Obtener lista de artículos de venta adicional en proyecto
      tags:
        - upsell-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/promocode/code/{promocode_code}/rewards:
    get:
      description: >-
        Obtiene las recompensas de códigos promocionales por su código.

        Pueden utilizarse para permitir a los usuarios elegir uno de varios
        artículos como bonificación.

        El caso más habitual es elegir un DRM (gestión de derechos digitales) si
        el código promocional contiene un juego como bonificación (`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: Obtener recompensas de códigos promocionales
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/promocode/redeem:
    post:
      description: >-
        Canjea una promoción de códigos promocionales.

        Tras canjear un código promocional, el usuario obtendrá artículos
        gratuitos o se reducirá el precio de la cesta o de determinados
        artículos.
      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: Canjear código promocional
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/promocode/remove:
    put:
      description: >-
        Elimina un código promocional de una cesta.

        Una vez eliminado el código promocional, el precio total de todos los
        artículos de la cesta se volverá a calcular sin bonificaciones ni
        descuentos proporcionados por un código promocional.
      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: Eliminar código promocional de la cesta
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/promotion/code/{code}/verify:
    get:
      description: >-
        Determina si el código es un código promocional o de cupón y si el
        usuario puede aplicarlo.
      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: Verificar el código de promoción
      tags:
        - promotions-common
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top:
    get:
      description: >-
        Recupera la lista de los 10 contribuyentes principales a la cadena de
        recompensas específica bajo el clan del usuario actual. Si un usuario no
        pertenece a un clan, la llamada devuelve una matriz vacía.
      operationId: get-user-clan-top-contributors
      parameters:
        - description: ID del proyecto.
          in: path
          name: project_id
          required: true
          schema:
            example: 44056
            type: integer
        - description: ID de la cadena de recompensas.
          in: path
          name: reward_chain_id
          required: true
          schema:
            example: 101
            type: integer
      responses:
        '200':
          content:
            application/json:
              examples:
                clan:
                  summary: El usuario tiene 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: El usuario no pertenece a un clan
                  value: []
              schema:
                items:
                  properties:
                    contributed_amount:
                      description: La cantidad de puntos de valor aportados por el usuario.
                      example: 100
                      type: integer
                    name:
                      description: >-
                        ID de usuario. Este es el ID que se envía a Xsolla
                        durante la autorización y vincula al usuario con su
                        proyecto de Xsolla Login.
                      example: Rocket
                      type: string
                  type: object
                type: array
          description: >-
            La lista de los 10 principales contribuyentes a la cadena de
            recompensas del clan.
      security:
        - XsollaLoginUserJWT: []
      summary: Obtén los 10 mejores contribuyentes a la cadena de recompensas bajo clan
      tags:
        - clan-reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/clan/update:
    put:
      description: >-
        Actualiza el clan de un usuario actual a través de los atributos de
        usuario. Reclama todas las recompensas de las cadenas de recompensas que
        no se reclamaron para un clan anterior y las devuelve en la respuesta.
        Si el usuario estaba en un clan y ahora no lo está, se revocará su
        inclusión en el clan. Si el usuario cambió de clan, se cambiará el clan.
      operationId: user-clan-update
      parameters:
        - description: ID del proyecto.
          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: Actualice el clan del usuario actual
      tags:
        - clan-reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/daily_chain:
    get:
      description: >-
        Punto final de cliente. Obtiene las recompensas diarias del usuario
        actual.

        <div class="notice"><strong>Aviso</strong><br><br>Un método devuelve una
        lista paginada de artículos. El valor máximo y por defecto es <strong>50
        artículos por respuesta.</strong> Para obtener más artículos de la
        lista, utilice los parámetros `limit` y `offset` y obtenga más páginas.
        Por ejemplo, al llamar a un método con `limit = 25` y `offset = 100`, la
        respuesta devuelve 25 artículos empezando por el artículo 101 de la
        lista global.</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: Obtener recompensas diarias del usuario actual
      tags:
        - daily-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/daily_chain/{daily_chain_id}:
    get:
      description: >-
        Punto final de cliente. Obtiene la recompensa diaria del usuario actual
        por su 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: La recompensa diaria del usuario se ha obtenido correctamente.
        '404':
          $ref: '#/components/responses/404-daily-chain-not-found'
      security:
        - XsollaLoginUserJWT: []
      summary: Obtener recompensa diaria del usuario actual por su 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: >-
        Punto final de cliente. Reclama la recompensa por pasos del usuario
        actual de una recompensa diaria. Todos los pasos solo se pueden reclamar
        en orden secuencial. La recompensa por un paso omitido no se puede
        obtener a cambio de moneda virtual o real, ni viendo un anuncio.
      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: >-
            Se ha reclamado correctamente la recompensa por pasos del usuario
            actual para una recompensa diaria por pasos.
        '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: El paso no se puede reclamar.
      security:
        - XsollaLoginUserJWT: []
      summary: Reclamar paso de recompensa diaria
      tags:
        - daily-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/offer_chain:
    get:
      description: >-
        Obtiene las cadenas de ofertas del usuario actual.

        <div class="notice"><strong>Aviso</strong><br><br>Todos los proyectos
        tienen un límite de número de artículos que pueden devolverse en una
        sola respuesta. El valor por defecto y máximo es <strong>30 artículos
        por respuesta</strong>. Para obtener más datos, utilice los parámetros
        de consulta <code>limit</code> y <code>offset</code> para la
        paginación.</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: Obtener las cadenas de ofertas del usuario actual
      tags:
        - offer-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/offer_chain/{offer_chain_id}:
    get:
      description: >-
        Obtiene la cadena de ofertas del usuario actual por el ID de la cadena
        de ofertas.
      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: La cadena de ofertas del usuario se ha obtenido correctamente.
        '404':
          $ref: '#/components/responses/404-offer-chain-not-found'
      security:
        - XsollaLoginUserJWT: []
      summary: Obtener la cadena de ofertas del usuario actual por 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: >-
        Completa la progresión del usuario actual por el paso de la cadena de
        ofertas y concede la recompensa asociada.

        <div class="notice">
          <strong>Aviso</strong><br><br>
         Utilice esta llamada solo para los pasos gratuitos de la cadena de ofertas.
         Para los pasos que requieran un pago en moneda real, utilice la llamada <a href="/api/shop-builder/operation/order-user-offer-chain-step-reward">Crear pedido para el paso de cadena de ofertas de pago</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 del pedido.
                    type: integer
                type: object
          description: >-
            El paso gratuito se ha reclamado correctamente y se ha concedido la
            recompensa.
        '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: >-
            El paso no se puede reclamar. Asegúrese de que se han completado
            todos los pasos anteriores y de que el paso se indica como gratuito.
      security:
        - XsollaLoginUserJWT: []
      summary: Reclamar paso de cadena de ofertas gratuito
      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: >-
        Crea un pedido para el artículo asociado al paso de la cadena de ofertas
        de pago especificado. El pedido creado obtiene el estado de pedido
        `new`.


        Para abrir la interfaz de pago en una nueva ventana, utilice el
        siguiente enlace:
        `https://secure.xsolla.com/paystation4/?token={token}`, en el que
        `{token}` es el token recibido.


        Para realizar pruebas, utilice esta URL:
        `https://sandbox-secure.xsolla.com/paystation4/?token={token}`.


        <div class="notice">
          <strong>Aviso</strong> <br><br>
         Este método debe utilizarse en el lado del cliente. La dirección IP del usuario se utiliza para determinar el país, lo que afecta a la moneda y a los métodos de pago disponibles. El uso de este método en el lado del servidor puede dar lugar a la detección incorrecta de la moneda y afectar a los métodos de pago en <a href="https://developers.xsolla.com/es/doc/pay-station/">Pay Station</a>.
        </div><br>


        <div class="notice">
          <strong>Aviso</strong><br><br>
         Utilice esta llamada solo para los pasos de cadena de ofertas de pago.
         Para los pasos gratuitos, utilice la llamada <a href="/api/shop-builder/operation/claim-user-offer-chain-step-reward">Reclamar paso de cadena de ofertas gratuito</a>.
        </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: El paso no se puede comprar.
      security:
        - XsollaLoginUserJWT: []
      summary: Crear pedido para el paso de cadena de ofertas de pago
      tags:
        - offer-chain-client
        - payment-client-side
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/reward_chain:
    get:
      description: >-
        Punto final de cliente. Obtiene las cadenas de recompensas del usuario
        actual.


        <div class="notice"><strong>Atención</strong><br><br>Todos los proyectos
        tienen la limitación del número de artículos que se pueden obtener en la
        respuesta. El valor máximo y por defecto es <strong>50 artículos por
        respuesta.</strong> Para obtener más datos página por página, utilice
        los campos <b>limit</b> y <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: Obtener las cadenas de recompensas del usuario actual
      tags:
        - reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance:
    get:
      description: >-
        Punto final del cliente. Obtiene el saldo de puntos de valor del usuario
        actual.
      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: Obtener el saldo de puntos de valor del usuario actual
      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: >-
        Punto final del cliente. Reclama la recompensa por paso del usuario
        actual de una cadena de recompensas.
      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: >-
            Ha reclamado correctamente la recompensa por paso del usuario actual
            de una cadena de recompensas.
        '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: Reclamar recompensa por paso
      tags:
        - reward-chain-client
      x-badges:
        - color: '#80eaff'
          name: Client-side
  /v3/project/{project_id}/admin/coupon:
    get:
      description: Obtiene la lista de promociones de cupones de un proyecto.
      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: Obtener la lista de promociones de cupones
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea una promoción de cupones.
      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: El cupón se creó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Crear promoción de cupones
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/coupon/{external_id}:
    delete:
      description: >-
        Elimina la [promoción de
        cupones](https://developers.xsolla.com/es/doc/shop-builder/features/coupons/).
        La promoción eliminada:

        * Desaparece de la lista de promociones establecidas en su proyecto.

        * Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no
        puede obtener artículos de bonificación con esta promoción.


        Después de eliminarla, la promoción no se puede restaurar.

        Los códigos de cupón procedentes de la promoción eliminada pueden
        [añadirse](https://developers.xsolla.com/es/api/shop-builder/operation/create-coupon-code/)
        a las promociones existentes.
      operationId: delete-coupon-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: La promoción de cupones se eliminó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Eliminar una promoción de cupones
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Obtiene una promoción de cupones especificada.
      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: El cupón se recibió correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Obtener promoción de cupones
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Actualiza una promoción de cupones.
      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: El cupón se actualizó correctamente.
        '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: Actualizar promoción de cupones
      tags:
        - promotions-coupons
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promocode:
    get:
      description: Obtiene la lista de códigos promocionales de un proyecto.
      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: Obtener la lista de promociones de códigos promocionales
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea una promoción de códigos promocionales.
      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: El código promocional se creó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Crear promoción de códigos promocionales
      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: >-
        Elimina la [promoción de códigos
        promocionales](https://developers.xsolla.com/es/doc/shop-builder/features/promo-codes/).
        La promoción eliminada:

        * Desaparece de la lista de promociones establecidas en su proyecto.

        * Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no
        puede obtener artículos de bonificación ni comprar artículos usando esta
        promoción.


        Después de eliminarla, la promoción no se puede restaurar.

        Los códigos promocionales de la promoción eliminada se pueden
        [añadir](https://developers.xsolla.com/es/api/shop-builder/operation/create-promo-code-code/)
        a las promociones existentes.
      operationId: delete-promo-code
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/external_id-promotion-path-param'
      responses:
        '204':
          description: La promoción de códigos promocionales se eliminó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Eliminar promoción de códigos promocionales
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Obtiene una promoción de códigos promocionales especificada.
      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: El código promocional se recibió correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promocode'
      security:
        - basicAuth: []
      summary: Obtener promoción de códigos promocionales
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Actualiza una promoción de códigos promocionales.
      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: El código promocional se actualizó correctamente.
        '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: Actualizar promoción de códigos promocionales
      tags:
        - promotions-promo-codes
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion:
    get:
      description: Obtiene la lista de promociones de un proyecto.
      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: Obtener toda la lista de promociones
      tags:
        - promotions-common
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion/bonus:
    get:
      description: >-
        Obtiene la lista de promociones de bonificaciones de un proyecto.


        La promoción añade artículos de bonificación gratuitos a la compra
        realizada por un usuario.

        La promoción puede aplicarse a cada compra dentro de un proyecto o a una
        compra que incluya artículos concretos.
      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: Obtenga la lista de promociones de bonificaciones
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: >-
        Crea la promoción de bonificaciones.


        La promoción añade artículos de bonificación gratuitos a la compra
        realizada por un usuario.

        La promoción puede aplicarse a cada compra dentro de un proyecto o a una
        compra que incluya determinados artículos.
      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: Crear promoción de bonificaciones
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/promotion/item:
    get:
      description: >-
        Obtenga la lista de promociones de artículos de un proyecto.


        Las promociones proporcionan un descuento (%) en los artículos.

        El descuento se aplicará a todos los precios de los artículos
        especificados.
      operationId: get-item-promotion-list
      parameters:
        - description: ID del proyecto.
          in: path
          name: project_id
          required: true
          schema:
            default: 59080
            type: integer
        - description: Límite para el número de elementos presentes en la página.
          in: query
          name: limit
          required: false
          schema:
            type: integer
        - description: >-
            Número del elemento a partir del cual se genera la lista (el conteo
            empieza desde el 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: Obtener lista de promociones del artículo
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: >-
        Crea una promoción de descuento para un artículo.


        Las promociones proporcionan un descuento (%) en los artículos.

        El descuento se aplicará a todos los precios de los artículos
        especificados.
      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: Crear promoción de descuento para un artículo
      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: >-
        Obtiene la promoción mediante un código promocional o un código de
        cupón.
      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: Obtener promoción canjeable por código
      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: >-
        Elimina la [promoción de
        bonificaciones](https://developers.xsolla.com/es/doc/shop-builder/features/bonuses/).
        La promoción eliminada:

        * Desaparece de la lista de promociones establecidas en su proyecto.

        * Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no
        puede obtener artículos de bonificación con esta promoción.


        Después de eliminarla, la promoción no se puede restaurar.
      operationId: delete-bonus-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '204':
          description: La promoción se eliminó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promotion'
      security:
        - basicAuth: []
      summary: Eliminar la promoción de bonificaciones
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Obtiene la promoción de bonificaciones.


        La promoción añade artículos de bonificación gratuitos a la compra
        realizada por un usuario.

        La promoción puede aplicarse a cada compra dentro de un proyecto o a una
        compra que incluya artículos concretos.
      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: Obtener una promoción de bonificación
      tags:
        - promotions-bonuses
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Actualiza la promoción.


        <div class='note'><b>Nota</b><br><br>Los nuevos datos sustituirán a los
        antiguos. Si desea actualizar solo una parte de una promoción, deberá
        transferir también todos los datos requeridos en la solicitud.</div>


        La promoción añade artículos de bonificación gratuitos a la compra
        realizada por un usuario.

        La promoción puede aplicarse a todas las compras de un proyecto o a una
        compra que incluya artículos concretos.
      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 promoción se actualizó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: >-
            #/components/responses/Promotions_422-admin-promotion-missed-bonus-property
      security:
        - basicAuth: []
      summary: Actualizar la promoción de bonificación
      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: >-
        Elimina la [promoción de
        descuento](https://developers.xsolla.com/es/doc/shop-builder/features/discounts/).
        La promoción eliminada:

        * Desaparece de la lista de promociones establecidas en su proyecto.

        * Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no
        puede obtener artículos con esta promoción.


        Después de eliminarla, la promoción no se puede restaurar.
      operationId: delete-item-promotion
      parameters:
        - $ref: '#/components/parameters/project_id-path-param'
        - $ref: '#/components/parameters/promotion_id-path-param'
      responses:
        '204':
          description: La promoción se eliminó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-promotion'
      security:
        - basicAuth: []
      summary: Eliminar la promoción de artículos
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: >-
        Obtiene la promoción aplicada a artículos concretos.


        Las promociones proporcionan un descuento (%) para los artículos.

        El descuento se aplicará a todos los precios de los artículos
        especificados.
      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: >-
                          Porcentaje del descuento.

                          El precio del artículo se reducirá en función del
                          valor calculado de este porcentaje.
                        nullable: true
                        type: string
                    type: object
                  excluded_promotions:
                    $ref: '#/components/schemas/excluded_promotions'
                  id:
                    description: >-
                      ID de promoción. Identificador único de la promoción en el
                      proyecto.
                    type: integer
                  is_enabled:
                    $ref: '#/components/schemas/Promotions_is_enabled'
                  items:
                    items:
                      description: >-
                        La lista de artículos a los que se aplicará el
                        descuento.
                      properties:
                        sku:
                          default: elven_sword
                          description: Código (SKU) del artículo.
                          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: >-
                      Nombre de la promoción. Debe contener pares clave/valor,

                      en los cuales la clave es la configuración regional con el
                      formato "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena
                      (string).
                    type: object
                  price_conditions:
                    $ref: '#/components/schemas/price_conditions_discount'
                  promotion_periods:
                    $ref: '#/components/schemas/promotion_periods'
                type: object
          description: La promoción del artículo se recibió correctamente.
        '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: >-
            Promoción no encontrada. Asegúrese de que la `promotion_id` es
            correcto.
      security:
        - basicAuth: []
      summary: Obtener promoción del artículo
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: >-
        Actualiza la promoción.


        <div class='note'><b>Nota</b><br><br>Los nuevos datos sustituirán a los
        antiguos. Si desea actualizar sólo una parte de una promoción, deberá
        transferir también todos los datos necesarios en la solicitud.</div>


        Las promociones ofrecen un descuento (%) en los artículos.

        El descuento se aplicará a todos los precios de los artículos
        especificados.
      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 promoción se actualizó correctamente.
        '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: Actualizar la promoción del artículo
      tags:
        - promotions-discounts
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
  /v3/project/{project_id}/admin/reward_chain:
    get:
      description: >-
        Obtiene la lista de cadenas de recompensas.


        <div class="notice"><strong>Atención</strong><br><br>Todos los proyectos
        tienen la limitación del número de artículos que se pueden obtener en la
        respuesta. El valor por defecto y máximo es <strong>10 artículos por
        respuesta.</strong> Para obtener más datos página por página, utilice
        los campos <b>limit</b> y <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: Obtener lista de cadenas de recompensas
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea una cadena de recompensas.
      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: Crear una cadena de recompensas
      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: Elimina una cadena de recompensas concreta.
      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: Eliminar cadena de recompensas
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Consigue una cadena de recompensas concreta.
      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: Obtener cadena de recompensas
      tags:
        - reward-chain-value-points-admin
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Actualiza una cadena de recompensas concreta.
      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: Actualizar cadena de recompensas
      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: >-
        Restablece los puntos de valor y el progreso de todos los usuarios de la
        cadena de recompensas.<br> Tras el restablecimiento, puede actualizar el
        periodo de validez de la cadena de recompensas y el usuario puede volver
        a hacer progresos en ella.

        <div class="notice"><strong>Aviso</strong>
          <br><br>
         No debe restablecer la cadena de recompensas durante su periodo de validez. En este caso, los usuarios pueden perder los puntos de valor ganados antes de reclamar su recompensa.
        </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: Restablecer cadena de recompensas
      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: Habilitar/deshabilitar cadena de recompensas.
      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: Activar/desactivar cadena de recompensas
      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: >-
        Obtiene la lista de promociones únicas de oferta de catálogo de un
        proyecto.
      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: Obtenga una lista de promociones de ofertas únicas por catálogo
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    post:
      description: Crea una promoción de oferta de catálogo única.
      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: Se ha creado correctamente una oferta de catálogo única.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '422':
          $ref: '#/components/responses/Promotions_422-invalid-coupon'
      security:
        - basicAuth: []
      summary: Crear una promoción única de ofertas por catálogo
      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: >-
        Elimina la [promoción única de oferta de
        catálogo](https://developers.xsolla.com/es/doc/shop-builder/features/unique-offer/).
        La promoción eliminada:

        * Desaparece de la lista de promociones establecidas en su proyecto.

        * Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no
        puede comprar artículos con esta promoción.


        Después de eliminarla, la promoción no se puede restaurar.
      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: La oferta única de catálogo se eliminó correctamente.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Eliminar la promoción de oferta única de catálogo
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    get:
      description: Obtiene la promoción de oferta de catálogo única especificada.
      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: Se ha recibido correctamente una oferta única de catálogo.
        '401':
          $ref: '#/components/responses/Promotions_401-invalid-basic-auth'
        '404':
          $ref: '#/components/responses/Promotions_404-admin-coupon'
      security:
        - basicAuth: []
      summary: Consiga una promoción de oferta de catálogo única
      tags:
        - promotions-unique-catalog-offers
      x-badges:
        - color: '#95ff80'
          name: Server-side
        - color: '#d7dee0'
          name: Admin
    put:
      description: Actualiza la promoción de oferta única de catálogo.
      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: La oferta única del catálogo se ha actualizado correctamente.
        '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: Actualizar la promoción de ofertas únicas por catálogo
      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: Común
  - description: Esta API le permite gestionar cupones.
    name: promotions-coupons
    x-displayName: Cupones
  - description: Esta API permite gestionar códigos promocionales.
    name: promotions-promo-codes
    x-displayName: Códigos promocionales
  - description: Esta API le permite gestionar ofertas de catálogo únicas.
    name: promotions-unique-catalog-offers
    x-displayName: Ofertas únicas por catálogo
  - description: Esta API le permite gestionar promociones de descuento.
    name: promotions-discounts
    x-displayName: Descuentos
  - description: Esta API permite gestionar promociones de bonificaciones.
    name: promotions-bonuses
    x-displayName: Bonificaciones
  - description: >-
      Esta API permite especificar reglas para los atributos de usuario.

      Si el usuario cumple todas las condiciones de una regla específica, se
      mostrarán los elementos personalizados.


      Para promociones personalizadas, consulte la sección
      [Promotions](/es/api/shop-builder/tag/promotions-discounts).


      Para transmitir atributos antes de una compra, puede utilizar [Xsolla
      Login API](/es/api/login/operation/update-users-attributes-from-server/) o
      transmitirlos a la propiedad [user.attributes mientras se genera el token
      utilizando Pay Station API](/es/api/pay-station/operation/create-token).
    name: personalized-catalog
    x-displayName: Catálogo personalizado
  - name: user-limits-admin
    x-displayName: Gestión
  - name: reward-chain-value-points-admin
    x-displayName: Admin
  - name: reward-chain-client
    x-displayName: Cliente
  - name: clan-reward-chain-client
    x-displayName: Cliente de clanes
  - name: daily-chain-admin
    x-displayName: Admin
  - name: daily-chain-client
    x-displayName: Cliente
  - name: offer-chain-admin
    x-displayName: Admin
  - name: offer-chain-client
    x-displayName: Cliente
  - name: upsell-admin
    x-displayName: Admin
  - name: upsell-client
    x-displayName: Cliente
x-tagGroups:
  - name: PROMOCIONES
    tags:
      - promotions-common
      - promotions-coupons
      - promotions-promo-codes
      - promotions-unique-catalog-offers
      - promotions-discounts
      - promotions-bonuses
  - name: PERSONALIZACIÓN
    tags:
      - personalized-catalog
  - name: LÍMITES
    tags:
      - user-limits-admin
  - name: CADENAS DE RECOMPENSAS Y PUNTOS DE VALOR
    tags:
      - reward-chain-value-points-admin
      - reward-chain-client
      - clan-reward-chain-client
  - name: CADENAS DIARIAS
    tags:
      - daily-chain-admin
      - daily-chain-client
  - name: CADENAS DE OFERTAS
    tags:
      - offer-chain-admin
      - offer-chain-client
  - name: VENTAS ADICIONALES
    tags:
      - upsell-admin
      - upsell-client
