{
  "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=\"/ko/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": "프로모션 외부 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": "아이템 SKU입니다.",
        "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": "사용자 외부 ID",
        "in": "query",
        "name": "user_external_id",
        "required": true,
        "schema": {
          "example": "d342dad2-9d59-11e9-a384-42010aa8003f",
          "type": "string"
        }
      },
      "value_point_sku-path-param": {
        "description": "가치 포인트 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": "아이템 SKU입니다.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "condition": {
                  "description": "프로모션을 적용하기 위해 구매 항목에 포함되어야 하는 아이템 세트입니다. 이 매개 변수가 `null`이면 프로젝트 내의 모든 구매 항목에 프로모션이 적용됩니다.",
                  "items": {
                    "properties": {
                      "sku": {
                        "default": "elven_sword",
                        "description": "아이템 SKU입니다.",
                        "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": "아이템 SKU입니다.",
                        "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": "인증 헤더가 전송되지 않았습니다."
      },
      "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)에 따른 3자리 코드입니다.",
                            "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": "아이템 SKU입니다.",
                              "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)에 따른 3자리 코드입니다.",
                            "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": "인증 헤더가 전송되지 않았습니다."
      },
      "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입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
                "example": "game_01",
                "type": "string"
              },
              "type": {
                "description": "아이템의 유형: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.",
                "example": "unit",
                "type": "string"
              },
              "unit_items": {
                "description": "아이템에 단위 유형이 있으면 해당 단위의 모든 아이템을 포함합니다. 대부분의 경우 사용자는 그 중 하나를 쿠폰 보너스로 선택해야 합니다.",
                "items": {
                  "properties": {
                    "drm_name": {
                      "description": "DRM 이름입니다.",
                      "example": "Steam",
                      "type": "string"
                    },
                    "drm_sku": {
                      "description": "고유 DRM ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
                      "example": "steam",
                      "type": "string"
                    },
                    "is_free": {
                      "type": "boolean"
                    },
                    "name": {
                      "description": "아이템 이름입니다.",
                      "example": "Game name",
                      "type": "string"
                    },
                    "sku": {
                      "description": "고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
                      "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": "아이템 SKU입니다.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "condition": {
            "description": "프로모션을 적용하기 위해 구매 항목에 포함되어야 하는 아이템 세트입니다. 이 매개 변수가 `null`이면 프로젝트 내의 모든 구매 항목에 프로모션이 적용됩니다.",
            "items": {
              "properties": {
                "sku": {
                  "default": "elven_sword",
                  "description": "아이템 SKU입니다.",
                  "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": "프로모션의 이름입니다. 키가 \"^[a-z]{2}-[A-Z]{2}$\" 형식의 로케일인\n키/값 쌍을 포함해야 하며 값은 문자열입니다.",
            "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입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
                "example": "game_01",
                "type": "string"
              },
              "type": {
                "description": "아이템의 유형: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.",
                "example": "unit",
                "type": "string"
              },
              "unit_items": {
                "description": "아이템에 단위 유형이 있으면 해당 단위의 모든 아이템을 포함합니다. 대부분의 경우 사용자는 그 중 하나를 프로모션 코드 보너스로 선택해야 합니다.",
                "items": {
                  "properties": {
                    "drm_name": {
                      "description": "DRM 이름입니다.",
                      "example": "Steam",
                      "type": "string"
                    },
                    "drm_sku": {
                      "description": "고유 DRM ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
                      "example": "steam",
                      "type": "string"
                    },
                    "is_free": {
                      "$ref": "#/components/schemas/value-is_free"
                    },
                    "name": {
                      "description": "아이템 이름입니다.",
                      "example": "Game name",
                      "type": "string"
                    },
                    "sku": {
                      "description": "고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
                      "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": "아이템 SKU입니다.",
              "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": "프로모션의 이름입니다. 키가 \"^[a-z]{2}-[A-Z]{2}$\" 형식의 로케일인\n키/값 쌍을 포함해야 하며 값은 문자열입니다.",
        "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": "아이템 SKU입니다.",
              "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입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
              "example": "game_01",
              "type": "string"
            },
            "type": {
              "description": "아이템의 유형: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`.",
              "example": "unit",
              "type": "string"
            },
            "unit_items": {
              "description": "아이템에 단위 유형이 있으면 해당 단위의 모든 아이템을 포함합니다. 대부분의 경우 사용자는 그 중 하나를 프로모션 코드 보너스로 선택해야 합니다.",
              "items": {
                "properties": {
                  "drm_name": {
                    "description": "DRM 이름입니다.",
                    "example": "Steam",
                    "type": "string"
                  },
                  "drm_sku": {
                    "description": "고유 RM ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
                    "example": "steam",
                    "type": "string"
                  },
                  "name": {
                    "description": "아이템 이름입니다.",
                    "example": "Game name",
                    "type": "string"
                  },
                  "sku": {
                    "description": "고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
                    "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": "아이템의 이름입니다. 키가 \"^[a-z]{2}-[A-Z]{2}$\" 형식의 로케일인\n키/값 쌍을 포함해야 하며 값은 문자열입니다.",
        "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": "프로모션 외부 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": "사용자 한 명이 구매할 수 있는 총 아이템 개수입니다. 관리자 페이지에서 개수를 설정하거나 스토어 엔터티(제한 개체)에 관리 엔드포인트를 사용할 수 있습니다.",
                "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개체 키는 단위의 SKU이며 값은 단위의 아이템 중 하나의 SKU입니다.",
        "example": {
          "game_1": "game_1_steam",
          "game_2": "game_2_playstation"
        },
        "type": "object"
      },
      "Promotions_sku": {
        "description": "고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
        "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": "고유 카탈로그 혜택을 이용한 후 사용할 수 있는 아이템 SKU 목록입니다.",
        "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": "아이템 SKU의 배열입니다.",
            "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": "아이템 SKU의 빈 배열.",
            "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)에 따른 3자리 코드입니다.",
                "example": "USD",
                "type": "string"
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "promotions": {
            "$ref": "#/components/schemas/Catalog_item_promotions"
          },
          "sku": {
            "description": "고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
            "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": "인게임 재화 아이템 SKU입니다.",
                  "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": "사용자 외부 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/ko/api/shop-builder/operation/admin-delete-reward-chain/)하십시오.\n\n`true`인 경우, 가치 포인트가 어떠한 보상 체인에도 사용되지 않으므로 이를 [삭제](https://developers.xsolla.com/ko/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입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
            "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입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
            "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": "아이템의 이름입니다. 키가 \"^[a-z]{2}\" 형식의 로케일인\n키/값 쌍을 포함해야 하며 값은 문자열입니다.",
              "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": "아이템 SKU입니다.",
                  "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 = 시간",
            "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 타임스탬프)",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = 일일",
            "type": "object"
          },
          {
            "description": "주간 사용자 유형 제한 설정을 새로고침합니다.",
            "properties": {
              "interval_type": {
                "description": "반복 새로고침 기간 유형입니다.",
                "enum": [
                  "weekly"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "재설정 제한이 적용되는 날짜 및 시간입니다(Unix 타임스탬프)",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = 주간",
            "type": "object"
          },
          {
            "description": "월간 사용자 제한 설정 새로고침 유형입니다.",
            "properties": {
              "interval_type": {
                "description": "반복 새로고침 기간 유형입니다.",
                "enum": [
                  "monthly"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "재설정 제한이 적용되는 날짜 및 시간입니다(Unix 타임스탬프)",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = 월간",
            "type": "object"
          },
          {
            "description": "사용자 제한이 지정된 시간 간격(시간 단위)으로 재설정됩니다.",
            "properties": {
              "interval_type": {
                "description": "반복 새로고침 기간 유형입니다.",
                "enum": [
                  "hourly"
                ],
                "type": "string"
              },
              "reset_next_date": {
                "description": "재설정 제한이 적용되는 날짜 및 시간입니다(Unix 타임스탬프)",
                "example": 1677553200,
                "type": "integer"
              }
            },
            "title": "interval_type = 시간",
            "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": "단계가 잠금 해제되는 시점의 유닉스 타임스탬프입니다.",
            "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": "로열티 포인트의 SKU.",
                  "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": "일일 보상 단계의 고유 식별자입니다. 이 단계에 대한 사용자 진행 상황을 유지하려면 업데이트 중에 지정합니다.",
        "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`)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 [문서](/ko/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> 예를 들어, 보상 체인은 2024년 3월 1일부터 쿠알라룸푸르 시간으로 01:00에 매월 초기화됩니다. 다음 보상 체인 재설정 날짜와 시간은 쿠알라룸푸르 시간으로 2024년 4월 1일 01:00이며, 이는 <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> 형식으로 `2024-04-01T01:00:00+08:00`에 해당합니다. <br><br> 예: `2024-04-01T01:00:00+08:00`",
        "format": "date-time",
        "type": "string"
      },
      "displayable_reset_start_date": {
        "description": "보상 체인의 첫 번째 재설정 날짜 및 시간. <br><br> 예를 들어 보상 체인의 첫 번째 재설정 날짜 및 시간은 쿠알라룸푸르 시간으로 2024년 3월 1일 01:00이며 이는 <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> 형식으로 `2024-03-01T01:00:00+08:00`입니다. <br><br> 예: `2024-03-01T01:00:00+08:00`",
        "format": "date-time",
        "type": "string"
      },
      "drm_name": {
        "description": "게임 키 DRM 이름입니다.",
        "example": "Steam",
        "type": "string"
      },
      "drm_sku": {
        "description": "DRM 고유 ID입니다.",
        "example": "steam",
        "type": "string"
      },
      "excluded_promotions": {
        "description": "이 프로모션을 적용할 때 제외할 프로모션 ID 목록입니다. <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": "스페인어(스페인)",
            "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": "포르투갈어(브라질)",
            "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사용자 장바구니에 있는 각 아이템의 가격은 조건에 지정된 가격 범위와 비교됩니다.[보너스](/ko/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) 및 [할인](/ko/api/shop-builder/operation/create-promo-code/#!path=discount&t=request)은 가격이 조건을 충족하는 장바구니에 있는 아이템에만 적용됩니다.<br>\n이 배열을 전달하면 [discounted_items](/ko/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`) 또는 5자 로케일 코드(예 `en-US`: ) 두 가지 형식 중 하나로 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 변수(예: `en` 및 `en-US`)가 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 [문서](/ko/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": "이 SKU의 일일 보상 단계 수입니다.",
            "minimum": 1,
            "type": "integer"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          }
        },
        "required": [
          "sku",
          "quantity"
        ],
        "type": "object"
      },
      "modify-daily-chain-step-model": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/modify-daily-chain-item-model"
            },
            "minItems": 1,
            "type": "array"
          },
          "step_id": {
            "$ref": "#/components/schemas/daily_chain_update_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          }
        },
        "required": [
          "step_number",
          "items"
        ],
        "type": "object"
      },
      "modify-offer-chain-item-model": {
        "properties": {
          "order": {
            "description": "혜택 체인 단계에 대한 리워드 주문입니다.",
            "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`)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 [문서](/ko/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><br> 예를 들어, 월간 혜택 체인 재설정은 2024년 3월 1일 01:00(쿠알라룸푸르 시간)에 시작됩니다. 다음 재설정은 2024년 4월 1일 01:00(쿠알라룸푸르 시간)에 진행하며, 이는 <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> 형식으로 `2024-04-01T01:00:00+08:00`에 해당합니다.<br><br> 예시: `2024-04-01T01:00:00+08:00`",
        "format": "date-time",
        "type": "string"
      },
      "offer_chain_displayable_reset_start_date": {
        "description": "혜택 체인의 첫 번째 재설정 날짜 및 시간입니다. <br><br> 예를 들어 2024년 3월 1일 01:00(쿠알라룸푸르 시간)으로 예정된 첫 번째 재설정은 <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> 형식으로 `2024-03-01T01:00:00+08:00`에 해당합니다. <br><br> 예시: `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/ko/api/shop-builder/operation/admin-create-offer-chain/#!path=date_start&t=request\">date_start</a> 매개 변수에서 시작됩니다. <br><br> 예를 들어, `date_start = \"2025-11-15T18:15:00+05:00\"`이고 `hours_interval = 2`인 경우, 오퍼 체인은 `\"2025-11-15T20:15:00+05:00\"`부터 2시간마다 재설정됩니다.",
        "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 = 시간",
            "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 = 시간",
            "type": "object"
          }
        ],
        "type": [
          "object",
          "null"
        ]
      },
      "offer_chain_reset_next_date": {
        "description": "<a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">유닉스 타임 스탬프</a> 형식으로 표시한 다음에 혜택 체인이 재설정되는 날짜와 시간입니다. <br><br> 예를 들어, 월간 혜택 체인의 재설정은 2024년 3월 1일 01:00(쿠알라룸푸르 시간(GMT+8))에 시작됩니다. 다음 재설정은 2024년 4월 1일 01:00(쿠알라룸푸르 시간(GMT+8))에 진행하며, 이는 2024년 3월 31일 17:00 GMT+0 또는 유닉스 타임 스탬프 형식으로 `1711904400000`에 해당합니다. <br><br> 예: `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)에 따른 3자리 코드입니다.",
        "example": "USD",
        "type": "string"
      },
      "offer_chain_time": {
        "description": "혜택 체인이 지정된 시간대에서 재설정되는 시간(시간 단위로 반올림)입니다. <br><br> 예를 들어 쿠알라룸푸르 시간대(GMT+8)의 경우 재설정 시간이 01:00로 설정되어 있다면 `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": "클랜 보상 체인 툴팁 팝업 창의 헤더에 대한 현지화가 있는 개체입니다. 2자리 소문자 [언어 코드](https://developers.xsolla.com/ko/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": "클랜 보상 체인 툴팁 팝업 창의 지시를 위한 현지화가 있는 개체입니다. 2자리 소문자 [언어 코드](https://developers.xsolla.com/ko/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> 프로모션은 가격이 배열의 모든 조건을 충족하는 아이템에만 적용됩니다. 이 배열을 전달하는 경우 [조건](/ko/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> 프로모션은 가격이 배열의 모든 조건을 충족하는 아이템에만 적용됩니다. 이 배열을 전달하는 경우 [아이템](/ko/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": "각 개체는 가격에 적용되는 규칙을 설명합니다.",
        "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 사용자 장바구니에 있는 모든 아이템의 총 가격을 조건에 지정된 가격 범위와 비교합니다.[보너스](/ko/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) 및 [할인](/ko/api/shop-builder/operation/create-promo-code/#!path=discount&t=request)은 장바구니의 가격이 지정된 조건을 충족할 경우 장바구니의 모든 아이템에 적용됩니다.<br>\n이 배열을 전달할 경우 [discounted_items](/ko/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 타임스탬프)",
                    "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_week": {
                    "description": "제한을 새로고침하는 요일입니다. 여기서 1은 월요일이고 7은 일요일입니다. `weekly` 제한 설정 새로고침 기간 유형만 `null`이 아닙니다.",
                    "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 타임스탬프)",
                    "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": "제한 설정을 새로고침하는 날짜입니다. 해당 월의 일수가 짧아 선택한 날짜가 없으면 해당 월의 마지막 날에 새로고침합니다. `monthly` 제한 설정 새로고침 기간 유형만 `null`이 아닙니다.",
                    "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 타임스탬프)",
                    "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 = 시간"
              }
            ]
          },
          "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 = 시간",
            "type": "object"
          }
        ],
        "type": [
          "object",
          "null"
        ]
      },
      "reset_next_date": {
        "description": "다음에 보상 체인이 재설정되는 날짜와 시간의 계산 결과 <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">(유닉스 타임 스탬프)</a>. <br><br> 예를 들어 보상 체인은 2024년 3월 1일부터 쿠알라룸푸르 시간(GMT+8)을 기준으로 01:00에 매월 초기화됩니다. 다음 보상 체인 재설정 날짜 및 시간은 쿠알라룸푸르 시간(GMT+8)으로 2024년 4월 1일 01:00이며, 이는 2024년 3월 31일 17:00 GMT+0 또는 유닉스 타임 스탬프 형식으로 `1711904400000`에 해당합니다. <br><br> 예: `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/ko/api/shop-builder/operation/admin-create-offer-chain/#!path=date_start&t=request\">date_start</a> 매개 변수에서 시작됩니다. <br><br> 예를 들어, `date_start = \"2025-11-15T18:15:00+05:00\"`이고 `hours_interval = 2`인 경우, 오퍼 체인은 `\"2025-11-15T20:15:00+05:00\"`부터 2시간마다 재설정됩니다.",
        "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`인 경우, 사용자가 모든 단계를 완료하면 일일 보상이 초기화되어 1단계부터 다시 시작할 수 있습니다. 재발생은 `date_start`와 `date_end`로 정의된 활성 보상 기간 내에서만 유효합니다.",
        "example": true,
        "type": "boolean"
      },
      "sku": {
        "description": "고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.",
        "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> 예를 들어, 쿠알라룸푸르 시간대(GMT+8)의 경우 보상 체인 재설정 시간은 01:00입니다. 이 경우 `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입니다. 사용자 ID는 사용자를 엑솔라 로그인 프로젝트와 연결하는 데 사용되며 별명으로 표시됩니다. [ 사용자 ID](https://developers.xsolla.com/ko/solutions/web-shop/create-web-shop/set-up-authentication/?tabs=100-UserIDAuth&link=100-UserIDAuth)에 따라 인증을 사용하는 경우, [ 웹훅 응답](https://developers.xsolla.com/ko/webhooks/operation/user-validation-in-webshop/)에 <code>name</code> 매개 변수를 전달하는 것이 좋습니다. 이 매개 변수에는 별명으로 사용될 사용자 이름이 포함되어 있습니다.",
            "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": "스페인어(스페인)",
            "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": "아이템 SKU입니다.",
                  "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": "아이템 SKU입니다.",
                      "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": "아이템 SKU입니다.",
                      "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](/ko/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](/ko/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](/ko/api/login/authentication-schemes#getting-user-token).\n\nAlternatively, you can use a [token for opening the payment UI](/ko/api/pay-station/token/create-token).",
        "scheme": "bearer",
        "type": "http"
      },
      "basicAuth": {
        "description": "서버측 호출은 `basicAuth` 인증 체계를 사용합니다. API에 대한 모든 요청에는 `Authorization: Basic <your_authorization_basic_key>` 헤더가 포함되어야 하며 여기서 `your_authorization_basic_key`는 Base64 표준에 따라 인코딩된 `project_id:api_key` 쌍입니다.\n\n필요한 경우 `project_id` 대신 `merchant_id`를 사용할 수 있습니다. 기능에는 영향을 미치지 않습니다.\n\n다음과 같이 매개 변수 값을 확인하려면 [관리자 페이지](https://publisher.xsolla.com/)로 이동합니다.\n\n* `merchant_id` 다음과 같이 표시됩니다.\n  * **회사 설정 > 회사** 섹션에서\n  * 관리자 페이지의 브라우저 주소 표시줄에 있는 URL에 있습니다. URL의 형식은 \n    `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 호출에 `project_id` 경로 매개 변수가 포함되어 있지 않은으면 인증 시 모든 회사 프로젝트에서 유효한 API 키를 사용하십시오.\n{% /html %}\n\n * **회사 설정 > API 키**\n  * **프로젝트 설정 > API 키**\n* `project_id`는 다음과 같이 표시됩니다.\n  * 프로젝트 이름 옆의 관리자 페이지에 있습니다.\n  * 브라우저 주소 표시줄의 URL에서 관리자 페이지의 프로젝트 작업 시 URL의 형식은 \n    `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`입니다.\n\nAPI 키 작업에 대한 자세한 정보는 [API 레퍼런스](https://developers.xsolla.com/ko/api/getting-started/#api_keys_overview)를 참조하세요.",
        "scheme": "basic",
        "type": "http"
      },
      "basicMerchantAuth": {
        "description": "서버측 호출은 `basicMerchantAuth` 인증 체계를 사용합니다. API에 대한 모든 요청에는 `Authorization: Basic <your_authorization_basic_key>` 헤더가 포함되어야 하며 여기서 `your_authorization_basic_key`는 Base64 표준에 따라 인코딩된 `merchant_id:api_key` 쌍입니다.\n\n다음과 같이 매개 변수 값을 확인하려면 [관리자 페이지](https://publisher.xsolla.com/)로 이동합니다.\n\n* `merchant_id` 다음과 같이 표시됩니다.\n  * **회사 설정 > 회사** 섹션에서\n  * 관리자 페이지의 브라우저 주소 표시줄에 있는 URL에 있습니다. URL의 형식은 \n    `https://publisher.xsolla.com/<merchant_id>`입니다.\n* `api_key`는 관리자 페이지가 생성될 때 한 번만 표시되며 사용자 측에 저장해야 합니다. 새 키는 [회사 설정 > API 키](https://publisher.xsolla.com/0/settings/api_key) 섹션에서 만들 수 있습니다.\n\nAPI 키 작업에 대한 자세한 정보는 [API 레퍼런스](https://developers.xsolla.com/ko/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/ko/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](/ko/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](/ko/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](/ko/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](/ko/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](/ko/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](/ko/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/ko/api/catalog/)\n- [Endpoint types](https://developers.xsolla.com/ko/api/catalog/)\n- [Errors handling](https://developers.xsolla.com/ko/api/catalog/)\n- [API keys](https://developers.xsolla.com/ko/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](/ko/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](/ko/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](/ko/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)\n- [Create bundle](/ko/api/catalog/bundles-admin/admin-create-bundle)\n- [Create virtual currency](/ko/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](/ko/api/liveops/promotions-bonuses/create-bonus-promotion)\n- [Create daily reward](/ko/api/liveops/daily-chain-admin/admin-create-daily-chain)\n- [Create unique catalog offer promotion](/ko/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/ko/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](/ko/api/catalog/virtual-items-currency-catalog/get-virtual-items)\n- [Get item group list](/ko/api/catalog/virtual-items-currency-catalog/get-item-groups)\n- [Get list of bundles](/ko/api/catalog/bundles-catalog/get-bundle-list)\n- [Get sellable items list](/ko/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](/ko/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](/ko/api/catalog/free-item/create-free-order-with-item) API call or the [Create order with free cart](/ko/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](/ko/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](/ko/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](/ko/api/shop-builder/operation/put-item-by-cart-id/) API call.\n   - To remove an item, use the [Delete cart item by cart ID](/ko/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](/ko/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](/ko/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](/ko/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](/ko/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/ko/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](/ko/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)\n- [short-polling](/ko/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](/ko/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](/ko/api/catalog/section/authentication)\n- [Payment testing](/ko/dev-resources/testing/general-info/#general_overview)\n- [Set up order status tracking](/ko/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)\n- [Webhooks](/ko/webhooks/overview)\n- [Rate limits](/ko/api/login/rate-limits)\n- [Errors handling](/ko/api/getting-started/#api_errors_handling)\n- [API keys](/ko/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](/ko/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](/ko/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/ko/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/ko/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`으로 메서드를 호출하면 전체 목록의 101번째 아이템부터 시작하여 25개의 아이템이 응답으로 반환됩니다.</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": "프로젝트의 상향 판매에 대한 정보(사용 여부, 상향 판매 유형 및 이 상향 판매의 일부인 아이템의 SKU 목록)를 검색합니다.",
        "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": "프로젝트에서 상향 판매의 일부인 항목 SKU 목록.",
                        "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": "다른 DRM용 게임 키입니다.",
                              "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": "SKU로 식별되는 가치 포인트를 삭제합니다.",
        "operationId": "admin-delete-value-point",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "responses": {
          "204": {
            "content": {},
            "description": "가치 포인트를 성공적으로 삭제했습니다."
          },
          "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": "관리 대상 프로젝트에서 SKU별로 가치 포인트를 가져옵니다.",
        "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": "SKU로 식별되는 가치 포인트를 업데이트합니다.",
        "operationId": "admin-update-value-point",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-value-point"
        },
        "responses": {
          "204": {
            "content": {},
            "description": "가치 포인트를 성공적으로 업데이트했습니다."
          },
          "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": "아이템의 SKU에 의해 하나 이상의 아이템에 대한 가치 포인트 수를 부분적으로 업데이트합니다. 사용자는 지정된 아이템을 구매한 후 이러한 가치 포인트를 받게 됩니다.\n\n가치 포인트 업데이트의 원칙:\n  * 아이템에 아직 가치 포인트가 없는 경우 `amount` 필드에 0이 아닌 값을 보내면 가치 포인트가 생성됩니다.\n  * 아이템에 이미 가치 포인트가 있는 경우 `amount` 필드에 0이 아닌 값을 보내면 가치 포인트가 업데이트됩니다.\n  * `amount`를 0으로 설정하면 해당 아이템에 대한 기존 가치 포인트가 삭제됩니다.\n\n`PUT` 메서드([아이템에 대한 가치 포인트 설정](https://developers.xsolla.com/ko/api/shop-builder/operation/admin-set-items-value-point-reward/))와 달리 이 `PATCH` 메서드는 프로젝트의 아이템에 대한 모든 기존 가치 포인트를 덮어쓰지 않고 지정된 아이템만 업데이트합니다.\n\n단일 요청으로 최대 100개의 아이템을 업데이트할 수 있습니다. 중복 아이템 SKU는 동일한 요청에 포함될 수 없습니다.",
        "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": "하나 또는 여러 아이템에 SKU별로 가치 포인트를 할당합니다. 사용자가 이러한 아이템을 구매하면 가치 포인트를 받습니다.\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>입니다. 더 많은 데이터를 얻으려면 페이지 설정에서 <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\n사용자 제한 API를 사용하면 사용자가 쿠폰을 사용할 수 있는 횟수를 제한할 수 있습니다. 사용자 제한 자체를 구성하려면 관리 섹션으로 이동합니다.\n* [쿠폰](https://developers.xsolla.com/ko/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\n사용자 제한 API를 사용하면 사용자가 프로모션 코드를 사용할 수 있는 횟수를 제한할 수 있습니다. 사용자 제한 자체를 구성하려면 관리 섹션으로 이동합니다.\n* [프로모션 코드](https://developers.xsolla.com/ko/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\n사용자 제한 API를 사용하면 사용자가 프로모션을 사용할 수 있는 횟수를 제한할 수 있습니다. 사용자 제한 자체를 구성하려면 원하는 프로모션 유형의 관리 섹션으로 이동합니다.\n* [할인 프로모션](https://developers.xsolla.com/ko/api/shop-builder/tag/promotions-discounts/)\n* [보너스 프로모션](https://developers.xsolla.com/ko/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\n사용자 제한 API를 사용하면 사용자가 프로모션을 사용할 수 있는 횟수를 제한할 수 있습니다. 사용자 제한 자체를 구성하려면 원하는 프로모션 유형의 관리 섹션으로 이동합니다.\n* [할인 프로모션](https://developers.xsolla.com/ko/api/shop-builder/tag/promotions-discounts/)\n* [보너스 프로모션](https://developers.xsolla.com/ko/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\n사용자 제한 API를 사용하면 사용자가 프로모션을 사용할 수 있는 횟수를 제한할 수 있습니다. 사용자 제한 자체를 구성하려면 원하는 프로모션 유형의 관리 섹션으로 이동합니다.\n* [할인 프로모션](https://developers.xsolla.com/ko/api/shop-builder/tag/promotions-discounts/)\n* [보너스 프로모션](https://developers.xsolla.com/ko/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\n사용자 제한 API를 사용하면 사용자가 프로모션을 사용할 수 있는 횟수를 제한할 수 있습니다. 사용자 제한 자체를 구성하려면 원하는 프로모션 유형의 관리 섹션으로 이동합니다.\n* [할인 프로모션](https://developers.xsolla.com/ko/api/shop-builder/tag/promotions-discounts/)\n* [보너스 프로모션](https://developers.xsolla.com/ko/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\n사용자 제한 API를 사용하면 사용자가 프로모션을 사용할 수 있는 횟수를 제한할 수 있습니다. 사용자 제한 자체를 구성하려면 원하는 프로모션 유형의 관리 섹션으로 이동합니다.\n* [할인 프로모션](https://developers.xsolla.com/ko/api/shop-builder/tag/promotions-discounts/)\n* [보너스 프로모션](https://developers.xsolla.com/ko/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\n사용자 제한 API를 사용하면 사용자가 프로모션을 사용할 수 있는 횟수를 제한할 수 있습니다. 사용자 제한 자체를 구성하려면 원하는 프로모션 유형의 관리 섹션으로 이동합니다.\n* [할인 프로모션](https://developers.xsolla.com/ko/api/shop-builder/tag/promotions-discounts/)\n* [보너스 프로모션](https://developers.xsolla.com/ko/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. 이 ID는 인증 중에 엑솔라에 전송되며 사용자를 엑솔라 로그인 프로젝트로 연결합니다.",
                        "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/ko/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/ko/doc/shop-builder/features/coupons/)을 삭제합니다. 삭제된 프로모션:\n * 프로젝트에 설정된 프로모션 목록에서 사라집니다.\n * 더 이상 아이템 카탈로그에 적용되지 않습니다. 사용자는 이 프로모션으로 보너스 아이템을 얻을 수 없습니다.\n\n 삭제한 후에는 프로모션을 복원할 수 없습니다.\n 삭제된 프로모션의 쿠폰 코드는 기존 프로모션에 [추가](https://developers.xsolla.com/ko/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/ko/doc/shop-builder/features/promo-codes/)을 삭제합니다. 삭제된 프로모션:\n * 프로젝트에 설정된 프로모션 목록에서 사라집니다.\n * 아이템 카탈로그 및 장바구니에는 더 이상 적용되지 않습니다. 사용자는 이 프로모션을 사용하여 보너스 아이템을 얻거나 아이템을 구매할 수 없습니다.\n\n 삭제한 후에는 프로모션을 복원할 수 없습니다.\n 삭제된 프로모션의 프로모션 코드는 기존 프로모션에 [추가](https://developers.xsolla.com/ko/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/ko/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/ko/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": "아이템 SKU입니다.",
                            "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> 필드를 사용합니다.</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/ko/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](/ko/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/ko/api/catalog/bundles-admin/admin-create-bundle), or [Game keys](/ko/api/catalog/game-keys-admin) groups.\n2. Create a promotion using the [Create discount promotion for item](/ko/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](/ko/api/liveops/promotions-discounts/create-item-promotion/) or [Update item promotion](/ko/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](/ko/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](/ko/api/catalog/tag/common-catalog/), [Virtual Items and Currency > Catalog](/ko/api/catalog/virtual-items-currency-catalog/get-virtual-items/), and [Bundles > Catalog](/ko/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/ko/liveops/promotion-tools/discounts/)\n* [Bonuses](https://developers.xsolla.com/ko/liveops/promotion-tools/bonuses/)\n* [Coupons](https://developers.xsolla.com/ko/liveops/promotion-tools/coupons/)\n* [Promo codes](https://developers.xsolla.com/ko/liveops/promotion-tools/promo-codes/)\n* [Unique catalog offers](https://developers.xsolla.com/ko/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/ko/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/ko/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/ko/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/ko/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/ko/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](/ko/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](/ko/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](/ko/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/ko/api/catalog/bundles-admin/admin-create-bundle) or [Game keys](/ko/api/catalog/game-keys-admin) groups.\n2. [Set up user attributes using the Xsolla Login API](/ko/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](/ko/api/liveops/personalized-catalog/create-filter-rule) API call:\n        * In the [attribute_conditions](/ko/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](/ko/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](/ko/api/liveops/promotions-discounts/create-item-promotion). In the [attribute_conditions](/ko/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](/ko/api/login/getting-user-token#getting-user-token) with user attributes to the [catalog retrieval API calls](https://developers.xsolla.com/ko/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": "관리자"
    },
    {
      "name": "reward-chain-client",
      "x-displayName": "클라이언트"
    },
    {
      "name": "clan-reward-chain-client",
      "x-displayName": "클랜 클라이언트"
    },
    {
      "name": "daily-chain-admin",
      "x-displayName": "관리자"
    },
    {
      "name": "daily-chain-client",
      "x-displayName": "클라이언트"
    },
    {
      "name": "offer-chain-admin",
      "x-displayName": "관리자"
    },
    {
      "name": "offer-chain-client",
      "x-displayName": "클라이언트"
    },
    {
      "name": "upsell-admin",
      "x-displayName": "관리자"
    },
    {
      "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": "업셀링",
      "tags": [
        "upsell-admin",
        "upsell-client"
      ]
    }
  ]
}