{
  "components": {
    "examples": {
      "200-admin-daily-chain": {
        "summary": "Пример ежедневной награды",
        "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": "Пример списка ежедневных наград",
        "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": "Пример цепочки предложений",
        "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": "Пример списка цепочек предложений",
        "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": "Пример клановой цепочки наград",
        "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": "Пример ежедневной награды пользователя",
        "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": "Пример списка ежедневных наград пользователя",
        "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": "Пример клановой цепочки наград",
        "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": "Пример цепочки наград",
        "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": "Пример цепочки предложений для текущего пользователя",
        "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": "Пример списка цепочек предложений для текущего пользователя",
        "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": "Пример цепочки наград",
        "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": "Ежедневная награда не найдена",
        "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": "Уровень ежедневной награды не найден",
        "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": "Цепочка не найдена",
        "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": "Уровень цепочки не найден",
        "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": "Активная ежедневная награда не может быть обновлена",
        "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": "ID ежедневной награды не подходит",
        "value": {
          "errorCode": 6205,
          "errorMessage": "[0401-6205]: Chain ID mismatch. Please, check the chain ID in your request body and URL",
          "errorMessageExtended": {
            "body_chain_id": 2,
            "project_id": 0,
            "url_chain_id": 1
          },
          "statusCode": 422,
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "422-admin-daily-chain-error-duplicate-step-ids": {
        "description": "Please, ensure that daily reward step IDs are unique in the request body.",
        "summary": "ID уровней ежедневной награды дублируются",
        "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": "Некорректные товары для уровня цепочки",
        "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": "Некорректный период действия ежедневной награды",
        "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": "Некорректный порядок уровней в цепочке",
        "value": {
          "errorCode": 6210,
          "errorMessage": "[0401-6210]: Chain step numbers are invalid",
          "errorMessageExtended": {
            "incorrect_step_numbers": {
              "duplicates": [
                2,
                7
              ],
              "missing": [
                3,
                4,
                5,
                6
              ],
              "out_of_range": [
                7,
                8
              ]
            },
            "project_id": 0
          },
          "statusCode": 422,
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "422-admin-daily-chain-error-invalid-chain-step-ids": {
        "description": "Some of step IDs was not found. Please, double check if specified daily reward step IDs actually exist.",
        "summary": "ID уровней ежедневной награды не найдены",
        "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": "Недопустимый формат даты",
        "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": "Превышен лимит количества товаров",
        "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": "Слишком много уровней",
        "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=\"/ru/api/shop-builder/operation/admin-toggle-offer-chain\">Toggle offer chain</a> call.",
        "summary": "Активную цепочку предложений нельзя обновить",
        "value": {
          "errorCode": 6209,
          "errorMessage": "[0401-6209]: Active chain cannot be updated. Please deactivate it first",
          "errorMessageExtended": {
            "chain_id": 2,
            "project_id": 0
          },
          "statusCode": 422,
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "422-admin-offer-chain-error-chain-id-mismatch": {
        "description": "Offer chain ID in the request body does not match the ID in the URL.",
        "summary": "Несовпадение ID цепочки",
        "value": {
          "errorCode": 6205,
          "errorMessage": "[0401-6205]: Chain ID mismatch. Please, check the chain ID in your request body and URL",
          "errorMessageExtended": {
            "body_chain_id": 2,
            "project_id": 0,
            "url_chain_id": 1
          },
          "statusCode": 422,
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "422-admin-offer-chain-error-duplicate-step-ids": {
        "description": "Chain step IDs must be unique in the request body.",
        "summary": "Повторяющиеся ID уровней цепочки",
        "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": "Некорректные товары для уровня цепочки",
        "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": "Некорректный период действия цепочки предложений",
        "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": "Некорректный порядок уровней в цепочке",
        "value": {
          "errorCode": 6210,
          "errorMessage": "[0401-6210]: Chain step numbers are invalid",
          "errorMessageExtended": {
            "incorrect_step_numbers": {
              "duplicates": [
                2,
                7
              ],
              "missing": [
                3,
                4,
                5,
                6
              ],
              "out_of_range": [
                7,
                8
              ]
            },
            "project_id": 0
          },
          "statusCode": 422,
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "422-admin-offer-chain-error-invalid-chain-step-ids": {
        "description": "Some of the step IDs were not found. Double-check that the specified chain step IDs exist. To do this, use the <a href=\"/api/shop-builder/operation/order-user-offer-chain-step-reward#tag/offer-chain-admin/operation/admin-get-offer-chain\">Get offer chain</a> call.",
        "summary": "ID уровней цепочки не найдены",
        "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": "Недопустимый формат даты",
        "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": "Превышен лимит количества товаров",
        "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": "Слишком много уровней",
        "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": "Невозможно получить награду за уровень ежедневной награды",
        "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": "Невозможно получить награду на уровне",
        "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": "Уникальный код, чувствительный к регистру. Содержит буквы и цифры.",
        "in": "path",
        "name": "code",
        "required": true,
        "schema": {
          "example": "WINTER2021",
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        }
      },
      "codes-query-param": {
        "description": "Уникальные коды, чувствительные к регистру. Содержат только буквы и цифры.",
        "in": "query",
        "name": "codes[]",
        "schema": {
          "items": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "type": "array"
        }
      },
      "coupon_code-path-param": {
        "description": "Уникальный код, чувствительный к регистру. Содержит буквы и цифры.",
        "in": "path",
        "name": "coupon_code",
        "required": true,
        "schema": {
          "example": "WINTER2021",
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        }
      },
      "daily_chain_id-path-param": {
        "description": "ID ежедневной награды.",
        "in": "path",
        "name": "daily_chain_id",
        "required": true,
        "schema": {
          "example": 101,
          "type": "integer"
        }
      },
      "daily_chain_step_number-path-param": {
        "description": "Номер уровня ежедневной награды.",
        "in": "path",
        "name": "step_number",
        "required": true,
        "schema": {
          "example": 1,
          "type": "integer"
        }
      },
      "enabled-query-param": {
        "description": "Фильтрует элементы по флагу `is_enabled`.",
        "in": "query",
        "name": "enabled",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "external_id-promotion-path-param": {
        "description": "External ID акции. Уникальный идентификатор акции в рамках проекта.",
        "in": "path",
        "name": "external_id",
        "required": true,
        "schema": {
          "example": "coupon_44056_1",
          "type": "integer"
        }
      },
      "is_enabled-query-param": {
        "description": "Фильтрует элементы по флагу `is_enabled`.",
        "in": "query",
        "name": "is_enabled",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "is_expired-daily-chain-query-param": {
        "description": "Фильтруйте ежедневные награды, чтобы показывать только те, у которых срок действия истек.",
        "in": "query",
        "name": "is_expired",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "item_sku-path-param": {
        "description": "Артикул товара.",
        "in": "path",
        "name": "item_sku",
        "required": true,
        "schema": {
          "example": "booster_mega_1",
          "type": "string"
        }
      },
      "limit-query-param": {
        "description": "Лимит количества элементов на странице.",
        "example": 50,
        "in": "query",
        "name": "limit",
        "required": false,
        "schema": {
          "example": 50,
          "minimum": 1,
          "type": "integer"
        }
      },
      "offer_chain_id-path-param": {
        "description": "ID цепочки предложений.",
        "in": "path",
        "name": "offer_chain_id",
        "required": true,
        "schema": {
          "example": 101,
          "type": "integer"
        }
      },
      "offer_chain_step_number-path-param": {
        "description": "Номер уровня в цепочке предложений.",
        "in": "path",
        "name": "step_number",
        "required": true,
        "schema": {
          "example": 1,
          "type": "integer"
        }
      },
      "offset-query-param": {
        "description": "Номер элемента, с которого выполняется вывод на странице (нумерация ведется с 0).",
        "example": 0,
        "in": "query",
        "name": "offset",
        "required": false,
        "schema": {
          "example": 0,
          "minimum": 0,
          "type": "integer"
        }
      },
      "personalized-catalog-rule_id-path-param": {
        "description": "ID правила.",
        "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": "Уникальный код, чувствительный к регистру. Содержит буквы и цифры.",
        "in": "path",
        "name": "promocode_code",
        "required": true,
        "schema": {
          "example": "SO6rew99j9",
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        }
      },
      "promotion_id-path-param": {
        "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
        "in": "path",
        "name": "promotion_id",
        "required": true,
        "schema": {
          "example": 111425,
          "type": "integer"
        }
      },
      "reward_chain_id-path-param": {
        "description": "ID цепочки наград.",
        "in": "path",
        "name": "reward_chain_id",
        "required": true,
        "schema": {
          "example": 101,
          "type": "integer"
        }
      },
      "reward_chain_step_id-path-param": {
        "description": "ID уровня цепочки наград.",
        "in": "path",
        "name": "step_id",
        "required": true,
        "schema": {
          "example": 120,
          "type": "integer"
        }
      },
      "type-daily-chain-query-param": {
        "description": "Фильтрует ежедневные награды, чтобы возвращать только указанный тип.",
        "in": "query",
        "name": "type",
        "required": false,
        "schema": {
          "enum": [
            "calendar_hard",
            "rolling_skippable",
            "rolling_unskippable"
          ],
          "type": "string"
        }
      },
      "user_external_id-query-param": {
        "description": "External ID пользователя",
        "in": "query",
        "name": "user_external_id",
        "required": true,
        "schema": {
          "example": "d342dad2-9d59-11e9-a384-42010aa8003f",
          "type": "string"
        }
      },
      "value_point_sku-path-param": {
        "description": "Value Point SKU.",
        "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 корзины.",
                      "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": "Список товаров, которые будут добавлены в покупку пользователя в качестве бонуса.",
                    "properties": {
                      "quantity": {
                        "default": 1,
                        "description": "Количество товаров.",
                        "type": "number"
                      },
                      "sku": {
                        "default": "elven_shield",
                        "description": "Артикул товара.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "condition": {
                  "description": "Набор товаров, которые необходимо включить в покупку для применения акции. Если этот параметр равен `null`, акция будет применена к любым покупкам в рамках проекта.",
                  "items": {
                    "properties": {
                      "sku": {
                        "default": "elven_sword",
                        "description": "Артикул товара.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                },
                "id": {
                  "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
                  "type": "integer"
                },
                "is_enabled": {
                  "$ref": "#/components/schemas/Promotions_is_enabled"
                },
                "limits": {
                  "$ref": "#/components/schemas/Promotions_promotion_limits"
                },
                "name": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Название акции. Данный параметр должен содержать пары ключ/значение, где ключ — это локаль в формате \"^[a-z]{2}-[A-Z]{2}$\", значение — строка.",
                  "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": "Процент скидки. \nЦена товара будет уменьшена с использованием значения, рассчитанного с использованием этого процента, а затем округлена до 2 знаков после запятой.",
                      "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": "Список товаров, на которые будет распространяться скидка.",
                    "properties": {
                      "sku": {
                        "default": "elven_sword",
                        "description": "Артикул товара.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "sku"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "limits": {
                  "$ref": "#/components/schemas/Promotions_promotion_limits"
                },
                "name": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Название акции. Данный параметр должен содержать пары ключ/значение,\n где ключ — это локаль в формате \"^[a-z]{2}-[A-Z]{2}$\", значение — строка.",
                  "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": "Объект с данными акции.",
        "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": "Уникальный код купона. Содержит буквы и цифры.",
                  "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 корзины.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "coupon_code": {
                  "default": "SUMMER2021",
                  "description": "Уникальный код промокода. Содержит буквы и цифры.",
                  "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": "Ежедневная награда с типом `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": "Ежедневная награда с типом `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": "Ежедневная награда с типом `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": "Пример стандартной цепочки предложений",
                "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": "Пример персонализированной цепочки предложений",
                "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": "Пример персонализированной цепочки предложений с условиями по атрибутам пользователя",
                "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": "Пример повторяющейся цепочки предложений",
                "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": "Пример клановой цепочки наград",
                "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": "Пример цепочки наград",
                "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": "Пример апселла с фиксированным списком товаров",
                "value": {
                  "is_enabled": true,
                  "items": [
                    "game_sku_1",
                    "game_sku_2",
                    "game_sku_3"
                  ],
                  "type": "fixed_list"
                }
              },
              "special_type_most_sellable": {
                "summary": "Пример апселла самых продаваемых товаров за последние 30 дней",
                "value": {
                  "is_enabled": true,
                  "items": [],
                  "type": "most_sellable"
                }
              },
              "special_type_promotions": {
                "summary": "Пример апселла с товарами с промоакциями ",
                "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": "Призовой балл для цепочки наград для клана",
                "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": "Призовой балл для цепочки наград",
                "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": "Ежедневная награда с типом `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": "Ежедневная награда с типом `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": "Ежедневная награда с типом `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": "Пример по умолчанию",
                "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": "Пример персонализированной цепочки предложений",
                "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": "Пример персонализированной цепочки предложений с условиями по атрибутам пользователя",
                "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": "Пример повторяющейся цепочки предложений",
                "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": "Пример клановой цепочки наград",
                "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": "Пример цепочки наград",
                "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": "Пример апселла с фиксированным списком товаров",
                "value": {
                  "is_enabled": true,
                  "items": [
                    "game_sku_1",
                    "game_sku_2",
                    "game_sku_3"
                  ],
                  "type": "fixed_list"
                }
              },
              "special_type_most_sellable": {
                "summary": "Пример апселла самых продаваемых товаров за последние 30 дней",
                "value": {
                  "is_enabled": true,
                  "items": [],
                  "type": "most_sellable"
                }
              },
              "special_type_promotions": {
                "summary": "Пример апселла с товарами с промоакциями ",
                "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": "Существует ли другая страница с кодами.",
                  "type": "boolean"
                },
                "items": {
                  "items": {
                    "$ref": "#/components/schemas/Code-limit-promo-code"
                  },
                  "type": "array"
                },
                "promotion_id": {
                  "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
                  "type": "integer"
                },
                "total_items_count": {
                  "description": "Общее количество кодов.",
                  "type": "number"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Успешно получены ограничения купона."
      },
      "200-admin-get-code-promo-code-limits": {
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/code-limit"
              }
            },
            "schema": {
              "properties": {
                "has_more": {
                  "description": "Существует ли другая страница с кодами.",
                  "type": "boolean"
                },
                "items": {
                  "items": {
                    "$ref": "#/components/schemas/Code-limit-promo-code"
                  },
                  "type": "array"
                },
                "promotion_id": {
                  "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
                  "type": "integer"
                },
                "total_items_count": {
                  "description": "Общее количество кодов.",
                  "type": "number"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Успешно получены ограничения промокода."
      },
      "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": "Данные о ежедневной награде успешно получены."
      },
      "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": "Общее количество ежедневных наград.",
                  "example": 3,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Список ежедневных наград успешно получен."
      },
      "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": "Список цепочек предложений успешно получен."
      },
      "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": "Список цепочек наград был успешно получен."
      },
      "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": "Список товаров с призовыми баллами был успешно получен."
      },
      "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": "Данные цепочки предложений успешно получены."
      },
      "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": "Акция успешно получена."
      },
      "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": "Указанная цепочка наград была успешно получена."
      },
      "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": "Успешно получены ограничения купона для пользователя."
      },
      "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": "Успешно получены ограничения промокода для пользователей."
      },
      "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": "Ограничения на продвижение для пользователя были успешно получены."
      },
      "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": "Указанные призовые баллы были успешно получены."
      },
      "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": "Список призовых баллов был успешно получен."
      },
      "200-client-get-daily-chains-list": {
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-daily-chain-list"
              }
            },
            "schema": {
              "properties": {
                "has_more": {
                  "description": "Используется как индикатор того, что остались еще страницы.",
                  "example": true,
                  "type": "boolean"
                },
                "items": {
                  "items": {
                    "$ref": "#/components/schemas/client-daily-chain-model"
                  },
                  "type": "array"
                },
                "total_items_count": {
                  "description": "Общее количество ежедневных наград.",
                  "example": 3,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Ежедневные награды пользователя были успешно получены."
      },
      "200-client-get-offer-chains-list": {
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-offer-chain-list"
              }
            },
            "schema": {
              "properties": {
                "has_more": {
                  "description": "Показывает, доступны ли другие страницы.",
                  "example": true,
                  "type": "boolean"
                },
                "items": {
                  "items": {
                    "$ref": "#/components/schemas/client-offer-chain-model"
                  },
                  "type": "array"
                },
                "total_items_count": {
                  "description": "Общее количество доступных цепочек предложений.",
                  "example": 10,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Цепочки предложений пользователя успешно получены."
      },
      "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": "Используется как индикатор того, что остались еще страницы.",
                  "example": true,
                  "type": "boolean"
                },
                "items": {
                  "items": {
                    "$ref": "#/components/schemas/client-reward-chain-item-model"
                  },
                  "type": "array"
                },
                "total_items_count": {
                  "description": "Общее количество цепочек наград в системе.",
                  "example": 10,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Цепочка наград пользователя была успешно восстановлена."
      },
      "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": "Количество призовых баллов.",
                  "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": "Баланс призовых баллов пользователя был успешно восстановлен."
      },
      "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": "Тип бандла. Возвращается, если тип предмета — бандл.",
                        "enum": [
                          "standard",
                          "virtual_currency_package"
                        ],
                        "type": "string"
                      },
                      "description": {
                        "description": "Описание товара.",
                        "example": "Super box with items",
                        "type": "string"
                      },
                      "image_url": {
                        "$ref": "#/components/schemas/Common_admin-image_url"
                      },
                      "name": {
                        "description": "Название товара.",
                        "example": "Super box",
                        "type": "string"
                      },
                      "quantity": {
                        "description": "Количество товаров.",
                        "example": 2,
                        "type": "integer"
                      },
                      "sku": {
                        "$ref": "#/components/schemas/sku"
                      },
                      "type": {
                        "description": "Тип товара.",
                        "example": "bundle",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Клан пользователя был успешно обновлен."
      },
      "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": "Ежедневная награда была успешно создана."
      },
      "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": "Цепочка предложений успешно создана."
      },
      "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": "Цепочка наград была успешно создана."
      },
      "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": "Призовые баллы были успешно созданы."
      },
      "204-admin-delete-reward-chain": {
        "content": {},
        "description": "Цепочка наград была успешно удалена."
      },
      "204-admin-reset-reward-chain": {
        "content": {},
        "description": "Цепочка наград сброшена."
      },
      "204-admin-toggle-reward-chain": {
        "content": {},
        "description": "Цепочка наград была отключена/включена."
      },
      "204-admin-update-reward-chain": {
        "content": {},
        "description": "Цепочка наград была успешно обновлена."
      },
      "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": "Данные для аутентификации не переданы или ошибочны."
      },
      "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": "Данные для базовой аутентификации не переданы или ошибочны. Убедитесь, что использовали базовую аутентификацию и проверьте правильность учетных данных."
      },
      "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": "Заголовок Authorization не отправлен."
      },
      "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": "Цепочка наград не найдена."
      },
      "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": "Код не найден. Убедитесь, что указанное значение кода является правильным."
      },
      "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": "Ежедневная награда не найдена."
      },
      "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": "Ежедневная награда или уровень ежедневной награды не найдены."
      },
      "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": "Цепочка предложений не найдена."
      },
      "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": "Цепочка предложений или уровень не найдены."
      },
      "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": "Уровень цепочки наград не найден."
      },
      "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": "Неправильный формат кода. Код может содержать только буквы и цифры."
      },
      "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": "Ошибки в настройках ежедневных наград."
      },
      "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": "Неверный запрос."
      },
      "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": "Ошибки в настройках ежедневных наград."
      },
      "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": "Некорректная конфигурация цепочки предложений."
      },
      "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": "Невозможно получить награду на уровне цепочки наград."
      },
      "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": "Некорректная конфигурация цепочки предложений."
      },
      "Cart-Payment_200-order-created": {
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "order_id": 641,
                  "token": "f4puMEFFDZcx9nv5HoNHIkPe9qghvBQo"
                }
              }
            },
            "schema": {
              "properties": {
                "order_id": {
                  "description": "ID заказа.",
                  "type": "integer"
                },
                "token": {
                  "description": "Платежный токен.",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Заказ успешно создан."
      },
      "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": "Данные для аутентификации не переданы или ошибочны. Убедитесь, что использовали аутентификацию и проверьте правильность учетных данных."
      },
      "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": "Данные для базовой аутентификации не переданы или ошибочны. Убедитесь, что использовали базовую аутентификацию и проверьте правильность учетных данных."
      },
      "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": "Ошибка валидации запроса."
      },
      "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": "Акция с бонусами успешно получена."
      },
      "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": "Общее количество кодов для купона.",
                  "type": "number"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Список кодов для купона успешно получен."
      },
      "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": "Цены на товар.",
                        "properties": {
                          "amount": {
                            "description": "Цена товара со скидкой.",
                            "example": "2.9900",
                            "type": "string"
                          },
                          "amount_without_discount": {
                            "description": "Цена товара.",
                            "example": "2.9900",
                            "type": "string"
                          },
                          "currency": {
                            "description": "Валюта, в которой указана цена товара. Трехбуквенный код в соответствии со стандартом [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": "Купон успешно погашен."
      },
      "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": "Если `true`, то пользователь должен выбрать бонус перед погашением купона.",
                  "type": "boolean"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Список вознаграждений по купону успешно получен."
      },
      "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": "Список акций с бонусами успешно получен."
      },
      "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": "Список купонов успешно получен."
      },
      "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": "Процент скидки. \nЦена товара будет уменьшена с использованием значения, рассчитанного с использованием этого процента.",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "excluded_promotions": {
                        "$ref": "#/components/schemas/excluded_promotions"
                      },
                      "id": {
                        "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
                        "type": "integer"
                      },
                      "is_enabled": {
                        "$ref": "#/components/schemas/Promotions_is_enabled"
                      },
                      "items": {
                        "items": {
                          "description": "Список товаров, на которые будет распространяться скидка.",
                          "properties": {
                            "sku": {
                              "default": "elven_sword",
                              "description": "Артикул товара.",
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "type": [
                          "array",
                          "null"
                        ]
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Promotions_promotion_limits_response"
                      },
                      "name": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Название акции. Данный параметр должен содержать пары ключ/значение, где ключ — это локаль в формате \"^[a-z]{2}-[A-Z]{2}$\", значение — строка.",
                        "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": "Список акций со скидками успешно получен."
      },
      "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": "Список промокодов успешно получен."
      },
      "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": "Список акций успешно получен."
      },
      "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": "Список купонов был успешно получен."
      },
      "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 корзины.",
                  "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": "Цены на товар.",
                        "properties": {
                          "amount": {
                            "description": "Цена товара со скидкой.",
                            "example": "2.9900",
                            "type": "string"
                          },
                          "amount_without_discount": {
                            "description": "Цена товара.",
                            "example": "2.9900",
                            "type": "string"
                          },
                          "currency": {
                            "description": "Валюта, в которой указана цена товара. Трехбуквенный код в соответствии со стандартом [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": "Цена корзины.",
                  "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": "Промокод успешно отменен."
      },
      "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 корзины.",
                  "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": "Цена корзины.",
                  "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": "Промокод успешно погашен."
      },
      "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": "Общее количество кодов для промокода.",
                  "type": "number"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Список кодов для промокода успешно получен."
      },
      "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": "Список вознаграждений по промокоду успешно получен."
      },
      "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": "Общее количество уникальных кодов предложений по каталогу.",
                  "type": "number"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Список кодов для уникального предложения по каталогу был успешно получен."
      },
      "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": "Тип кода: `promocode`/`coupon`.",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Информация о коде."
      },
      "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": "Код успешно создан."
      },
      "Promotions_201-create-promotion": {
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "promotion_id": 2384756
                }
              }
            },
            "schema": {
              "properties": {
                "promotion_id": {
                  "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
                  "type": "integer"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Акция успешно создана."
      },
      "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": "Данные для базовой аутентификации не переданы или ошибочны. Убедитесь, что использовали базовую аутентификацию и проверьте правильность учетных данных."
      },
      "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": "Данные для аутентификации не переданы или ошибочны."
      },
      "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": "Заголовок Authorization не отправлен."
      },
      "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": "Купон не найден. Убедитесь, что верно указали `external_id`."
      },
      "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": "Промокод не найден. Убедитесь, что `external_id` указан правильно."
      },
      "Promotions_404-admin-promotion": {
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "errorCode": 9502,
                  "errorMessage": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080",
                  "statusCode": 404
                }
              }
            },
            "schema": {
              "properties": {
                "errorCode": {
                  "example": 9502,
                  "type": "integer"
                },
                "errorMessage": {
                  "example": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080",
                  "type": "string"
                },
                "statusCode": {
                  "example": 404,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Акция не найдена. Убедитесь, что верно указали `promotion_id`."
      },
      "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": "Введите действительный код купона."
      },
      "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": "Введите действительный промокод."
      },
      "Promotions_404-verify-promo-code": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "errorCode": {
                  "example": 9811,
                  "type": "integer"
                },
                "errorMessage": {
                  "example": "[0401-9811]: Code not found.",
                  "type": "string"
                },
                "statusCode": {
                  "example": 404,
                  "type": "integer"
                },
                "transactionId": {
                  "example": "x-x-x-x-transactionId-mock-x-x-x",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Код не найден. Убедитесь, что указанное значение `code` является правильным."
      },
      "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": "Неверный запрос."
      },
      "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": "Произошла ошибка при получении акции от сервиса продвижения."
      },
      "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": "Неверный запрос."
      },
      "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": "Неверный запрос."
      },
      "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": "Неверный запрос."
      },
      "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": "Неверный запрос. Код уже существует."
      },
      "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": "Неверный запрос."
      },
      "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": "Неверный запрос."
      },
      "Promotions_422-rewards": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Promotions_422_limit_error"
                },
                {
                  "$ref": "#/components/schemas/Promotions_422_reglock_error"
                }
              ]
            }
          }
        },
        "description": "Неверный запрос."
      },
      "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": "Код акции недействителен."
      },
      "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": "Список товаров для апселла успешно получен."
      },
      "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": "Товар не найден."
      },
      "Upsell-422-invalid-request": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Upsell-422-invalid-request"
            }
          }
        },
        "description": "Неверный запрос."
      },
      "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": "Товар не найден. Убедитесь, что верно указали `project_id` и `sku`."
      }
    },
    "schemas": {
      "422-invalid-request": {
        "properties": {
          "errorCode": {
            "description": "Код ошибки.",
            "example": 1102,
            "type": "number"
          },
          "errorMessage": {
            "description": "Удобочитаемое сообщение об ошибке.",
            "example": "[0401-1102]: Unprocessable Entity. The property `external_id` is required",
            "type": "string"
          },
          "statusCode": {
            "description": "Код статуса ответа.",
            "example": 422,
            "type": "number"
          },
          "transactionId": {
            "description": "Уникальный ID запроса.",
            "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": "Если `true`, пользователь может купить товар.",
        "example": true,
        "type": "boolean"
      },
      "Catalog_item_limits": {
        "description": "Ограничения на продажу товара.",
        "properties": {
          "per_item": {
            "description": "Ограничения на продажу для конкретного товара.",
            "properties": {
              "available": {
                "description": "Оставшееся количество товара, которое могут приобрести все пользователи.",
                "example": 3,
                "type": "integer"
              },
              "total": {
                "description": "Максимальное количество товара, которое могут приобрести все пользователи.",
                "example": 5,
                "type": "integer"
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "per_user": {
            "description": "Ограничения на продажу товара для пользователя.",
            "properties": {
              "available": {
                "description": "Оставшееся количество товара, которое может приобрести текущий пользователь.",
                "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": "Максимальное количество товара, которое может приобрести один пользователь.",
                "example": 5,
                "type": "integer"
              }
            },
            "type": [
              "object",
              "null"
            ]
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "Catalog_item_promotions": {
        "description": "Примененные акции для отдельных товаров в корзине. Массив возвращается, если:\n\n* Скидочная акция настроена для отдельного товара.\n\n* Используется промокод с настройкой **Скидка на выбранные товары**.\n\nЕсли акции на уровне отдельных товаров не применялись, возвращается пустой массив.",
        "items": {
          "properties": {
            "bonus": {
              "items": {
                "properties": {
                  "bundle_type": {
                    "description": "Тип товара бонусного бандла. Доступно только для бонусного товара типа `bundle`.",
                    "enum": [
                      "standard",
                      "virtual_currency_package"
                    ],
                    "type": "string"
                  },
                  "image_url": {
                    "description": "URL-адрес изображения бонусного бандла. Недоступно для типа бонусного товара `physical_good`.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Название бонусного товара. Недоступно для типа бонусного товара `physical_good`.",
                    "type": "string"
                  },
                  "quantity": {
                    "type": "integer"
                  },
                  "sku": {
                    "type": "string"
                  },
                  "type": {
                    "description": "Тип бонусного товара.",
                    "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": "Оставшееся количество использований промокода.",
                "type": "integer"
              },
              "reserved": {
                "description": "Сколько раз резервировался промокод.",
                "type": "integer"
              },
              "total": {
                "description": "Максимальное количество использований промокода.",
                "type": "integer"
              },
              "used": {
                "description": "Сколько раз использовался промокод.",
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Common_admin-image_url": {
        "description": "URL-адрес изображения.",
        "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": "Если `true`, то пользователь должен выбрать бонус перед погашением купона.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Pagination_has-more": {
        "description": "Используется как индикатор того, что остались еще страницы.",
        "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": "Если `true`, пользователь должен выбрать бонус перед погашением промокода.",
            "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": "Если `true`, пользователь должен выбрать бонус перед погашением промокода.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Promotions_200-coupon-bonus-reward": {
        "properties": {
          "item": {
            "properties": {
              "bundle_type": {
                "description": "Тип бандла. Возвращается, если тип элемента является бандлом.",
                "enum": [
                  "standard",
                  "virtual_currency_package"
                ],
                "type": "string"
              },
              "content": {
                "type": "array"
              },
              "description": {
                "description": "Описание товара.",
                "example": "Game description",
                "type": [
                  "string",
                  "null"
                ]
              },
              "image_url": {
                "description": "URL-адрес изображения.",
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "description": "Название товара.",
                "example": {
                  "en": "Game name"
                },
                "type": "object"
              },
              "sku": {
                "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
                "example": "game_01",
                "type": "string"
              },
              "type": {
                "description": "Тип товара: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.",
                "example": "unit",
                "type": "string"
              },
              "unit_items": {
                "description": "Если товар имеет тип unit, он включает в себя все товары в юните. В большинстве случаев пользователь должен выбрать один из них в качестве бонуса по купону.",
                "items": {
                  "properties": {
                    "drm_name": {
                      "description": "Название платформы.",
                      "example": "Steam",
                      "type": "string"
                    },
                    "drm_sku": {
                      "description": "Уникальный ID платформы. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
                      "example": "steam",
                      "type": "string"
                    },
                    "is_free": {
                      "type": "boolean"
                    },
                    "name": {
                      "description": "Название товара.",
                      "example": "Game name",
                      "type": "string"
                    },
                    "sku": {
                      "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
                      "example": "game_01",
                      "type": "string"
                    },
                    "type": {
                      "description": "Тип товара: `game_key`.",
                      "example": "game_key",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "quantity": {
            "default": 1,
            "description": "Количество товаров.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "Promotions_200-coupon-discount-reward": {
        "description": "Процент скидки. \nЦена корзины будет уменьшена с использованием значения, рассчитанного с использованием этого процента, а затем округлена до 2 знаков после запятой.",
        "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": "Список товаров, которые будут добавлены в покупку пользователя в качестве бонуса.",
              "properties": {
                "quantity": {
                  "default": 1,
                  "description": "Количество товаров.",
                  "type": "number"
                },
                "sku": {
                  "default": "elven_shield",
                  "description": "Артикул товара.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "condition": {
            "description": "Набор товаров, которые необходимо включить в покупку для применения акции. Если этот параметр равен `null`, акция будет применена к любым покупкам в рамках проекта.",
            "items": {
              "properties": {
                "sku": {
                  "default": "elven_sword",
                  "description": "Артикул товара.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excluded_promotions": {
            "$ref": "#/components/schemas/excluded_promotions"
          },
          "id": {
            "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
            "type": "integer"
          },
          "is_enabled": {
            "default": true,
            "type": "boolean"
          },
          "limits": {
            "$ref": "#/components/schemas/Promotions_promotion_limits_response"
          },
          "name": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Название акции. Данный параметр должен содержать пары ключ/значение, \nгде ключ — это локаль в формате \"^[a-z]{2}-[A-Z]{2}$\", значение — строка.",
            "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": "Описание товара.",
                "example": "Game description",
                "type": "string"
              },
              "image_url": {
                "description": "URL-адрес изображения.",
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "type": "string"
              },
              "name": {
                "description": "Название товара.",
                "example": "Game name",
                "type": "string"
              },
              "sku": {
                "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
                "example": "game_01",
                "type": "string"
              },
              "type": {
                "description": "Тип товара: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.",
                "example": "unit",
                "type": "string"
              },
              "unit_items": {
                "description": "Если товар имеет тип unit, он включает в себя все товары в юните. В большинстве случаев пользователь должен выбрать один из них в качестве бонуса по промокоду.",
                "items": {
                  "properties": {
                    "drm_name": {
                      "description": "Название платформы.",
                      "example": "Steam",
                      "type": "string"
                    },
                    "drm_sku": {
                      "description": "Уникальный ID платформы. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
                      "example": "steam",
                      "type": "string"
                    },
                    "is_free": {
                      "$ref": "#/components/schemas/value-is_free"
                    },
                    "name": {
                      "description": "Название товара.",
                      "example": "Game name",
                      "type": "string"
                    },
                    "sku": {
                      "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
                      "example": "game_01",
                      "type": "string"
                    },
                    "type": {
                      "description": "Тип товара: `game_key`.",
                      "example": "game_key",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "quantity": {
            "default": 1,
            "description": "Количество товаров.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "Promotions_422_limit_error": {
        "description": "Достигнут лимит погашения.",
        "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": "Купон недоступен в регионе пользователя.",
        "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": "Процент скидки. \n\nЦена товара в корзине будет уменьшена с использованием значения, \nрассчитанного с использованием этого процента, а затем округлена \nдо 2 знаков после запятой.",
        "example": "10.00",
        "nullable": false,
        "type": "string"
      },
      "Promotions_coupon-external_id": {
        "default": "coupon_external_id",
        "description": "Уникальный ID акции. `external_id` может содержать только строчные и заглавные латинские буквы, цифры, тире и подчеркивания.",
        "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": "Ограничивает общее количество купонов.",
        "example": 10,
        "type": [
          "integer",
          "null"
        ]
      },
      "Promotions_coupon-redeem_user_limit": {
        "default": 10,
        "description": "Ограничивает общее количество купонов, погашаемых одним пользователем.",
        "example": 10,
        "type": [
          "integer",
          "null"
        ]
      },
      "Promotions_coupon_bonus": {
        "items": {
          "description": "Список товаров, которые будут добавлены в покупку пользователя в качестве бонуса.",
          "properties": {
            "quantity": {
              "default": 1,
              "description": "Количество товаров.",
              "type": "number"
            },
            "sku": {
              "default": "elven_shield",
              "description": "Артикул товара.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "Promotions_coupon_code": {
        "default": "WINTER2021",
        "description": "Уникальный код, чувствительный к регистру. Содержит буквы и цифры.",
        "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": "Дата, когда ваша акция будет завершена. Может быть `null`. Если `date_end` равно `null`, акция будет неограниченна по времени.",
        "format": "date-time",
        "type": [
          "string",
          "null"
        ]
      },
      "Promotions_coupon_date_start": {
        "default": "2020-04-15T18:16:00+05:00",
        "description": "Дата, когда начнется ваша акция.",
        "format": "date-time",
        "type": [
          "string",
          "null"
        ]
      },
      "Promotions_coupon_name": {
        "additionalProperties": {
          "type": "string"
        },
        "default": {
          "de-DE": "Gutscheintitel",
          "en-US": "Coupon title"
        },
        "description": "Название акции. Данный параметр должен содержать пары ключ/значение, \nгде ключ — это локаль в формате \"^[a-z]{2}-[A-Z]{2}$\", значение — строка.",
        "example": {
          "de-DE": "Gutscheintitel",
          "en-US": "Coupon title"
        },
        "type": "object"
      },
      "Promotions_coupon_total_limit_state": {
        "description": "Ограничения для каждого уникального кода купона.",
        "properties": {
          "available": {
            "description": "Оставшееся количество использований купона.",
            "example": 3,
            "type": "integer"
          },
          "reserved": {
            "description": "Зарезервированное количество купонов.",
            "example": 3,
            "type": "integer"
          },
          "used": {
            "description": "Сколько раз использовался купон.",
            "example": 5,
            "type": "integer"
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "Promotions_discounted_items": {
        "description": "Список товаров, на которые действует скидка по промокоду.",
        "items": {
          "description": "Скидка на определенные товары в корзине.",
          "minItems": 1,
          "properties": {
            "discount": {
              "nullable": false,
              "properties": {
                "percent": {
                  "$ref": "#/components/schemas/Promotions_cart_item_discount"
                }
              },
              "required": [
                "percent"
              ],
              "type": "object"
            },
            "sku": {
              "default": "elven_shield",
              "description": "Артикул товара.",
              "type": "string"
            }
          },
          "required": [
            "sku",
            "discount"
          ],
          "type": "object"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "Promotions_discounted_items_verify": {
        "description": "Список товаров, на которые действует скидка по промокоду.",
        "items": {
          "description": "Скидка на определенные товары.",
          "properties": {
            "description": {
              "description": "Описание товара.",
              "example": "Game description",
              "type": "string"
            },
            "discount": {
              "nullable": false,
              "properties": {
                "percent": {
                  "$ref": "#/components/schemas/Promotions_cart_item_discount"
                }
              },
              "type": "object"
            },
            "image_url": {
              "description": "URL-адрес изображения.",
              "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
              "type": "string"
            },
            "name": {
              "description": "Название товара.",
              "example": "Game name",
              "type": "string"
            },
            "sku": {
              "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
              "example": "game_01",
              "type": "string"
            },
            "type": {
              "description": "Тип товара: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.",
              "example": "unit",
              "type": "string"
            },
            "unit_items": {
              "description": "Если товар имеет тип unit, он включает в себя все товары в юните. В большинстве случаев пользователь должен выбрать один из них в качестве бонуса по промокоду.",
              "items": {
                "properties": {
                  "drm_name": {
                    "description": "Название платформы.",
                    "example": "Steam",
                    "type": "string"
                  },
                  "drm_sku": {
                    "description": "Уникальный ID платформы. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
                    "example": "steam",
                    "type": "string"
                  },
                  "name": {
                    "description": "Название товара.",
                    "example": "Game name",
                    "type": "string"
                  },
                  "sku": {
                    "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
                    "example": "game_01",
                    "type": "string"
                  },
                  "type": {
                    "description": "Тип товара: `game_key`.",
                    "example": "game_key",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "Promotions_is_enabled": {
        "description": "Активирована ли акция.",
        "example": true,
        "type": "boolean"
      },
      "Promotions_name": {
        "additionalProperties": {
          "type": "string"
        },
        "default": {
          "de-DE": "Artikeltitel",
          "en-US": "Item title"
        },
        "description": "Название товара. Данный параметр должен содержать пары ключ/значение, \nгде ключ — это локаль в формате \"^[a-z]{2}-[A-Z]{2}$\", значение — строка.",
        "example": {
          "de-DE": "Artikeltitel",
          "en-US": "Item title"
        },
        "type": "object"
      },
      "Promotions_promocode_total_limit_state": {
        "description": "Лимиты для каждого уникального промокода.",
        "properties": {
          "available": {
            "description": "Оставшееся количество использований промокода.",
            "example": 3,
            "type": "integer"
          },
          "reserved": {
            "description": "Зарезервированное количество промокодов.",
            "example": 3,
            "type": "integer"
          },
          "used": {
            "description": "Сколько раз использовался промокод.",
            "example": 5,
            "type": "integer"
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "Promotions_promotion_condition": {
        "items": {
          "description": "Список товаров, за которые пользователь получил бонус.",
          "properties": {
            "item": {
              "properties": {
                "description": {
                  "description": "Описание товара.",
                  "example": "Game description",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "external_id": {
                  "description": "External ID акции. Уникальный идентификатор акции в рамках проекта.",
                  "maxLength": 255,
                  "minLength": 1,
                  "pattern": "^[-_.\\d\\w]+$",
                  "type": "string"
                },
                "image_url": {
                  "description": "URL-адрес изображения.",
                  "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": "Процент скидки. \nЦена корзины будет уменьшена с использованием значения, рассчитанного с использованием этого процента, а затем округлена до 2 знаков после запятой.",
        "example": "10.00",
        "type": [
          "string",
          "null"
        ]
      },
      "Promotions_promotion_id": {
        "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
        "example": 1,
        "type": "integer"
      },
      "Promotions_promotion_limits": {
        "description": "Ограничения акции.",
        "properties": {
          "per_user": {
            "description": "Ограничение количества использований акций отдельным пользователем.",
            "type": [
              "integer",
              "null"
            ]
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/promotion_recurrent_schedule_response"
          }
        },
        "type": "object"
      },
      "Promotions_promotion_limits_response": {
        "description": "Ограничения акции.",
        "properties": {
          "per_item": {
            "description": "Глобальное ограничение товара.",
            "example": 10,
            "type": [
              "integer",
              "null"
            ]
          },
          "per_user": {
            "description": "Ограничение количества использований акций отдельным пользователем.",
            "properties": {
              "total": {
                "description": "Общее количество единиц товара, которое может купить пользователь. Вы можете установить данное значение в Личном кабинете или использовать методы администратора для сущностей магазина (объект limits).",
                "example": 5,
                "type": "integer"
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/promotion_recurrent_schedule_response"
          }
        },
        "type": "object"
      },
      "Promotions_promotion_type": {
        "description": "Тип акции.",
        "example": "item_discount",
        "type": "string"
      },
      "Promotions_redeem_code_limit": {
        "default": 10,
        "description": "Количество погашений по коду.",
        "example": 10,
        "type": [
          "integer",
          "null"
        ]
      },
      "Promotions_selected_unit_items": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Награда, выбранная пользователем.\nКлюч объекта — это артикул юнита, а значение — артикул одного из товаров в юните.",
        "example": {
          "game_1": "game_1_steam",
          "game_2": "game_2_playstation"
        },
        "type": "object"
      },
      "Promotions_sku": {
        "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
        "example": "booster_mega_1",
        "type": "string"
      },
      "Promotions_type": {
        "description": "Тип товара: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.",
        "type": "string"
      },
      "Promotions_unique_catalog_offer_items": {
        "description": "Список артикулов товаров, которые доступны после использования уникального предложения по каталогу.",
        "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": "Тип апселла.",
        "properties": {
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "items": {
            "default": null,
            "description": "Массив артикулов товаров",
            "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": "Тип апселла.",
        "properties": {
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "items": {
            "default": null,
            "description": "Пустой массив артикулов товаров.",
            "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": "Описание товара.",
            "example": "Big Rocket - description",
            "type": "string"
          },
          "groups": {
            "$ref": "#/components/schemas/Virtual-Items-Currency_admin-groups-response"
          },
          "image_url": {
            "description": "URL-адрес изображения.",
            "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": "Название товара.",
            "example": "Big Rocket",
            "type": "string"
          },
          "periods": {
            "$ref": "#/components/schemas/item-periods-response"
          },
          "price": {
            "description": "Цены на товар.",
            "properties": {
              "amount": {
                "description": "Цена товара со скидкой.",
                "example": "100.99",
                "type": "string"
              },
              "amount_without_discount": {
                "description": "Цена товара.",
                "example": "100.99",
                "type": "string"
              },
              "currency": {
                "description": "Валюта, в которой указана цена товара. Трехбуквенный код в соответствии со стандартом [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 товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
            "example": "big_rocket",
            "type": "string"
          },
          "type": {
            "description": "Тип товара: `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": "Виртуальные цены.",
            "items": {
              "description": "Виртуальная цена.",
              "properties": {
                "amount": {
                  "description": "Цена товара со скидкой в виртуальной валюте.",
                  "example": 100,
                  "type": "integer"
                },
                "amount_without_discount": {
                  "description": "Цена товара.",
                  "example": 200,
                  "type": "integer"
                },
                "description": {
                  "description": "Описание виртуальной валюты.",
                  "example": "Big Rocket - description",
                  "type": "string"
                },
                "image_url": {
                  "description": "Изображение виртуальной валюты.",
                  "example": "http://image.png",
                  "type": "string"
                },
                "is_default": {
                  "description": "Является ли данная цена товара ценой по умолчанию.",
                  "example": true,
                  "type": "boolean"
                },
                "name": {
                  "description": "Название виртуальной валюты.",
                  "example": "SHOTGUN FOR TRUE RAIDERS",
                  "type": "string"
                },
                "sku": {
                  "description": "Артикул виртуальной валюты.",
                  "example": "vc_test",
                  "type": "string"
                },
                "type": {
                  "description": "Тип виртуальной валюты.",
                  "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": "Оставшееся количество использований купона пользователем.",
                "example": 9,
                "type": "integer"
              },
              "total": {
                "description": "Максимальное количество использований купона для пользователя.",
                "example": 10,
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "User-limit-promo-code": {
        "properties": {
          "per_user": {
            "properties": {
              "available": {
                "description": "Оставшееся количество использований промокода пользователем.",
                "example": 9,
                "type": "integer"
              },
              "total": {
                "description": "Максимальное количество использований промокода для пользователя.",
                "example": 10,
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "User-limit-promotion": {
        "properties": {
          "per_user": {
            "properties": {
              "available": {
                "description": "Оставшееся количество раз, когда пользователь может воспользоваться акцией.",
                "example": 9,
                "type": "integer"
              },
              "total": {
                "description": "Максимальное количество раз, которое пользователь может использовать акцию.",
                "example": 10,
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "User-limit_available": {
        "description": "Оставшееся количество товаров для продажи или доступных акций для пользователя в пределах установленных ограничений.",
        "minimum": 1,
        "type": "integer"
      },
      "User-limit_available_flexible": {
        "description": "Оставшееся количество товаров для продажи или доступных акций для пользователя в пределах установленных ограничений.",
        "minimum": 0,
        "type": "integer"
      },
      "User-limit_user": {
        "properties": {
          "user_external_id": {
            "$ref": "#/components/schemas/User-limit_user-external-id"
          }
        },
        "required": [
          "user_external_id"
        ],
        "type": "object"
      },
      "User-limit_user-external-id": {
        "description": "External ID пользователя.",
        "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": "Может ли призовой балл быть удален. Если `false` вы не можете удалить призовой балл, так как есть одна или несколько цепочек наград, в которой он используется. Чтобы удалить призовой балл, сначала [удалите](https://developers.xsolla.com/ru/api/shop-builder/operation/admin-delete-reward-chain/) все все цепочки наград с ним.\n\nЕсли `true`, призовой балл не используется ни в одной цепочке наград и вы можете [удалить](https://developers.xsolla.com/ru/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": "Дополнительные ассеты предмета, такие как скриншоты, видео игрового процесса и так далее.",
            "example": [
              {
                "type": "image",
                "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
              }
            ],
            "items": {
              "properties": {
                "type": {
                  "description": "Тип медиа: `image`/`video`.",
                  "enum": [
                    "image",
                    "video"
                  ],
                  "example": "image",
                  "type": "string"
                },
                "url": {
                  "description": "Ссылка на файл.",
                  "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": "Определяет порядок расположения.",
            "example": 1,
            "type": "integer"
          },
          "sku": {
            "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
            "example": "booster_mega_1",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_\\-–.]*$",
            "type": "string"
          },
          "type": {
            "description": "Тип товара.",
            "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": "Дополнительные ассеты предмета, такие как скриншоты, видео игрового процесса и так далее.",
            "example": [
              {
                "type": "image",
                "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
              }
            ],
            "items": {
              "properties": {
                "type": {
                  "description": "Тип медиа: `image`/`video`.",
                  "enum": [
                    "image",
                    "video"
                  ],
                  "example": "image",
                  "type": "string"
                },
                "url": {
                  "description": "Ссылка на файл.",
                  "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": "Определяет порядок расположения.",
            "example": 1,
            "type": "integer"
          },
          "sku": {
            "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
            "example": "booster_mega_1",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_\\-–.]*$",
            "type": "string"
          },
          "type": {
            "description": "Тип товара.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Virtual-Items-Currency_admin-groups-response": {
        "default": [],
        "description": "Группы, к которым принадлежит товар.",
        "example": [
          {
            "external_id": "horror",
            "name": {
              "en": "Horror"
            }
          }
        ],
        "items": {
          "properties": {
            "external_id": {
              "example": "horror",
              "type": "string"
            },
            "name": {
              "additionalProperties": {
                "type": "string"
              },
              "default": {
                "en": "Horror"
              },
              "description": "Название элемента. Должно содержать пары ключ/значение, \nгде ключ — это языковой стандарт в {2}формате \"^[a-z]\", значение — строка.",
              "example": {
                "de": "Horror",
                "en": "Horror"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "Virtual-Items-Currency_client-attributes": {
        "default": [],
        "description": "Список атрибутов и их значений, соответствующих товару. Может использоваться для фильтрации каталога.",
        "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": "Название атрибута.",
              "example": "Genre",
              "type": "object"
            },
            "values": {
              "items": {
                "properties": {
                  "external_id": {
                    "$ref": "#/components/schemas/value-external_id"
                  },
                  "value": {
                    "description": "Значение атрибута.",
                    "example": "Strategy",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "active_promotions_count": {
        "description": "Количество активных акций.",
        "type": "integer"
      },
      "admin-attribute-external_id": {
        "description": "Уникальный ID атрибута. `external_id` может содержать только строчные и заглавные латинские буквы, цифры, тире и подчеркивания.",
        "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": "Ежедневная награда с типом calendar_hard в запросах для администрирования.",
            "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": "Ежедневная награда с типом `calendar_hard` (краткая версия).",
            "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": "Количество товара.",
            "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": "Уровень ежедневной награды.",
        "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": "Цепочка наград.",
        "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": "Цепочка наград для клана.",
            "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": "Призовой балл для цепочки наград для клана.",
                "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": "Цепочка наград для клана.",
            "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": "Призовой балл для цепочки наград для клана.",
                "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": "Цепочка наград.",
        "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": "Количество призовых баллов.",
            "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": "Количество товара.",
            "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": "Цепочка предложений.",
        "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": "Цепочка предложений.",
        "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": "Уровень цепочки предложений.",
        "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": "Только для промокодов.",
            "example": {
              "discount": {
                "percent": "10.99"
              }
            },
            "properties": {
              "percent": {
                "default": "10.00",
                "description": "Процент скидки. \nЦена корзины будет уменьшена с использованием значения, рассчитанного с использованием этого процента, а затем округлена до 2 знаков после запятой.",
                "example": "10.00",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "discounted_items": {
            "description": "Список товаров, на которые действует скидка по промокоду. Только для промокодов.",
            "items": {
              "description": "Скидка на определенные товары в корзине.",
              "minItems": 1,
              "properties": {
                "discount": {
                  "nullable": false,
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_cart_item_discount"
                    }
                  },
                  "required": [
                    "percent"
                  ],
                  "type": "object"
                },
                "sku": {
                  "default": "elven_shield",
                  "description": "Артикул товара.",
                  "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": "Ежедневная награда с типом 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"
              },
              "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": "Ежедневная награда с типом `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"
              },
              "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": "Ежедневная награда с типом `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"
              },
              "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": "Ежедневная награда с типом `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"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              }
            },
            "type": "object"
          }
        ]
      },
      "admin_recurrent_schedule": {
        "description": "Период регулярного сброса цепочки наград.",
        "oneOf": [
          {
            "description": "Еженедельный сброс цепочки наград.",
            "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 = еженедельно",
            "type": "object"
          },
          {
            "description": "Ежемесячный сброс цепочки наград.",
            "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 = ежемесячно",
            "type": "object"
          },
          {
            "description": "Сброс цепочки наград, выполняемый через временной интервал, заданный в часах.",
            "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": "Тип бандла. Возвращается, если тип элемента является бандлом.",
        "enum": [
          "standard",
          "virtual_currency_package",
          "partner_side_content"
        ],
        "type": "string"
      },
      "calendar-hard-daily-chain-base": {
        "description": "Базовые свойства ежедневной награды с типом `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": "Дата, когда начнет действовать ежедневная награда.",
        "example": "2020-04-15T18:16:00+05:00",
        "format": "date-time",
        "type": "string"
      },
      "calendar_hard_is_recurrent": {
        "default": false,
        "description": "Перезапускается ли ежедневная награда. Если передано значение `true`, ежедневная награда автоматически сбрасывается в конце периода ее действия. Следующие значения для параметров `start_date` и `end_date` рассчитываются исходя из количества уровней ежедневной награды и времени старта ежедневной награды, заданном в параметре `start_date`.",
        "example": true,
        "type": "boolean"
      },
      "catalog_recurrent_schedule_client_response": {
        "description": "Период обновления ограничений на продажу товара для пользователя.",
        "oneOf": [
          {
            "description": "Ежедневное обновления пользовательских ограничений.",
            "properties": {
              "interval_type": {
                "description": "Период обновления ограничения на продажу товара.",
                "enum": [
                  "daily"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "Дата и время обновления ограничений (Unix Timestamp).",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = daily",
            "type": "object"
          },
          {
            "description": "Еженедельное обновления пользовательских ограничений.",
            "properties": {
              "interval_type": {
                "description": "Период обновления ограничения на продажу товара.",
                "enum": [
                  "weekly"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "Дата и время обновления ограничений (Unix Timestamp).",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = еженедельно",
            "type": "object"
          },
          {
            "description": "Ежемесячное обновление пользовательских ограничений.",
            "properties": {
              "interval_type": {
                "description": "Период обновления ограничения на продажу товара.",
                "enum": [
                  "monthly"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "Дата и время обновления ограничений (Unix Timestamp).",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = ежемесячно",
            "type": "object"
          },
          {
            "description": "Сброс лимитов пользователя, выполняемый через временной интервал, заданный в часах.",
            "properties": {
              "interval_type": {
                "description": "Период обновления ограничения на продажу товара.",
                "enum": [
                  "hourly"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "Дата и время обновления ограничений (Unix Timestamp).",
                "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": "Условия для проверки атрибутов пользователя. \nОпределяют доступность цепочки на основе соответствия атрибутов пользователя всем указанным условиям."
          }
        ]
      },
      "chain_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Условия для проверки атрибутов пользователя. \nОпределяют доступность цепочки на основе соответствия атрибутов пользователя всем указанным условиям."
          }
        ]
      },
      "clan_type": {
        "description": "Тип клана.",
        "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": "Список атрибутов и их значений, соответствующих товару. Может использоваться для фильтрации каталога.",
        "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": "Название атрибута.",
              "example": "Genre",
              "type": "string"
            },
            "values": {
              "items": {
                "properties": {
                  "external_id": {
                    "$ref": "#/components/schemas/value-external_id"
                  },
                  "value": {
                    "description": "Значение атрибута.",
                    "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": "Ежедневная награда с типом calendar_hard в клиентских запросах.",
            "properties": {
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "description": {
                "description": "Описание ежедневной награды.",
                "example": "Major weekly quest",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "description": "ID ежедневной награды.",
                "example": 9,
                "type": "integer"
              },
              "name": {
                "description": "Название ежедневной награды.",
                "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": "Описание товара.",
            "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": "Название товара.",
            "type": "string"
          },
          "quantity": {
            "description": "Количество товара.",
            "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": "Уровень ежедневной награды.",
        "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": "Метка времени Unix (в секундах), когда уровень будет разблокирован.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "client-item-value-point-reward": {
        "description": "Стоимость призовых баллов товара.",
        "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": "Описание товара.",
            "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": "Название товара.",
            "type": "string"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "quantity": {
            "description": "Количество товара.",
            "example": 1,
            "minimum": 1,
            "type": "integer"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          }
        },
        "type": "object"
      },
      "client-offer-chain-model": {
        "description": "Цепочка предложений.",
        "properties": {
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "description": {
            "description": "Описание цепочки предложений.",
            "example": "Major weekly quest",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "ID цепочки предложений.",
            "example": 9,
            "type": "integer"
          },
          "name": {
            "description": "Название цепочки предложений.",
            "example": "Weekly quest",
            "type": "string"
          },
          "next_step_number": {
            "description": "Номер следующего уровня цепочки предложений. `null`, если цепочка завершена.",
            "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": "Уровень цепочки предложений.",
        "properties": {
          "is_claimed": {
            "description": "Указывает, является ли уровень цепочки предложений платным или бесплатным.",
            "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": "Количество призовых баллов.",
                  "example": 1,
                  "type": "integer"
                },
                "description": {
                  "description": "Описание призовых баллов.",
                  "example": "First Loyalty Point Desc",
                  "type": "string"
                },
                "image_url": {
                  "$ref": "#/components/schemas/image_url"
                },
                "name": {
                  "description": "Название призовых баллов.",
                  "example": "First Loyalty Point",
                  "type": "string"
                },
                "sku": {
                  "description": "ID призовых баллов.",
                  "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": "Набор призовых баллов из цепочки наград, начисляемых в качестве вознаграждения.",
            "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": "Описание цепочки наград.",
            "example": "Major weekly quest",
            "type": [
              "string",
              "null"
            ]
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "long_description": {
            "description": "Развернутое описание цепочки наград.",
            "example": "You can get a lot of additional items just by shopping during the week",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "description": "Название цепочки наград.",
            "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 цепочки наград.",
            "example": 9,
            "type": "integer"
          },
          "steps": {
            "items": {
              "description": "Уровень цепочки наград.",
              "properties": {
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "is_claimed": {
                  "description": "Получена ли награда за уровень.",
                  "example": false,
                  "type": "boolean"
                },
                "name": {
                  "description": "Название уровня.",
                  "example": "Level 1",
                  "type": "string"
                },
                "price": {
                  "properties": {
                    "amount": {
                      "description": "Количество призовых баллов, которое пользователь получит за прохождение уровня.",
                      "example": 100,
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "reward": {
                  "items": {
                    "properties": {
                      "description": {
                        "description": "Описание товара.",
                        "example": "Super box with items",
                        "type": "string"
                      },
                      "image_url": {
                        "$ref": "#/components/schemas/Common_admin-image_url"
                      },
                      "name": {
                        "description": "Название товара.",
                        "example": "Super box",
                        "type": "string"
                      },
                      "quantity": {
                        "description": "Количество товаров.",
                        "example": 2,
                        "type": "integer"
                      },
                      "sku": {
                        "$ref": "#/components/schemas/sku"
                      },
                      "type": {
                        "description": "Тип товара.",
                        "example": "bundle",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "step_id": {
                  "description": "ID уровня.",
                  "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": "Ежедневная награда с типом rolling_skippable в клиентских запросах.",
            "properties": {
              "description": {
                "description": "Описание ежедневной награды.",
                "example": "Major weekly quest",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "description": "ID ежедневной награды.",
                "example": 9,
                "type": "integer"
              },
              "name": {
                "description": "Название ежедневной награды.",
                "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": "Ежедневная награда с типом `rolling_unskippable` в клиентских запросах.",
            "properties": {
              "description": {
                "description": "Описание ежедневной награды.",
                "example": "Major weekly quest",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "description": "ID ежедневной награды.",
                "example": 9,
                "type": "integer"
              },
              "name": {
                "description": "Название ежедневной награды.",
                "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": "Ежедневная награда с типом `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": "Цепочка наград для клана.",
            "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": "Призовой балл для цепочки наград для клана.",
                "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": "Цепочка предложений.",
        "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": "Цепочка наград.",
        "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": "Ежедневная награда с типом `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": "Ежедневная награда с типом `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": "Уровень цепочки наград.",
        "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": "Дата окончания срока действия ежедневных наград. Может быть null. При установке типа `calendar_hard` эта дата будет автоматически рассчитана по количеству добавленных уровней, поэтому можно оставить значение null.",
        "example": "2020-04-15T18:16:00+05:00",
        "format": "date-time",
        "type": [
          "string",
          "null"
        ]
      },
      "daily_chain_id": {
        "description": "Уникальный ID ежеденевной награды.",
        "example": 9,
        "type": "integer"
      },
      "daily_chain_number_of_step": {
        "description": "Количество уровней, заданных в ежедневной награде. Каждый уровень означает один день в ежедневной награде.",
        "example": 3,
        "type": "integer"
      },
      "daily_chain_step_id": {
        "description": "Уникальный идентификатор уровня ежедневной награды",
        "example": 10,
        "minimum": 1,
        "type": [
          "integer",
          "null"
        ]
      },
      "daily_chain_step_number": {
        "description": "Номер уровня.",
        "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": "Уникальный ID уровня цепочки наград. Укажите его при обновлении, чтобы сохранить прогресс пользователя для этого уровня.",
        "example": 10,
        "minimum": 1,
        "type": [
          "integer",
          "null"
        ]
      },
      "daily_rolling_chain_date_start": {
        "description": "Дата и время, когда начнет действовать ежедневная награда. Это время также определяет момент ежедневного сброса, когда пользователи могут получить свою награду.",
        "example": "2020-04-15T18:16:00+05:00",
        "format": "date-time",
        "type": "string"
      },
      "date_end": {
        "description": "Дата, когда закончится действие акции с цепочкой наград. Может быть `null`. Если `date_end` равна `null`, то цепочка наград не будет ограничена по времени.",
        "example": "2020-04-15T18:16:00+05:00",
        "format": "date-time",
        "type": [
          "string",
          "null"
        ]
      },
      "date_start": {
        "description": "Дата, когда начнет действовать ваша цепочка наград.",
        "example": "2020-04-15T18:16:00+05:00",
        "format": "date-time",
        "type": "string"
      },
      "day_of_month": {
        "description": "День месяца, когда происходит сброс цепочки наград. Если количество дней в месяце меньше, чем порядковый номер указанного дня, сброс цепочки наград происходит в последний день месяца.",
        "maximum": 31,
        "minimum": 1,
        "type": "integer"
      },
      "day_of_week": {
        "description": "День недели, когда осуществляется сброс цепочки наград, где `1` — понедельник и `7` — воскресенье.",
        "maximum": 7,
        "minimum": 1,
        "type": "integer"
      },
      "description-localization-object": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ],
        "description": "Объект с локализованными описаниями товара. Принимает значения в одном из двух форматов: двухбуквенный код языка в нижнем регистре (например, `en`) или код локали из пяти символов (например, `en-US`). Оба формата допустимы при отправке запроса, но в ответе всегда используется код из двух символов. Если для одного языка указаны оба варианта (например, `en` и `en-US`), будет сохранено последнее переданное значение. Полный список поддерживаемых языков приведен в [документации](/ru/doc/shop-builder/references/supported-languages/).",
        "type": [
          "object",
          "null"
        ]
      },
      "displayable_reset_next_date": {
        "description": "Расчетные дата и время, когда цепочка наград будет сброшена в следующий раз (<a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>). <br><br>Например, сброс цепочки наград осуществляется ежемесячно, начиная с 1 марта 2024 в 01:00 по часовому поясу Куала-Лумпура (GMT+8). Дата и время следующего сброса цепочки наград: 1 апреля 2024 в 01:00 по часовому поясу Куала-Лумпура (GMT+8), что соответствует значению `2024-04-01T01:00:00+08:00` в формате <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO </a>8601. <br><br>Example: `2024-04-01T01:00:00+08:00`",
        "format": "date-time",
        "type": "string"
      },
      "displayable_reset_start_date": {
        "description": "Дата и время первого сброса цепочки наград.<br><br>Например, дата и время первого сброса цепочки наград — 1 марта 2024 в 01:00 по часовому поясу Куала-Лумпура (GMT+8) или `2024-03-01T01:00:00+08:00` в формате <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO </a>8601.<br><br>Example: `2024-03-01T01:00:00+08:00`",
        "format": "date-time",
        "type": "string"
      },
      "drm_name": {
        "description": "Название игры на платформе.",
        "example": "Steam",
        "type": "string"
      },
      "drm_sku": {
        "description": "Уникальный ID платформы.",
        "example": "steam",
        "type": "string"
      },
      "excluded_promotions": {
        "description": "Список акций, которые исключаются при применении этой акции. <br>Example: `[12, 789]`",
        "example": [
          12,
          789
        ],
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "five-letter-locale": {
        "description": "Пятисимвольные коды локали.",
        "properties": {
          "ar-AE": {
            "description": "Арабский",
            "type": [
              "string",
              "null"
            ]
          },
          "bg-BG": {
            "description": "Болгарский",
            "type": [
              "string",
              "null"
            ]
          },
          "cs-CZ": {
            "description": "Чешский",
            "type": [
              "string",
              "null"
            ]
          },
          "de-DE": {
            "description": "Немецкий",
            "type": [
              "string",
              "null"
            ]
          },
          "en-US": {
            "description": "Английский",
            "type": [
              "string",
              "null"
            ]
          },
          "es-ES": {
            "description": "Spanish (Spain)",
            "type": [
              "string",
              "null"
            ]
          },
          "fr-FR": {
            "description": "Французский",
            "type": [
              "string",
              "null"
            ]
          },
          "he-IL": {
            "description": "Иврит",
            "type": [
              "string",
              "null"
            ]
          },
          "id-ID": {
            "description": "Индонезийский",
            "type": [
              "string",
              "null"
            ]
          },
          "it-IT": {
            "description": "Итальянский",
            "type": [
              "string",
              "null"
            ]
          },
          "ja-JP": {
            "description": "Японский",
            "type": [
              "string",
              "null"
            ]
          },
          "km-KH": {
            "description": "Кхмерский",
            "type": [
              "string",
              "null"
            ]
          },
          "ko-KR": {
            "description": "Корейский",
            "type": [
              "string",
              "null"
            ]
          },
          "lo-LA": {
            "description": "Лаосский",
            "type": [
              "string",
              "null"
            ]
          },
          "my-MM": {
            "description": "Бирманский",
            "type": [
              "string",
              "null"
            ]
          },
          "ne-NP": {
            "description": "Непальский",
            "type": [
              "string",
              "null"
            ]
          },
          "ph-PH": {
            "description": "Филиппинский",
            "type": [
              "string",
              "null"
            ]
          },
          "pl-PL": {
            "description": "Польский",
            "type": [
              "string",
              "null"
            ]
          },
          "pt-BR": {
            "description": "Portuguese (Brazil)",
            "type": [
              "string",
              "null"
            ]
          },
          "ro-RO": {
            "description": "Румынский",
            "type": [
              "string",
              "null"
            ]
          },
          "ru-RU": {
            "description": "Русский",
            "type": [
              "string",
              "null"
            ]
          },
          "th-TH": {
            "description": "Тайский",
            "type": [
              "string",
              "null"
            ]
          },
          "tr-TR": {
            "description": "Турецкий",
            "type": [
              "string",
              "null"
            ]
          },
          "vi-VN": {
            "description": "Вьетнамский",
            "type": [
              "string",
              "null"
            ]
          },
          "zh-CN": {
            "description": "Китайский упрощенный",
            "type": [
              "string",
              "null"
            ]
          },
          "zh-TW": {
            "description": "Китайский традиционный",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "five-letter",
        "type": [
          "object",
          "null"
        ]
      },
      "image_url": {
        "description": "URL-адрес изображения.",
        "example": "https://image.example.com",
        "type": [
          "string",
          "null"
        ]
      },
      "inactive_promotions_count": {
        "description": "Количество отключенных акций.",
        "type": "integer"
      },
      "interval_type_hourly_rc": {
        "description": "Частота регулярного сброса цепочки наград.",
        "enum": [
          "hourly"
        ],
        "type": "string"
      },
      "interval_type_monthly": {
        "description": "Частота регулярного сброса цепочки наград.",
        "enum": [
          "monthly"
        ],
        "type": "string"
      },
      "interval_type_weekly": {
        "description": "Частота регулярного сброса цепочки наград.",
        "enum": [
          "weekly"
        ],
        "type": "string"
      },
      "is_clan": {
        "description": "Может ли призовой балл использоваться в цепочках наград для клана.",
        "example": true,
        "type": "boolean"
      },
      "is_enabled": {
        "example": true,
        "type": "boolean"
      },
      "is_reset_after_end": {
        "default": false,
        "description": "Нужно ли сбрасывать цепочку наград (призовые баллы и прогресс всех пользователей) после даты ее окончания:\n* Если `true`, цепочка наград будет сброшена после даты окончания.\n* Если `false`, цепочка наград не будет сброшена после даты окончания.\n\n<br>\n<div class=\"notice\"><strong>Внимание</strong><br><br>\nНе может быть <code>true</code>, если:<br>\n<ul>\n<li>В <code>recurrent_schedule</code> задан период регулярного обновления.</li>\n<li>В <code>periods.date_until</code> передано <code>null</code>.</li>\n</ul>\n</div>",
        "example": false,
        "type": "boolean"
      },
      "item-custom-attributes-response": {
        "description": "JSON-объект, содержащий атрибуты товара и их значения.",
        "format": "json",
        "type": "object"
      },
      "item-periods": {
        "description": "Период продажи товара.",
        "items": {
          "properties": {
            "date_from": {
              "description": "Дата, когда указанный товар будет доступен для продажи.",
              "example": "2020-08-11T10:00:00+03:00",
              "format": "date-time",
              "type": "string"
            },
            "date_until": {
              "description": "Дата, когда указанный товар станет недоступен для продажи. Может быть `null`.",
              "example": "2020-08-11T20:00:00+03:00",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": "object"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "item-periods-response": {
        "description": "Период продажи товара.",
        "items": {
          "properties": {
            "date_from": {
              "description": "Дата, когда указанный товар будет доступен для продажи.",
              "example": "2020-08-11T10:00:00+03:00",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "date_until": {
              "description": "Дата, когда указанный товар станет недоступен для продажи. Может быть `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": "Количество призовых баллов.",
              "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": "Количество призовых баллов.",
              "minimum": 0,
              "type": "integer"
            },
            "sku": {
              "$ref": "#/components/schemas/sku"
            }
          },
          "required": [
            "sku",
            "amount"
          ],
          "type": "object"
        },
        "type": "array"
      },
      "item_id": {
        "description": "Внутренний уникальный ID виртуального предмета или валюты.",
        "example": 1,
        "type": "integer"
      },
      "item_price_conditions_promocode": {
        "description": "Массив объектов с условиями, задающими ценовой диапазон применения акции для отдельных товаров в корзине.<br>\nСтоимость каждого товара в корзине пользователя сравнивается с заданным в условии ценовым диапазоном. [Бонусы](/ru/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) и [скидки](/ru/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) применяются только к тем товарам в корзине, цена которых удовлетворяет условию.<br>\nЕсли вы передаете этот массив, в массиве [discounted_items](/ru/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) передайте значение `null`.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "item_type": {
        "description": "Тип товара: `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": "Объект с локализованными длинными описаниями товара. Принимает значения в одном из двух форматов: двухбуквенный код языка в нижнем регистре (например, `en`) или код локали из пяти символов (например, `en-US`). Оба формата допустимы при отправке запроса, но в ответе всегда используется код из двух символов. Если для одного языка указаны оба варианта (например, `en` и `en-US`), будет сохранено последнее переданное значение. Полный список поддерживаемых языков приведен в [документации](/ru/doc/shop-builder/references/supported-languages/).",
        "type": [
          "object",
          "null"
        ]
      },
      "media_list": {
        "description": "Дополнительные ассеты предмета, такие как скриншоты, видео игрового процесса и так далее.",
        "example": [
          {
            "type": "image",
            "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
          }
        ],
        "items": {
          "properties": {
            "type": {
              "description": "Тип медиа: `image`/`video`.",
              "enum": [
                "image",
                "video"
              ],
              "example": "image",
              "type": "string"
            },
            "url": {
              "description": "Ссылка на файл.",
              "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "modify-daily-chain-item-model": {
        "properties": {
          "quantity": {
            "description": "Количество уровней ежедневной награды для этого артикула",
            "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": "Заказ на вознаграждение за уровень цепочки предложений.",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "quantity": {
            "description": "Количество товаров в вознаграждении для этого уровня цепочки.",
            "minimum": 1,
            "type": "integer"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          }
        },
        "required": [
          "sku",
          "quantity"
        ],
        "type": "object"
      },
      "modify-offer-chain-model": {
        "description": "Цепочка предложений.",
        "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": "Уровень цепочки наград.",
        "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": "Объект с локализованными названиями товара. Принимает значения в одном из двух форматов: двухбуквенный код языка в нижнем регистре (например, `en`) или код языка из пяти символов (например, `en-US`). Оба формата допустимы при отправке запроса, но в ответе всегда используется двухбуквенный код языка. Если для одного языка указаны оба варианта (например, `en` и `en-US`), будет сохранено последнее переданное значение. Полный список поддерживаемых языков приведен в [документации](/ru/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": "Дата окончания срока действия цепочки предложений. Может быть `null`. Если `date_end` равен `null`, цепочка предложений будет бессрочной.",
        "example": "2020-04-15T18:16:00+05:00",
        "format": "date-time",
        "type": [
          "string",
          "null"
        ]
      },
      "offer_chain_date_start": {
        "description": "Дата начала действия цепочки предложений.",
        "example": "2020-04-15T18:16:00+05:00",
        "format": "date-time",
        "type": "string"
      },
      "offer_chain_day_of_month": {
        "description": "День месяца, когда сбрасывается цепочка. Если в месяце меньше дней, чем указано — сброс произойдет в последний день месяца.",
        "maximum": 31,
        "minimum": 1,
        "type": "integer"
      },
      "offer_chain_day_of_week": {
        "description": "День недели, когда происходит сброс, где `1` — понедельник, `7` — воскресенье.",
        "maximum": 7,
        "minimum": 1,
        "type": "integer"
      },
      "offer_chain_displayable_reset_next_date": {
        "description": "Рассчитанная дата и время следующего сброса цепочки в формате <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>.<br> Например, если цепочка предложений сбрасывается ежемесячно начиная с 1 марта 2024 года в 01:00 по времени в Куала-Лумпуре, следующий сброс произойдет 1 апреля 2024 года в 01:00 по времени в Куала-Лумпуре, что соответствует `2024-04-01T01:00:00+08:00` в формате <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>.<br><br>Example: `2024-04-01T01:00:00+08:00`",
        "format": "date-time",
        "type": "string"
      },
      "offer_chain_displayable_reset_start_date": {
        "description": "Дата и время первого сброса цепочки предложений.<br><br>Например, первый сброс происходит 1 марта 2024 года в 01:00 по времени в Куала-Лумпуре, это соответствует `2024-03-01T01:00:00+08:00` в формате <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>.<br><br>Example: `2024-03-01T01:00:00+08:00`",
        "format": "date-time",
        "type": "string"
      },
      "offer_chain_hours_interval": {
        "description": "Интервал в часах, через который выполняется сброс цепочки предложений.<br><br>Отсчет начинается от значения <a href=\"https://developers.xsolla.com/ru/api/shop-builder/operation/admin-create-reward-chain/#!path=0/date_start&t=request\">date_start</a>. Например, если `date_start = \"2025-11-15T18:15:00+05:00\"` и `hours_interval = 2`, цепочка предложений будет сбрасываться каждые 2 часа, начиная с `\"2025-11-15T20:15:00+05:00\"`.",
        "maximum": 10000,
        "minimum": 1,
        "type": "integer"
      },
      "offer_chain_id": {
        "description": "Уникальный ID цепочки предложений.",
        "example": 9,
        "type": "integer"
      },
      "offer_chain_interval_type_hourly": {
        "description": "Частота сброса цепочки предложений.",
        "enum": [
          "hourly"
        ],
        "type": "string"
      },
      "offer_chain_interval_type_monthly": {
        "description": "Частота сброса цепочки предложений.",
        "enum": [
          "monthly"
        ],
        "type": "string"
      },
      "offer_chain_interval_type_weekly": {
        "description": "Частота сброса цепочки предложений.",
        "enum": [
          "weekly"
        ],
        "type": "string"
      },
      "offer_chain_is_free": {
        "description": "Указывает, является ли уровень цепочки предложений бесплатным:<ul><li>Если <code>true</code> — награду необходимо запросить, используя метод <a href=\"/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Получение награды за уровень цепочки предложений</a>.</li><li>Если <code>false</code> — награду необходимо приобрести, используя метод <a href=\"/api/shop-builder/operation/order-user-offer-chain-step-reward\">Создание заказа на награду за уровень цепочки предложений</a>.</li></ul>",
        "type": "boolean"
      },
      "offer_chain_recurrent_schedule": {
        "description": "Интервал повторяющегося сброса цепочки предложений.",
        "oneOf": [
          {
            "description": "Еженедельный сброс цепочки предложений.",
            "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 = еженедельно",
            "type": [
              "object",
              "null"
            ]
          },
          {
            "description": "Ежемесячный сброс цепочки.",
            "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 = ежемесячно",
            "type": "object"
          },
          {
            "description": "Сброс цепочки предложений, выполняемый через временной интервал, заданный в часах.",
            "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": "Интервал сброса цепочки предложений.",
        "properties": {
          "interval_type": {
            "description": "Частота сброса цепочки предложений.",
            "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": "Интервал сброса цепочки предложений.",
        "oneOf": [
          {
            "description": "Еженедельный сброс цепочки предложений.",
            "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 = еженедельно",
            "type": [
              "object",
              "null"
            ]
          },
          {
            "description": "Ежемесячный сброс цепочки.",
            "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 = ежемесячно",
            "type": "object"
          },
          {
            "description": "Сброс цепочки предложений, выполняемый через временной интервал, заданный в часах.",
            "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": "Рассчитанные дата и время следующего сброса цепочки предложений в формате <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">Unix Timestamp</a>.<br><br>Например, цепочка предложений сбрасывается ежемесячно начиная с 1 марта 2024 года в 01:00 по времени в Куала-Лумпуре (GMT+8), следующий сброс произойдет 1 апреля 2024 года в 01:00 по часовому поясу Куала-Лумпура (GMT+8), что соответствует 31 марта 2024 года 17:00 по времени GMT+0 или `1711904400000` в формате Unix Timestamp.<br><br> Example: `1711904400000`",
        "type": "integer"
      },
      "offer_chain_step_id": {
        "description": "Уникальный ID уровня цепочки.",
        "example": 10,
        "minimum": 1,
        "type": [
          "integer",
          "null"
        ]
      },
      "offer_chain_step_number": {
        "description": "Номер уровня.",
        "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": "Цена уровня в реальной валюте.",
        "example": 99.99,
        "type": "number"
      },
      "offer_chain_step_price_currency": {
        "description": "Валюта, в которой указана цена товара. Трехбуквенный код в соответствии со стандартом [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).",
        "example": "USD",
        "type": "string"
      },
      "offer_chain_time": {
        "description": "Время сброса цепочки предложений в указанном часовом поясе (с округлением до часов).<br><br>Например, время сброса установлено на 01:00 по часовому поясу Куала-Лумпура (GMT+8), значение параметра `time` будет `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": "Определяет порядок расположения.",
        "example": 1,
        "type": "integer"
      },
      "periods": {
        "description": "Периоды действия цепочки наград. Если указано больше одного периода, параметры `date_from` и `date_until` становятся обязательными.",
        "items": {
          "properties": {
            "date_from": {
              "description": "Дата начала действия указанной цепочки наград.",
              "example": "2020-08-11T10:00:00+03:00",
              "format": "date-time",
              "nullable": false,
              "type": "string"
            },
            "date_until": {
              "description": "Дата окончания действия указанной цепочки наград. Может быть `null`, только если указан один период действия.",
              "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": "Условия для проверки атрибутов пользователя. \nОпределяют доступность товаров в каталоге на основе соответствия атрибутов пользователя всем указанным условиям."
          }
        ]
      },
      "personalized-catalog_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Условия для проверки атрибутов пользователя. \nОпределяют доступность товаров в каталоге на основе соответствия атрибутов пользователя всем указанным условиям."
          }
        ]
      },
      "popup_header-two-letter-locale": {
        "description": "Объект с локализациями для описания всплывающей подсказки в цепочке наград для клана. Двухбуквенный [код языка в нижнем регистре](https://developers.xsolla.com/ru/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": "Изображение для подсказки про цепочку наград для клана во всплывающем окне.",
        "example": "https://image.example.com",
        "format": "uri",
        "type": [
          "string",
          "null"
        ]
      },
      "popup_instruction-two-letter-locale": {
        "description": "Объект с локализациями для описания всплывающей подсказки в цепочке наград для клана. Двухбуквенный [код языка в нижнем регистре](https://developers.xsolla.com/ru/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": "Массив объектов с условиями, задающими ценовой диапазон применения акции.<br> Акция применяется только к товарам, цена которых удовлетворяет всем условиям в массиве. Если вы передаете этот массив, в объекте [condition](/ru/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) передайте значение `null`.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "price_conditions_discount": {
        "description": "Массив объектов с условиями, задающими ценовой диапазон применения акции.<br>Акция применяется только к товарам, цена которых удовлетворяет всем условиям в массиве. Если вы передаете этот массив, в объекте [items](/ru/api/shop-builder/operation/create-item-promotion/#!path=items&t=request) передайте значение `null`.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "price_conditions_items": {
        "description": "Each object describes a rule the price should be.",
        "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": "Значение для определения ценового диапазона применения акции.",
            "pattern": "^\\d+(\\.\\d{1,4})?$",
            "type": "string"
          }
        },
        "required": [
          "operator",
          "value"
        ],
        "type": "object"
      },
      "price_conditions_promocode": {
        "description": "Массив объектов с условиями, задающими ценовой диапазон применения акции для отдельных товаров в корзине.<br>\nСтоимость каждого товара в корзине пользователя сравнивается с заданным в условии ценовым диапазоном. [Бонусы](/ru/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) и [скидки](/ru/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) применяются только к тем товарам в корзине, цена которых удовлетворяет условию.<br>\nЕсли вы передаете этот массив, в массиве [discounted_items](/ru/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) передайте значение `null`.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        },
        "type": [
          "array",
          "null"
        ]
      },
      "promotion_periods": {
        "description": "Периоды действия акции. Если указано больше одного периода, параметры `date_from` и `date_until` становятся обязательными.",
        "items": {
          "properties": {
            "date_from": {
              "description": "Дата начала действия указанной акции.",
              "example": "2020-08-11T10:00:00+03:00",
              "format": "date-time",
              "nullable": false,
              "type": "string"
            },
            "date_until": {
              "description": "Дата окончания действия указанной акции. Если передано значение `null`, акция является бессрочной. Может быть `null`, только если указан один период действия.",
              "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": "Период обновления установленный ограничений.",
        "properties": {
          "per_user": {
            "description": "Период обновления установленный ограничений для пользователя.",
            "oneOf": [
              {
                "description": "Ежедневное обновления пользовательских ограничений.",
                "properties": {
                  "displayable_reset_next_date": {
                    "description": "Дата и время, когда ограничения должны быть сброшены (ISO 8601).",
                    "example": "2023-02-28T11:00:00+08:00",
                    "format": "date-time",
                    "type": "string"
                  },
                  "displayable_reset_start_date": {
                    "description": "Дата и время первого обновления ограничения (ISO 8601).",
                    "example": "2023-02-28T11:00:00+08:00",
                    "format": "date-time",
                    "type": "string"
                  },
                  "interval_type": {
                    "description": "Период обновления ограничения на продажу товара.",
                    "enum": [
                      "daily"
                    ],
                    "type": "string"
                  },
                  "reset_next_date": {
                    "description": "Дата и время обновления ограничений (Unix Timestamp).",
                    "example": 1677553200,
                    "type": "integer"
                  },
                  "time": {
                    "description": "Время обновления ограничений в желаемом часовом поясе (округление до часов).",
                    "example": "11:00:00+03:00",
                    "format": "full-time",
                    "type": "string"
                  }
                },
                "title": "interval_type = daily",
                "type": "object"
              },
              {
                "description": "Еженедельное обновления пользовательских ограничений.",
                "properties": {
                  "day_of_week": {
                    "description": "День недели, когда обновляются ограничения: 1 — понедельник, 7 — воскресенье. Не `null` только для типа периода `weekly`.",
                    "maximum": 7,
                    "minimum": 1,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "displayable_reset_next_date": {
                    "description": "Дата и время, когда ограничения должны быть сброшены (ISO 8601).",
                    "example": "2023-02-28T11:00:00+08:00",
                    "format": "date-time",
                    "type": "string"
                  },
                  "displayable_reset_start_date": {
                    "description": "Дата и время первого обновления ограничения (ISO 8601).",
                    "example": "2023-02-28T11:00:00+08:00",
                    "format": "date-time",
                    "type": "string"
                  },
                  "interval_type": {
                    "description": "Период обновления ограничения на продажу товара.",
                    "enum": [
                      "weekly"
                    ],
                    "type": "string"
                  },
                  "reset_next_date": {
                    "description": "Дата и время обновления ограничений (Unix Timestamp).",
                    "example": 1677553200,
                    "type": "integer"
                  },
                  "time": {
                    "description": "Время обновления ограничений в желаемом часовом поясе (округление до часов).",
                    "example": "11:00:00+03:00",
                    "format": "full-time",
                    "type": "string"
                  }
                },
                "title": "interval_type = еженедельно",
                "type": "object"
              },
              {
                "description": "Ежемесячное обновление пользовательских ограничений.",
                "properties": {
                  "day_of_month": {
                    "description": "День месяца, когда обновляются ограничения. Если в месяце нет указанного дня, поскольку месяц короче, обновление произойдет в последний день месяца. Не `null` только для периода `monthly`.",
                    "maximum": 31,
                    "minimum": 1,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "displayable_reset_next_date": {
                    "description": "Дата и время, когда ограничения должны быть сброшены (ISO 8601).",
                    "example": "2023-02-28T11:00:00+08:00",
                    "format": "date-time",
                    "type": "string"
                  },
                  "displayable_reset_start_date": {
                    "description": "Дата и время первого обновления ограничения (ISO 8601).",
                    "example": "2023-02-28T11:00:00+08:00",
                    "format": "date-time",
                    "type": "string"
                  },
                  "interval_type": {
                    "description": "Период обновления ограничения на продажу товара.",
                    "enum": [
                      "monthly"
                    ],
                    "type": "string"
                  },
                  "reset_next_date": {
                    "description": "Дата и время обновления ограничений (Unix Timestamp).",
                    "example": 1677553200,
                    "type": "integer"
                  },
                  "time": {
                    "description": "Время обновления ограничений в желаемом часовом поясе (округление до часов).",
                    "example": "11:00:00+03:00",
                    "format": "full-time",
                    "type": "string"
                  }
                },
                "title": "interval_type = ежемесячно",
                "type": "object"
              }
            ],
            "type": [
              "object",
              "null"
            ]
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "promotion_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Условия для проверки атрибутов пользователя.\nОпределяют доступность акции на основе соответствия атрибутов пользователя всем указанным условиям."
          }
        ]
      },
      "promotion_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Условия для проверки атрибутов пользователя.\nОпределяют доступность акции на основе соответствия атрибутов пользователя всем указанным условиям."
          }
        ]
      },
      "recurrent_schedule_client_side": {
        "description": "Период регулярного сброса цепочки наград.",
        "properties": {
          "interval_type": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/interval_type_weekly",
                "title": "interval_type = еженедельно"
              },
              {
                "$ref": "#/components/schemas/interval_type_monthly",
                "title": "interval_type = ежемесячно"
              },
              {
                "$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": "Период регулярного сброса цепочки наград.",
        "oneOf": [
          {
            "description": "Еженедельный сброс цепочки наград.",
            "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 = еженедельно",
            "type": "object"
          },
          {
            "description": "Ежемесячный   сброс цепочки наград.",
            "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 = ежемесячно",
            "type": "object"
          },
          {
            "description": "Сброс цепочки наград, выполняемый через временной интервал, заданный в часах.",
            "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": "Расчетные дата и время, когда цепочка наград будет сброшена в следующий раз (<a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">Unix Timestamp</a>).<br><br>Например, сброс цепочки наград осуществляется ежемесячно, начиная с 1 марта 2024 в 01:00 по часовому поясу Куала-Лумпура (GMT+8). Дата и время следующего сброса цепочки наград: 1 апреля 2024 в 01:00 по часовому поясу Куала-Лумпура (GMT+8), что соответствует 31 марта 2024 17:00 GMT+0 или `1711904400000` в формате Unix Timestamp.<br><br>Example: `1711904400000`",
        "type": "integer"
      },
      "reward-chain-step-reward_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Условия для проверки атрибутов пользователя. \nОпределяют доступность награды на шаге цепочки наград на основе соответствия атрибутов пользователя всем указанным условиям."
          }
        ]
      },
      "reward-chain-step-reward_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Условия для проверки атрибутов пользователя. \nОпределяют доступность награды на шаге цепочки наград на основе соответствия атрибутов пользователя всем указанным условиям."
          }
        ]
      },
      "reward_chain_hours_interval": {
        "description": "Интервал в часах, через который выполняется сброс цепочки наград.<br><br>Отсчет начинается от значения <a href=\"https://developers.xsolla.com/ru/api/shop-builder/operation/admin-create-reward-chain/#!path=0/date_start&t=request\">date_start</a>. Например, если `date_start = \"2025-11-15T18:15:00+05:00\"` и `hours_interval = 2`, цепочка будет сбрасываться каждые 2 часа, начиная с `\"2025-11-15T20:15:00+05:00\"`.",
        "maximum": 10000,
        "minimum": 1,
        "type": "integer"
      },
      "reward_chain_id": {
        "description": "Уникальный ID цепочки наград.",
        "example": 9,
        "type": "integer"
      },
      "reward_item_quantity": {
        "description": "Количество товаров.",
        "example": 2,
        "type": "integer"
      },
      "reward_step_price": {
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/step_price_amount"
          }
        },
        "required": [
          "amount"
        ],
        "type": "object"
      },
      "reward_step_short": {
        "description": "Уровень цепочки наград.",
        "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": "Базовые свойства ежедневной награды с типом 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": "Базовые свойства ежедневной награды с типом `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": "Дата окончания срока действия ежедневной награды.",
        "example": "2020-04-15T18:16:00+05:00",
        "format": "date-time",
        "type": [
          "string",
          "null"
        ]
      },
      "rolling_is_recurrent": {
        "default": false,
        "description": "Перезапускается ли ежедневная награда. Если передано значение `true`, ежедневная награда перезапускается после того, как пользователь проходит все уровни, и он может начать заново с первого уровня. Перезапуск возможен только в пределах активного периода награды, заданного параметрами `date_start` и `date_end`.",
        "example": true,
        "type": "boolean"
      },
      "sku": {
        "description": "Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.",
        "example": "booster_mega_1",
        "maxLength": 255,
        "minLength": 1,
        "pattern": "^[a-zA-Z0-9_\\-–.]*$",
        "type": "string"
      },
      "step_id": {
        "description": "Уникальный ID уровня.",
        "example": 10,
        "type": [
          "integer",
          "null"
        ]
      },
      "step_price_amount": {
        "description": "Цена уровня в призовых баллах.",
        "example": 100,
        "type": "integer"
      },
      "time": {
        "description": "Время, когда происходит сброс цепочки наград в желаемом часовом поясе (округление до часов).<br><br>Например, задано время сброса цепочки наград 01:00 для часового пояса Куала-Лумпура (GMT+8). Значение параметра `time` в этом случае `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": "Количество призовых баллов, которые заработал пользователь.",
            "example": 100,
            "type": "integer"
          },
          "name": {
            "description": "ID пользователя, который отправляется в Xsolla в процессе авторизации, связывает пользователя с вашим проектом Xsolla Login и отображается в качестве никнейма. Если вы используете [авторизацию по ID пользователя](https://developers.xsolla.com/ru/solutions/web-shop/create-web-shop/set-up-authentication/?tabs=100-UserIDAuth&link=100-UserIDAuth), мы рекомендуем передать параметр <code>name</code>  [в ответе на вебхук](https://developers.xsolla.com/ru/webhooks/operation/user-validation-in-webshop/). Этот параметр содержит имя пользователя, которое будет использоваться как никнейм.",
            "example": "Rocket",
            "type": "string"
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "total_promotions_count": {
        "description": "Общее количество акций.",
        "type": "integer"
      },
      "two-letter-locale": {
        "description": "Двухбуквенные строчные языковые коды.",
        "properties": {
          "ar": {
            "description": "Арабский",
            "type": [
              "string",
              "null"
            ]
          },
          "bg": {
            "description": "Болгарский",
            "type": [
              "string",
              "null"
            ]
          },
          "cn": {
            "description": "Китайский упрощенный",
            "type": [
              "string",
              "null"
            ]
          },
          "cs": {
            "description": "Чешский",
            "type": [
              "string",
              "null"
            ]
          },
          "de": {
            "description": "Немецкий",
            "type": [
              "string",
              "null"
            ]
          },
          "en": {
            "description": "Английский",
            "type": [
              "string",
              "null"
            ]
          },
          "es": {
            "description": "Spanish (Spain)",
            "type": [
              "string",
              "null"
            ]
          },
          "fr": {
            "description": "Французский",
            "type": [
              "string",
              "null"
            ]
          },
          "he": {
            "description": "Иврит",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Индонезийский",
            "type": [
              "string",
              "null"
            ]
          },
          "it": {
            "description": "Итальянский",
            "type": [
              "string",
              "null"
            ]
          },
          "ja": {
            "description": "Японский",
            "type": [
              "string",
              "null"
            ]
          },
          "km": {
            "description": "Кхмерский",
            "type": [
              "string",
              "null"
            ]
          },
          "ko": {
            "description": "Корейский",
            "type": [
              "string",
              "null"
            ]
          },
          "lo": {
            "description": "Лаосский",
            "type": [
              "string",
              "null"
            ]
          },
          "my": {
            "description": "Бирманский",
            "type": [
              "string",
              "null"
            ]
          },
          "ne": {
            "description": "Непальский",
            "type": [
              "string",
              "null"
            ]
          },
          "ph": {
            "description": "Филиппинский",
            "type": [
              "string",
              "null"
            ]
          },
          "pl": {
            "description": "Польский",
            "type": [
              "string",
              "null"
            ]
          },
          "pt": {
            "description": "Португальский",
            "type": [
              "string",
              "null"
            ]
          },
          "ro": {
            "description": "Румынский",
            "type": [
              "string",
              "null"
            ]
          },
          "ru": {
            "description": "Русский",
            "type": [
              "string",
              "null"
            ]
          },
          "th": {
            "description": "Тайский",
            "type": [
              "string",
              "null"
            ]
          },
          "tr": {
            "description": "Турецкий",
            "type": [
              "string",
              "null"
            ]
          },
          "tw": {
            "description": "Китайский традиционный",
            "type": [
              "string",
              "null"
            ]
          },
          "vi": {
            "description": "Вьетнамский",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "two-letter",
        "type": [
          "object",
          "null"
        ]
      },
      "unit_type": {
        "description": "Тип: `game`.",
        "example": "game",
        "type": "string"
      },
      "update-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "description": "Ежедневная награда с типом `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": "Цепочка наград для клана.",
            "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": "Цепочка наград.",
        "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": "Ежедневная награда с типом `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": "Ежедневная награда с типом `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 уровня цепочки. Укажите его при обновлении, чтобы сохранить прогресс пользователя для этого уровня.",
        "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": "type = date",
        "type": "object"
      },
      "user-attribute_condition_date_model-post": {
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_date"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-date"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ],
        "title": "type = date",
        "type": "object"
      },
      "user-attribute_condition_number_model-get": {
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_number"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-number"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          }
        },
        "title": "type = number",
        "type": "object"
      },
      "user-attribute_condition_number_model-post": {
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_number"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-number"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ],
        "title": "type = number",
        "type": "object"
      },
      "user-attribute_condition_string_model-get": {
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_string"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-string"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          }
        },
        "title": "type = string",
        "type": "object"
      },
      "user-attribute_condition_string_model-post": {
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_string"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-string"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ],
        "title": "type = string",
        "type": "object"
      },
      "user-attribute_conditions_model-get": {
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/user-attribute_condition_string_model-get"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_number_model-get"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_date_model-get"
            }
          ]
        },
        "maxItems": 100,
        "minItems": 1,
        "type": "array"
      },
      "user-attribute_conditions_model-post": {
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/user-attribute_condition_string_model-post"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_number_model-post"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_date_model-post"
            }
          ]
        },
        "maxItems": 100,
        "minItems": 1,
        "type": "array"
      },
      "user-attribute_conditions_properties_attribute": {
        "description": "Код атрибута пользователя.",
        "maxLength": 255,
        "minLength": 1,
        "pattern": "^[-_.\\d\\w]+$",
        "type": "string"
      },
      "user-attribute_conditions_properties_can_be_missing": {
        "description": "Считается ли условие выполненным, если этот атрибут отсутствует в атрибутах пользователя. Передайте `true`, чтобы показывать товар пользователям, у которых нет этого атрибута. Пользователи у которых атрибут есть, но значение не совпадает с указанным в условии, не увидят товар. `false` — пользователи у которых атрибут есть, но значение не совпадает с указанным в условии, или атрибута нет, не увидят товар.",
        "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": "Тип атрибута пользователя.",
        "enum": [
          "date"
        ],
        "type": "string"
      },
      "user-attribute_conditions_properties_type-number": {
        "description": "Тип атрибута пользователя.",
        "enum": [
          "number"
        ],
        "type": "string"
      },
      "user-attribute_conditions_properties_type-string": {
        "description": "Тип атрибута пользователя.",
        "enum": [
          "string"
        ],
        "type": "string"
      },
      "user-attribute_conditions_properties_value": {
        "description": "Значение условия, с которым будет сравниваться значение атрибута пользователя. Тип зависит от типа атрибута.",
        "maxLength": 255,
        "type": "string"
      },
      "user-attribute_personalized-catalog": {
        "properties": {
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-get"
          },
          "is_enabled": {
            "description": "Включено ли данное правило.",
            "type": "boolean"
          },
          "is_satisfied_for_unauth": {
            "description": "Отображается ли товар неавторизованным пользователям. Если `true`, товар отображается неавторизованным пользователям независимо от правил отображения каталога. `false` по умолчанию.",
            "type": "boolean"
          },
          "items": {
            "items": {
              "description": "Товары, которые видит пользователь, если переданные им значения атрибутов товаров соответствуют условиям.",
              "properties": {
                "bundle_type": {
                  "description": "Тип бандла. Возвращается, если тип элемента является бандлом.",
                  "enum": [
                    "standard",
                    "virtual_currency_package"
                  ],
                  "type": "string"
                },
                "item_id": {
                  "description": "ID предмета (артикул).",
                  "type": "number"
                },
                "name": {
                  "description": "Название товара.",
                  "type": "string"
                },
                "sku": {
                  "description": "Артикул товара.",
                  "type": "string"
                },
                "type": {
                  "description": "Тип товара.",
                  "enum": [
                    "virtual_good",
                    "virtual_currency",
                    "bundle",
                    "physical_good",
                    "unit"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "name": {
            "description": "Читаемое название правила. Используется для отображения правила в Личном кабинете.",
            "type": "string"
          },
          "rule_id": {
            "description": "ID правила.",
            "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": "Включено ли данное правило.",
            "type": "boolean"
          },
          "is_satisfied_for_unauth": {
            "description": "Отображается ли товар неавторизованным пользователям. Если `true`, товар отображается неавторизованным пользователям независимо от правил отображения каталога. `false` по умолчанию.",
            "type": "boolean"
          },
          "items": {
            "items": {
              "oneOf": [
                {
                  "description": "Товары, которые видит пользователь, если переданные им значения атрибутов товаров соответствуют условиям.",
                  "properties": {
                    "item_id": {
                      "description": "ID предмета (артикул).",
                      "type": "number"
                    }
                  },
                  "required": [
                    "item_id"
                  ],
                  "type": "object"
                },
                {
                  "description": "Товары, которые видит пользователь, если переданные им значения атрибутов товаров соответствуют условиям.",
                  "properties": {
                    "sku": {
                      "description": "Артикул товара.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "sku"
                  ],
                  "type": "object"
                }
              ]
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "name": {
            "description": "Читаемое название правила. Используется для отображения правила в Личном кабинете.",
            "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": "Включено ли данное правило.",
            "type": "boolean"
          },
          "is_satisfied_for_unauth": {
            "description": "Отображается ли товар неавторизованным пользователям. Если `true`, товар отображается неавторизованным пользователям независимо от правил отображения каталога. `false` по умолчанию.",
            "type": "boolean"
          },
          "items": {
            "items": {
              "oneOf": [
                {
                  "description": "Товары, которые видит пользователь, если переданные им значения атрибутов товаров соответствуют условиям.",
                  "properties": {
                    "item_id": {
                      "description": "ID предмета (артикул).",
                      "type": "number"
                    }
                  },
                  "required": [
                    "item_id"
                  ],
                  "type": "object"
                },
                {
                  "description": "Товары, которые видит пользователь, если переданные им значения атрибутов товаров соответствуют условиям.",
                  "properties": {
                    "sku": {
                      "description": "Артикул товара.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "sku"
                  ],
                  "type": "object"
                }
              ]
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "name": {
            "description": "Читаемое название правила. Используется для отображения правила в Личном кабинете.",
            "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": "Включено ли данное правило.",
            "type": "boolean"
          },
          "is_satisfied_for_unauth": {
            "description": "Отображается ли товар неавторизованным пользователям. Если `true`, товар отображается неавторизованным пользователям независимо от правил отображения каталога. `false` по умолчанию.",
            "type": "boolean"
          },
          "name": {
            "description": "Читаемое название правила. Используется для отображения правила в Личном кабинете.",
            "type": "string"
          },
          "rule_id": {
            "description": "ID правила.",
            "type": "number"
          }
        },
        "required": [
          "rule_id",
          "name",
          "is_enabled"
        ],
        "type": "object"
      },
      "value-external_id": {
        "description": "Уникальный ID значения атрибута. `external_id` может содержать только строчные латинские буквы, цифры, тире и подчеркивания.",
        "example": "attribute_value",
        "maxLength": 255,
        "minLength": 1,
        "pattern": "^[-_.\\d\\w]+$",
        "type": "string"
      },
      "value-is_free": {
        "default": false,
        "description": "Является ли товар бесплатным.",
        "example": false,
        "type": "boolean"
      },
      "value-point-amount": {
        "description": "Количество призовых баллов.",
        "type": "integer"
      },
      "value-point-description": {
        "description": "Описание призовых баллов.",
        "type": [
          "string",
          "null"
        ]
      },
      "value-point-long-description": {
        "description": "Развернутое описание призовых баллов.",
        "type": [
          "string",
          "null"
        ]
      },
      "value-point-name": {
        "description": "Название призовых баллов.",
        "type": "string"
      },
      "value-point-sku": {
        "description": "Уникальный ID призовых баллов.",
        "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](/ru/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](/ru/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](/ru/api/login/authentication-schemes#getting-user-token).\n\nAlternatively, you can use a [token for opening the payment UI](/ru/api/pay-station/token/create-token).",
        "scheme": "bearer",
        "type": "http"
      },
      "basicAuth": {
        "description": "Для серверных методов используется схема аутентификации `basicAuth`. Все запросы к API должны содержать заголовок `Authorization: Basic <your_authorization_basic_key>`, где `Authorization: Basic <your_authorization_basic_key>` — пара `project_id:api_key`, закодированная по стандарту Base64.\n\nВы можете использовать `merchant_id` вместо `project_id` при необходимости. Это не влияет на функциональность.\n\nЗначения параметров вы можете найти в [Личном кабинете](https://publisher.xsolla.com/):\n\n* `merchant_id` отображается:\n  * В разделе **Настройки компании > Компания**.\n  * В адресной строке браузера на любой странице Личного кабинета. URL-адрес имеет вид: `https://publisher.xsolla.com/<merchant_id>`.\n* `api_key` отображается в Личном кабинете только при создании и должен храниться на вашей стороне. Создать ключ можно в разделах:\n  * [Настройки компании > Ключи API](https://publisher.xsolla.com/0/settings/api_key).\n  * [Настройки проекта > Ключи API](https://publisher.xsolla.com/0/projects/0/edit/api_key).\n\n{% html name=\"div\" attrs={\"class\": \"notice\"} %}\n**Внимание**\n\nЕсли необходимый метод API не включает в себя path-параметр `project_id`, используйте для авторизации ключ API, который действует во всех проектах..\n{% /html %}\n\n* `project_id` отображается:\n  * В Личном кабинете рядом с названием проекта.\n  * В адресной строке браузера при работе с проектом в Личном кабинете. URL-адрес имеет вид: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.Подробная информация о работе с ключами API приведена в [справочнике API](https://developers.xsolla.com/ru/api/getting-started/#api_keys_overview).",
        "scheme": "basic",
        "type": "http"
      },
      "basicMerchantAuth": {
        "description": "Для серверных методов используется схема аутентификации `basicMerchantAuth`. Все запросы к API должны содержать заголовок `Authorization: Basic <your_authorization_basic_key>`, где `your_authorization_basic_key` — пара `merchant_id:api_key`, закодированная по стандарту Base64.\n\nЗначения параметров вы можете найти в [Личном кабинете](https://publisher.xsolla.com/):\n\n* `merchant_id` отображается:\n  * В разделе **Настройки компании > Компания**.\n  * В адресной строке браузера на любой странице Личного кабинета. URL-адрес имеет вид: `https://publisher.xsolla.com/<merchant_id>`\n* `api_key` отображается в Личном кабинете только при создании и должен храниться на вашей стороне. Создать ключ можно в разделе [Настройки компании > Ключи API](https://publisher.xsolla.com/0/settings/api_key).\n\nПодробная информация о работе с ключами API приведена в [справочнике API](https://developers.xsolla.com/ru/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/ru/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](/ru/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](/ru/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](/ru/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](/ru/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](/ru/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](/ru/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/ru/api/catalog/)\n- [Endpoint types](https://developers.xsolla.com/ru/api/catalog/)\n- [Errors handling](https://developers.xsolla.com/ru/api/catalog/)\n- [API keys](https://developers.xsolla.com/ru/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](/ru/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](/ru/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](/ru/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)\n- [Create bundle](/ru/api/catalog/bundles-admin/admin-create-bundle)\n- [Create virtual currency](/ru/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](/ru/api/liveops/promotions-bonuses/create-bonus-promotion)\n- [Create daily reward](/ru/api/liveops/daily-chain-admin/admin-create-daily-chain)\n- [Create unique catalog offer promotion](/ru/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/ru/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](/ru/api/catalog/virtual-items-currency-catalog/get-virtual-items)\n- [Get item group list](/ru/api/catalog/virtual-items-currency-catalog/get-item-groups)\n- [Get list of bundles](/ru/api/catalog/bundles-catalog/get-bundle-list)\n- [Get sellable items list](/ru/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](/ru/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](/ru/api/catalog/free-item/create-free-order-with-item) API call or the [Create order with free cart](/ru/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](/ru/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](/ru/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](/ru/api/shop-builder/operation/put-item-by-cart-id/) API call.\n   - To remove an item, use the [Delete cart item by cart ID](/ru/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](/ru/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](/ru/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](/ru/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](/ru/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/ru/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](/ru/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)\n- [short-polling](/ru/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](/ru/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](/ru/api/catalog/section/authentication)\n- [Payment testing](/ru/dev-resources/testing/general-info/#general_overview)\n- [Set up order status tracking](/ru/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)\n- [Webhooks](/ru/webhooks/overview)\n- [Rate limits](/ru/api/login/rate-limits)\n- [Errors handling](/ru/api/getting-started/#api_errors_handling)\n- [API keys](/ru/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](/ru/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](/ru/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": "LiveOps API",
    "version": "2.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}": {
      "get": {
        "description": "Возвращает оставшееся количество применений кодов. Для фильтрации кодов используйте параметр запроса `codes`.\n\nДля настройки самого ограничения кода перейдите в раздел администратора:\n* [Купоны](https://developers.xsolla.com/ru/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": "Товар не найден."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "statusCode": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение ограничений для уникальных кодов купонов",
        "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": "Возвращает оставшееся количество применений кодов. Для фильтрации кодов используйте `codes`параметр запроса.\n\nДля настройки самого ограничения перейдите в раздел администратора:\n* [Промокоды](https://developers.xsolla.com/ru/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": "Товар не найден."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "statusCode": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Информация об ограничении на применение промокодов",
        "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": "Активирует акцию с купонами.\n После создания акция с купонами по умолчанию отключена.\n Погашение по акции не будет доступно, пока вы ее не активируете.\n Используйте данный метод, чтобы включить и активировать акцию с купонами.",
        "operationId": "activate-coupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Купон успешно активирован."
          },
          "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": "Активация акции с купонами",
        "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": "Получает коды купонов.",
        "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": "Получение кодов купонов",
        "tags": [
          "promotions-coupons"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает код купона.",
        "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": "Создание кода купона",
        "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": "Генерирует коды купонов.",
        "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": "Коды успешно сгенерированы."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Генерация кодов купонов",
        "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": "Деактивирует акцию с купонами.\n После создания акция с купонами по умолчанию отключена.\n Погашение по акции не будет доступно, пока вы ее не активируете.\n Используйте данный метод, чтобы выключить и деактивировать акцию с купонами.",
        "operationId": "deactivate-coupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Купон успешно деактивирован."
          },
          "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": "Деактивация акции с купонами",
        "tags": [
          "promotions-coupons"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v2/project/{project_id}/admin/daily_chain": {
      "get": {
        "description": "Получает список ежедневных наград для администрирования. \n<div class=\"notice\"><strong>Примечание</strong><br><br>Метод возвращает список элементов с учетом пагинации. <strong>Максимальное количество элементов в ответе — 50 (установлено по умолчанию)</strong>. Чтобы получить доступ к следующим элементам списка, используйте параметры `limit` и `offset`. Например, при вызове метода с параметрами `limit = 25` и `offset = 100` вернется 25 элементов, начиная со 101-го в общем списке.</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": "Получение списка ежедневных наград",
        "tags": [
          "daily-chain-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает ежедневную награду.",
        "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": "Создание ежедневной награды",
        "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": "Удаляет определенную ежедневную награду.",
        "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": "Ежедневная награда успешно удалена."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление ежедневной награды",
        "tags": [
          "daily-chain-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Возвращает определенную ежедневную награду для администрирования.",
        "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": "Получение ежедневной награды",
        "tags": [
          "daily-chain-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет определенную ежедневную награду.",
        "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": "Ежедневная награда успешно обновлена."
          },
          "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": "Обновление ежедневной награды",
        "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": "Сбрасывает прогресс для всех пользователей в ежедневной награде. Применяется только к ежедневным наградам с типом `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": "Ежедневная награда сброшена."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Сброс ежедневной награды",
        "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": "Включает или отключает ежедневную награду.",
        "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": "Ежедневная награда отключена или включена."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Переключение ежедневной награды",
        "tags": [
          "daily-chain-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v2/project/{project_id}/admin/items/upsell": {
      "get": {
        "description": "Возвращает информацию об апселле в проекте: включен или выключен апселл, какой тип апселла используется, а также список товаров, используемых в апселле.",
        "operationId": "get-upsell-configurations-for-project-admin",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "upsell": {
                    "summary": "Проект с апселлом",
                    "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": "Используется ли апселл в проекте.",
                        "example": true,
                        "type": "boolean"
                      },
                      "items": {
                        "description": "Список артикулов товаров, которые входят в апселл в проекте.",
                        "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": "Платформы публикации игры.",
                              "items": {
                                "description": "Игра, опубликованная на определенной платформе (steam, gog и т.д.).",
                                "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": "Тип апселла.",
                        "enum": [
                          "fixed_list",
                          "most_sellable",
                          "only_promotions"
                        ],
                        "example": "fixed_list",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список деталей настройки и товаров, которые используются для апселла в проекте."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "summary": "Получение информации об апселле в проекте",
        "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": "Апселл создан в проекте."
          },
          "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": "Создание апселла",
        "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": "Апселл обновлен в проекте."
          },
          "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": "Обновление апселла",
        "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": "Статус активации.",
            "in": "path",
            "name": "toggle",
            "required": true,
            "schema": {
              "example": "activate",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Апселл в проекте был активирован или деактивирован."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "summary": "Активация/деактивация апселла в проекте",
        "tags": [
          "upsell-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v2/project/{project_id}/admin/items/value_points": {
      "get": {
        "description": "Получает список призовых баллов для проекта администрирования.",
        "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": "Получение списка призовых баллов",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает призовые баллы, которые выдаются за покупку товаров в каталоге.",
        "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": "Создание призовых баллов",
        "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": "Удаляет призовые баллы, идентифицированные по артикулу товара.",
        "operationId": "admin-delete-value-point",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "responses": {
          "204": {
            "content": {},
            "description": "Призовые баллы были успешно удалены."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление призовых баллов",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает призовые баллы по артикулу для проекта администрирования.",
        "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": "Получение призовых баллов",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет призовые баллы, идентифицированные по артикулу.",
        "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": "Призовые баллы были успешно обновлены."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Обновление призовых баллов",
        "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": "Удаляет призовые баллы со ВСЕХ товаров.",
        "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": "Призовые баллы для товаров были успешно удалены."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление призовых баллов с товаров",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает список всех товаров с призовыми баллами для проекта администрирования.",
        "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": "Получение списка товаров с призовыми баллами",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "patch": {
        "description": "Частично обновляет количество призовых баллов для одного или нескольких товаров по артикулам этих товаров. Пользователи получают призовые баллы после покупки этих товаров.\n\nПринципы обновления призовых баллов:\n  * Если у товара еще нет призовых баллов, отправка ненулевого значения в поле `amount` создаст их.\n  * Если у товара уже есть призовые баллы, отправка ненулевого значения в поле `amount` обновит их.\n  * Если в поле `amount` передано значение 0, существующие призовые баллы для этого товара будут удалены.\n\nВ отличие от метода `PUT` ([Настройка призовых баллов для товаров](https://developers.xsolla.com/ru/api/shop-builder/operation/admin-set-items-value-point-reward/)), этот метод `PATCH` не перезаписывает все ранее установленные призовые баллы для товаров в проекте, а обновляет только указанные.\n\nВ одном запросе можно обновить до 100 товаров. В одном запросе нельзя передавать одинаковые артикулы товаров.",
        "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": "Призовые баллы для товаров были успешно обновлены."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/sellable-item-by-sku_404"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Частичное обновление призовых баллов для товаров ",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Присваивает призовые баллы одному или нескольким товарам по артикулу. Пользователи получают призовые баллы после покупки этих товаров.\n\nОбратите внимание, что этот запрос PUT перезаписывает все ранее установленные призовые баллы для товаров в проекте.\n\nЧтобы избежать непреднамеренного удаления призовых баллов, включайте все товары и соответствующие им значения в каждый запрос PUT.\n\nЕсли вы хотите обновить призовые баллы только для определенного товара, сохранив значения призовых баллов для других товаров, вам следует получить текущий набор призовых баллов с помощью запроса GET, изменить значения призовых баллов для желаемого товара, а затем отправить измененный набор призовых баллов обратно с обновленными значениями призовых баллов для конкретного товара.",
        "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": "Призовые баллы для товаров были успешно обновлены."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/sellable-item-by-sku_404"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Настройка призовых баллов для товаров",
        "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": "Возвращает список цепочек предложений для администрирования.\n<div class=\"notice\"><strong>Внимание</strong><br><br> Все проекты имеют ограничение на количество элементов, возвращаемых в одном ответе. Максимальное значение — <strong>10 элементов в ответе</strong>. Чтобы получить больше данных, используйте query-параметры <code>limit</code> и <code>offset</code> для пагинации.</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": "Получение списка цепочек предложений",
        "tags": [
          "offer-chain-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает цепочку предложений.",
        "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": "Создание цепочки предложений",
        "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": "Удаляет конкретную цепочку предложений.\n\nПосле удаления цепочки:<ul><li>Все уже полученные пользователями награды сохраняются.</li><li>Непройденные уровни становятся недоступны, и получить награды за них больше нельзя.</li></ul>\n\nУдаление цепочки необратимо и не сохраняет прогресс пользователя, в отличие от временного отключения цепочки с помощью метода <a href=\"/api/shop-builder/operation/admin-toggle-offer-chain\">Переключение цепочки предложений</a>.",
        "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": "Цепочка предложений успешно удалена."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление цепочки предложений",
        "tags": [
          "offer-chain-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Возвращает конкретную цепочку предложений для администрирования.",
        "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": "Получение цепочки предложений",
        "tags": [
          "offer-chain-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет конкретную цепочку предложений.",
        "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": "Цепочка предложений успешно обновлена."
          },
          "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": "Обновление цепочки предложений",
        "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": "Включает или отключает цепочку предложений.\n\nПри отключении цепочки пользователи теряют доступ к ней, но их прогресс сохраняется.\n\nПосле повторного включения цепочки пользователь может продолжить прохождение с того уровня, на котором остановился.",
        "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": "Цепочка предложений была отключена/включена."
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Переключение цепочки предложений",
        "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": "Активирует акцию с промокодами.\n\n После создания акция с промокодами по умолчанию отключена.\n Погашение по акции не будет доступно, пока вы ее не активируете.\n Используйте данный метод, чтобы включить и активировать акцию с промокодами.",
        "operationId": "activate-promo-code",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Промокод успешно активирован."
          },
          "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": "Активация акции с промокодами",
        "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": "Получает коды акции с промокодами.",
        "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": "Получение кодов акции с промокодами",
        "tags": [
          "promotions-promo-codes"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает код для акции с промокодами.",
        "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": "Создание кода для акции с промокодами",
        "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": "Генерирует коды для акции с промокодами.",
        "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": "Коды успешно сгенерированы."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Генерация кодов для акции с промокодами",
        "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": "Деактивирует акцию с промокодами.\n\n После создания акция с промокодами по умолчанию отключена.\n Погашение по акции не будет доступно, пока вы ее не активируете.\n Используйте данный метод, чтобы выключить и деактивировать акцию с промокодами.",
        "operationId": "deactivate-promo-code",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Купон успешно деактивирован."
          },
          "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": "Деактивация акции с промокодами",
        "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": "Активирует акцию.",
        "operationId": "activate-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Акция успешно активирована."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-activate-deactivate-promotion"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Активация акции",
        "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": "Деактивирует акцию.",
        "operationId": "deactivate-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Акция успешно деактивирована."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-activate-deactivate-promotion"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Деактивация акции",
        "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": "Активирует уникальное акционное предложение по каталогу.\nСозданное уникальное акционное предложение каталога по умолчанию отключено.\nОно не может быть погашено до тех пор, пока вы его не активируете.\nИспользуйте этот эндпоинт для включения и активации акции с купонами.",
        "operationId": "activate-unique-catalog-offer",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Уникальное предложение по каталогу было успешно активировано."
          },
          "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": "Активация уникального акционного предложения по каталогу",
        "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": "Получает уникальные коды предложений по каталогу.",
        "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": "Получение уникальных кодов предложений по каталогу",
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает уникальный код предложения по каталогу.",
        "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": "Создание уникального кода предложения по каталогу",
        "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": "Генерирует уникальные коды предложений по каталогу.",
        "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": "Коды были успешно сгенерированы."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Генерация уникальных кодов предложений по каталогу",
        "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": "Отключает уникальное акционное предложение по каталогу.\nСозданное уникальное акционное предложение по умолчанию отключено.\nОно не может быть погашено, пока вы его не активируете.\nИспользуйте этот эндпоинт для отключения и деактивации акции с купонами.",
        "operationId": "deactivate-unique-catalog-offer",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Уникальное предложение по каталогу было успешно деактивировано."
          },
          "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": "Отключите уникальное акционное предложение по каталогу",
        "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": "Получает все правила, применяемые к атрибутам пользователя.",
        "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": "Существует ли другая страница с правилами.",
                      "type": "boolean"
                    },
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/user-attribute_personalized-catalog"
                      },
                      "type": "array"
                    },
                    "total_items_count": {
                      "description": "Общее количество правил.",
                      "type": "number"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Правила успешно получены."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "403": {
            "$ref": "#/components/responses/403-auth-header-not-sent"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение списка правил фильтрации каталога",
        "tags": [
          "personalized-catalog"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает правило для пользовательских атрибутов.",
        "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 правила.",
                      "type": "number"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Правило успешно создано."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Создание правила фильтрации каталога",
        "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": "Получает список всех правил каталога для поиска на стороне клиента.\n<div class=\"notice\"><strong>Внимание</strong><br><br>Возвращает только ID правила, имя и 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": "Правила успешно получены."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "403": {
            "$ref": "#/components/responses/403-auth-header-not-sent"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение всех правил каталога для поиска на стороне клиента",
        "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": "Удаляет определенное правило.",
        "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": "Удалено успешно."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление правила фильтрации каталога",
        "tags": [
          "personalized-catalog"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает конкретное правило, применяемое к атрибутам пользователя.",
        "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": "Правило получено успешно."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение правила фильтрации каталога",
        "tags": [
          "personalized-catalog"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "patch": {
        "description": "Обновляет определенное правило, применяемое к атрибутам пользователя. Для неуказанных свойств будет использоваться текущее значение.",
        "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": "Обновлено успешно."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Корректировка правила фильтрации каталога",
        "tags": [
          "personalized-catalog"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет определенное правило, применяемое к атрибутам пользователя. Для неуказанных свойств (при их необязательности) будет использоваться значение по умолчанию.",
        "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": "Обновлено успешно."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Обновление правила фильтрации каталога",
        "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": "Получает информацию об оставшемся количестве применений купона для указанного пользователя.\n\nAPI ограничений для пользователей позволяет ограничить доступное количество применений купона. Для настройки самого ограничения перейдите в раздел администратора:\n* [Купоны](https://developers.xsolla.com/ru/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": "Товар не найден."
          },
          "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": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Информация об ограничении на применение купонов для указанного пользователя",
        "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": "Получает информацию об оставшемся количестве применений промокода для указанного пользователя.\n\nAPI ограничений для пользователей позволяет ограничить доступное количество применений промокода. Для настройки самого ограничения перейдите в раздел администратора:\n* [Промокоды](https://developers.xsolla.com/ru/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": "Товар не найден."
          },
          "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": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Информация об ограничении на применение промокодов для указанного пользователя",
        "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": "Обновляет все лимиты по всем акциям для указанного пользователя, чтобы он мог снова использовать эти акции.\n\nAPI лимитов пользователя позволяет ограничить количество раз, когда пользователи могут использовать рекламную акцию. Для настройки самого лимита перейдите в раздел Admin нужного типа акции:\n* [Акции со скидками](https://developers.xsolla.com/ru/api/shop-builder/tag/promotions-discounts/)\n* [Бонусные акции](https://developers.xsolla.com/ru/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": "Лимит акции был успешно обновлен."
          },
          "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": "Товар не найден."
          },
          "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": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Обновление лимитов акций для пользователя",
        "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": "Уменьшает оставшееся количество раз, когда указанный пользователь может воспользоваться рекламной акцией в пределах установленного лимита.\n\nAPI лимитов пользователя позволяет ограничить количество раз, когда пользователи могут использовать рекламную акцию. Для настройки самого лимита перейдите в раздел Admin нужного типа акции:\n* [Акции со скидками](https://developers.xsolla.com/ru/api/shop-builder/tag/promotions-discounts/)\n* [Бонусные акции](https://developers.xsolla.com/ru/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": "Товар не найден."
          },
          "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": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Уменьшение лимита акций для пользователя",
        "tags": [
          "user-limits-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Возвращает оставшееся количество раз, когда указанный пользователь может воспользоваться акцией в пределах установленного лимита.\n\nAPI лимитов пользователя позволяет ограничить количество раз, когда пользователи могут использовать рекламную акцию. Для настройки самого лимита перейдите в раздел Admin нужного типа акции:\n* [Акции со скидками](https://developers.xsolla.com/ru/api/shop-builder/tag/promotions-discounts/)\n* [Бонусные акции](https://developers.xsolla.com/ru/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": "Товар не найден."
          },
          "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": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение лимита акций для пользователя",
        "tags": [
          "user-limits-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Увеличивает оставшееся количество раз, когда указанный пользователь может воспользоваться акцией в пределах установленного лимита.\n\nAPI лимитов пользователя позволяет ограничить количество раз, когда пользователи могут использовать рекламную акцию. Для настройки самого лимита перейдите в раздел Admin нужного типа акции:\n* [Акции со скидками](https://developers.xsolla.com/ru/api/shop-builder/tag/promotions-discounts/)\n* [Бонусные акции](https://developers.xsolla.com/ru/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": "Товар не найден."
          },
          "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": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Увеличение лимита акций для пользователя",
        "tags": [
          "user-limits-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Задает количество раз, когда указанный пользователь может воспользоваться рекламной акцией в пределах лимита, примененного после его увеличения или уменьшения.\n\nAPI лимитов пользователя позволяет ограничить количество раз, когда пользователи могут использовать рекламную акцию. Для настройки самого лимита перейдите в раздел Admin нужного типа акции:\n* [Акции со скидками](https://developers.xsolla.com/ru/api/shop-builder/tag/promotions-discounts/)\n* [Бонусные акции](https://developers.xsolla.com/ru/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": "Товар не найден."
          },
          "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": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Настройка лимита акций для пользователя",
        "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": "Обновляет лимит акции, чтобы пользователь мог снова воспользоваться этой акцией. Если параметр *user* равен `null`, этот вызов обновляет это ограничение для всех пользователей.\n\nAPI лимитов пользователя позволяет ограничить количество раз, когда пользователи могут использовать рекламную акцию. Для настройки самого лимита перейдите в раздел Admin нужного типа акции:\n* [Акции со скидками](https://developers.xsolla.com/ru/api/shop-builder/tag/promotions-discounts/)\n* [Бонусные акции](https://developers.xsolla.com/ru/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": "Лимит акции был успешно обновлен."
          },
          "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": "Товар не найден."
          },
          "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": "Неверный запрос."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Обновление лимита акций для пользователей",
        "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": "Получение вознаграждений по купону",
        "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": "Погашение кода купона",
        "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": "Получение списка товаров для апселла в проекте",
        "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": "Получение вознаграждения по промокоду",
        "tags": [
          "promotions-promo-codes"
        ],
        "x-badges": [
          {
            "color": "#80eaff",
            "name": "Client-side"
          }
        ]
      }
    },
    "/v2/project/{project_id}/promocode/redeem": {
      "post": {
        "description": "Использует код акции с промокодами.\nПосле погашения промокода пользователь получит бесплатные товары и/или цена корзины и/или отдельных товаров будет снижена.",
        "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": "Погашение промокода",
        "tags": [
          "promotions-promo-codes"
        ],
        "x-badges": [
          {
            "color": "#80eaff",
            "name": "Client-side"
          }
        ]
      }
    },
    "/v2/project/{project_id}/promocode/remove": {
      "put": {
        "description": "Удаляет промокод из корзины.\nПосле удаления промокода общая цена всех товаров в корзине будет пересчитана без учета бонусов и скидок, предоставляемых промокодом.",
        "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": "Удаление промокода из корзины",
        "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": "Подтвердите промокод",
        "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 проекта.",
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "example": 44056,
              "type": "integer"
            }
          },
          {
            "description": "ID цепочки наград.",
            "in": "path",
            "name": "reward_chain_id",
            "required": true,
            "schema": {
              "example": 101,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "clan": {
                    "summary": "Пользователь состоит в клане.",
                    "value": [
                      {
                        "contributed_amount": 555,
                        "name": "winner"
                      },
                      {
                        "contributed_amount": 398,
                        "name": "Rocket"
                      },
                      {
                        "contributed_amount": 201,
                        "name": "MrJoe"
                      },
                      {
                        "contributed_amount": 1,
                        "name": "beginner"
                      }
                    ]
                  },
                  "without-clan": {
                    "summary": "Пользователь не состоит в клане.",
                    "value": []
                  }
                },
                "schema": {
                  "items": {
                    "properties": {
                      "contributed_amount": {
                        "description": "Количество призовых баллов, заработанных пользователем.",
                        "example": 100,
                        "type": "integer"
                      },
                      "name": {
                        "description": "ID пользователя, который отправляется в Xsolla в процессе авторизации и связывает пользователя с вашим проектом Xsolla Login.",
                        "example": "Rocket",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "10 участников, внесших наибольший вклад в клановую цепочку наград."
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "summary": "Получение 10 участников, внесших наибольший вклад в продвижение по клановой цепочке наград",
        "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 проекта.",
            "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": "Обновление клана текущего пользователя",
        "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": "Получение ежедневных наград для текущего пользователя",
        "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": "Ежедневные награды пользователя успешно получены."
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "summary": "Получение ежедневной награды по ее 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": "Текущая награда пользователя за уровень ежедневной награды успешно получена."
          },
          "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": "Награда за уровень не может быть получена."
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "summary": "Получение ежедневной награды за уровень",
        "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": "Получение цепочек предложений для текущего пользователя",
        "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": "Цепочка предложений пользователя успешно получена."
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "summary": "Получение цепочки предложений по ее 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 заказа.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Награда на бесплатном уровне для текущего пользователя успешно получена."
          },
          "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": "Невозможно получить награду на бесплатном уровне цепочки предложений. Убедитесь, что все предыдущие уровни пройдены, и текущий уровень бесплатный."
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "summary": "Получение награды за уровень цепочки предложений",
        "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/ru/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": "Покупка уровня невозможна."
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "summary": "Создание заказа на награду за уровень цепочки предложений",
        "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": "Получение цепочки наград текущего пользователя",
        "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": "Получение призовых баллов текущего пользователя",
        "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": "Успешно получена награда на уровне для текущего пользователя в цепочке наград."
          },
          "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": "Получение награды на уровне",
        "tags": [
          "reward-chain-client"
        ],
        "x-badges": [
          {
            "color": "#80eaff",
            "name": "Client-side"
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/coupon": {
      "get": {
        "description": "Получает список акций с купонами в рамках проекта.",
        "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": "Получение списка акций с купонами",
        "tags": [
          "promotions-coupons"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает акцию с купонами.",
        "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": "Акция с купонами успешно создана."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Создание акции с купонами",
        "tags": [
          "promotions-coupons"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/coupon/{external_id}": {
      "delete": {
        "description": "Удаляет [акцию с купонами](https://developers.xsolla.com/ru/doc/shop-builder/features/coupons/). Удаленная акция:\n* Пропадет из списка акций, настроенных в вашем проекте.\n* Не будет применяться к каталогу товаров. Пользователь не сможет получить бонусные товары по этой акции.\n\nПосле удаления акция не может быть восстановлена.\nКоды купонов из удаленной акции могут быть [добавлены](https://developers.xsolla.com/ru/api/shop-builder/operation/create-coupon-code/) в существующие акции.",
        "operationId": "delete-coupon-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Акция с купоном была успешно удалена."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление акции с купонами",
        "tags": [
          "promotions-coupons"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает указанную акцию с купонами.",
        "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": "Акция с купонами успешно получена."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение акции с купонами",
        "tags": [
          "promotions-coupons"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет акцию с купонами.",
        "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": "Акция с купонами успешно обновлена."
          },
          "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": "Обновление акции с купонами",
        "tags": [
          "promotions-coupons"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/promocode": {
      "get": {
        "description": "Получает список промокодов проекта.",
        "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": "Получение списка акций с промокодами",
        "tags": [
          "promotions-promo-codes"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает акцию с промокодами.",
        "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": "Промокод успешно создан."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Создание акции с промокодами",
        "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": "Удаляет [акцию с промокодами](https://developers.xsolla.com/ru/doc/shop-builder/features/promo-codes/). Удаленная акция:\n* Пропадет из списка акций, настроенных в вашем проекте.\n* Не будет применяться к каталогу товаров и к корзине. Пользователь не сможет получить бонусные товары или купить товары с применением этой акции.\n\nПосле удаления акция не может быть восстановлена.\nПромокоды из удаленной акции могут быть [добавлены](https://developers.xsolla.com/ru/api/shop-builder/operation/create-promo-code-code/) в существующие акции.",
        "operationId": "delete-promo-code",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Акция с промокодом была успешно удалена."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление акции с промокодами",
        "tags": [
          "promotions-promo-codes"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает указанную акцию с промокодами.",
        "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": "Промокод успешно получен."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение акции с промокодами",
        "tags": [
          "promotions-promo-codes"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет акцию с промокодами.",
        "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": "Промокод успешно обновлен."
          },
          "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": "Обновление акции с промокодами",
        "tags": [
          "promotions-promo-codes"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/promotion": {
      "get": {
        "description": "Получает список акций проекта.",
        "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": "Получение списка всех акций",
        "tags": [
          "promotions-common"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/promotion/bonus": {
      "get": {
        "description": "Получает список акций с бонусами в рамках проекта.\n\nАкция добавляет бесплатные бонусные товары к покупке, совершенной пользователем.\nАкция может быть применена к каждой покупке в рамках проекта или к покупке, включающей определенные товары.",
        "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": "Получение списка акций с бонусами",
        "tags": [
          "promotions-bonuses"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает акцию с бонусами.\n\nАкция добавляет бесплатные бонусные товары к покупке, совершенной пользователем.\nАкция может быть применена к каждой покупке в рамках проекта или к покупке, включающей определенные товары.",
        "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": "Создание акции с бонусами",
        "tags": [
          "promotions-bonuses"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/promotion/item": {
      "get": {
        "description": "Получает список акций со скидками в рамках проекта.\n\nАкция дает скидку (%) на товары.\nСкидка будет применена ко всем ценам на указанные товары.",
        "operationId": "get-item-promotion-list",
        "parameters": [
          {
            "description": "ID проекта.",
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "default": 59080,
              "type": "integer"
            }
          },
          {
            "description": "Лимит количества элементов на странице.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Номер элемента, с которого выполняется вывод на странице (нумерация ведется с 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": "Получение списка акций со скидками",
        "tags": [
          "promotions-discounts"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает акцию со скидками для товара.\n\nАкция дает скидку (%) на товары.\nСкидка будет применена ко всем ценам на указанные товары.",
        "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": "Создание акции со скидками для товара",
        "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": "Получение акции по промокоду или коду купона.",
        "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": "Информация об акции с кодом",
        "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": "Удаляет [бонусную акцию](https://developers.xsolla.com/ru/doc/shop-builder/features/bonuses/). Удаленная акция:\n* Пропадет из списка акций, настроенных в вашем проекте.\n* Не будет применяться к каталогу товаров и к корзине. Пользователь не сможет получить бонусные товары по этой акции.\n\nПосле удаления акция не может быть восстановлена.",
        "operationId": "delete-bonus-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Акция была успешно удалена."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление бонусной акции",
        "tags": [
          "promotions-bonuses"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает акцию с бонусами.\n\nАкция добавляет бесплатные бонусные товары к покупке, совершенной пользователем.\nАкция может быть применена к каждой покупке в рамках проекта или к покупке, включающей определенные товары.",
        "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": "Получение акции с бонусами",
        "tags": [
          "promotions-bonuses"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет акцию.\n\n<div class='note'><b>Примечание</b><br><br>Новые данные заменят старые. Если вы хотите обновить только часть акции, вам также следует передать в запросе все необходимые данные.</div>\n\nАкция добавляет бесплатные бонусные товары к покупке, совершенной пользователем.\nАкция может быть применена к каждой покупке в рамках проекта или к покупке, включающей определенные товары.",
        "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": "Акция успешно обновлена."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-bonus-property"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Обновление акции с бонусами",
        "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": "Удаляет [скидочную акцию](https://developers.xsolla.com/ru/doc/shop-builder/features/discounts/). Удаленная акция:\n* Пропадет из списка акций, настроенных в вашем проекте.\n* Не будет применяться к каталогу товаров и к корзине. Пользователь не сможет купить товары с применением этой акции.\n\nПосле удаления акция не может быть восстановлена.",
        "operationId": "delete-item-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Акция была успешно удалена."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление скидочной акции",
        "tags": [
          "promotions-discounts"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает акцию, применяемую к определенным товарам.\n\nАкция дает скидку (%) на товары.\nСкидка будет применена ко всем ценам на указанные товары.",
        "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": "Процент скидки. \nЦена товара будет уменьшена с использованием значения, рассчитанного с использованием этого процента.",
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": "object"
                    },
                    "excluded_promotions": {
                      "$ref": "#/components/schemas/excluded_promotions"
                    },
                    "id": {
                      "description": "ID акции. Уникальный идентификатор акции в рамках проекта.",
                      "type": "integer"
                    },
                    "is_enabled": {
                      "$ref": "#/components/schemas/Promotions_is_enabled"
                    },
                    "items": {
                      "items": {
                        "description": "Список товаров, на которые будет распространяться скидка.",
                        "properties": {
                          "sku": {
                            "default": "elven_sword",
                            "description": "Артикул товара.",
                            "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": "Название акции. Данный параметр должен содержать пары ключ/значение,\n где ключ — это локаль в формате \"^[a-z]{2}-[A-Z]{2}$\", значение — строка.",
                      "type": "object"
                    },
                    "price_conditions": {
                      "$ref": "#/components/schemas/price_conditions_discount"
                    },
                    "promotion_periods": {
                      "$ref": "#/components/schemas/promotion_periods"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Акция со скидками успешно получена."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "response": {
                    "value": {
                      "errorCode": 9502,
                      "errorMessage": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080",
                      "statusCode": 404
                    }
                  }
                },
                "schema": {
                  "properties": {
                    "errorCode": {
                      "example": 9502,
                      "type": "integer"
                    },
                    "errorMessage": {
                      "example": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080",
                      "type": "string"
                    },
                    "statusCode": {
                      "example": 404,
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Акция не найдена. Убедитесь, что верно указали `promotion_id`."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение акции со скидками",
        "tags": [
          "promotions-discounts"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет акцию.\n\n<div class='note'><b>Примечание</b><br><br>Новые данные заменят старые. Если вы хотите обновить только часть акции, вам также следует передать в запросе все необходимые данные.</div>\n\nАкция дает скидку (%) на товары.\nСкидка будет применена ко всем ценам на указанные товары.",
        "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": "Акция успешно обновлена."
          },
          "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": "Обновление акции со скидками",
        "tags": [
          "promotions-discounts"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/reward_chain": {
      "get": {
        "description": "Получает список цепочек наград.\n\n<div class=\"notice\"><strong>Внимание! </strong><br><br>Все проекты имеют ограничение на количество товаров, которые вы можете получить в ответе. Значение по умолчанию и максимальное значение — <strong>10 товаров в ответе</strong>.Чтобы получить больше данных постранично, используйте <b></b><b></b>поля limit и offset.</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": "Получение списка цепочек наград",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает цепочку наград.",
        "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": "Создание цепочек наград",
        "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": "Удаляет определенную цепочку наград.",
        "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": "Удаление цепочек наград",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает определенную цепочку наград.",
        "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": "Получение цепочек наград",
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет определенную цепочку наград.",
        "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": "Обновление цепочек наград",
        "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": "Сброс цепочки наград",
        "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": "Включение/отключение цепочки наград.",
        "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": "Переключение цепочки наград",
        "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": "Получает список уникальных акционных предложений каталога проекта.",
        "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": "Получение списка уникальных акционных предложений каталога",
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "post": {
        "description": "Создает уникальное акционное предложение по каталогу.",
        "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": "Уникальное предложение по каталогу было успешно создано."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Создание уникального акционного предложения по каталогу",
        "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": "Удаляет [уникальное акционное предложение каталога](https://developers.xsolla.com/ru/doc/shop-builder/features/unique-offer/). Удаленная акция:\n* Пропадет из списка акций, настроенных в вашем проекте.\n* Не будет применяться к каталогу товаров и к корзине. Пользователь не сможет купить товары с применением этой акции.\n\nПосле удаления акция не может быть восстановлена.",
        "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": "Уникальное предложение каталога было успешно удалено."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Удаление уникального акционного предложения каталога",
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "get": {
        "description": "Получает указанное уникальное акционное предложение по каталогу.",
        "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": "Уникальное предложение по каталогу было успешно получено."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Получение уникального акционного предложения по каталогу",
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "x-badges": [
          {
            "color": "#95ff80",
            "name": "Server-side"
          },
          {
            "color": "#d7dee0",
            "name": "Admin"
          }
        ]
      },
      "put": {
        "description": "Обновляет уникальное акционное предложение каталога.",
        "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": "Уникальное предложение каталога было успешно обновлено."
          },
          "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": "Обновление уникального акционного предложения каталога",
        "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](/ru/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/ru/api/catalog/bundles-admin/admin-create-bundle), or [Game keys](/ru/api/catalog/game-keys-admin) groups.\n2. Create a promotion using the [Create discount promotion for item](/ru/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](/ru/api/liveops/promotions-discounts/create-item-promotion/) or [Update item promotion](/ru/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](/ru/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](/ru/api/catalog/tag/common-catalog/), [Virtual Items and Currency > Catalog](/ru/api/catalog/virtual-items-currency-catalog/get-virtual-items/), and [Bundles > Catalog](/ru/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/ru/liveops/promotion-tools/discounts/)\n* [Bonuses](https://developers.xsolla.com/ru/liveops/promotion-tools/bonuses/)\n* [Coupons](https://developers.xsolla.com/ru/liveops/promotion-tools/coupons/)\n* [Promo codes](https://developers.xsolla.com/ru/liveops/promotion-tools/promo-codes/)\n* [Unique catalog offers](https://developers.xsolla.com/ru/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/ru/liveops/promotion-tools/coupons/\">documentation</a> for detailed information about coupons.</p>\n</div>",
      "name": "promotions-coupons",
      "x-displayName": "Купоны"
    },
    {
      "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/ru/liveops/promotion-tools/promo-codes/\">documentation</a> for detailed information about promo codes.</p>\n</div>",
      "name": "promotions-promo-codes",
      "x-displayName": "Промокоды"
    },
    {
      "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/ru/liveops/promotion-tools/unique-offer/\">documentation</a> for detailed information about unique offers.</p>\n</div>",
      "name": "promotions-unique-catalog-offers",
      "x-displayName": "Уникальный каталог предложений"
    },
    {
      "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/ru/liveops/promotion-tools/discounts/\">documentation</a> for detailed information about discounts.</p>\n</div>",
      "name": "promotions-discounts",
      "x-displayName": "Скидки"
    },
    {
      "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/ru/liveops/promotion-tools/bonuses/\">documentation</a> for detailed information about bonuses.</p>\n</div>",
      "name": "promotions-bonuses",
      "x-displayName": "Бонусы"
    },
    {
      "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](/ru/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](/ru/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](/ru/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/ru/api/catalog/bundles-admin/admin-create-bundle) or [Game keys](/ru/api/catalog/game-keys-admin) groups.\n2. [Set up user attributes using the Xsolla Login API](/ru/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](/ru/api/liveops/personalized-catalog/create-filter-rule) API call:\n        * In the [attribute_conditions](/ru/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](/ru/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](/ru/api/liveops/promotions-discounts/create-item-promotion). In the [attribute_conditions](/ru/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](/ru/api/login/getting-user-token#getting-user-token) with user attributes to the [catalog retrieval API calls](https://developers.xsolla.com/ru/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": "Персонализированный каталог"
    },
    {
      "name": "user-limits-admin",
      "x-displayName": "Управление"
    },
    {
      "name": "reward-chain-value-points-admin",
      "x-displayName": "Admin"
    },
    {
      "name": "reward-chain-client",
      "x-displayName": "Клиент"
    },
    {
      "name": "clan-reward-chain-client",
      "x-displayName": "Клиент кланов"
    },
    {
      "name": "daily-chain-admin",
      "x-displayName": "Admin"
    },
    {
      "name": "daily-chain-client",
      "x-displayName": "Клиент"
    },
    {
      "name": "offer-chain-admin",
      "x-displayName": "Admin"
    },
    {
      "name": "offer-chain-client",
      "x-displayName": "Клиент"
    },
    {
      "name": "upsell-admin",
      "x-displayName": "Admin"
    },
    {
      "name": "upsell-client",
      "x-displayName": "Клиент"
    }
  ],
  "x-tagGroups": [
    {
      "name": "АКЦИИ",
      "tags": [
        "promotions-overview",
        "promotions-common",
        "promotions-coupons",
        "promotions-promo-codes",
        "promotions-unique-catalog-offers",
        "promotions-discounts",
        "promotions-bonuses"
      ]
    },
    {
      "name": "ПЕРСОНАЛИЗАЦИЯ",
      "tags": [
        "personalized-catalog"
      ]
    },
    {
      "name": "ЛИМИТЫ",
      "tags": [
        "user-limits-admin"
      ]
    },
    {
      "name": "ЦЕПОЧКИ НАГРАД И ПРИЗОВЫЕ БАЛЛЫ",
      "tags": [
        "reward-chain-value-points-admin",
        "reward-chain-client",
        "clan-reward-chain-client"
      ]
    },
    {
      "name": "ЕЖЕДНЕВНЫЕ ЦЕПОЧКИ",
      "tags": [
        "daily-chain-admin",
        "daily-chain-client"
      ]
    },
    {
      "name": "ЦЕПОЧКИ ПРЕДЛОЖЕНИЙ",
      "tags": [
        "offer-chain-admin",
        "offer-chain-client"
      ]
    },
    {
      "name": "UPSELL",
      "tags": [
        "upsell-admin",
        "upsell-client"
      ]
    }
  ]
}