{
  "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.\n\nThis 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": "Project ID. You can find this parameter in your [Publisher Account](https://publisher.xsolla.com/0/projects/0/) next to the project name and in the browser address bar when working with a project. The URL has the following format: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.",
        "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": {
                  "properties": {
                    "id": {
                      "default": "current",
                      "description": "ID de la cesta.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "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"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "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"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "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.\nEl 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,\nen 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"
                  },
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "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"
                  },
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "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": {
                  "properties": {
                    "id": {
                      "default": "current",
                      "description": "ID de la cesta.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "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": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "price": {
                        "description": "Precios de artículos.",
                        "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",
                          "null"
                        ]
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "sku": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      },
                      "virtual_item_type": {
                        "description": "Type of virtual item.\n\nPossible values:\n- `consumable` — An item that disappears from the inventory after use (e.g., ammo).\n- `non_consumable` — An item that stays in the inventory for an unlimited period of time.\n- `non_renewing_subscription` — Time-limited item that can represent access to services or content for a limited period of time.",
                        "enum": [
                          "consumable",
                          "non_consumable",
                          "non_renewing_subscription"
                        ],
                        "example": "non-consumable",
                        "type": "string"
                      },
                      "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.\nEl precio del artículo se reducirá en función del valor calculado de este porcentaje.",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "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.",
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "type": [
                          "array",
                          "null"
                        ]
                      },
                      "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": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "periods": {
                        "$ref": "#/components/schemas/item-periods"
                      },
                      "price": {
                        "description": "Precios de artículos.",
                        "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",
                          "null"
                        ]
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/Catalog_item_promotions"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "sku": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      },
                      "virtual_item_type": {
                        "description": "Type of virtual item.\n\nPossible values:\n- `consumable` — An item that disappears from the inventory after use (e.g., ammo).\n- `non_consumable` — An item that stays in the inventory for an unlimited period of time.\n- `non_renewing_subscription` — Time-limited item that can represent access to services or content for a limited period of time.",
                        "enum": [
                          "consumable",
                          "non_consumable",
                          "non_renewing_subscription"
                        ],
                        "example": "non-consumable",
                        "type": "string"
                      },
                      "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"
                  },
                  "properties": {
                    "amount": {
                      "default": "50.0000000000000000",
                      "type": "string"
                    },
                    "amount_without_discount": {
                      "default": "100.0000000000000000",
                      "type": "string"
                    },
                    "currency": {
                      "default": "USD",
                      "type": "string"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "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": 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"
                        }
                      ]
                    }
                  ],
                  "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": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "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"
                  },
                  "properties": {
                    "amount": {
                      "example": "50.0000000000000000",
                      "type": "string"
                    },
                    "amount_without_discount": {
                      "example": "100.0000000000000000",
                      "type": "string"
                    },
                    "currency": {
                      "example": "USD",
                      "type": "string"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "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": "weapons",
                          "name": {
                            "en": "Weapons"
                          }
                        }
                      ],
                      "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.",
        "properties": {
          "per_item": {
            "description": "Límites de artículos para un artículo.",
            "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",
              "null"
            ]
          },
          "per_user": {
            "description": "Límites de artículos para un usuario.",
            "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": {
                "$ref": "#/components/schemas/catalog_recurrent_schedule_client_response"
              },
              "total": {
                "description": "Número máximo de artículos que un mismo usuario puede comprar.",
                "example": 5,
                "type": "integer"
              }
            },
            "type": [
              "object",
              "null"
            ]
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "Catalog_item_promotions": {
        "description": "Promociones aplicadas para artículos específicos de la cesta. La matriz se devuelve en los siguientes casos:\n\n* Se configura un descuento promocional para un artículo específico.\n\n* Se aplica un código promocional con el parámetro **Descuento en artículos seleccionados**.\n\nSi 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",
              "type": [
                "string",
                "null"
              ]
            },
            "date_start": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "discount": {
              "properties": {
                "percent": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "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",
                "type": [
                  "string",
                  "null"
                ]
              },
              "image_url": {
                "description": "URL de la imagen.",
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "type": [
                  "string",
                  "null"
                ]
              },
              "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.\nEl precio de la cesta se reducirá utilizando un valor calculado utilizando este porcentaje y luego se redondeará al segundo decimal.",
        "properties": {
          "percent": {
            "example": "10.00",
            "type": "string"
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "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"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "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"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "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\nen 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"
              }
            },
            "properties": {
              "percent": {
                "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "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"
              }
            },
            "properties": {
              "percent": {
                "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "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.\n\nEl precio del artículo de la cesta se reducirá utilizando un valor\ncalculado utilizando este porcentaje y luego se redondeará\nal 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,
        "type": [
          "integer",
          "null"
        ]
      },
      "Promotions_coupon-redeem_user_limit": {
        "default": 10,
        "description": "Limita el número total de cupones canjeados por un mismo usuario.",
        "example": 10,
        "type": [
          "integer",
          "null"
        ]
      },
      "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"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "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",
        "type": [
          "string",
          "null"
        ]
      },
      "Promotions_coupon_date_start": {
        "default": "2020-04-15T18:16:00+05:00",
        "description": "Fecha de inicio de la promoción.",
        "format": "date-time",
        "type": [
          "string",
          "null"
        ]
      },
      "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\nen 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.",
        "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",
          "null"
        ]
      },
      "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"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "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"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "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\nen 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.",
        "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",
          "null"
        ]
      },
      "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",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "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",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "is_enabled": {
                  "type": "boolean"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_name"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "redeem_total_limit": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "redeem_user_limit": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "sku": {
                  "$ref": "#/components/schemas/Promotions_sku"
                },
                "type": {
                  "$ref": "#/components/schemas/Promotions_type"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "Promotions_promotion_discount_percent": {
        "default": "10.00",
        "description": "Porcentaje de descuento.\nEl precio de la cesta se reducirá utilizando un valor calculado utilizando este porcentaje y luego se redondeará al segundo decimal.",
        "example": "10.00",
        "type": [
          "string",
          "null"
        ]
      },
      "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.",
            "type": [
              "integer",
              "null"
            ]
          },
          "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,
            "type": [
              "integer",
              "null"
            ]
          },
          "per_user": {
            "description": "Limitaciones de la promoción para un usuario independiente.",
            "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",
              "null"
            ]
          },
          "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,
        "type": [
          "integer",
          "null"
        ]
      },
      "Promotions_selected_unit_items": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "La recompensa que selecciona un usuario.\nLa 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.",
            "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",
              "null"
            ]
          },
          "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": "Type of virtual item.\n\nPossible values:\n- `consumable` — An item that disappears from the inventory after use (e.g., ammo).\n- `non_consumable` — An item that stays in the inventory for an unlimited period of time.\n- `non_renewing_subscription` — Time-limited item that can represent access to services or content for a limited period of time.",
            "enum": [
              "consumable",
              "non_consumable",
              "non_renewing_subscription"
            ],
            "example": "non-consumable",
            "type": "string"
          },
          "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": {
        "properties": {
          "user_external_id": {
            "$ref": "#/components/schemas/User-limit_user-external-id"
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "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.\n\nSi 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\nen 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": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "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"
              }
            },
            "properties": {
              "percent": {
                "default": "10.00",
                "description": "Porcentaje de descuento.\nEl precio de la cesta se reducirá utilizando un valor calculado utilizando este porcentaje y luego se redondeará al segundo decimal.",
                "example": "10.00",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "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"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "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.",
        "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",
          "null"
        ]
      },
      "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"
      },
      "catalog_recurrent_schedule_client_response": {
        "description": "Periodo de actualización recurrente de los límites del artículo para un usuario.",
        "oneOf": [
          {
            "description": "Tipo diario de actualización del límite del usuario.",
            "properties": {
              "interval_type": {
                "description": "Tipo de periodo de actualización recurrente.",
                "enum": [
                  "daily"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "Fecha y hora en que se restablecen los límites (Marca de tiempo Unix).",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = daily",
            "type": "object"
          },
          {
            "description": "Tipo semanal de actualización del límites del usuario.",
            "properties": {
              "interval_type": {
                "description": "Tipo de periodo de actualización recurrente.",
                "enum": [
                  "weekly"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "Fecha y hora en que se restablecen los límites (Marca de tiempo Unix).",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = weekly",
            "type": "object"
          },
          {
            "description": "Tipo mensual de actualización de los límites del usuario.",
            "properties": {
              "interval_type": {
                "description": "Tipo de periodo de actualización recurrente.",
                "enum": [
                  "monthly"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "Fecha y hora en que se restablecen los límites (Marca de tiempo Unix).",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = monthly",
            "type": "object"
          },
          {
            "description": "Reinicio del límite de usuarios realizado en el intervalo especificado en horas.",
            "properties": {
              "interval_type": {
                "description": "Tipo de periodo de actualización recurrente.",
                "enum": [
                  "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"
              }
            },
            "title": "interval_type = hourly",
            "type": "object"
          }
        ],
        "type": [
          "object",
          "null"
        ]
      },
      "chain_is_always_visible": {
        "default": true,
        "description": "Whether the chain is visible to all users. If `true`, the chain is always displayed, regardless of the user's authentication status or attributes.\n\nTo configure personalization, you need to pass `false`. The logic of the chain display will be the following:\n  * If `false` is passed and the visibility conditions are specified in the `attribute_conditions` array, the chain is considered personalized and is displayed only to authorized users who meet the specified conditions.\n  * If `false` is passed and the `attribute_conditions` array isn’t passed or is empty, the chain is displayed to unauthorized users, as well as in cases when no matching chain is found for the authorized user.",
        "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. \nDetermina 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. \nDetermina 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
        ],
        "type": [
          "string",
          "null"
        ]
      },
      "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",
                "type": [
                  "string",
                  "null"
                ]
              },
              "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"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "content": {
            "items": {
              "$ref": "#/components/schemas/client-daily-chain-item-model"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "description": "Descripción del artículo.",
            "type": [
              "string",
              "null"
            ]
          },
          "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": "Defines the step's current claim status.\n\nPossible values:\n- `claimed` — The step has already been claimed.\n- `claimable` — The step may be claimed.\n- `blocked` — The step cannot be claimed: \n  - For unauthorized users: All steps are blocked. \n  - For `calendar_hard`: The step was not claimed and is now in the past. \n  - For `rolling_skippable`: The step is locked until the previous step is claimed.\n- `claim_in_future` — The step was not claimed and the step is in the future.",
            "enum": [
              "claimed",
              "claimable",
              "blocked",
              "claim_in_future"
            ],
            "example": "claimed",
            "type": "string"
          },
          "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"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "content": {
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-item-model"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "description": "Descripción del artículo.",
            "type": [
              "string",
              "null"
            ]
          },
          "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",
            "type": [
              "string",
              "null"
            ]
          },
          "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,
            "type": [
              "integer",
              "null"
            ]
          },
          "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"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "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"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "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",
            "type": [
              "string",
              "null"
            ]
          },
          "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",
            "type": [
              "string",
              "null"
            ]
          },
          "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",
                "type": [
                  "string",
                  "null"
                ]
              },
              "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",
                "type": [
                  "string",
                  "null"
                ]
              },
              "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": {
            "type": [
              "object",
              "null"
            ]
          },
          "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",
        "type": [
          "string",
          "null"
        ]
      },
      "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,
        "type": [
          "integer",
          "null"
        ]
      },
      "daily_chain_step_number": {
        "description": "Número del paso.",
        "example": 2,
        "minimum": 1,
        "nullable": false,
        "type": "integer"
      },
      "daily_chain_type": {
        "description": "Daily reward type that determines when users can claim rewards.\n\nPossible values:\n- `calendar_hard` — Unlocks the next step reward every 24 hours. Any unclaimed step rewards are permanently lost once\nthe next step reward becomes available.\n- `rolling_skippable` — Unlocks the next step reward every 24 hours based on `date_start`. Progression is sequential:\na new reward will not unlock until the previous one has been claimed. If a user skips one or more days, they continue\nfrom where they left off; missed days do not grant multiple rewards.\n- `rolling_unskippable` — Unlocks the next step reward every 24 hours based on `date_start`. Progression is\nsequential: a new reward will not unlock until the previous one has been claimed. However, if a user skips a day,\ntheir progress is reset, and they must start again from the first step.",
        "enum": [
          "calendar_hard",
          "rolling_skippable",
          "rolling_unskippable"
        ],
        "type": "string"
      },
      "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,
        "type": [
          "integer",
          "null"
        ]
      },
      "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",
        "type": [
          "string",
          "null"
        ]
      },
      "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": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ],
        "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/).",
        "type": [
          "object",
          "null"
        ]
      },
      "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.",
        "properties": {
          "ar-AE": {
            "description": "Árabe",
            "type": [
              "string",
              "null"
            ]
          },
          "bg-BG": {
            "description": "Búlgaro",
            "type": [
              "string",
              "null"
            ]
          },
          "cs-CZ": {
            "description": "Checo",
            "type": [
              "string",
              "null"
            ]
          },
          "de-DE": {
            "description": "Alemán",
            "type": [
              "string",
              "null"
            ]
          },
          "en-US": {
            "description": "Inglés",
            "type": [
              "string",
              "null"
            ]
          },
          "es-ES": {
            "description": "Español (España)",
            "type": [
              "string",
              "null"
            ]
          },
          "fr-FR": {
            "description": "Francés",
            "type": [
              "string",
              "null"
            ]
          },
          "he-IL": {
            "description": "Hebreo",
            "type": [
              "string",
              "null"
            ]
          },
          "id-ID": {
            "description": "Indonesio",
            "type": [
              "string",
              "null"
            ]
          },
          "it-IT": {
            "description": "Italiano",
            "type": [
              "string",
              "null"
            ]
          },
          "ja-JP": {
            "description": "Japonés",
            "type": [
              "string",
              "null"
            ]
          },
          "km-KH": {
            "description": "Jemer",
            "type": [
              "string",
              "null"
            ]
          },
          "ko-KR": {
            "description": "Coreano",
            "type": [
              "string",
              "null"
            ]
          },
          "lo-LA": {
            "description": "Lao",
            "type": [
              "string",
              "null"
            ]
          },
          "my-MM": {
            "description": "Birmano",
            "type": [
              "string",
              "null"
            ]
          },
          "ne-NP": {
            "description": "Nepalí",
            "type": [
              "string",
              "null"
            ]
          },
          "ph-PH": {
            "description": "Filipino",
            "type": [
              "string",
              "null"
            ]
          },
          "pl-PL": {
            "description": "Polaco",
            "type": [
              "string",
              "null"
            ]
          },
          "pt-BR": {
            "description": "Portugués (Brasil)",
            "type": [
              "string",
              "null"
            ]
          },
          "ro-RO": {
            "description": "Rumano",
            "type": [
              "string",
              "null"
            ]
          },
          "ru-RU": {
            "description": "Ruso",
            "type": [
              "string",
              "null"
            ]
          },
          "th-TH": {
            "description": "Tailandés",
            "type": [
              "string",
              "null"
            ]
          },
          "tr-TR": {
            "description": "Turco",
            "type": [
              "string",
              "null"
            ]
          },
          "vi-VN": {
            "description": "Vietnamita",
            "type": [
              "string",
              "null"
            ]
          },
          "zh-CN": {
            "description": "Chino (simplificado)",
            "type": [
              "string",
              "null"
            ]
          },
          "zh-TW": {
            "description": "Chino (tradicional)",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "cinco letras",
        "type": [
          "object",
          "null"
        ]
      },
      "image_url": {
        "description": "URL de la imagen.",
        "example": "https://image.example.com",
        "type": [
          "string",
          "null"
        ]
      },
      "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:\n* Si es `true`, la cadena de recompensas se reiniciará después de su fecha de finalización.\n* Si es `false`, la cadena de recompensas no se reiniciará después de su fecha de finalización.\n\n<br>\n<div class=\"notice\"><strong>Aviso</strong><br><br>\nNo puede ser <code>true</code> si: <br>\n<ul>\n  <li>se establece un periodo de reinicio en <code>recurrent_schedule</code>.</li>\n  <li>El valor <code>null</code> se transmite en <code>periods.date_until</code>.</li>\n</ul>\n</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",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": "object"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "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",
              "type": [
                "string",
                "null"
              ]
            },
            "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",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "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>\n 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>\n 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"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "item_type": {
        "description": "Tipo de artículo: `virtual_good`/`virtual_currency`/`bundle`/`unit`.",
        "type": "string"
      },
      "limit_exceeded_visibility": {
        "default": "show",
        "description": "Determines the visibility of the item in the catalog after the purchase limit is reached, until the next limit reset.\n\nApplies to items for which recurring limit resets are configured in the `recurrent_schedule` array.\n\nIf limit resets are not configured, the item doesn't appear in the catalog after the purchase limit is reached,\nregardless of the `limit_exceeded_visibility` value.\n\nPossible values:\n- `show` — The item is returned in catalog retrieval API calls after the purchase limit is reached. In client-side\ncatalog retrieval API calls, once the limit is reached, the item is returned with the `can_be_bought: false` flag. The\nnext reset date is returned in `reset_next_date`.\n- `hide` — The item is not returned in catalog retrieval API calls after the purchase limit is reached, until the\nlimit is reset.",
        "enum": [
          "show",
          "hide"
        ],
        "example": "show",
        "type": "string"
      },
      "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/).",
        "type": [
          "object",
          "null"
        ]
      },
      "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,
            "type": [
              "integer",
              "null"
            ]
          },
          "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": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ],
        "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/).",
        "type": [
          "object",
          "null"
        ]
      },
      "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": {
            "type": [
              "object",
              "null"
            ]
          },
          "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",
        "type": [
          "string",
          "null"
        ]
      },
      "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.",
        "oneOf": [
          {
            "description": "Reinicio semanal de la cadena de ofertas.",
            "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",
              "null"
            ]
          },
          {
            "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",
          "null"
        ]
      },
      "offer_chain_recurrent_schedule_client_side": {
        "description": "Periodo de reinicio de la cadena de ofertas.",
        "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",
          "null"
        ]
      },
      "offer_chain_recurrent_schedule_create_update": {
        "description": "Periodo de reinicio de la cadena de ofertas.",
        "oneOf": [
          {
            "description": "Reinicio semanal de la cadena de ofertas.",
            "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",
              "null"
            ]
          },
          {
            "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",
          "null"
        ]
      },
      "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,
        "type": [
          "integer",
          "null"
        ]
      },
      "offer_chain_step_number": {
        "description": "Número del paso.",
        "example": 2,
        "minimum": 1,
        "nullable": false,
        "type": "integer"
      },
      "offer_chain_step_price": {
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/offer_chain_step_price_amount"
          },
          "currency": {
            "$ref": "#/components/schemas/offer_chain_step_price_currency"
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "type": [
          "object",
          "null"
        ]
      },
      "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",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "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. \nDetermina 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. \nDetermina 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/).",
        "properties": {
          "ar": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "bg": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "cn": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "cs": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "de": {
            "example": "Wie man Belohnungen freischaltet",
            "type": [
              "string",
              "null"
            ]
          },
          "en": {
            "example": "How to unlock rewards",
            "type": [
              "string",
              "null"
            ]
          },
          "es": {
            "example": "Cómo desbloquear recompensas",
            "type": [
              "string",
              "null"
            ]
          },
          "fr": {
            "example": "Comment débloquer des récompenses",
            "type": [
              "string",
              "null"
            ]
          },
          "he": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "it": {
            "example": "Come sbloccare ricompense",
            "type": [
              "string",
              "null"
            ]
          },
          "ja": {
            "example": "報酬をアンロックする方法",
            "type": [
              "string",
              "null"
            ]
          },
          "ko": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "pl": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "pt": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "ro": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "ru": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "th": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "tr": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "tw": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "vi": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "popup_image_url": {
        "description": "Imagen de la ventana emergente de una cadena de recompensas de clan.",
        "example": "https://image.example.com",
        "format": "uri",
        "type": [
          "string",
          "null"
        ]
      },
      "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/).",
        "properties": {
          "ar": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "bg": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "cn": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "cs": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "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.",
            "type": [
              "string",
              "null"
            ]
          },
          "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.",
            "type": [
              "string",
              "null"
            ]
          },
          "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.",
            "type": [
              "string",
              "null"
            ]
          },
          "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.",
            "type": [
              "string",
              "null"
            ]
          },
          "he": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "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.",
            "type": [
              "string",
              "null"
            ]
          },
          "ja": {
            "example": "クランリワードを受け取るには、クランメンバーでなければなりません。 クランメンバーがあなたをクランに招待し、招待を受け入れると、クランに参加できます。 あなた自身のクランを作成することもできます。",
            "type": [
              "string",
              "null"
            ]
          },
          "ko": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "pl": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "pt": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "ro": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "ru": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "th": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "tr": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "tw": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          },
          "vi": {
            "example": null,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "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"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "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"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "price_conditions_items": {
        "description": "Cada objeto describe una regla que define el precio.",
        "properties": {
          "operator": {
            "description": "Comparison operator for setting the price range for applying the promotion.\n\nPossible values:\n- `ge` — Greater or equal\n- `gt` — Greater than\n- `le` — Less or equal\n- `lt` — Less than\n- `eq` — Equals\n- `ne` — Not equals",
            "enum": [
              "ge",
              "gt",
              "le",
              "lt",
              "eq",
              "ne"
            ],
            "type": "string"
          },
          "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>\nEl 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>\nSi 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"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "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",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "date_from"
          ],
          "type": "object"
        },
        "nullable": false,
        "type": "array"
      },
      "promotion_recurrent_schedule_response": {
        "description": "Periodo de actualización del límite.",
        "properties": {
          "per_user": {
            "description": "Periodo de actualización del límite del usuario.",
            "oneOf": [
              {
                "description": "Tipo diario de actualización del límite del usuario.",
                "properties": {
                  "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"
                    ],
                    "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"
                  }
                },
                "title": "interval_type = daily",
                "type": "object"
              },
              {
                "description": "Tipo semanal de actualización del límites del usuario.",
                "properties": {
                  "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,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "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": [
                      "weekly"
                    ],
                    "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"
                  }
                },
                "title": "interval_type = weekly",
                "type": "object"
              },
              {
                "description": "Tipo mensual de actualización de los límites 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,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "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": [
                      "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"
                  }
                },
                "title": "interval_type = monthly",
                "type": "object"
              }
            ],
            "type": [
              "object",
              "null"
            ]
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "promotion_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Condiciones para validar los atributos de usuario. \nDetermina 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. \nDetermina 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.",
        "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",
          "null"
        ]
      },
      "recurrent_schedule_create_update": {
        "description": "Periodo de reinicio recurrente de la cadena de recompensas.",
        "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",
          "null"
        ]
      },
      "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. \nDetermina 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. \nDetermina 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",
        "type": [
          "string",
          "null"
        ]
      },
      "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,
        "type": [
          "integer",
          "null"
        ]
      },
      "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": {
        "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",
          "null"
        ]
      },
      "total_promotions_count": {
        "description": "Número total de promociones.",
        "type": "integer"
      },
      "two-letter-locale": {
        "description": "Códigos lingüísticos de dos letras minúsculas.",
        "properties": {
          "ar": {
            "description": "Árabe",
            "type": [
              "string",
              "null"
            ]
          },
          "bg": {
            "description": "Búlgaro",
            "type": [
              "string",
              "null"
            ]
          },
          "cn": {
            "description": "Chino (simplificado)",
            "type": [
              "string",
              "null"
            ]
          },
          "cs": {
            "description": "Checo",
            "type": [
              "string",
              "null"
            ]
          },
          "de": {
            "description": "Alemán",
            "type": [
              "string",
              "null"
            ]
          },
          "en": {
            "description": "Inglés",
            "type": [
              "string",
              "null"
            ]
          },
          "es": {
            "description": "Español (España)",
            "type": [
              "string",
              "null"
            ]
          },
          "fr": {
            "description": "Francés",
            "type": [
              "string",
              "null"
            ]
          },
          "he": {
            "description": "Hebreo",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Indonesio",
            "type": [
              "string",
              "null"
            ]
          },
          "it": {
            "description": "Italiano",
            "type": [
              "string",
              "null"
            ]
          },
          "ja": {
            "description": "Japonés",
            "type": [
              "string",
              "null"
            ]
          },
          "km": {
            "description": "Jemer",
            "type": [
              "string",
              "null"
            ]
          },
          "ko": {
            "description": "Coreano",
            "type": [
              "string",
              "null"
            ]
          },
          "lo": {
            "description": "Lao",
            "type": [
              "string",
              "null"
            ]
          },
          "my": {
            "description": "Birmano",
            "type": [
              "string",
              "null"
            ]
          },
          "ne": {
            "description": "Nepalí",
            "type": [
              "string",
              "null"
            ]
          },
          "ph": {
            "description": "Filipino",
            "type": [
              "string",
              "null"
            ]
          },
          "pl": {
            "description": "Polaco",
            "type": [
              "string",
              "null"
            ]
          },
          "pt": {
            "description": "Portugués",
            "type": [
              "string",
              "null"
            ]
          },
          "ro": {
            "description": "Rumano",
            "type": [
              "string",
              "null"
            ]
          },
          "ru": {
            "description": "Ruso",
            "type": [
              "string",
              "null"
            ]
          },
          "th": {
            "description": "Tailandés",
            "type": [
              "string",
              "null"
            ]
          },
          "tr": {
            "description": "Turco",
            "type": [
              "string",
              "null"
            ]
          },
          "tw": {
            "description": "Chino (tradicional)",
            "type": [
              "string",
              "null"
            ]
          },
          "vi": {
            "description": "Vietnamita",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "two-letter",
        "type": [
          "object",
          "null"
        ]
      },
      "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,
        "type": [
          "integer",
          "null"
        ]
      },
      "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": "Type of operation performed by condition. For <code>date</code> attribute type.\n\nPossible values:\n- `eq` — Equals\n- `ne` — Not equals\n- `lt` — Earlier\n- `gt` — Later\n- `le` — Earlier or equals\n- `ge` — Later or equals",
        "enum": [
          "eq",
          "ne",
          "lt",
          "gt",
          "le",
          "ge"
        ],
        "type": "string"
      },
      "user-attribute_conditions_properties_operator_number": {
        "description": "Type of operation performed by condition. For <code>number</code> attribute type.\n\nPossible values:\n- `eq` — Equals\n- `ne` — Not equals\n- `gt` — Greater\n- `ge` — Greater or equals\n- `lt` — Less\n- `le` — Less or equals",
        "enum": [
          "eq",
          "ne",
          "gt",
          "ge",
          "lt",
          "le"
        ],
        "type": "string"
      },
      "user-attribute_conditions_properties_operator_string": {
        "description": "Type of operation performed by condition. For <code>string</code> attribute type.\n\nPossible values:\n- `eq` — Equals\n- `ne` — Not equals",
        "enum": [
          "eq",
          "ne"
        ],
        "type": "string"
      },
      "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 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.",
        "type": [
          "string",
          "null"
        ]
      },
      "value-point-long-description": {
        "description": "Descripción larga del punto de valor.",
        "type": [
          "string",
          "null"
        ]
      },
      "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": "The `AuthForCart` authentication scheme is used for cart purchases and supports two modes:\n\n1. Authentication with a user's JWT. The token is passed in the Authorization header in the following format: `Authorization: Bearer <user_JWT>`, where `<user_JWT>` is the user token. The token identifies the user and provides access to personalized data.\n\nAlternatively, you can use a [token for opening the payment UI](/es/api/pay-station/token/create-token).\n\n2. Simplified mode without `Authorization` header. This mode is used only for unauthorized users and can be applied only for [selling game keys](/es/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). Instead of a token, the request must include the following headers:\n* `x-unauthorized-id` with a request ID\n* `x-user` with the user’s email address encoded in Base64.",
        "scheme": "bearer",
        "type": "http"
      },
      "XsollaLoginUserJWT": {
        "bearerFormat": "JWT",
        "description": "Client-side calls use the `XsollaLoginUserJWT` authentication scheme. The request must include the user's JWT in the `Authorization` header in the following format: Bearer `<user_JWT>`. The token identifies the user and provides access to personalized data. For details on how to create a token, refer to the [Xsolla Login API documentation](/es/api/login/authentication-schemes#getting-user-token).\n\nAlternatively, you can use a [token for opening the payment UI](/es/api/pay-station/token/create-token).",
        "scheme": "bearer",
        "type": "http"
      },
      "basicAuth": {
        "description": "Server-side calls use the `basicAuth` authentication scheme. All requests to API must\ncontain the `Authorization: Basic <your_authorization_basic_key>`\nheader, where `your_authorization_basic_key` is the `project_id:api_key`\npair encoded according to the Base64 standard.\n\nYou can use `merchant_id` instead of `project_id` if you need. It doesn't affect functionality.\n\nGo to [Publisher Account](https://publisher.xsolla.com/) to find values of the parameters:\n\n* `merchant_id` is shown:\n  * In the **Company settings > Company** section\n  * In the URL in the browser address bar on any Publisher Account page. The URL has the following format: `https://publisher.xsolla.com/<merchant_id>`.\n* `api_key` is shown in Publisher Account only once when it is created and must be stored on your side. You can create a new key in the following section:\n  * [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key)\n  * [Project settings > API keys](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n{% html name=\"div\" attrs={\"class\": \"notice\"} %}\n**Notice**\n\nIf a required API call doesn't include the `project_id` path parameter, use an API key that is valid across all company projects for authorization.\n{% /html %}\n\n* `project_id` is shown:\n  * In Publisher Account next to the name of the project.\n  * In the URL in the browser address bar when working on project in Publisher Account. The URL has the following format: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.\n\nFor more information about working with API keys, see the [API reference](https://developers.xsolla.com/es/api/getting-started/#api_keys_overview).",
        "scheme": "basic",
        "type": "http"
      },
      "basicMerchantAuth": {
        "description": "Server-side calls use the `basicMerchantAuth` authentication scheme.  All requests to API must\ncontain the `Authorization: Basic <your_authorization_basic_key>`\nheader, where `your_authorization_basic_key` is the `merchant_id:api_key`\npair encoded according to the Base64 standard.\n\nGo to [Publisher Account](https://publisher.xsolla.com/) to find values of the parameters:\n\n* `merchant_id` is shown:\n  * In the **Company settings > Company** section\n  * In the URL in the browser address bar on any Publisher Account page. The URL has the following format: `https://publisher.xsolla.com/<merchant_id>`\n* `api_key` is shown in Publisher Account only once when it is created and must be stored on your side. You can create a new key in the [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key) section.\n\nFor more information about working with API keys, see the [API reference](https://developers.xsolla.com/es/api/getting-started/#api_keys_overview).",
        "scheme": "basic",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "# Overview\n\n* **Version:** 2.0.0\n* **Servers**: `https://store.xsolla.com/api`\n* **[Contact Us by Email](mailto:integration@xsolla.com)**\n* **Contact URL:** https://xsolla.com/\n* **Required TLS version:** 1.2\n\nLiveOps is a toolkit for driving ongoing player engagement through promotions and personalized offers.\n\nUse the API to manage the following features:\n\n* **Promotions** — create and manage coupons, promo codes, discounts, and bonus campaigns.\n* **Personalization** — specify the conditions for displaying the item catalog and applying promotions only for certain authorized users.\n* **Promotion limits** — set a limit on how many times a promotion can be used by a user and configure scheduled resets for these limits.\n* **Reward chains & Value points** — configure reward progressions tied to value point accumulation.\n* **Daily chains** — set up recurring daily rewards to motivate regular logins.\n* **Offer chains** — build sequential purchase offers with per-step pricing and free reward options.\n* **Upsell** — a sales method in which the user is offered to buy an item with additional value.\n\n## API calls\n\nThe API is divided into the **following groups**:\n\n* **<nt>Admin</nt>** — calls for creating, updating, activating, and deleting campaigns and chain configurations. Authenticated via [basic access authentication](https://developers.xsolla.com/es/payment-ui-and-flow/payment-ui/how-to-get-payment-token/#payments_solution_get_user_auth_token_basic_auth) with your merchant or project credentials.\n* **<nt>Client</nt>** — calls for retrieving available promotions, getting active chains, redeeming codes, and claiming rewards on behalf of authenticated end users. Authenticated via user JWT.\n\n# Authentication\n\nAPI calls require authentication either on behalf of a user or on behalf of a project. The authentication scheme used is specified in the **Security** section in the description of each call.\n\n## Authentication using user's JWT\n\nUser's JWT authentication is used when a request is sent from a browser, mobile application, or game. By default, the `XsollaLoginUserJWT` scheme is applied. For details on how to create a token, see the [Xsolla Login API documentation](/es/api/login/authentication-schemes#getting-user-token).\n\nThe token is passed in the `Authorization` header in the following format: `Authorization: Bearer <user_JWT>`, where `<user_JWT>` is the user token. The token identifies the user and provides access to personalized data.\n\nAlternatively, you can use a [token for opening the payment UI](/es/api/pay-station/token/create-token).\n\n## Basic HTTP authentication\n\nBasic HTTP authentication is used for server-to-server interactions, when an API call is sent directly from your server rather than from a user's browser or mobile application. HTTP Basic authentication with an [API key](/es/api/getting-started/#api_keys_overview) is typically used.\n\n<div class=\"note\"><b>Note</b><br><br>The API key is confidential and must not be stored or used in client applications.</div>\n\nWith basic server-side authentication, all API requests must include the following header:\n\n- for `basicAuth` — `Authorization: Basic <your_authorization_basic_key>`, where `your_authorization_basic_key` is the `project_id:api_key` pair encoded in Base64\n- for `basicMerchantAuth` — `Authorization: Basic <your_authorization_basic_key>`, where `your_authorization_basic_key` is the `merchant_id:api_key` pair encoded in Base64\n\nYou can find the parameter values in [Publisher Account](https://publisher.xsolla.com/):\n\n- `merchant_id` is displayed:\n  - In **Company settings > Company**.\n  - In the URL in the browser address bar on any Publisher Account page. The URL has the following format: `https://publisher.xsolla.com/<merchant_id>`.\n- `project_id` is displayed:\n  - Next to the project name in Publisher Account.\n  - In the URL in the browser address bar when working on a project in Publisher Account. The URL has the following format: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.\n- `api_key` is shown in Publisher Account only at the time of creation and must be stored securely on your side. You can create an API key in the following sections:\n  - [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key)\n  - [Project settings > API key](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n<div class=\"notice\"><b>Notice</b><br><br>If a required API call doesn't include the <code>project_id</code> path parameter, use an API key that is valid across all company projects for authorization.</div>\n\nFor more information about working with API keys, see the [API references](/es/api/getting-started/#api_keys_overview).\n\n## Authentication with guest access support\n\nThe `AuthForCart` authentication scheme is used for cart purchases and supports two modes:\n\n1. **Authentication with a user's JWT.** The token is passed in the `Authorization` header in the following format: `Authorization: Bearer <user_JWT>`, where `<user_JWT>` is the user token. The token identifies the user and provides access to personalized data. Alternatively, you can use a [token for opening the payment UI](/es/api/pay-station/token/create-token).\n\n2. **Simplified mode without Authorization header.** This mode is used only for unauthorized users and can be applied only for [game key sales](/es/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). Instead of a token, the request must include the following headers:\n   - `x-unauthorized-id` with a request ID\n   - `x-user` with the user's email address encoded in Base64\n\n## Useful links\n\n- [API calls by interaction model](https://developers.xsolla.com/es/api/catalog/)\n- [Endpoint types](https://developers.xsolla.com/es/api/catalog/)\n- [Errors handling](https://developers.xsolla.com/es/api/catalog/)\n- [API keys](https://developers.xsolla.com/es/api/catalog/)\n\n# Core entity structure\n\nItems of all types (virtual items, bundles, virtual currency, and keys) use a similar data structure. Understanding the basic structure simplifies working with the API and helps you navigate the documentation more easily.\n\n<div class=\"note\"><b>Note</b><br><br>Some calls may include additional fields but they don't change the basic structure.</div>\n\n**Identification**\n\n- `merchant_id` — company ID in [Publisher Account](https://publisher.xsolla.com/)\n- `project_id` — project ID in Publisher Account\n- `sku` — item SKU, unique within the project\n\n**Store display**\n\n- `name` — item name\n- `description` — item description\n- `image_url` — image URL\n- `is_enabled` — item availability\n- `is_show_in_store` — whether the item is displayed in the catalog\n\nFor more information about managing item availability in the catalog, see the [documentation](/es/items-catalog/catalog-features/items-availability/).\n\n**Organization**\n\n- `type` — item type, for example, a virtual item (`virtual_item`) or bundle (`bundle`)\n- `groups` — groups the item belongs to\n- `order` — display order in the catalog\n\n**Sale conditions**\n\n- `prices` — prices in real or virtual currency\n- `limits` — purchase limits\n- `periods` — availability periods\n- `regions` — regional restrictions\n\n**Example of core entity structure:**\n\n```json\n{\n  \"attributes\": [],\n  \"bundle_type\": \"virtual_currency_package\",\n  \"content\": [\n    {\n      \"description\": {\n        \"en\": \"Main in-game currency\"\n      },\n      \"image_url\": \"https://.../image.png\",\n      \"name\": {\n        \"en\": \"Crystals\",\n        \"de\": \"Kristalle\"\n      },\n      \"quantity\": 500,\n      \"sku\": \"com.xsolla.crystal_2\",\n      \"type\": \"virtual_currency\"\n    }\n  ],\n  \"description\": {\n    \"en\": \"Crystals x500\"\n  },\n  \"groups\": [],\n  \"image_url\": \"https://.../image.png\",\n  \"is_enabled\": true,\n  \"is_free\": false,\n  \"is_show_in_store\": true,\n  \"limits\": {\n    \"per_item\": null,\n    \"per_user\": null,\n    \"recurrent_schedule\": null\n  },\n  \"long_description\": null,\n  \"media_list\": [],\n  \"name\": {\n    \"en\": \"Medium crystal pack\"\n  },\n  \"order\": 1,\n  \"periods\": [\n    {\n      \"date_from\": null,\n      \"date_until\": \"2020-08-11T20:00:00+03:00\"\n    }\n  ],\n  \"prices\": [\n    {\n      \"amount\": 20,\n      \"country_iso\": \"US\",\n      \"currency\": \"USD\",\n      \"is_default\": true,\n      \"is_enabled\": true\n    }\n  ],\n  \"regions\": [],\n  \"sku\": \"com.xsolla.crystal_pack_2\",\n  \"type\": \"bundle\",\n  \"vc_prices\": []\n}\n```\n\n# Basic purchase flow\n\nThe Xsolla API allows you to implement in-game store logic, including retrieving the item catalog, managing the cart, creating orders, and tracking their status. Depending on the integration scenario, API calls are divided into **Admin** and **Catalog** subsections, which use different [authentication schemes](/es/api/catalog/section/authentication).\n\nThe following example shows a basic flow for setting up and operating a store, from item creation to purchase.\n\n## Create items and groups (Admin)\n\nCreate an item catalog for your store, such as virtual items, bundles, or virtual currency.\n\nExample API calls:\n- [Create virtual item](/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)\n- [Create bundle](/es/api/catalog/bundles-admin/admin-create-bundle)\n- [Create virtual currency](/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)\n\n## Set up promotions, chains, and limits (Admin)\n\nConfigure user acquisition and monetization tools, such as discounts, bonuses, daily rewards, or offer chains.\n\nExample API calls:\n- [Create bonus promotion](/es/api/liveops/promotions-bonuses/create-bonus-promotion)\n- [Create daily reward](/es/api/liveops/daily-chain-admin/admin-create-daily-chain)\n- [Create unique catalog offer promotion](/es/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)\n\n## Get item information (Client)\n\nConfigure item display in your application.\n\n<div class=\"notice\">\n  <b>Notice</b><br><br>\n    Do not use API calls from the Admin subsection to build a user catalog. These API calls have <a href=\"https://developers.xsolla.com/es/api/getting-started/#api_rate_limits\" target=\"_blank\">rate limits</a> and aren't intended for user traffic.\n</div>\n<br>\n\nExample API calls:\n- [Get virtual items list](/es/api/catalog/virtual-items-currency-catalog/get-virtual-items)\n- [Get item group list](/es/api/catalog/virtual-items-currency-catalog/get-item-groups)\n- [Get list of bundles](/es/api/catalog/bundles-catalog/get-bundle-list)\n- [Get sellable items list](/es/api/catalog/common-catalog/get-sellable-items)\n\n<div class=\"note\">\n  <b>Note</b><br><br>\n    By default, catalog API calls return items that are currently available in the store at the time of the request. To retrieve items that are not yet available or are no longer available, include the parameter <code>\"show_inactive_time_limited_items\": 1</code> in the catalog request.\n</div>\n\n## Sell items\n\nYou can sell items using the following methods:\n- Fast purchase — sell one SKU multiple times.\n- Cart purchase — the user adds items to the cart, removes items, and updates quantities within a single order.\n\nIf an item is purchased using virtual currency instead of real money, use the [Create order with specified item purchased by virtual currency](/es/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency) API call. The payment UI is not required, as the charge is processed when the API call is executed.\n\nFor free item purchase, use the [Create order with specified free item](/es/api/catalog/free-item/create-free-order-with-item) API call or the [Create order with free cart](/es/api/catalog/free-item/create-free-order) API call. The payment UI is not required — the order is immediately set to the <code>done</code> status.\n\n### Fast purchase\n\nUse the client-side API call to [create an order with a specified item](/es/api/catalog/payment-client-side/create-order-with-item). The call returns a token used to open the payment UI.\n\n<div class=\"note\">\n  <b>Note</b><br><br>\n    Discount information is available to the user only in the payment UI. Promo codes are not supported.\n</div>\n\n### Cart purchase\n\nCart setup and purchase can be performed on the client or on the server side.\n\n**Set up and purchase a cart on the client**\n\nImplement the logic of adding and removing items by yourself. Before calling the API for setting up a cart, you will not have information about which promotions will be applied to the purchase. This means that the total cost and details of the added bonus items will not be known.\n\nImplement the following cart logic:\n1. After the player has filled a cart, use the [Fill cart with items](/es/api/shop-builder/operation/cart-fill/) API call. The call returns the current information about the selected items (prices before and after discounts, bonus items).\n2. Update the cart contents based on user actions:\n   - To add an item or change item quantity, use the [Update cart item by cart ID](/es/api/shop-builder/operation/put-item-by-cart-id/) API call.\n   - To remove an item, use the [Delete cart item by cart ID](/es/api/shop-builder/operation/delete-item-by-cart-id/) API call.\n\n<div class=\"note\">\n  <b>Note</b><br><br>\n    To get the current status of the cart, use the Get current user's cart API call.\n</div>\n\n3. Use the [Create order with all items from current cart](/es/api/shop-builder/operation/create-order/) API call. The call returns the order ID and payment token. The newly created order is set to <code>new</code> status by default.\n\n**Set up and purchase a cart on the server**\n\nThis setup option may take longer for setting the cart up, since each change to the cart must be accompanied by API calls.\n\nImplement the following cart logic:\n1. After the player has filled a cart, use the [Fill cart with items](/es/api/catalog/cart-server-side) API call. The call returns current information about the selected items (prices before and after discounts, bonus items).\n2. Use the [Create order with all items from current cart](/es/api/shop-builder/operation/create-order/) API call. The call returns the order ID and payment token. The newly created order is set to <code>new</code> status by default.\n\n## Open payment UI\n\nUse the returned token to open the payment UI in a new window. Other ways to open the payment UI are described in the [documentation](/es/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui).\n\n| Action                          | Endpoint                                                                  |\n|:--------------------------------|:--------------------------------------------------------------------------|\n| Open in production environment. | <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |\n| Open in sandbox mode.           | <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |\n\n<div class=\"note\">\n  <b>Note</b><br><br>\n    Use sandbox mode during development and testing. Test purchases don't charge real accounts. You can use <a href=\"https://developers.xsolla.com/es/dev-resources/testing/test-cards/\">test bank cards</a>.\n\n    After the first real payment is made, a strict sandbox payment policy takes effect. A payment in sandbox mode is available only to users specified in [Publisher Account > Company settings > Users](https://publisher.xsolla.com/0/settings/users).\n\n    Buying virtual currency and items for real currency is possible only after signing a license agreement with Xsolla. To do this, in [Publisher Account](https://publisher.xsolla.com/), go to **Agreements & Taxes > Agreements**, complete the agreement form, and wait for confirmation. It may take up to 3 business days to review the agreement.\n</div>\n\nTo enable or disable sandbox mode, change the value of the `sandbox` parameter in the request for fast purchase and cart purchase. Sandbox mode is off by default.\n\nPossible order statuses:\n- `new` — order created\n- `paid` — payment received\n- `done` — item delivered\n- `canceled` — order canceled\n- `expired` — payment expired\n\nTrack order status using one of the following methods:\n- [webhooks configured on your server](/es/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)\n- [short-polling](/es/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_short_polling)\n- [WebSocket API](/es/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_websocket_api)\n\n## Useful links\n\n- Authentication\n- [API calls by interaction model](/es/api/catalog/section/authentication)\n- [Payment testing](/es/dev-resources/testing/general-info/#general_overview)\n- [Set up order status tracking](/es/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)\n- [Webhooks](/es/webhooks/overview)\n- [Rate limits](/es/api/login/rate-limits)\n- [Errors handling](/es/api/getting-started/#api_errors_handling)\n- [API keys](/es/api/getting-started/#api_keys_overview)\n\n# Pagination\n\nAPI calls that return large sets of records (for example, when building a catalog) return data in pages. Pagination is a mechanism that limits the number of items returned in a single API response and allows you to retrieve subsequent pages sequentially.\n\nUse the following parameters to control the number of returned items:\n\n- `limit` — number of items per page\n- `offset` — index of the first item on the page (numbering starts from 0)\n- `has_more` — indicates whether another page is available\n- `total_items_count` — total number of items\n\nExample request:\n\n```\nGET /items?limit=20&offset=40\n```\n\nResponse example:\n\n```json\n{\n  \"items\": [...],\n  \"has_more\": true,\n  \"total_items_count\": 135\n}\n```\n\nIt is recommended to send subsequent requests until the response returns `has_more = false`.\n\n# Date and time format\n\nDates and time values are passed in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n\nThe following are supported:\n\n- UTC offset\n- `null` value when there is no time restriction for displaying an item\n- [Unix timestamp](https://www.unixtimestamp.com/) (in seconds) used in some fields\n\nFormat: `YYYY-MM-DDTHH:MM:SS±HH:MM`\n\nExample: `2026-03-16T10:00:00+03:00`\n\n# Localization\n\nXsolla supports localization of user-facing fields such as item name and description. Localized values are passed as an object where the language code is used as the key. The full list of supported languages is available in the [documentation](/es/doc/shop-builder/references/supported-languages/).\n\n**Supported fields**\n\nLocalization can be specified for the following parameters:\n\n- `name`\n- `description`\n- `long_description`\n\n**Locale format**\n\nThe locale key can be specified in one of the following formats:\n\n- Two-letter language code: `en`, `ru`\n- Five-letter language code: `en-US`, `ru-RU`, `de-DE`\n\n**Examples**\n\nExample with a two-letter language code:\n\n```json\n{\n  \"name\": {\n    \"en\": \"Starter Pack\",\n    \"ru\": \"Стартовый набор\"\n  }\n}\n```\n\nExample with a five-letter language code:\n\n```json\n{\n  \"description\": {\n    \"en-US\": \"Premium bundle\",\n    \"de-DE\": \"Premium-Paket\"\n  }\n}\n```\n\n# Error response format\n\nIf an error occurs, the API returns an HTTP status and a JSON response body. The full list of store-related errors is available in the [documentation](/es/dev-resources/references/errors/store-errors/).\n\n**Response example:**\n\n```json\n{\n  \"errorCode\": 1102,\n  \"errorMessage\": \"Validation error\",\n  \"statusCode\": 422,\n  \"transactionId\": \"c9e1a...\"\n}\n```\n\n- `errorCode` — error code.\n- `errorMessage` — short error description.\n- `statusCode` — HTTP response status.\n- `transactionId` — request ID. Returned only in some cases.\n- `errorMessageExtended` — additional error details, such as request parameters. Returned only in some cases.\n\n**Extended response example:**\n\n```json\n{\n  \"errorCode\": 7001,\n  \"errorMessage\": \"Chain not found\",\n  \"errorMessageExtended\": {\n    \"chain_id\": \"test_chain_id\",\n    \"project_id\": \"test_project_id\",\n    \"step_number\": 2\n  },\n  \"statusCode\": 404\n}\n```\n\n**Common HTTP status codes**\n\n- `400` — invalid request\n- `401` — authentication error\n- `403` — insufficient permissions\n- `404` — resource not found\n- `422` — validation error\n- `429` — rate limit exceeded\n\n**Recommendations**\n\n- Handle the HTTP status and the response body together.\n- Use `errorCode` to process errors related to application logic.\n- Use `transactionId` to identify requests more quickly when analyzing errors.",
    "title": "API de LiveOps",
    "version": "2.0.0"
  },
  "openapi": "3.1.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`.\n\nPara configurar el límite de códigos propiamente dicho, vaya a Admin:\n* [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`.\n\nPara configurar el límite de códigos propiamente dicho, vaya a Admin:\n* [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.\nLa promoción de cupones creada está deshabilitada por defecto.\nNo estará lista para el canje hasta que la active.\nUtilice 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.\nLa promoción de cupones creada está deshabilitada por defecto.\nNo estará lista para su canje hasta que la active.\nUtilice 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.\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": "Creates an upsell for a project. <br> <div class=\"notice\">\n  <strong>Notice</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Update an upsell for a project. <br> <div class=\"notice\">\n  <strong>Notice</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Changes an upsell’s status in a project to be either active or inactive. <br> <div class=\"notice\">\n  <strong>Notice</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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.\n\nRecuerde que esta solicitud PUT sobrescribe todos los puntos de valor establecidos previamente para los artículos del proyecto.\n\nPara evitar la eliminación involuntaria de puntos de valor, incluya todos los artículos y sus respectivos puntos de valor en cada solicitud PUT.\n\nSi 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.\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.\n\nTras 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>\n\nA 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.\n\nCuando se desactiva la cadena de ofertas, los usuarios pierden temporalmente el acceso a ella, pero se guarda su progreso.\n\nCuando 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.\n\nLa promoción de códigos promocionales creada está desactivada por defecto.\nNo estará lista para el canje hasta que la active.\nUtilice 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.\n\nLa promoción de códigos promocionales creada está deshabilitada por defecto.\nNo estará lista para el canje hasta que la active.\nUtilice 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.\nLa promoción de oferta única de catálogo creada está desactivada por defecto.\nNo se puede canjear hasta que la active.\nUtilice 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.\nLa promoción de oferta única de catálogo creada está desactivada por defecto.\nNo se puede canjear hasta que la active.\nUtilice 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.\n<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.\n\nLa 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:\n* [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.\n\nLa 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:\n* [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.\n\nLa 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:\n* [Discount Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)\n* [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.\n\nLa 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:\n* [Discount Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)\n* [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.\n\nLa 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:\n* [Discount Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)\n* [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.\n\nLa 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:\n* [Discount Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)\n* [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.\n\nLa 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:\n* [Discount Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)\n* [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.\n\nLa 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:\n* [Discount Promotions](https://developers.xsolla.com/es/api/shop-builder/tag/promotions-discounts/)\n* [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": "Gets coupons rewards by its code.\nCan be used to allow users to choose one of many items as a bonus.\nThe usual case is choosing a DRM if the coupon contains a game as a bonus (`type=unit`). <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Redeems a coupon code. The user gets a bonus after a coupon is redeemed. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Gets a list of upsell items in a project if they have already been set up. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Gets promo code rewards by its code.\nCan be used to allow users to choose one of many items as a bonus.\nThe usual case is choosing a DRM if the promo code contains a game as a bonus (`type=unit`). <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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.\nTras 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.\nUna 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": "Determines if the code is a promo code or coupon code and if the user can apply it. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Retrieves the list of top 10 contributors to the specific reward chain under the current user's clan. If a user doesn't belong to a clan, the call returns an empty array. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Updates a current user's clan via user attributes. Claims all rewards from reward chains that were not claimed for a previous clan and returns them in the response. If the user was in a clan and now is not — their inclusion in the clan will be revoked. If the user changed the clan — the clan will be changed. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Client endpoint. Gets the current user's daily rewards.\n<div class=\"notice\"><strong>Notice</strong><br><br>A method returns a paginated list of items. The maximum and default value is <strong>50 items per response.</strong> To get more items from the list, use the <code>limit</code> and <code>offset</code> parameters and fetch more pages. For example, when calling a method with <code>limit = 25</code> and <code>offset = 100</code>, the response returns 25 items starting from the 101st item in the overall list.</div> <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</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": "Client endpoint. Gets the current user’s daily reward by its ID. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Client endpoint. Claims the current user's step reward from a daily reward. All steps can only be claimed in sequential order. The reward for a missed step cannot be obtained for virtual or real currency, or by watching an ad <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Gets the current user’s offer chains.\n<div class=\"notice\"><strong>Notice</strong><br><br>All projects have a limit on the number of items that can be returned in a single response. The default and maximum value is <strong>30 items per response</strong>. To get more data, use the <code>limit</code> and <code>offset</code> query parameters for pagination.</div> <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\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": "Gets the current user’s offer chain by the offer chain's ID. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Completes the current user’s progression through the offer chain step and grants the associated reward.\n<div class=\"notice\">\n  <strong>Notice</strong><br><br>\n    Use this call only for free steps in the offer chain.\n    For steps that require payment in real currency, use the <a href=\"/api/shop-builder/operation/order-user-offer-chain-step-reward\">Create order for paid offer chain step</a> call instead.\n</div> <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</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": "Creates an order for the item associated with the specified paid offer chain step. The created order gets the `new` order status.\n\nTo open the payment UI in a new window, use the following link: `https://secure.xsolla.com/paystation4/?token={token}`, where `{token}` is the received token.\n\nFor testing purposes, use this URL: `https://sandbox-secure.xsolla.com/paystation4/?token={token}`.\n\n<div class=\"notice\">\n  <strong>Notice</strong> <br><br>\n    This method must be used on the client side. The user's IP address is used to determine the country, which affects the currency and available payment methods. Using this method from the server side may result in incorrect currency detection and affect payment methods in <a href=\"https://developers.xsolla.com/es/doc/pay-station/\">Pay Station</a>.\n</div><br>\n\n<div class=\"notice\">\n  <strong>Notice</strong><br><br>\n    Use this call only for paid offer chain steps.\n    For free steps, use the <a href=\"/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Claim free offer chain step</a> call instead.\n</div>\n<br>\n<div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "operationId": "order-user-offer-chain-step-reward",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_step_number-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Cart-Payment_200-order-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-step-not-found"
          },
          "422": {
            "content": {
              "application/json": {
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-offer-chain-claim-error-invalid-step"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/offer-chain-error-model"
                }
              }
            },
            "description": "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": "Client endpoint. Gets the current user’s reward chains.\n<div class=\"notice\">\n  <strong>Attention</strong><br><br>\n    All projects have the limitation to the number of items that you can\n    get in the response. The default and maximum value is <strong>50 items\n    per response.</strong> To get more data page by page, use <b>limit</b>\n    and <b>offset</b> fields.\n</div> <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</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": "Client endpoint. Gets the current user’s value point balance. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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": "Client endpoint. Claims the current user’s step reward from a reward chain. <br> <div class=\"note\">\n  <strong>Note</strong><br><br>\n    This API call uses a user JWT for authorization.<br><br>\n    Include the token in the <code>Authorization</code> header in the following format: <code>Bearer &lt;user_JWT&gt;</code>. For more information about user JWT, see the <strong>Security</strong> block for this call.\n</div>",
        "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:\n* Desaparece de la lista de promociones establecidas en su proyecto.\n* 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.\n\nDespués de eliminarla, la promoción no se puede restaurar.\nLos 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:\n* Desaparece de la lista de promociones establecidas en su proyecto.\n* 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.\n\nDespués de eliminarla, la promoción no se puede restaurar.\nLos 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.\n\nLa promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.\nLa 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.\n\nLa promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.\nLa 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.\n\nLas promociones proporcionan un descuento (%) en los artículos.\nEl 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.\n\nLas promociones proporcionan un descuento (%) en los artículos.\nEl 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:\n* Desaparece de la lista de promociones establecidas en su proyecto.\n* 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.\n\nDespué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.\n\nLa promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.\nLa 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.\n\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>\n\nLa promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.\nLa 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:\n* Desaparece de la lista de promociones establecidas en su proyecto.\n* 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.\n\nDespué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.\n\nLas promociones proporcionan un descuento (%) para los artículos.\nEl 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.\nEl precio del artículo se reducirá en función del valor calculado de este porcentaje.",
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "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"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "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,\nen 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.\n\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>\n\nLas promociones ofrecen un descuento (%) en los artículos.\nEl 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.\n\n<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": "Resets the value points balance and progress of all users in the reward chain.<br> The balance is tied to the value points type, not to a specific reward chain. If these value points are used in other chains, the balance will be reset in all chains that use these value points.<br> After the reset, you can update the reward chain’s validity period, and users will be able to progress through it again.<br> The clan balance is calculated as the sum of its members’ balances. Therefore, after the reset, the clan balance is also reset.<br> This request is irreversible and applies to all users of the project.\n\n<div class=\"notice\"><strong>Notice</strong>\n  <br><br>\n  You should not reset the reward chain during its validity period. In this case, users may lose earned value points before they claim their reward.\n</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:\n* Desaparece de la lista de promociones establecidas en su proyecto.\n* 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.\n\nDespué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": [
    {
      "description": "Promotions are marketing tools designed to attract new users and increase sales. Using Xsolla API, you can configure the following promotions:\n\n* Discounts — reduced prices on selected items.\n* Bonuses — items granted to users along with their purchase.\n* Coupons — codes that allow users to receive one or more bonus items when redeeming.\n* Promo codes — codes that allow users to receive bonus items, a discount on a specific item, or a discount on the entire cart. Unlike coupons that are redeemed after the user enters them, promo codes are redeemed during a purchase (at checkout).\n* Unique offers — hidden items displayed in the catalog to users who have entered a unique offer code. If the code is not entered, the items are not displayed.\n\nExample flow for configuring a discount promotion:\n1. Create items using the calls from the **Admin** subsection of the [Virtual items and currency](/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/es/api/catalog/bundles-admin/admin-create-bundle), or [Game keys](/es/api/catalog/game-keys-admin) groups.\n2. Create a promotion using the [Create discount promotion for item](/es/api/liveops/promotions-discounts/create-item-promotion/) call. In the `items` array, pass the necessary item SKUs.\n3. Set up promotion validity periods. To do this, call the [Create discount promotion for item](/es/api/liveops/promotions-discounts/create-item-promotion/) or [Update item promotion](/es/api/liveops/promotions-discounts/update-item-promotion/) methods, and pass the `promotion_periods` field as an array of objects where `date_from` defines the start, and `date_until` defines the end date of the validity period.\n4. Activate a promotion using the [Update item promotion](/es/api/liveops/promotions-discounts/update-item-promotion/) call. Pass the `\"is_enabled\": true` parameter.\n5. To get information about item prices, including discounted prices, call the client API methods for getting an item catalog from the [Common > Catalog](/es/api/catalog/tag/common-catalog/), [Virtual Items and Currency > Catalog](/es/api/catalog/virtual-items-currency-catalog/get-virtual-items/), and [Bundles > Catalog](/es/api/catalog/bundles-catalog/get-bundle-list/) subsections.\n\n![Promotion configuration example](https://cdn.xsolla.net/developers/current/images/api_docs/promo-overview.svg)\n\nRefer to our documentation for detailed information about configuring promotions:\n* [Discounts](https://developers.xsolla.com/es/liveops/promotion-tools/discounts/)\n* [Bonuses](https://developers.xsolla.com/es/liveops/promotion-tools/bonuses/)\n* [Coupons](https://developers.xsolla.com/es/liveops/promotion-tools/coupons/)\n* [Promo codes](https://developers.xsolla.com/es/liveops/promotion-tools/promo-codes/)\n* [Unique catalog offers](https://developers.xsolla.com/es/liveops/promotion-tools/unique-offer/)",
      "name": "promotions-overview",
      "x-displayName": "Overview"
    },
    {
      "description": "You can call API methods from this subsection to manage different types of promotions.",
      "name": "promotions-common",
      "x-displayName": "Common API calls"
    },
    {
      "description": "Call API methods from this subsection to configure and manage coupon promotions.\n\n<div class=\"note\">\n  <p><b>Note</b></p>\n  <p>Refer to our <a href=\"https://developers.xsolla.com/es/liveops/promotion-tools/coupons/\">documentation</a> for detailed information about coupons.</p>\n</div>",
      "name": "promotions-coupons",
      "x-displayName": "Cupones"
    },
    {
      "description": "Call API methods from this subsection to configure and manage promo code promotions.\n\n<div class=\"note\">\n  <p><b>Note</b></p>\n  <p>Refer to our <a href=\"https://developers.xsolla.com/es/liveops/promotion-tools/promo-codes/\">documentation</a> for detailed information about promo codes.</p>\n</div>",
      "name": "promotions-promo-codes",
      "x-displayName": "Códigos promocionales"
    },
    {
      "description": "Call API methods from this subsection to configure and manage unique catalog offers.\n\n<div class=\"note\">\n  <p><b>Note</b></p>\n  <p>Refer to our <a href=\"https://developers.xsolla.com/es/liveops/promotion-tools/unique-offer/\">documentation</a> for detailed information about unique offers.</p>\n</div>",
      "name": "promotions-unique-catalog-offers",
      "x-displayName": "Ofertas únicas por catálogo"
    },
    {
      "description": "Call API methods from this subsection to configure and manage discount promotions.\n\n<div class=\"note\">\n  <p><b>Note</b></p>\n  <p>Refer to our <a href=\"https://developers.xsolla.com/es/liveops/promotion-tools/discounts/\">documentation</a> for detailed information about discounts.</p>\n</div>",
      "name": "promotions-discounts",
      "x-displayName": "Descuentos"
    },
    {
      "description": "Call API methods from this subsection to configure and manage bonus promotions.\n\n<div class=\"note\">\n  <p><b>Note</b></p>\n  <p>Refer to our <a href=\"https://developers.xsolla.com/es/liveops/promotion-tools/bonuses/\">documentation</a> for detailed information about bonuses.</p>\n</div>",
      "name": "promotions-bonuses",
      "x-displayName": "Bonificaciones"
    },
    {
      "description": "Personalization allows you to specify the conditions for displaying the item catalog and applying promotions only for specific authorized users. Conditions are defined based on user attributes and allow you to offer items and promotions that are most relevant to particular users.\n\nThe following personalization types are available:\n\n\n* [Xsolla-side personalization](/es/liveops/promotion-tools/personalization/#guides_personalization_on_xsolla_side). Personalization rules and logic are configured and stored on the Xsolla side. You pass user attributes, and Xsolla uses them to generate a personalized catalog.\n* [Partner-side personalization](/es/liveops/promotion-tools/personalization/#guides_personalization_on_partner_side). You configure personalization rules and logic on your side and send a final catalog payload for a specific user to Xsolla.\n\n<div class=\"note\">\n  <b>Note</b><br><br>\n  You can use only one personalization type. To change it, follow the\n  <a href=\"/liveops/promotion-tools/personalization/#guides_personalization_change\">instructions</a>.\n</div>\n\n\nTo configure personalization on the Xsolla side using the Xsolla API:\n\n1. Create items using the API calls from the **Admin** subsection of the [Virtual items and currency](/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/es/api/catalog/bundles-admin/admin-create-bundle) or [Game keys](/es/api/catalog/game-keys-admin) groups.\n2. [Set up user attributes using the Xsolla Login API](/es/liveops/promotion-tools/personalization/#web_shop_guide_personalization_setting_attributes) and keep them synchronized by updating data in Xsolla whenever changes occur in your game.\n3. Configure personalization for items or promotions:\n    * To personalize the item catalog, define catalog display rules using the [Create catalog filter rule](/es/api/liveops/personalized-catalog/create-filter-rule) API call:\n        * In the [attribute_conditions](/es/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=attribute_conditions) array, specify the conditions that determine item availability based on user attributes.\n        * In the [items](/es/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=items) array, provide the list of items that should be visible to the user if their attributes match the specified conditions.\n    * To configure personalized promotions, use the [create and update API calls for the required promotion type](/es/api/liveops/promotions-discounts/create-item-promotion). In the [attribute_conditions](/es/api/liveops/promotions-discounts/create-item-promotion) array, specify the conditions that determine promotion availability based on user attributes.\n\n4. Pass the [user JWT](/es/api/login/getting-user-token#getting-user-token) with user attributes to the [catalog retrieval API calls](https://developers.xsolla.com/es/api/catalog/virtual-items-currency-catalog/get-virtual-items) to receive a personalized catalog.\n\n**Sequence for configuring and applying Xsolla-side personalization for item catalog:**\n\n![Personalization for item catalog](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png)\n\n**Sequence for configuring and applying Xsolla-side personalization for promotions:**\n\n![Personalization for promotions](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)\n\n<div class=\"note\">\n<b>Note</b><br><br>\nDetailed information is provided:\n<ul>\n  <li>in the <a href=\"/liveops/promotion-tools/personalization/\">guide to configuring personalization on the Xsolla side and the partner side</a></li>\n  <li>in the step-by-step tutorial on <a href=\"/doc/shop-builder/tutorials/personalization-tutorial/\">item catalog personalization on the Xsolla side</a></li>\n</ul>\n</div>",
      "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-overview",
        "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"
      ]
    }
  ]
}