{
  "openapi": "3.1.0",
  "info": {
    "description": "# 概要 {% #overview %}\n\n* **バージョン:** 2.0.0\n* **サーバー**: `https://store.xsolla.com/api`\n* **[メールでのお問い合わせ](mailto:integration@xsolla.com)**\n* **お問い合わせURL：** https://xsolla.com/\n* **必要なTLSバージョン：** 1.2\n\nLiveOpsは、プロモーションやパーソナライズされたオファーを通じて、プレイヤーの継続的なエンゲージメントを高めるためのツールキットです。\n\nAPIを使用して、以下の機能を管理できます：\n\n* **プロモーション** — クーポン、プロモコード、割引、ボーナスキャンペーンを作成または管理します。\n* **個人用設定** — アイテムカタログの表示や、特定の認証済みユーザーのみにプロモーションを適用するための条件を指定します。\n* **プロモーション制限** — ユーザーがプロモーションを利用できる回数の上限を設定し、これらの制限を定期的にリセットするスケジュールを構成します。\n* **報酬チェーンとバリューポイント** — バリューポイントの蓄積に連動した報酬進行度を構成します。\n* **デイリーチェーン** — 定期的なログインを促すために、繰り返し受け取れるデイリー報酬を設定します。\n* **オファーチェーン** — ステップごとの価格設定や無料リワードのオプションを含む、段階的な購入オファーを構築します。\n* **アップセル** — ユーザーに対して、追加の価値を持つアイテムの購入を促す販売手法です。\n\n## APIコール {% #api-calls %}\n\nAPIは**次のグループ**に分かれています：\n\n* **<nt>Admin</nt>** — キャンペーンとチェーン設定の作成、更新、アクティブ化、削除のためのコールです。マーチャントまたはプロジェクトの認証情報を使用した[基本アクセス認証](https://developers.xsolla.com/ja/payment-ui-and-flow/payment-ui/how-to-get-payment-token/#payments_solution_get_user_auth_token_basic_auth)によって認証されます。\n* **<nt>Client</nt>** — 認証済みエンドユーザーの代理として、利用可能なプロモーションの取得、アクティブなチェーンの取得、コードの引き換え、よび報酬の請求を実行するAPIコール。ユーザーのJWTにより認証を行います。\n\n# 認証 {% #authentication %}\n\nAPIコールには、ユーザーまたはプロジェクトのいずれかに代わって認証が必要です。使用される認証スキームは、各コールの説明の**セキュリティ**セクションに指定されています。\n\n## ユーザーのJWTを使用した認証 {% #authentication-using-users-jwt %}\n\nユーザーのJWTを使用した認証は、ブラウザ、モバイルアプリケーション、またはゲームからリクエストが送信される場合に使用されます。デフォルトでは、`XsollaLoginUserJWT`スキームが適用されます。トークンの作成方法の詳細については、[エクソーラログインAPIに関するドキュメント](/ja/api/login/authentication-schemes#getting-user-token)を参照してください。\n\nトークンは`Authorization`ヘッダーに次の形式で渡されます：`Authorization: Bearer <user_JWT>`。ここで`<user_JWT>`はユーザートークンです。このトークンによってユーザーが特定され、パーソナライズされたデータへのアクセスが可能になります。\n\n別の方法として、[決済UIを開くためのトークン](/ja/api/pay-station/token/create-token)を使用することも可能です。\n\n## 基本HTTP認証 {% #basic-http-authentication %}\n\n基本HTTP認証は、ユーザーのブラウザやモバイルアプリケーションからではなく、サーバーから直接APIコールが送信される場合のサーバー間のやり取りに使用されます。通常、[APIキーを使用したHTTP基本認証](/ja/api/getting-started/#api_keys_overview)が使用されます。\n\n<div class=\"note\"><b>注意</b><br><br>APIキーは機密性高いため、クライアントアプリケーション側での保存および使用は厳禁とします。</div>\n\n基本的なサーバーサイド認証では、すべてのAPIリクエストに以下のヘッダーを含める必要があります：\n\n- `basicAuth`の場合 — `Authorization: Basic <your_authorization_basic_key>`。ここで`your_authorization_basic_key`は、Base64でエンコードされた`project_id:api_key`ペアです。\n- `basicMerchantAuth`の場合 — `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の形式は以下の通りです： `https://publisher.xsolla.com/<merchant_id>`。\n- `project_id`は次の場所に表示されます：\n  - パブリッシャーアカウントのプロジェクト名の横に。\n  - パブリッシャーアカウントでプロジェクトを操作しているときのブラウザアドレスバーのURLに。URLの形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`。\n- `api_key`は作成時にのみパブリッシャーアカウントに表示され、あなたの側で安全に保管する必要があります。APIキーは次のセクションで作成できます：\n  - [会社設定 > APIキー](https://publisher.xsolla.com/0/settings/api_key)\n  - [プロジェクト設定 > APIキー](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n<div class=\"notice\"><b>注意</b><br><br>必要なAPIコールに<code>project_id</code>パスパラメータが含まれていない場合、認証を行うには、会社のすべてのプロジェクト共通で有効なAPIキーを使用してください。</div>\n\nAPIキーの操作に関する詳細は、[APIリファレンス](/ja/api/getting-started/#api_keys_overview)を参照してください。\n\n## ゲストアクセスをサポートする認証 {% #authentication-with-guest-access-support %}\n\n`AuthForCart`認証スキームはカートでの購入用であり、以下の2つのモードに対応しています：\n\n1. **ユーザーのJWTによる認証。** トークンは`Authorization`ヘッダーで次の形式で渡されます：`Authorization: Bearer <user_JWT>`、ここで`<user_JWT>`はユーザートークンです。このトークンによってユーザーが特定され、パーソナライズされたデータへのアクセスが可能になります。あるいは、[決済UIを開くためのトークン](/ja/api/pay-station/token/create-token)を使用することもできます。\n\n2. **認証ヘッダーを使用しない簡易モード。** このモードは未認証ユーザーにのみ使用され、[ゲームキー販売](/ja/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users)にのみ適用できます。リクエストにはトークンの代わりに、以下のヘッダーを含める必要があります：\n   - リクエストIDを含む`x-unauthorized-id`\n   - Base64でエンコードされたユーザーのメールアドレスを含む`x-user`\n\n## 関連リンク {% #authentication-useful-links %}\n\n- [相互作用モデルに基づくAPIコール](/ja/api/getting-started/#api_interaction_model)\n- [エンドポイントタイプ](/ja/api/getting-started/#api_endpoint_types)\n- [エラー処理](/ja/api/getting-started/#api_errors_handling)\n- [APIキー](/ja/api/getting-started/#api_keys_overview)\n\n# 主要なエンティティ構造 {% #core-entity-structure %}\n\nすべてのタイプ（仮想アイテム、バンドル、仮想通貨、キー）のアイテムは、同様のデータ構造を使用しています。この基本構造を理解することで、APIの利用が簡素化され、ドキュメントをよりスムーズに読み進められるようになります。\n\n<div class=\"note\"><b>注意</b><br><br>一部のコールには追加のフィールドが含まれる場合がありますが、基本構造が変わることはありません。</div>\n\n**識別**\n\n- `merchant_id` — [パブリッシャーアカウント](https://publisher.xsolla.com/)における会社ID\n- `project_id` — パブリッシャーアカウントにおけるプロジェクトID\n- `sku` — アイテムSKU、プロジェクト内で一意です\n\n**ストア表示**\n\n- `name` — アイテム名\n- `description` — アイテム説明\n- `image_url` — 画像URL\n- `is_enabled` — アイテムの可用性\n- `is_show_in_store` — アイテムがカタログに表示されるかどうか\n\nカタログ内のアイテムの可用性管理に関する詳細は、[ドキュメント](/ja/items-catalog/catalog-features/items-availability/)を参照してください。\n\n**組織**\n\n- `type` — アイテムタイプ、例：仮想アイテム（`virtual_item`）またはバンドル（`bundle`）\n- `groups` — アイテムが属するグループ\n- `order` — カタログ内の表示順序\n\n**販売条件**\n\n- `prices` — 実際通貨または仮想通貨での価格\n- `limits` — 購入制限\n- `periods` — 可用期間\n- `regions` — 地域別制限\n\n**主要なエンティティ構造の例：**\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\nエクソーラAPIを使用すると、ゲーム内ストアのロジックを実装でき、アイテムカタログの取得、カートの管理、注文の作成、そのステータスの追跡が可能です。統合シナリオに応じて、APIコールは**管理者**と**カタログ**のサブセクションに分かれ、異なる[認証スキーム](/ja/api/catalog/authentication)を使用します。\n\n以下の例は、アイテムの作成から購入に至るまで、ストアのセットアップおよび運用の基本フローを示しています。\n\n## アイテムおよびグループの作成（管理者向け） {% #create-items-and-groups-admin %}\n\n仮想アイテム、バンドル、仮想通貨など、ストアのアイテムカタログを作成します。\n\nAPIコールの例：\n- [仮想アイテムを作成する](/ja/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)\n- [バンドルを作成する](/ja/api/catalog/bundles-admin/admin-create-bundle)\n- [仮想通貨を作成する](/ja/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)\n\n## プロモーション、チェーン、および制限の設定（管理者向け） {% #set-up-promotions-chains-and-limits-admin %}\n\n割引、ボーナス、デイリー報酬、またはオファーチェーンなど、ユーザー獲得および収益化のためのツールを設定します。\n\nAPIコールの例：\n- [ボーナスプロモーションを作成する](/ja/api/liveops/promotions-bonuses/create-bonus-promotion)\n- [デイリー報酬を作成する](/ja/api/liveops/daily-chain-admin/admin-create-daily-chain)\n- [ユニークなカタログオファープロモーションを作成する](/ja/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)\n\n## アイテム情報の取得（クライアント向け） {% #get-item-information-client %}\n\nアプリケーション内でのアイテム表示を設定します。\n\n<div class=\"notice\">\n  <b>注意</b><br><br>\n    ユーザーカタログを構築するために管理サブセクションのAPIコールを使用しないでください。これらのAPIコールには<a href=\"https://developers.xsolla.com/ja/api/getting-started/#api_rate_limits\" target=\"_blank\">レート制限</a>があり、ユーザーのトラフィックを対象としていません。\n</div>\n\n<br>\n\nAPIコールの例：\n- [仮想アイテムリストを取得する](/ja/api/catalog/virtual-items-currency-catalog/get-virtual-items)\n- [アイテムグループリストを取得する](/ja/api/catalog/virtual-items-currency-catalog/get-item-groups)\n- [バンドルリストを取得する](/ja/api/catalog/bundles-catalog/get-bundle-list)\n- [販売可能なアイテムリストを取得する](/ja/api/catalog/common-catalog/get-sellable-items)\n\n<div class=\"note\">\n  <b>注意</b><br><br>\n    デフォルトでは、カタログAPIコールはリクエスト時にストアで現在利用可能なアイテムを返します。まだ利用可能でない、または利用できなくなったアイテムを取得するには、カタログリクエストにパラメータ<code>\"show_inactive_time_limited_items\": 1</code>を含めてください。\n</div>\n\n## アイテムの販売 {% #sell-items %}\n\nアイテムは以下の方法で販売できます：\n- 迅速な購入 — 1つのSKUを複数回販売します。\n- カート購入 — ユーザーがアイテムをカートに追加し、アイテムを削除し、単一の注文内で数量を更新します。\n\nアイテムが実際のお金ではなく仮想通貨で購入された場合は、[仮想通貨で購入した指定アイテムで注文を作成する](/ja/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency)APIコールを使用してください。当該APIコールの実行時に課金処理が行われるため、決済UIを表示する必要はありません。\n\n無料アイテムの購入には、[指定した無料アイテムで注文を作成する](/ja/api/catalog/free-item/create-free-order-with-item)APIコールまたは[無料カートで注文を作成する](/ja/api/catalog/free-item/create-free-order)APIコールを使用してください。決済UIを表示する必要はありません。注文は即時に<code>done</code>ステータスに設定されます。\n\n### 迅速な購入 {% #fast-purchase %}\n\nクライアント側のAPIコールを使用して、[指定したアイテムで注文を作成](/ja/api/catalog/payment-client-side/create-order-with-item)します。このコールは、決済UIを開くために使用するトークンを返します。\n\n<div class=\"note\">\n  <b>注意</b><br><br>\n    割引情報は決済UIでのみユーザーに提供されます。プロモーションコードはサポートされていません。\n</div>\n\n### カート購入 {% #cart-purchase %}\n\nカートの設定と購入は、クライアントまたはサーバー側で実行できます。\n\n**クライアント側でのカートのセットアップと購入**\n\nアイテムの追加および削除のロジックは、独自に実装してください。カートを設定するためのAPIを呼び出す前は、購入にどのプロモーションが適用されるかに関する情報は取得できません。つまり、合計金額や、追加されるボーナスアイテムの詳細を事前に知ることはできません。\n\n以下のカートロジックを実装します：\n1. プレイヤーがカートにアイテムを入れた後、[カートにアイテムを入れる](/ja/api/shop-builder/operation/cart-fill/)APIコールを使用します。このコールは、選択されたアイテムに関する現在の情報（割引前後の価格、ボーナスアイテム）を返します。\n2. ユーザーのアクションに基づいてカートの内容を更新します：\n   - アイテムの追加または数量の変更を行うには、[カートIDでカートアイテムを更新する](/ja/api/shop-builder/operation/put-item-by-cart-id/)APIコールを使用します。\n   - アイテムを削除するには、[カートIDでカートアイテムを削除する](/ja/api/shop-builder/operation/delete-item-by-cart-id/)APIコールを使用します。\n\n<div class=\"note\">\n  <b>注意</b><br><br>\n    カートの現在のステータスを取得するには、現在のユーザーのカートを取得するAPIコールを使用してください。\n</div>\n\n3. [現在のカートからすべてのアイテムで注文を作成する](/ja/api/shop-builder/operation/create-order/)APIコールを使用します。このコールは注文IDと決済トークンを返します。新しく作成された注文はデフォルトで<code>new</code>ステータスに設定されます。\n\n**サーバー側でのカートのセットアップと購入**\n\nカートへの変更ごとにAPIコールを伴う必要があるため、この設定オプションではカートの設定に時間がかかる場合があります。\n\n以下のカートロジックを実装します：\n1. プレイヤーがカートにアイテムを入れた後、[カートにアイテムを入れる](/ja/api/catalog/cart-server-side)APIコールを使用します。このコールは、選択されたアイテムに関する現在の情報（割引前後の価格、ボーナスアイテム）を返します。\n2. [現在のカートのすべてのアイテムで注文を作成する](/ja/api/shop-builder/operation/create-order/)APIコールを使用します。このコールは、注文IDと支払いトークンを返します。新しく作成された注文は、デフォルトで<code>new</code>ステータスに設定されます。\n\n## 決済UIを開く {% #open-payment-ui %}\n\n返されたトークンを使用して、新しいウィンドウで決済UIを開きます。決済UIを開くその他の方法は、[ドキュメント](/ja/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui)に記載されています。\n\n| アクション                          | エンドポイント                                                     |\n|:--------------------------------|:--------------------------------------------------------------------------|\n| 本番環境で開きます。 | <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |\n| サンドボックスモードで開きます。           | <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |\n\n<div class=\"note\">\n  <b>注意</b><br><br>\n    開発およびテスト中はサンドボックスモードを使用してください。テスト購入では実際のアカウントに料金は発生しません。<a href=\"https://developers.xsolla.com/ja/dev-resources/testing/test-cards/\">テスト用銀行カード</a>を使用できます。\n\n    最初の実際の支払いが行われた後、厳格なサンドボックス決済ポリシーが適用されます。サンドボックスモードでの支払いは、[パブリッシャーアカウント > 会社設定 > ユーザー](https://publisher.xsolla.com/0/settings/users)で指定されたユーザーのみが利用可能です。\n\n    実際通貨で仮想通貨やアイテムを購入するには、エクソーラとのライセンス契約を締結する必要があります。これを行うには、[パブリッシャーアカウント](https://publisher.xsolla.com/)で**契約と税金 > 契約**に移動し、契約フォームを記入して確認を待ちます。契約の審査には最大3営業日かかる場合があります。\n</div>\n\nサンドボックスモードを有効または無効にするには、迅速な購入およびカート購入のリクエストで`sandbox`パラメータの値を変更します。サンドボックスモードはデフォルトでオフになっています。\n\n可能な注文状況：\n- `new` — 注文作成済み\n- `paid` — 支払い受領済み\n- `done` — アイテム付与完了\n- `canceled` — 注文キャンセル済み\n- `expired` — 注文期限切れ\n\n以下のいずれかの方法を使用して、注文ステータスを追跡します：\n- [サーバーサイドで設定されたウェーブフック](/ja/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)\n- [ショートポーリング](/ja/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](/ja/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## 関連リンク {% #basic-purchase-flow-useful-links %}\n\n- 認証\n- [インタラクションモデルに基づくAPIコール](/ja/api/catalog/authentication)\n- [決済テスト](/ja/dev-resources/testing/general-info/#general_overview)\n- [注文状況の追跡設定](/ja/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)\n- [ウェブフック](/ja/webhooks/overview)\n- [レート制限](/ja/api/login/rate-limits)\n- [エラー処理](/ja/api/getting-started/#api_errors_handling)\n- [APIキー](/ja/api/getting-started/#api_keys_overview)\n\n# ページネーション {% #pagination %}\n\n大規模なレコードセットを返すAPIコール（カタログを構築する場合など）では、データがページ分割されて返されます。ページネーションは、単一のAPI応答で返されるアイテム数を制限し、下一ページのデータを順次取得できるようにするための仕組みです。\n\n返されるアイテム数を制御するには、以下のパラメータを使用します：\n\n- `limit` — 1ページあたりのアイテム件数\n- `offset` — ページ上の最初のアイテムのインデックス（番号付けは0から始まります）\n- `has_more` — 次のページが利用可能かどうかを示します\n- `total_items_count` — アイテムの総数\n\nリクエスト例：\n\n```\nGET /items?limit=20&offset=40\n```\n\n応答例：\n\n```json\n{\n  \"items\": [...],\n  \"has_more\": true,\n  \"total_items_count\": 135\n}\n```\n\n応答が`has_more = false`を返すまで、後続のリクエストを送信することをお勧めします。\n\n# 日付と時刻の形式 {% #date-and-time-format %}\n\n日付と時間の値は、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)フォーマットで渡されます。\n\n以下がサポートされています：\n\n- UTCオフセット\n- アイテムの表示に時間制限がない場合は`null`値\n- 一部のフィールドで使用される[Unixタイムスタンプ](https://www.unixtimestamp.com/)（秒単位）\n\nフォーマット：`YYYY-MM-DDTHH:MM:SS±HH:MM`\n\n例：`2026-03-16T10:00:00+03:00`\n\n# ローカリゼーション {% #localization %}\n\nエクソーラは、アイテム名や説明などのユーザー向けフィールドのローカライズをサポートしています。ローカライズされた値は、言語コードをキーとするオブジェクトとして渡されます。サポートされている言語の完全なリストは、[ドキュメント](/ja/doc/shop-builder/references/supported-languages/)で確認できます。\n\n**サポートされているフィールド**\n\n次のパラメータに対してローカリゼーションを指定できます：\n\n- `name`\n- `description`\n- `long_description`\n\n**ロケール形式**\n\nロケールキーは、以下のいずれかのフォーマットで指定できます：\n\n- 2文字の言語コード：`en`、`ru`\n- 5文字の言語コード： `en-US`、`ru-RU`、`de-DE`\n\n**例**\n\n2文字の言語コードの例：\n\n```json\n{\n  \"name\": {\n    \"en\": \"Starter Pack\",\n    \"ru\": \"Стартовый набор\"\n  }\n}\n```\n\n5文字の言語コードの例：\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\nエラーが発生した場合、APIはHTTPステータスとJSON応答本文を返します。ストア関連のエラーの全リストは[ドキュメント](/ja/dev-resources/references/errors/store-errors/)で確認できます。\n\n**応答例：**\n\n```json\n{\n  \"errorCode\": 1102,\n  \"errorMessage\": \"Validation error\",\n  \"statusCode\": 422,\n  \"transactionId\": \"c9e1a...\"\n}\n```\n\n- `errorCode` — エラーコード。\n- `errorMessage` — エラーの簡潔な説明。\n- `statusCode` — HTTPレスポンスステータス。\n- `transactionId` — リクエストID。一部の場合にのみ返されます。\n- `errorMessageExtended` — リクエストパラメータなどの追加エラー詳細。一部の場合にのみ返されます。\n\n**拡張応答例：**\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**共通のHTTPステータスコード**\n\n- `400` — 無効なリクエスト\n- `401` — 認証エラー\n- `403` — 権限不足\n- `404` — リソースが見つかりません\n- `422` — 検証エラー\n- `429` — レート制限超過\n\n**推奨事項**\n\n- HTTPステータスと応答本文を一緒に処理します。\n- `errorCode`を使用してアプリケーションロジックに関連するエラーを処理します。\n- `transactionId`を使用して、エラーを分析する際にリクエストをより迅速に特定します。",
    "version": "2.0.0",
    "title": "LiveOps API"
  },
  "servers": [
    {
      "url": "https://store.xsolla.com/api"
    }
  ],
  "tags": [
    {
      "name": "promotion-limits-overview",
      "x-displayName": "概要",
      "description": "プロモーション使用制限により、指定したユーザーがプロモーションを使用できる回数を制限できます。また、制限を定期的にリセットするスケジュールを設定することも可能です。\n\n制限はエクソーラ側で保存され、[パブリッシャーアカウント](https://publisher.xsolla.com/0/projects/0/storefront/promotions)のプロモーション設定または次のAPIコールの`limits`オブジェクトを介して設定されます：\n* [アイテムの割引プロモーションを作成する](/ja/api/liveops/promotions-discounts/create-item-promotion/)または[割引プロモーションを更新する](/ja/api/liveops/promotions-discounts/update-item-promotion)\n* [ボーナスプロモーションを作成する](/ja/api/liveops/promotions-bonuses/create-bonus-promotion/)または[ボーナスプロモーションを更新する](/ja/api/liveops/promotions-bonuses/update-bonus-promotion)\n\n制限情報は、アイテムカタログを取得するための次のAPIコールで`items.promotions.limits`オブジェクトに返されます：\n* [仮想アイテムリストを取得する](/ja/api/catalog/virtual-items-currency-catalog/get-virtual-items/)\n* [仮想通貨リストを取得する](/ja/api/catalog/virtual-items-currency-catalog/get-virtual-currency/)\n* [仮想通貨パッケージリストを取得する](/ja/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package/)\n* [バンドルリストを取得する](/ja/api/catalog/bundles-catalog/get-bundle-list/)\n* [ゲームリストを取得する](/ja/api/catalog/game-keys-catalog/get-games-list/)\n\n**制限**グループの**管理**サブセクションに属するAPIコールにより、制限の現在状態の取得、および指定したユーザーに対する制限値の更新が可能となります（例：クエスト完了時におけるカウンターのリセット、残存数量の手動調整など）。\n\n<div class=\"note\">\n  <b>注意</b><br><br>\n  カタログでの制限設定の詳細については、<a href=\"/ja/liveops/promotion-tools/liveops-number-limits/\">プロモーション使用制限</a>セクションを参照してください。\n</div>\n\n[limits.per_user](/ja/api/liveops/promotions-discounts/create-item-promotion#promotions-discounts/create-item-promotion/t=request&path=limits) — 単一のユーザーがプロモーションを使用できる回数の制限を設定できます。\n\n未認証のユーザーには、常にプロモーションの最大利用回数が表示されます。\n\n有効な制限が適用されたユーザーの「残りのプロモーション利用回数」を表示するには、アイテムカタログをリクエストする際にユーザーの認証データを渡してください。\n\nスケジュールされたリセット期間を設定するには — 毎日、毎週、または毎月 — プロモーションを[作成](/ja/api/liveops/promotions-discounts/create-item-promotion#promotions-discounts/create-item-promotion/t=request&path=limits/recurrent_schedule)または[更新](/ja/api/liveops/promotions-discounts/update-item-promotion#promotions-discounts/update-item-promotion/t=request&path=limits/recurrent_schedule)する際に`limits.recurrent_schedule`オブジェクトを渡します。\n\n**制限設定および適用シナリオ**\n\n1. [アイテムの割引プロモーションを作成する](/ja/api/liveops/promotions-discounts/create-item-promotion/)または[ボーナスプロモーションを作成する](/ja/api/liveops/promotions-bonuses/create-bonus-promotion/)APIコールを使用してプロモーションを作成し、`limits`オブジェクトを渡します。\n2. 未認証のユーザーに対してカタログをリクエストします。応答の`items.promotions.limits`オブジェクトに、プロモーションの最大利用回数が返されます。\n3. ユーザーがログインします。\n4. ユーザーの認証トークンを含めてカタログをリクエストします。応答には、アクティブな制限が適用された状態の「残り利用回数」が返されます。\n5. ユーザーがプロモーション対象のアイテムを選択し、購入手続きを行います。\n6. 決済が正常に完了すると、エクソーラは`items.promotions.limits.per_user`の値を更新します。この値が 0 に達すると、以降のカタログAPIコールのレスポンスにおいて、該当アイテムは割引やボーナスがない状態で返されるようになります。\n7. **管理**サブセクションのAPIコールを使用して制限を更新できます：\n   * [指定したユーザーのプロモーション制限をすべて更新する](/ja/api/liveops/user-limits-admin/reset-all-user-promotions-limit/)または[指定したプロモーションの制限を更新する](/ja/api/liveops/user-limits-admin/reset-user-promotion-limit/)\n   * [指定した制限値を設定する](/ja/api/liveops/user-limits-admin/set-user-promotion-limit/)\n   * [利用可能な回数を増やす](/ja/api/liveops/user-limits-admin/add-user-promotion-limit/)または[利用可能な回数を減らす](/ja/api/liveops/user-limits-admin/remove-user-promotion-limit/)\n8. 次回、ユーザーの認証トークンを使用してカタログをリクエストした際に、`items.promotions.limits`から更新された制限値を取得し、ユーザーに表示します。\n\n![プロモーション制限](https://cdn.xsolla.net/developers/current/images/api_docs/promotion-limit.svg)"
    },
    {
      "name": "promotions-overview",
      "x-displayName": "概要",
      "description": "プロモーションは、新規ユーザーの獲得や売上の向上を目的としたマーケティングツールです。エクソーラAPIを使用することで、以下のようなプロモーションを設定できます：\n\n* 割引 — 選択したアイテムの価格を下げます。\n* ボーナス — 購入時に、商品とあわせてユーザーに付与されるアイテムです。\n* クーポン — 引き換え時1つ以上のボーナスアイテムを受け取ることができるコードです。\n* プロモーションコード — ボーナスアイテムの受け取り、特定アイテムの割引、またはカート全体の割引を可能にするコードです。入力後に引き換えるクーポンとは異なり、プロモーションコードは購入手続き中（チェックアウト時）に適用されます。\n* ユニークオファー — 専用のオファーコードを入力したユーザーにのみカタログに表示される、非公開のアイテムです。コードを入力しない限り、これらのアイテムは表示されません。\n\n割引プロモーション設定のフロー例：\n1. [仮想アイテムと仮想通貨](/ja/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/)、[バンドル](/ja/api/catalog/bundles-admin/admin-create-bundle)、または[ゲームキー](/ja/api/catalog/game-keys-admin)グループの**管理者**サブセクションにあるAPIコールを使用して、アイテムを作成します。\n2. [アイテムの割引プロモーション作成する](/ja/api/liveops/promotions-discounts/create-item-promotion/)コールを使用して、プロモーションを作成します。`items`配列内で、必要なアイテムのSKUを渡します。\n3. プロモーションの有効期間を設定します。設定するには、[アイテムの割引プロモーションを作成する](/ja/api/liveops/promotions-discounts/create-item-promotion/)または[アイテムのプロモーションを更新する](/ja/api/liveops/promotions-discounts/update-item-promotion/)メソッドを呼び出し、`promotion_periods`フィールドを、オブジェクトの配列として渡します。ここで、`date_from`は開始日を、`date_until`は有効期間の終了日を定義します。\n4. [アイテムプロモーションを更新する](/ja/api/liveops/promotions-discounts/update-item-promotion/)コールを使用して、プロモーションをアクティブ化します。`\"is_enabled\": true` パラメータを渡します。\n5. 割引価格を含むアイテム価格の情報を取得するには、[共通 > カタログ](/ja/api/catalog/tag/common-catalog/)、[仮想アイテムと仮想通貨 > カタログ](/ja/api/catalog/virtual-items-currency-catalog/get-virtual-items/)、または[バンドル > カタログ](/ja/api/catalog/bundles-catalog/get-bundle-list/)のサブセクションにある、アイテムカタログ取得用のクライアントAPIメソッドを呼び出してください。\n\n![プロモーションの設定例](https://cdn.xsolla.net/developers/current/images/api_docs/promo-overview.svg)\n\nプロモーション設定の詳細については、ドキュメントを参照してください。\n* [割引](https://developers.xsolla.com/ja/liveops/promotion-tools/discounts/)\n* [ボーナス](https://developers.xsolla.com/ja/liveops/promotion-tools/bonuses/)\n* [クーポン](https://developers.xsolla.com/ja/liveops/promotion-tools/coupons/)\n* [プロモーションコード](https://developers.xsolla.com/ja/liveops/promotion-tools/promo-codes/)\n* [ユニークカタログオファー](https://developers.xsolla.com/ja/liveops/promotion-tools/unique-offer/)"
    },
    {
      "name": "promotions-common",
      "x-displayName": "共通のAPIコール",
      "description": "このサブセクションのAPIメソッドを呼び出すことで、さまざまなタイプのプロモーションを管理できます。"
    },
    {
      "name": "promotions-coupons",
      "x-displayName": "クーポン",
      "description": "クーポンプロモーションを設定または管理するには、本サブセクションのAPIメソッドを使用してください。\n\n<div class=\"note\">\n  <p><b>注</b></p>\n  <p>クーポンに関する詳細情報は、<a href=\"https://developers.xsolla.com/ja/liveops/promotion-tools/coupons/\">ドキュメント</a>を参照してください。</p>\n</div>"
    },
    {
      "name": "promotions-promo-codes",
      "x-displayName": "プロモーションコード",
      "description": "このサブセクションのAPIメソッドを呼び出して、プロモーションコードのプロモーションを設定および管理します。\n\n<div class=\"note\">\n  <p><b>注</b></p>\n  <p>プロモーションコードに関する詳細情報は、<a href=\"https://developers.xsolla.com/ja/liveops/promotion-tools/promo-codes/\">ドキュメント</a>を参照してください。</p>\n</div>"
    },
    {
      "name": "promotions-unique-catalog-offers",
      "x-displayName": "ユニークなカタログオファー",
      "description": "ユニークカタログオファーを設定または管理するには、本サブセクションのAPIメソッドを使用してください。\n\n<div class=\"note\">\n  <p><b>注</b></p>\n  <p>ユニークオファーに関する詳細情報は、<a href=\"https://developers.xsolla.com/ja/liveops/promotion-tools/unique-offer/\">ドキュメント</a>を参照してください。</p>\n</div>"
    },
    {
      "name": "promotions-discounts",
      "x-displayName": "ディスカウント",
      "description": "割引プロモーションを設定または管理するには、本サブセクションのAPIメソッドを使用してください。\n\n<div class=\"note\">\n  <p><b>注</b></p>\n  <p>割引に関する詳細情報は、<a href=\"https://developers.xsolla.com/ja/liveops/promotion-tools/discounts/\">ドキュメント</a>を参照してください。</p>\n</div>"
    },
    {
      "name": "promotions-bonuses",
      "x-displayName": "ボーナス",
      "description": "ボーナスプロモーションを設定または管理するには、本サブセクションのAPIメソッドを使用してください。\n\n<div class=\"note\">\n  <p><b>注</b></p>\n  <p>ボーナスに関する詳細情報は、<a href=\"https://developers.xsolla.com/ja/liveops/promotion-tools/bonuses/\">ドキュメント</a>を参照してください。</p>\n</div>"
    },
    {
      "name": "personalized-catalog",
      "x-displayName": "個人用カタログ",
      "description": "個人用設定機能を使用すると、認証された特定のユーザーに対してのみ、アイテムカタログの表示条件を設定したりプロモーションを適用したりすることができます。条件はユーザー属性に基づいて定義され、特定のユーザーに最も関連性の高いアイテムやプロモーションを提供できるようになります。\n\n利用可能な個人用設定のタイプは次のとおりです：\n\n* [エクソーラ側の個人用設定](/ja/liveops/promotion-tools/personalization/#guides_personalization_on_xsolla_side)。個人用設定のルールとロジックはエクソーラ側で設定および保存されます。ユーザー属性を渡すと、エクソーラがそれを使用してパーソナライズされたカタログを生成します。\n* [パートナー側の個人用設定](/ja/liveops/promotion-tools/personalization/#guides_personalization_on_partner_side)。個人用設定のルールとロジックを自分の側で設定し、指定したユーザーに対する最終的なカタログペイロードをエクソーラに送信します。\n\n<div class=\"note\">\n  <b>注意</b><br><br>\n  使用できる個人用設定のタイプは1つだけです。変更するには、\n  <a href=\"/ja/liveops/promotion-tools/personalization/#guides_personalization_change\">説明</a>に従ってください。\n</div>\n\nエクソーラAPIを使用してエクソーラ側で個人用設定を構成するには：\n\n1. [仮想アイテムと仮想通貨](/ja/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/)、[バンドル](/ja/api/catalog/bundles-admin/admin-create-bundle)、または[ゲームキー](/ja/api/catalog/game-keys-admin)グループの**管理者**サブセクションにあるAPIコールを使用して、アイテムを作成します。\n2. [エクソーラログインAPIを使用してユーザー属性をセットアップ](/ja/liveops/promotion-tools/personalization/#web_shop_guide_personalization_setting_attributes)し、ゲーム内で変更が発生した場合はエクソーラ内のデータを更新して同期を保ちます。\n3. アイテムまたはプロモーションの個人用設定を設定します：\n    * アイテムカタログをパーソナライズするには、[カタログフィルタルールを作成する](/ja/api/liveops/personalized-catalog/create-filter-rule)APIコールを使用してカタログの表示ルールを定義します：\n        * [attribute_conditions](/ja/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=attribute_conditions)配列で、ユーザー属性に基づいてアイテムの可用性を決定する条件を指定します。\n        * [items](/ja/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=items)配列で、指定された条件に一致するユーザーに表示されるべきアイテムのリストを提供します。\n    * パーソナライズされたプロモーションを設定するには、[必要なプロモーションタイプのAPIコールを作成または更新する](/ja/api/liveops/promotions-discounts/create-item-promotion)を使用します。[attribute_conditions](/ja/api/liveops/promotions-discounts/create-item-promotion)配列で、ユーザー属性に基づいてプロモーションの可用性を決定する条件を指定します。\n\n4. ユーザー属性を含む[ユーザーJWT](/ja/api/login/getting-user-token?#getting-user-token)を[カタログ取得APIコール](https://developers.xsolla.com/ja/api/catalog/virtual-items-currency-catalog/get-virtual-items)に渡して、パーソナライズされたカタログを受け取ります。\n\n**アイテムカタログにおけるエクソーラ側パーソナライズの設定および適用手順：**\n\n![アイテムカタログの個人用設定](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png)\n\n**プロモーションにおけるエクソーラ側パーソナライズの設定および適用手順：**\n\n![プロモーションの個人用設定](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)\n\n<div class=\"note\">\n<b>注意</b><br><br>\n詳細情報は以下に提供されています：\n<ul>\n  <li><a href=\"/ja/liveops/promotion-tools/personalization/\">エクソーラ側およびパートナー側での個人用設定に関するガイド</a></li>\n  <li><a href=\"/ja/doc/shop-builder/tutorials/personalization-tutorial/\">エクソーラ側でのアイテムカタログ個人用設定に関するステップバイステップのチュートリアル</a></li>\n</ul>\n</div>"
    },
    {
      "name": "user-limits-admin",
      "x-displayName": "管理"
    },
    {
      "name": "reward-chain-value-points-overview",
      "x-displayName": "概要",
      "description": "報酬チェーンは、ユーザーが実際通貨を使ってストアで購入を行うことを促進する機能です。購入ごとにユーザーはバリューポイントを獲得し、報酬チェーンを進めることができます。ユーザーがクランに所属している場合、その購入によって獲得したバリューポイントはクラン全体に付与されます。報酬チェーンの設定に関する詳細情報については、[報酬システム](https://developers.xsolla.com/ja/liveops/promotion-tools/reward-system/)のセクションを参照してください。\n\n報酬チェーンを設定するには、**管理者**サブセクションのAPIコールを使用します。チェーンの表示や報酬のオファー受け取りを行うには、**クライアント**サブセクションのAPIコールを使用します。クラン報酬チェーンを操作するには、**クランクライアント**サブセクションのAPIコールを使用します。\n\n<b>報酬チェーンの設定フローの例：</b>\n\n1. [仮想アイテムと仮想通貨](https://developers.xsolla.com/ja/api/catalog/virtual-items-currency-overview)または[バンドル](https://developers.xsolla.com/ja/api/catalog/bundles-admin)グループの**管理者**サブセクションにあるAPIコールを使用して、アイテムを作成します。\n2. [バリューポイントを作成する](https://developers.xsolla.com/ja/api/liveops/reward-chain-value-points-admin/admin-create-value-points) APIコールを使用して、バリューポイントを作成します。\n3. [アイテムのバリューポイントを設定する](https://developers.xsolla.com/ja/api/liveops/reward-chain-value-points-admin/admin-set-items-value-point-reward)APIコールを使用して、バリューポイントを作成します。\n4. [報酬チェーンを作成する](https://developers.xsolla.com/ja/api/liveops/reward-chain-value-points-admin/admin-create-reward-chain)APIコールを使用して、チェーンを作成します。チェーンをアクティブにするには、`is_enabled: true`パラメータを渡します。\n5. 報酬チェーンの表示を実装します。これを行うには、[現在のユーザーの報酬チェーンを取得する](https://developers.xsolla.com/ja/api/liveops/reward-chain-client/get-reward-chains-list)APIコールを使用して、利用可能なチェーンのリストをリクエストします。応答には、すべてのアクティブなチェーンと、それらのステップおよびステータスが含まれています。\n6. バリューポイント残高の表示を実装します。これを行うには、[現在のユーザーのバリューポイント残高を取得する](https://developers.xsolla.com/ja/api/liveops/reward-chain-client/get-user-reward-chain-balance)APIコールを使用します。\n7. ステップ報酬のオファー受け取りを実装します。これを行うには、[ステップ報酬のオファーを受け取る](https://developers.xsolla.com/ja/api/liveops/reward-chain-client/claim-user-reward-chain-step-reward)APIコールを使用します。\n8. 受け取った報酬に関するデータを迅速に受信し、それをユーザーに付与するために、[ウェブフック](https://developers.xsolla.com/ja/webhooks/section/overview)などを使用した注文状況の追跡を設定します。\n\n![報酬チェーンの設定フロー](https://cdn.xsolla.net/developers/current/images/api_docs/reward-chains-and-value-points-overview.svg)"
    },
    {
      "name": "reward-chain-value-points-admin",
      "x-displayName": "管理者"
    },
    {
      "name": "reward-chain-client",
      "x-displayName": "クライアント"
    },
    {
      "name": "clan-reward-chain-client",
      "x-displayName": "クランクライアント"
    },
    {
      "name": "daily-chain-overview",
      "x-displayName": "概要",
      "description": "デイリー報酬機能は、ストアへの連日ログインおよび無料アイテム獲得を促進します。ログインしない日があった場合の動作は[チェーンタイプ](/ja/api/liveops/daily-chain-admin/admin-create-daily-chain#daily-chain-admin/admin-create-daily-chain/t=request&path=&oneof=0/type)によって異なります。デイリー報酬を正常に機能させるには、[ユーザー認証](/ja/api/catalog#section/Authentication)の設定が必要です。未認証のユーザーもデイリー報酬チェーンの全体を確認することはできますが、報酬を受け取ることはできません。デイリー報酬の設定に関する詳細については、[デイリー報酬](/ja/liveops/promotion-tools/daily-rewards/)のセクションを参照してください。\n\nチェーンの設定は**管理者**サブセクションの APIコール を使用して行います。報酬を付与するには、**クライアント**サブセクションの APIコール を使用します。\n\nデイリーチェーンの設定シナリオ：\n\n1. [仮想アイテムと仮想通貨](/ja/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/)または[バンドル](/ja/api/catalog/bundles-admin/admin-create-bundle)グループの**管理者**サブセクションにある APIコール を使用してアイテムを作成します\n2. [デイリー報酬を作成する](/ja/api/liveops/daily-chain-admin/admin-create-daily-chain)APIコール を使用してチェーンを作成します。\n3. [デイリー報酬を作成する](/ja/api/liveops/daily-chain-admin/admin-create-daily-chain/) APIコール に`\"is_enabled\": true`パラメータを渡してチェーンを有効化します。\n4. [ユーザーJWT](/ja/api/catalog/authentication-using-users-jwt)を渡し、[現在のユーザーのデイリー報酬を取得する](/ja/api/liveops/daily-chain-client/get-daily-chains-list)APIコールを使用して利用可能なチェーンのリストをリクエストします。レスポンスには、すべての有効なチェーンとそのステップおよびステータスが含まれます。\n5. [ウェブフック](/ja/webhooks/overview)を介したアイテム付与処理を設定します。\n6. `daily_chain_id`と`step_number`を渡し、[デイリー報酬ステップを受け取る](/ja/api/liveops/daily-chain-client/claim-user-daily-chain-step-reward) APIコールを使用してユーザーにデイリー報酬を付与します。\n\n![Daily rewards](https://cdn.xsolla.net/developers/current/images/api_docs/daily-rewards.svg)"
    },
    {
      "name": "daily-chain-admin",
      "x-displayName": "管理者"
    },
    {
      "name": "daily-chain-client",
      "x-displayName": "クライアント"
    },
    {
      "name": "offer-chains-overview",
      "x-displayName": "概要",
      "description": "オファーチェーンとは、アクティブなオファーの一環として、ユーザーが無料、または購入によって獲得できるアイテムが含まれた一連のステップのことです。オファーチェーンには、チェーン内でのみ入手できる限定アイテムや、通常のストア価格よりも割引された価格のアイテムを含めることができます。このマーケティングツールの設定に関する詳細な情報については、[オファーチェーン](https://developers.xsolla.com/ja/liveops/promotion-tools/offer-chains/)セクションを参照してください。\n\nオファーチェーンを構成するには、**管理者**サブセクションのAPIコールを使用します。チェーンを表示し、ユーザーが獲得するアイテムを処理するためのロジックを実装するには、**クライアント**サブセクションのAPIコールを使用します。\n\n<b>オファーチェーンの設定フローの例：</b>\n\n1. [仮想アイテムと仮想通貨](https://developers.xsolla.com/ja/api/catalog/virtual-items-currency-overview)または[バンドル](https://developers.xsolla.com/ja/api/catalog/bundles-admin)グループの**管理者**サブセクションにあるAPIコールを使用して、アイテムを作成します。\n\n2. [オファーチェーンを作成する](https://developers.xsolla.com/ja/api/liveops/offer-chain-admin/admin-create-offer-chain)APIコールを使用して、チェーンを作成します。チェーンをアクティブにするには、`is_enabled: true`パラメータを渡します。\n\n3. オファーチェーンの表示を実装します。これを行うには[現在のユーザーのオファーチェーンを取得する](https://developers.xsolla.com/ja/api/liveops/offer-chain-client/get-offer-chains-list) APIコールを使用して、利用可能なチェーンのリストをリクエストします。応答には、すべてのアクティブなチェーンと、それらのステップおよびステータスが含まれています。\n\n4. ユーザーが獲得するアイテムを処理するためのロジックを実装します：\n\n    - ステップアイテムが無料の場合、[無料オファーチェーンステップを受け取る](https://developers.xsolla.com/ja/api/liveops/offer-chain-client/claim-user-offer-chain-step-reward)APIコールを使用します。リクエスト内に`offer_chain_id`と`step_number`を渡してください。\n\n    - ステップアイテムが有料の場合、[有料オファーチェーンステップの注文を作成する](https://developers.xsolla.com/ja/api/liveops/offer-chain-client/order-user-offer-chain-step-reward)APIコールを使用します。リクエスト内に`offer_chain_id`と`step_number`を渡してください。レスポンスとして、`order_id`と決済UIを開くためのトークンが返されます。\n\n5. オファーを受け取った、または購入したアイテムに関するデータを迅速に受信し、それをユーザーに付与するために、[ウェブフック](https://developers.xsolla.com/ja/webhooks/section/overview)などを使用した注文状況の追跡を設定します。\n\n![報酬チェーンの設定フロー](https://cdn.xsolla.net/developers/current/images/api_docs/offer-chains-overview.svg)"
    },
    {
      "name": "offer-chain-admin",
      "x-displayName": "管理者"
    },
    {
      "name": "offer-chain-client",
      "x-displayName": "クライアント"
    },
    {
      "name": "upsell-overview",
      "x-displayName": "概要",
      "description": "アップセルとは、ユーザーに対して付加価値のあるアイテムを提案する販売方法です。例えば、他のユーザーの間で最も需要が高いアイテムなどを提示することが挙げられます。また、アップセルアイテムには地域制限を設定することも可能です。詳細は[アップセル](/ja/liveops/promotion-tools/upsell/)のセクションを参照してください。\n\nアップセル用に設定されたアイテムのリストおよびアップセルステータス（有効/無効）は、[プロジェクトでアップセルに関する情報を取得する](/ja/api/liveops/upsell-admin/get-upsell-configurations-for-project-admin)APIメソッドによって返されます。クライアント側では、[プロジェクトでアップセルアイテムのリストを取得する](/ja/api/liveops/upsell-client/get-upsell-for-project-client)APIメソッドによってアイテムリストが返され、購入フローの適切なタイミングでユーザーに表示されます。\n\nアップセル設定のシナリオ：\n\n1. [仮想アイテムと仮想通貨(/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/)、[バンドル](/ja/api/catalog/bundles-admin/admin-create-bundle)、または[ゲームキー](/ja/api/catalog/game-keys-admin)グループの**管理者**セクションにあるAPIコールを使用して、アイテムを作成します。\n2. [アップセルを作成する](/ja/api/liveops/upsell-admin/post-upsell)APIコールを使用して、アップセルを設定します。`items`配列に、必要なアイテムのSKUを指定して送信してください。\n3. [プロジェクトのアップセルをアクティブ化/非アクティブ化する](/ja/api/liveops/upsell-admin/put-upsell-toggle-active-inactive)APIコールを使用して、プロジェクトのアップセルを有効にします。\n4. [プロジェクト内のアップセルアイテムのリストを取得する](/ja/api/liveops/upsell-client/get-upsell-for-project-client)APIコールを使用し、購入フローの適切なタイミングでユーザーにアップセルのオファーを表示します。\n5. 注文を支払うための決済UIを開く処理を実装します。例として、[特定のカートの全アイテムを対象とした注文を作成する](/ja/api/catalog/payment-client-side/create-order-by-cart-id) APIコールを使用できます。このレスポンスには、決済UIを開くためのトークンが含まれます。[ウェブフック](/ja/webhooks/overview)などを使用して注文ステータスの追跡を設定し、支払済みのアイテムに関するデータを迅速に取得して、ユーザーにアイテムを付与するようにします。\n\n![Upsell scenario](https://cdn.xsolla.net/developers/current/images/api_docs/Upsell.svg)"
    },
    {
      "name": "upsell-admin",
      "x-displayName": "管理者"
    },
    {
      "name": "upsell-client",
      "x-displayName": "クライアント"
    },
    {
      "name": "loyalty-program-overview",
      "x-displayName": "概要",
      "description": "Loyalty as Service APIを使用すると、ユーザーのロイヤルティポイント残高を管理できます。ユーザーの現在の残高を取得するほか、ロイヤルティポイントの加算および減算が可能です。\n\nLoyalty as Service APIの管理者用APIコールはサーバーサイドで動作し、基本認証が必要です。\n\nこのAPIのベースURLは`https://loyalty-points.xsolla.com/`です。\n\nこのマーケティングツールのセットアップ方法の詳細については、[Loyalty as Service](https://developers.xsolla.com/ja/liveops/promotion-tools/loyalty-as-service/)を参照してください。"
    },
    {
      "name": "loyalty-program-admin",
      "x-displayName": "管理者"
    },
    {
      "name": "loyalty-program-client",
      "x-displayName": "クライアント"
    }
  ],
  "paths": {
    "/v3/project/{project_id}/admin/promotion": {
      "get": {
        "summary": "すべてのプロモーションリストを取得",
        "description": "プロジェクトのプロモーションリストを取得します。",
        "operationId": "get-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-promotions"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/admin/promotion/{promotion_id}/activate": {
      "put": {
        "summary": "プロモーションをアクティブ化にする",
        "description": "プロモーションをアクティブ化にします。",
        "operationId": "activate-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "204": {
            "description": "プロモーションが正常にアクティブ化にされました。"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-activate-deactivate-promotion"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promotion/{promotion_id}/deactivate": {
      "put": {
        "summary": "プロモーションを停止",
        "description": "プロモーションを停止にします。",
        "operationId": "deactivate-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "204": {
            "description": "プロモーションは正常に停止しました。"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-activate-deactivate-promotion"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/redeemable/code/{code}": {
      "get": {
        "summary": "コードで引き換え可能なプロモーションを入手する",
        "description": "プロモーションコードまたはクーポンコードを取得します。",
        "operationId": "get-redeemable-promotion-by-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/code-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/coupon/redeem": {
      "post": {
        "summary": "クポーンコードを引き換える",
        "description": "クーポンコードを引き換えます。クーポンが引き換えられると、ユーザーはボーナスを受け取ります。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "operationId": "redeem-coupon",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "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": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/coupon/code/{coupon_code}/rewards": {
      "get": {
        "summary": "クーポン特典を入手",
        "description": "コードに基づいてクーポンの報酬を取得します。\nす。ユーザーがボーナスとして複数のアイテムの中から1つを選択できるようにする場合に使用できます。\n一般的なユースケースとしては、クーポンにボーナスとしてゲームが含まれている場合(`type=unit`)に、DRMを選択するケースなどが挙げられます。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "operationId": "get-coupon-rewards-by-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/coupon_code-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "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": []
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/coupon": {
      "post": {
        "summary": "クーポンプロモーションを作成",
        "description": "クーポンプロモーションを作成します。",
        "operationId": "admin-create-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_coupon-create"
        },
        "responses": {
          "201": {
            "description": "クーポンが正常に作成されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupons",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "クーポンプロモーションのリストを取得",
        "description": "プロジェクトのクーポンプロモーションのリストを取得します。",
        "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"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/coupon/{external_id}": {
      "put": {
        "summary": "クーポンプロモーションを更新",
        "description": "クーポンプロモーションを更新しました。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-coupon-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "クーポンプロモーションを取得",
        "description": "指定されたクーポンプロモーションを取得します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "クーポンは正常に受信されました。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/admin-promotions_200-get-coupon-promotion-model"
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "summer20221",
                      "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"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      },
      "delete": {
        "summary": "クーポンプロモーションを削除",
        "description": "[クーポンプロモーション](https://developers.xsolla.com/ja/doc/shop-builder/features/coupons/)を削除します。削除されたプロモーション：\n* プロジェクトで設定されたプロモーションのリストから消えます。\n* アイテムカタログに適用されなくなります。\n\n削除後、プロモーションを復元することはできません。\n削除されたプロモーションのクーポンコードは、既存のプロモーションに[追加する](https://developers.xsolla.com/ja/api/shop-builder/operation/create-coupon-code/)ことができます。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-coupon-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "204": {
            "description": "クーポンプロモーションは正常に削除されました。"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/activate": {
      "put": {
        "summary": "クーポンプロモーションをアクティブ化にする",
        "description": "クーポンプロモーションをアクティブ化にします。\n作成されたクーポンのプロモーションは、デフォルトで無効になっています。\nアクティブ化されるまで、引き換えの準備ができません。\nこのエンドポイントを使用して、クーポンのプロモーションをアクティブ化にします。",
        "operationId": "activate-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/deactivate": {
      "put": {
        "summary": "クーポンプロモーションを非アクティブ化にする",
        "description": "クーポンプロモーションを非アクティブ化にします。\n作成されたクーポンのプロモーションは、デフォルトで無効になっています。\nアクティブ化されるまで、引き換えの準備ができません。\nこのエンドポイントを使用して、クーポンのプロモーションを無効化または非アクティブ化します。",
        "operationId": "deactivate-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/code": {
      "post": {
        "operationId": "create-coupon-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "クーポンコードを作成",
        "description": "クーポンコードを作成します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "operationId": "get-coupon-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "クーポンコードを取得",
        "description": "クーポンコードを取得します。\n\n応答には、プロモーション内のコードの総数（`total_count`）と、現在のページ（`codes`）のコードが含まれています。次のページを取得するには、すべてのコードを回収し終えるまで、`limit`の値ずつ`offset`を増やしてください（例：`“offset”: 100`の次は`“offset”: 200`）。\n\nほとんどの場合、`“limit”: 100`または`“limit”: 1000`で十分です。`“limit”: 10000`などのより大きな値は、1回限りの一括エクスポート用として残しておき、必要でない限り`“limit”: 50000`の使用は避けてください。",
        "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"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/code/generate": {
      "put": {
        "summary": "クーポンコードを生成",
        "description": "クーポンコードを生成します。\n\nコード生成に関するガイドライン：\n\n* プロモーションあたりのコードの最大総数に制限はありませんが、1回のリクエストの上限は50,000コードです。これより多い数を指定したリクエストは、`422 Unprocessable Entity`エラーを返します。50,000コード以上必要な場合は、複数回に分けてリクエストを送信してください。\n\n* 信頼性を高めるため、1回のリクエストにつき最大10,000コードまでの、より小さなバッチに分けてコードを生成することをお勧めします。例えば、100,000コードを作成する場合、`\"count\": 50000`で2回送信するのではなく、`\"count\": 10000`で10回リクエストを送信します。次のリクエストを送信する前に、各リクエストが正常な応答を返したことを確認してください。\n\n* 1秒あたり15リクエストに設定されているレート制限にご留意ください。大量のコードを生成する場合は、レート制限を超過して`429`エラーが発生するのを防ぐため、リクエストを順次送信してください。\n\n* コードのリストを取得するには、[クーポンコードを取得する](/ja/api/liveops/promotions-coupons/get-coupon-codes)メソッドを呼び出します。\n\n| パラメータ | 値 |\n|---|---|\n| 1回のリクエストあたりの最小コード数。 | 1 |\n| 1回のリクエストあたりの最大コード数。可能な限り最大の単一バッチ塊が必要な場合にのみ使用してください。 | 50,000 |\n| 1回のリクエストあたりの推奨コード数。| 最大10,000まで。これ以上の数を作成する必要がある場合は、リクエストを順次送信してください。|",
        "operationId": "generate-coupon-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "コードが正常に生成されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/promocode/redeem": {
      "post": {
        "summary": "プロモーションコードを引き換える",
        "description": "プロモーションコードを引き換えます。\nプロモーションコードを引き換えた後、ユーザーは無料でアイテムを入手したり、カートや特定のアイテムの価格を下げたりすることができます。",
        "operationId": "redeem-promo-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "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": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/promocode/remove": {
      "put": {
        "summary": "カートからプロモーションコードを削除",
        "description": "プロモーションコードをカートから削除します。\nプロモーションコードを削除した後、カート内のすべてのアイテムの合計金額は、プロモーションコードによるボーナスや割引を除いて再計算されます。",
        "operationId": "remove-cart-promo-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "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": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/promocode/code/{promocode_code}/rewards": {
      "get": {
        "summary": "プロモーションコードの特典を入手",
        "description": "コードに基づいてクーポンの報酬を取得します。\nす。ユーザーがボーナスとして複数のアイテムの中から1つを選択できるようにする場合に使用できます。\n一般的なユースケースとしては、クーポンにボーナスとしてゲームが含まれている場合(`type=unit`)に、DRMを選択するケースなどが挙げられます。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "operationId": "get-promo-code-rewards-by-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promocode_code-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "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": []
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/promocode": {
      "post": {
        "operationId": "create-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "プロモーションコードのプロモーションを作成",
        "description": "プロモーションコードのプロモーションを作成します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_promocode-create"
        },
        "responses": {
          "201": {
            "description": "プロモーションコードが正常に作成されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "プロモーションコードのプロモーションのリストを取得",
        "description": "プロジェクトのプロモーションコードリストを取得します。",
        "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"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promocode/{external_id}": {
      "put": {
        "summary": "プロモーションコードのプロモーションを更新",
        "description": "プロモーションコードのプロモーションを更新しました。",
        "operationId": "update-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "プロモーションコードのプロモーションを取得",
        "description": "指定されたプロモーションコードを取得します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "プロモーションコードは正常に受信されました。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Promotions_200-get-promocode-promotion-model"
                },
                "examples": {
                  "simple": {
                    "value": {
                      "external_id": "summer20221",
                      "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"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  },
                  "with price conditions": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_2",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ]
                    }
                  },
                  "with item price conditions": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_3",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "item_price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      },
      "delete": {
        "summary": "プロモーションコードのプロモーションを削除",
        "description": "[プロモーションコードのプロモーション](https://developers.xsolla.com/ja/doc/shop-builder/features/promo-codes/)を削除します。削除されたプロモーション：\n* プロジェクトで設定されたプロモーションのリストから消える。\n* アイテムカタログとカートに適用されなくなる。\n\n削除後、プロモーションを復元することはできません。\n削除されたプロモーションのプロモーションコードを既存のプロモーションに[追加](https://developers.xsolla.com/ja/api/shop-builder/operation/create-promo-code-code/)できます。",
        "operationId": "delete-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "プロモーションコードのプロモーションは正常に削除されました。"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/activate": {
      "put": {
        "summary": "プロモーションコードのプロモーションをアクティブ化",
        "description": "プロモーションコードのプロモーションをアクティブ化にします。\n\n作成されたプロモーションコードのプロモーションは、デフォルトで無効になっています。\nアクティブ化されるまで、引き換えの準備ができません。\nこのエンドポイントを使用して、プロモーションコードのプロモーションを有効化またはアクティブ化します。",
        "operationId": "activate-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/deactivate": {
      "put": {
        "summary": "プロモーションコードのプロモーションを非アクティブ化",
        "description": "プロモーションコードのプロモーションを非アクティブ化にします。\n\n作成されたプロモーションコードのプロモーションは、デフォルトで無効になっています。\nアクティブ化されるまで、引き換えの準備ができません。\nこのエンドポイントを使用して、プロモーションコードのプロモーションを無効化または非アクティブ化します。",
        "operationId": "deactivate-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/code": {
      "post": {
        "operationId": "create-promo-code-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "プロモーションコードのプロモーション用のコードを作成",
        "description": "プロモーションコードのプロモーション用のコードを作成します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "operationId": "get-promocode-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "プロモーションコードのプロモーション用のコードを取得",
        "description": "プロモーションコードのプロモーション用のコードを取得します。\n\n応答には、プロモーション内のコードの総数（`total_count`）と、現在のページ（`codes`）のコードが含まれています。次のページを取得するには、すべてのコードを回収し終えるまで、`limit`の値ずつ`offset`を増やしてください（例：`“offset”: 100`の次は`“offset”: 200`）。\n\nほとんどの場合、`“limit”: 100`または`“limit”: 1000`で十分です。`“limit”: 10000`などのより大きな値は、1回限りの一括エクスポート用として残しておき、必要でない限り`“limit”: 50000`の使用は避けてください。",
        "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"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/code/generate": {
      "put": {
        "summary": "プロモーションコードのプロモーション用のコードを生成",
        "description": "プロモーションコードのプロモーション用のコードを生成します。\n\nコード生成に関するガイドライン：\n\n* プロモーションあたりのコードの最大総数に制限はありませんが、1回のリクエストの上限は50,000コードです。これより多い数を指定したリクエストは、`422 Unprocessable Entity`エラーを返します。50,000コード以上必要な場合は、複数回に分けてリクエストを送信してください。\n\n* 信頼性を高めるため、1回のリクエストにつき最大10,000コードまでの、より小さなバッチに分けてコードを生成することをお勧めします。例えば、100,000コードを作成する場合、`\"count\": 50000`で2回送信するのではなく、`\"count\": 10000`で10回リクエストを送信します。次のリクエストを送信する前に、各リクエストが正常な応答を返したことを確認してください。\n\n* 1秒あたり15リクエストに設定されているレート制限にご留意ください。大量のコードを生成する場合は、レート制限を超過して`429`エラーが発生するのを防ぐため、リクエストを順次送信してください。\n\n* コードのリストを取得するには、[プロモーションコードのプロモーション用のコードを取得](/ja/api/liveops/promotions-promo-codes/get-promocode-codes)メソッドを呼び出します。\n\n| パラメータ | 値 |\n|---|---|\n| 1回のリクエストあたりの最小コード数。 | 1 |\n| 1回のリクエストあたりの最大コード数。可能な限り最大の単一バッチ塊が必要な場合にのみ使用してください。 | 50,000 |\n| 1回のリクエストあたりの推奨コード数。| 最大10,000まで。これ以上の数を作成する必要がある場合は、リクエストを順次送信してください。|",
        "operationId": "generate-promo-code-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "コードが正常に生成されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/item": {
      "post": {
        "summary": "アイテムの割引プロモーションを作成",
        "description": "アイテムの割引キャンペーンを作成します。\n\nプロモーションは、アイテムの割引（％）を提供します。\n指定したアイテムの全価格に割引が適用されます。",
        "operationId": "create-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-item-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "アイテムプロモーションのリストを取得",
        "description": "プロジェクトのアイテムプロモーションのリストを取得します。\n\nプロモーションは、アイテムの割引（％）を提供します。\n指定したアイテムの全価格に割引が適用されます。",
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "プロジェクトID。",
            "schema": {
              "type": "integer",
              "default": 59080
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "ページでの要素数の制限。",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "リストが生成される要素番号（カウントは0から始まります）。",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-item-promotions"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/{promotion_id}/item": {
      "put": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "アイテムプロモーションを更新する",
        "description": "プロモーションを更新します。\n\n<div class='note'><b>注意</b><br><br>新しいデータは古いデータに置き換わります。プロモーションの一部だけを更新したい場合は、必要なデータもすべてリクエストで転送する必要があります。</div>\n\nプロモーションは、アイテムの割引（％）を提供します。\n指定したアイテムの全価格に割引が適用されます。",
        "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"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-items-property"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-item-promotion"
        }
      },
      "get": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "アイテムプロモーションを取得",
        "description": "特定のアイテムに適用されるプロモーションを取得します。\n\nプロモーションは、アイテムの割引（％）を提供します。\n指定したアイテムの全価格に割引が適用されます。",
        "responses": {
          "200": {
            "description": "アイテムプロモーションは正常に受信されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。"
                    },
                    "promotion_periods": {
                      "$ref": "#/components/schemas/promotion_periods"
                    },
                    "is_enabled": {
                      "$ref": "#/components/schemas/Promotions_is_enabled"
                    },
                    "name": {
                      "type": "object",
                      "description": "プロモーション名。キーと値のペアを含む必要があります。\nキーは\"^[a-z]{{2}-[A-Z]{2}$\"フォーマットのロケール、値は文字列です。",
                      "additionalProperties": {
                        "type": "string",
                        "example": {
                          "en-US": "Promotion",
                          "ru-RU": "Акция"
                        }
                      }
                    },
                    "discount": {
                      "type": "object",
                      "properties": {
                        "percent": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "パーセントの割引\nこのパーセントで計算された値で、アイテムの価格が下がります。",
                          "default": "10.00"
                        }
                      }
                    },
                    "items": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "description": "割引の対象となるアイテムのリスト。",
                        "type": "object",
                        "properties": {
                          "sku": {
                            "type": "string",
                            "description": "アイテムSKU。",
                            "default": "elven_sword"
                          }
                        }
                      }
                    },
                    "attribute_conditions": {
                      "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
                    },
                    "limits": {
                      "$ref": "#/components/schemas/Promotions_promotion_limits_response"
                    },
                    "price_conditions": {
                      "$ref": "#/components/schemas/price_conditions_discount"
                    },
                    "excluded_promotions": {
                      "$ref": "#/components/schemas/excluded_promotions"
                    }
                  },
                  "example": {
                    "id": 1,
                    "promotion_periods": [
                      {
                        "date_from": "2020-04-15T18:16:00+05:00",
                        "date_until": "2020-04-25T18:16:00+05:00"
                      }
                    ],
                    "is_enabled": true,
                    "discount": {
                      "percent": "15.00"
                    },
                    "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": "Акция"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "id": 1,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "20.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_1"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "day_of_week": null,
                            "day_of_month": null,
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "ge",
                          "value": "10.0000"
                        },
                        {
                          "operator": "le",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "description": "プロモーションが見つかりません。`promotion_id`が正しいことを確認してください。",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "statusCode": {
                      "type": "integer",
                      "example": 404
                    },
                    "errorCode": {
                      "type": "integer",
                      "example": 9502
                    },
                    "errorMessage": {
                      "type": "string",
                      "example": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                    }
                  },
                  "type": "object"
                },
                "examples": {
                  "response": {
                    "value": {
                      "statusCode": 404,
                      "errorCode": 9502,
                      "errorMessage": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "アイテムプロモーションを削除",
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "description": "[割引プロモーション](https://developers.xsolla.com/ja/doc/shop-builder/features/discounts/)を削除します。削除されたプロモーション：\n* プロジェクトで設定されたプロモーションのリストから消えます。\n* アイテムカタログとカートに適用されなくなります。\n\n削除後、プロモーションを復元することはできません。",
        "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"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/bonus": {
      "post": {
        "summary": "ボーナスプロモーションを作成",
        "description": "ボーナスプロモーションを作成します。\n\nプロモーションは、ユーザーによる購入に無料のボーナスアイテムを追加します。\nプロモーションは、プロジェクト内のすべての購入、または特定のアイテムを含む購入に適用することができます。",
        "operationId": "create-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-bonus-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ボーナスプロモーションのリストを取得",
        "description": "プロジェクトのボーナスプロモーションのリストを取得します。\n\nプロモーションは、ユーザーによる購入に無料のボーナスアイテムを追加します。\nプロモーションは、プロジェクト内のすべての購入、または特定のアイテムを含む購入に適用することができます。",
        "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"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/{promotion_id}/bonus": {
      "put": {
        "summary": "ボーナスプロモーションを更新",
        "description": "プロモーションを更新します。\n\n<div class='note'><b>注意</b><br><br>新しいデータは古いデータに置き換わります。プロモーションの一部だけを更新したい場合は、必要なデータもすべてリクエストで転送する必要があります。</div>\n\nプロモーションは、ユーザーによる購入に無料のボーナスアイテムを追加します。\nプロモーションは、プロジェクト内のすべての購入、または特定のアイテムを含む購入に適用することができます。",
        "operationId": "update-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ボーナスプロモーションを取得",
        "description": "ボーナスプロモーションを取得します。\n\nプロモーションは、ユーザーによる購入に無料のボーナスアイテムを追加します。\nプロモーションは、プロジェクト内のすべての購入、または特定のアイテムを含む購入に適用することができます。",
        "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"
          }
        }
      },
      "delete": {
        "summary": "ボーナスプロモーションを削除",
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "description": "[ボーナスプロモーション](https://developers.xsolla.com/ja/doc/shop-builder/features/bonuses/)を削除します。削除されたプロモーション：\n* プロジェクトで設定されたプロモーションのリストから消えます。\n* アイテムカタログとカートに適用されなくなります。\n\n削除後、プロモーションを復元することはできません。",
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/promotion/code/{code}/verify": {
      "get": {
        "summary": "プロモーションコードを検証する",
        "description": "コードがプロモーションコードであるかクーポンコードであるかを判別し、ユーザーがそれを適用できるかどうかを判定します。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "operationId": "verify-promotion-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/code-path-param"
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "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"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/unique_catalog_offer": {
      "post": {
        "operationId": "admin-create-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ユニークなカタログオファープロモーションを作成する",
        "description": "ユニークなカタログオファープロモーションを作成します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_unique_catalog_offer-create"
        },
        "responses": {
          "201": {
            "description": "ユニークなカタログオファーが正常に作成されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offers",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "ユニークなカタログオファープロモーションのリストを取得します。",
        "description": "プロジェクトのユニークなカタログオファープロモーションのリストを取得します。",
        "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"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/unique_catalog_offer/{external_id}": {
      "put": {
        "operationId": "update-unique-catalog-offer-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ユニークカタログオファープロモーションをアップデート",
        "description": "ユニークカタログオファープロモーションをアップデート",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "ユニークなカタログオファープロモーションを取得",
        "description": "指定されたユニークなカタログオファープロモーションを取得します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "ユニークなカタログオファーは正常に受信されました。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Promotions_200-get-unique-catalog-offer-promotion-model"
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "secret_shop",
                      "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"
                        }
                      ],
                      "name": {
                        "en-US": "Secret shop",
                        "ru-RU": "Секретный магазин"
                      },
                      "items": [
                        "helmet",
                        "sword",
                        "shield"
                      ],
                      "is_enabled": true,
                      "redeem_user_limit": 1,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      },
      "delete": {
        "operationId": "delete-unique-catalog-offer-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ユニークなカタログオファープロモーションを削除",
        "description": "[ユニークなカタログオファープロモーション](https://developers.xsolla.com/ja/doc/shop-builder/features/unique-offer/)を削除します。削除されたプロモーション：\n* プロジェクトで設定されたプロモーションのリストから消えます。\n* アイテムカタログとカートに適用されなくなります。\n\n削除後、プロモーションを復元することはできません。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "ユニークなカタログオファーは正常に削除されました。"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/activate": {
      "put": {
        "operationId": "activate-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ユニークなカタログオファープロモーションをアクティブ化にする",
        "description": "ユニークなカタログオファープロモーションを有効化にします。デフォルトでは、新しく作成されたプロモーションは無効状態です。\nプロモーションが有効化されるまで、そのコードを使用することはできません。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/deactivate": {
      "put": {
        "operationId": "deactivate-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ユニークカタログオファープロモーションを非アクティブ化する",
        "description": "ユニークなカタログオファープロモーションを無効化します。プロモーションが無効化されると、そのコードを使用することはできなくなります。\nこのプロモーションに関連付けられた非表示アイテムは、カタログに表示されません。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code": {
      "post": {
        "operationId": "create-unique-catalog-offer-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ユニークなカタログオファーコードを作成する",
        "description": "ユニークなカタログオファーコードを作成します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offer-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ユニークなカタログオファーコードを取得する",
        "description": "ユニークなカタログオファーコードを取得する",
        "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"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code/generate": {
      "put": {
        "operationId": "generate-unique-catalog-offer-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "ユニークなカタログオファーコードを生成する",
        "description": "ユニークなカタログオファーコードを生成します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "コードが正常に生成されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promocode/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code-user-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "指定したユーザーのプロモーションコード上限を取得する",
        "description": "指定したユーザがプロモーションコードを使用できる残り回数を取得します。\n\nUser limit APIを使用すると、ユーザーがプロモーションコードを使用できる回数を制限することができます。ユーザー制限自体の設定は、管理セクションにアクセスしてください：\n* [プロモーションコード](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-promo-codes/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promo-code-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Promo code not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/Promotions_422-invalid-coupon"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/coupon/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon-user-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "指定したユーザーのクーポン上限を取得する",
        "description": "指定したユーザがクーポンを使用できる残り回数を取得します。\n\nUser limit APIを使用すると、ユーザーがクーポンを使用できる回数を制限することができます。ユーザー制限自体の設定は、管理セクションにアクセスしてください：\n* [クーポン](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-coupons/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-coupon-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Coupon not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/Promotions_422-invalid-coupon"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/code/limit/promocode/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code-code-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        ],
        "summary": "コードのプロモーションコード制限を取得する",
        "description": "コードの残り使用可能回数を取得します。コードのフィルタリングには、`codes`クエリパラメータを使用します。\n\nコードの上限を設定するには、管理セクションに移動します：\n* [プロモーションコード](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-promo-codes/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-code-promo-code-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Promo code not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon-code-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        ],
        "summary": "一意のクーポンコード制限を取得する",
        "description": "コードの残り使用可能回数を取得します。コードのフィルタリングには、`codes`クエリパラメータを使用します。\n\nコードの上限を設定するには、管理セクションに移動します：\n* [クーポン](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-coupons/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-code-coupon-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Coupon not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-filter-rules",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        ],
        "summary": "カタログフィルタルールのリストを取得",
        "description": "ユーザー属性に適用されるすべてのルールを取得します。",
        "responses": {
          "200": {
            "description": "ルールが正常に受信されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/user-attribute_personalized-catalog"
                      }
                    },
                    "total_items_count": {
                      "type": "number",
                      "description": "Total number of rules."
                    },
                    "has_more": {
                      "type": "boolean",
                      "description": "If another page with rules exists."
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "items": [
                        {
                          "rule_id": 1,
                          "name": "Ork race armor rule",
                          "is_enabled": true,
                          "is_satisfied_for_unauth": false,
                          "attribute_conditions": [
                            {
                              "attribute": "race",
                              "operator": "eq",
                              "value": "ork",
                              "type": "string",
                              "can_be_missing": false
                            }
                          ],
                          "items": [
                            {
                              "item_id": 1,
                              "sku": "com.xsolla.ork_armor_1",
                              "name": "Ork Armor",
                              "type": "virtual_good"
                            },
                            {
                              "item_id": 2,
                              "sku": "com.xsolla.potion_pack_1",
                              "name": "Potion pack",
                              "type": "bundle",
                              "bundle_type": "standard"
                            }
                          ]
                        }
                      ],
                      "total_items_count": 20,
                      "has_more": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "403": {
            "$ref": "#/components/responses/403-auth-header-not-sent"
          }
        }
      },
      "post": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "create-filter-rule",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "カタログフィルタルールを作成",
        "description": "ユーザー属性のルールを作成します。",
        "responses": {
          "201": {
            "description": "ルールが正常に作成されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rule_id": {
                      "type": "number",
                      "description": "ルールID。"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "rule_id": 1
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/personalized-catalog_create-update-body"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule/all": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-all-filter-rules",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "クライアントサイドで検索するためのすべてのカタログルールを取得します",
        "description": "クライアント側での検索に使用する、すべてのカタログルールのリストを取得します。\n\n<div class=\"notice\"><strong>注意</strong><br><br>ルールID、名称、およびis_enabledのみを返します</div>",
        "responses": {
          "200": {
            "description": "ルールが正常に受信されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/user-attribute_personalized-catalog_all"
                      }
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "items": [
                        {
                          "rule_id": 1,
                          "name": "Ork race armor rule",
                          "is_enabled": true,
                          "is_satisfied_for_unauth": false
                        },
                        {
                          "rule_id": 2,
                          "name": "Age",
                          "is_enabled": false,
                          "is_satisfied_for_unauth": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "403": {
            "$ref": "#/components/responses/403-auth-header-not-sent"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule/{rule_id}": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "カタログフィルタルールを取得",
        "description": "ユーザー属性に適用される特定のルールを取得します。",
        "responses": {
          "200": {
            "description": "ルールは正常に受信されました。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user-attribute_personalized-catalog"
                },
                "examples": {
                  "response": {
                    "value": {
                      "rule_id": 1,
                      "name": "Ork race armor rule",
                      "is_enabled": true,
                      "is_satisfied_for_unauth": true,
                      "attribute_conditions": [
                        {
                          "attribute": "race",
                          "operator": "eq",
                          "value": "ork",
                          "type": "string",
                          "can_be_missing": false
                        }
                      ],
                      "items": [
                        {
                          "item_id": 1,
                          "sku": "com.xsolla.ork_armor_1",
                          "name": "Ork Armor"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          }
        }
      },
      "put": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "カタログフィルタールールを更新",
        "description": "ユーザー属性に適用される特定のルールを更新します。指定されていないプロパティはデフォルト値が使用されます（プロパティが必須でない場合）。",
        "responses": {
          "204": {
            "description": "更新に成功しました。"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/personalized-catalog_create-update-body"
        }
      },
      "patch": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "patch-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "カタログフィルタルールを修正",
        "description": "ユーザー属性に適用される特定のルールを更新します。指定されていないプロパティには、現在の値が使用されます。",
        "responses": {
          "204": {
            "description": "アップデートに成功しました。"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user-attribute_personalized-catalog-body"
              },
              "example": {
                "is_enabled": false
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "カタログフィルタルールを削除",
        "description": "特定のルールを削除します。",
        "responses": {
          "204": {
            "description": "削除に成功しました。"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/all": {
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "reset-all-user-promotions-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "指定したユーザーのプロモーション制限をすべて更新する",
        "description": "して、これらのプロモーションを再度使用できるため、指定されたユーザーのすべてのプロモーションのすべての制限を更新します。\n\nUser limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：\n* [割引プロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-discounts/)\n* [ボーナスプロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "description": "プロモーション制限が正常に更新されました。"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/reset-user-limits"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}/all": {
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "reset-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "ユーザー向けプロモーション制限を更新する",
        "description": "ユーザーがこのプロモーションを再度使用できるように、プロモーション制限を更新します。*user*パラメータが`null`である場合、このコールはすべてのユーザーのこの制限を更新します。\n\nUser limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：\n* [割引プロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-discounts/)\n* [ボーナスプロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "description": "プロモーション制限が正常に更新されました。"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "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"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/reset-user-limits-flexible"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}": {
      "get": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "指定したユーザーのプロモーション制限を取得する",
        "description": "指定されたユーザーが適用される制限内でプロモーションを使用できる残りの回数を取得します。\n\nUser limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：\n* [割引プロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-discounts/)\n* [ボーナスプロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "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"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "add-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "指定したユーザーのプロモーション制限を増やす",
        "description": "指定されたユーザーが適用される制限内でプロモーションを使用できる残りの回数を増やします。\n\nUser limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：\n* [割引プロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-discounts/)\n* [ボーナスプロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "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"
                  },
                  "Available promotion limit is out of range": {
                    "$ref": "#/components/examples/422-promotion-out-of-range-available-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-strict"
        }
      },
      "put": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "set-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "指定したユーザーのプロモーション制限を設定する",
        "description": "プロモーションの増減後に適用される制限の中で、指定したユーザーが利用できる回数を設定します。\n\nUser limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：\n* [割引プロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-discounts/)\n* [ボーナスプロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "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"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-flexible"
        }
      },
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "remove-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "指定したユーザーのプロモーション制限を減らす",
        "description": "適用されている制限の範囲内で、指定したユーザーがプロモーションを利用できる残り回数を減らします。\n\nUser limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：\n* [割引プロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-discounts/)\n* [ボーナスプロモーション](https://developers.xsolla.com/ja/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "アイテムが見つかりません。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "無効なリクエスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "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"
                  },
                  "Available promotion limit is out of range": {
                    "$ref": "#/components/examples/422-promotion-out-of-range-available-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-strict"
        }
      }
    },
    "/v2/project/{project_id}/admin/items/value_points": {
      "get": {
        "summary": "バリューポイントのリストを取得する",
        "description": "管理用のプロジェクト内のバリューポイントのリストを取得します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "operationId": "admin-get-value-points-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-value-points"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "バリューポイントを作成する",
        "description": "バリューポイントを作成します。",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "operationId": "admin-create-value-points",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/value_points/sku/{item_sku}": {
      "get": {
        "summary": "バリューポイントを取得する",
        "description": "管理用のプロジェクト内のSKUによってバリューポイントを取得します。",
        "operationId": "admin-get-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-value-point"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "put": {
        "summary": "バリューポイントを更新する",
        "description": "SKUで特定されるバリューポイントを更新します。",
        "operationId": "admin-update-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-value-point"
        },
        "responses": {
          "204": {
            "description": "バリューポイントは正常に更新されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      },
      "delete": {
        "summary": "バリューポイントを削除する",
        "description": "SKUによって識別されるバリューポイントを削除します。",
        "operationId": "admin-delete-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "description": "バリューポイントは正常に削除されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards": {
      "get": {
        "summary": "バリューポイントを持つアイテムのリストを取得する",
        "description": "管理用に、プロジェクト内のバリューポイントを持つすべてのアイテムリストを取得します。",
        "operationId": "admin-get-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-value-point-rewards"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "put": {
        "summary": "アイテムのバリューポイントを設定する",
        "description": "SKUによって1つまたは複数のアイテムにバリューポイントを割り当てます。ユーザーはこれらのアイテムを購入した後にバリューポイントを受け取ります。\n\nこのPUT要求は、プロジェクト内のアイテムの以前に設定されたすべてのバリューポイントを上書きすることに注意してください。\n\n意図しないバリューポイントの削除を避けるため、各PUTリクエストにすべてのアイテムとそれぞれのバリューポイントを含めてください。\n\n特定のアイテムのバリューポイントだけを更新し、他のアイテムのバリューポイントを保持したい場合は、GETリクエストを使って現在のバリューポイントセットを取得し、ご希望のアイテムのバリューポイントを修正し、修正したバリューポイントセットを特定のアイテムの更新されたバリューポイントと一緒に送り返す必要があります。",
        "operationId": "admin-set-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/set-item-value-point-reward"
        },
        "responses": {
          "204": {
            "description": "アイテムのバリューポイント報酬が正常に更新されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/sellable-item-by-sku_404"
          }
        }
      },
      "patch": {
        "summary": "アイテムのバリューポイントを部分的に更新する",
        "description": "SKUに基づいて、1つまたは複数のアイテムのバリューポイント数を部分的に更新します。\n\nバリューポイント更新の原則：\n * アイテムがまだバリューポイントを持っていない場合、`amount`フィールドにゼロ以外の値を送信すると、バリューポイントが作成されます。\n * アイテムがすでにバリューポイントを持っている場合、`amount`フィールドに 0 以外の値を送信すると、バリューポイントが更新されます。\n * `amount`が0に設定された場合、そのアイテムの既存のバリューポイントは削除されます。\n\n`PUT`メソッド（[アイテムにバリューポイントを設定する](https://developers.Xsolla.com/api/shop-builder/operation/admin-set-items-value-point-reward/)）とは異なり、この`PATCH`メソッドは、プロジェクト内のアイテムの既存のバリューポイントをすべて上書きするのではなく、指定されたアイテムのみを更新します。\n\n1 つのリクエストで最大100アイテムまで更新できます。重複するアイテム SKU を同じリクエストに含めることはできません。",
        "operationId": "admin-patch-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/set-item-value-point-reward-for-patch"
        },
        "responses": {
          "204": {
            "description": "アイテムのバリューポイント報酬が正常に更新されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/sellable-item-by-sku_404"
          }
        }
      },
      "delete": {
        "summary": "アイテムからバリューポイントを削除する",
        "description": "すべてのアイテムからバリューポイント報酬を削除します。",
        "operationId": "admin-delete-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "description": "アイテムのバリューポイント報酬は正常に削除されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain": {
      "get": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "get-reward-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "現在のユーザーの報酬チェーンを取得する",
        "description": "クライアントエンドポイント。現在のユーザー報酬チェーンを取得します。\n\n<div class=\"notice\">\n  <strong>注意</strong><br><br>\n    すべてのプロジェクトには、応答で取得できるアイテム数に制限があります。デフォルトおよび最大値は<strong>1応答あたり50アイテム</strong>です。ページごとにデータを取得するには、<b>制限</b>と<b>オフセット</b>フィールドを使用してください。\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance": {
      "get": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "get-user-reward-chain-balance",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "現在のユーザーのバリューポイント残高を取得する",
        "description": "クライアント向けエンドポイント。現在のユーザーのバリューポイント残高を取得します。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain/{reward_chain_id}/step/{step_id}/claim": {
      "post": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "claim-user-reward-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "ステップ報酬を請求する",
        "description": "クライアント向けエンドポイント。現在のユーザーが、報酬チェーンから現在のステップの報酬を受け取ります。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top": {
      "get": {
        "tags": [
          "clan-reward-chain-client"
        ],
        "operationId": "get-user-clan-top-contributors",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "description": "クランの報酬チェーンへの貢献者トップ10リスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "example": "Rocket",
                        "description": "User ID. This is the ID sending to Xsolla during authorization and links the user to your Xsolla Login project."
                      },
                      "contributed_amount": {
                        "type": "integer",
                        "example": 100,
                        "description": "The amount of value points contributed by the user."
                      }
                    }
                  }
                },
                "examples": {
                  "clan": {
                    "summary": "User has a clan",
                    "value": [
                      {
                        "name": "winner",
                        "contributed_amount": 555
                      },
                      {
                        "name": "Rocket",
                        "contributed_amount": 398
                      },
                      {
                        "name": "MrJoe",
                        "contributed_amount": 201
                      },
                      {
                        "name": "beginner",
                        "contributed_amount": 1
                      }
                    ]
                  },
                  "without-clan": {
                    "summary": "User doesn't belong to a clan",
                    "value": []
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "プロジェクトID。",
            "schema": {
              "type": "integer",
              "example": 44056
            }
          },
          {
            "name": "reward_chain_id",
            "in": "path",
            "required": true,
            "description": "報酬チェーンID。",
            "schema": {
              "type": "integer",
              "example": 101
            }
          }
        ],
        "summary": "クランの下で報酬チェーンへの貢献度トップ10を獲得する",
        "description": "現在のユーザーのクランの下にある特定の報酬チェーンのトップ10の貢献者のリストを取得します。ユーザーがクランに属していない場合、コールは空の配列を返します。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>"
      }
    },
    "/v2/project/{project_id}/user/clan/update": {
      "put": {
        "tags": [
          "clan-reward-chain-client"
        ],
        "operationId": "user-clan-update",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-update-user-clan"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "プロジェクトID。",
            "schema": {
              "type": "integer",
              "default": 44056
            }
          }
        ],
        "summary": "現在のユーザーのクランを更新する",
        "description": "ユーザー属性を通じて現在のユーザーのクランを更新します。以前のクランで請求されなかった報酬チェーンのすべての報酬を請求し、応答に返します。クランに所属していたユーザーが、現在はクランに所属していない場合、クランへの所属は取り消されます。ユーザーがクランを変更した場合、クランは変更されます。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>"
      }
    },
    "/v3/project/{project_id}/admin/reward_chain": {
      "get": {
        "summary": "報酬チェーンのリストを取得する",
        "description": "報酬チェーンのリストを取得します。\n\n<div class=\"notice\"><strong>注意</strong><br><br>すべてのプロジェクトには、応答で得られるアイテムの数に制限があります。初期値および最大値は、<strong>1応答あたり10アイテム</strong>です。ページごとにより多くのデータを取得するには、<b>LIMIT</b>と<b>OFFSET</b>フィールドを使用してください。</div>",
        "operationId": "admin-get-reward-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-reward-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "報酬チェーンを作成する",
        "description": "報酬チェーンを作成します。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "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"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}": {
      "get": {
        "summary": "報酬チェーンを取得する",
        "description": "特定の報酬チェーンを取得します。",
        "operationId": "admin-get-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "put": {
        "summary": "報酬チェーンを更新する",
        "description": "特定の報酬チェーンを更新します。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "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"
          }
        }
      },
      "delete": {
        "summary": "報酬チェーンを削除する",
        "description": "特定の報酬チェーンを削除します。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-delete-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/toggle": {
      "put": {
        "summary": "報酬チェーンの切り替え",
        "description": "報酬チェーンを有効/無効にします。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-toggle-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/reset": {
      "post": {
        "summary": "報酬チェーンのリセット",
        "description": "報酬チェーン内の全ユーザーのバリューポイント残高と進捗状況をリセットします。<br> 残高は特定の報酬チェーンではなく、バリューポイントのタイプに紐付いています。そのため、これらのバリューポイントが他のチェーンでも使用されている場合、そのポイントを使用するすべてのチェーンで残高がリセットされます。<br>リセット完了後、報酬チェーンの有効期間を更新することで、ユーザーは再び進捗を進められるようになります。<br>クランの残高は、そのメンバーの残高の合計として算出されます。そのため、リセット後はクランの残高もリセットされます。<br>このリクエストは取り消しができず、プロジェクト内のすべてのユーザーに適用されます。\n\n<div class=\"notice\"><strong>注意</strong>\n  <br><br>\n有効期間中に報酬チェーンをリセットしないでください。この場合、ユーザーは報酬を請求する前に獲得したバリューポイントを失う可能性があります。\n</div>",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-reset-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-reset-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain": {
      "get": {
        "summary": "デイリー報酬のリストを取得する",
        "description": "管理用のデイリー報酬のリストを取得します。\n\n<div class=\"notice\"><strong>注意</strong><br><br>メソッドはアイテムのページネーションリストを返します。最大値およびデフォルト値は<strong>1レスポンスあたり50アイテム</strong>です。リストからより多くのアイテムを取得するには、`limit`および`offset`パラメータを使用して、さらにページを取得してください。例えば、`limit = 25`および`offset = 100`でメソッドを呼び出すと、全体のリストの101番目のアイテムから始まる25アイテムが返されます。</div>",
        "operationId": "admin-get-daily-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-daily-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "デイリー報酬の作成",
        "description": "デイリー報酬を作成します。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}": {
      "get": {
        "summary": "デイリー報酬を取得する",
        "description": "管理用の特定のデイリー報酬を取得します。",
        "operationId": "admin-get-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "put": {
        "summary": "デイリー報酬を更新する",
        "description": "特定のデイリー報酬を更新します。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-daily-chain"
        },
        "responses": {
          "204": {
            "description": "デイリー報酬が正常に更新されました。",
            "content": {}
          },
          "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"
          }
        }
      },
      "delete": {
        "summary": "デイリー報酬の削除",
        "description": "特定のデイリー報酬を削除します。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "デイリー報酬が正常に削除されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/toggle": {
      "put": {
        "summary": "デイリー報酬のトグルを切り替える",
        "description": "デイリー報酬を有効/無効にします。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "デイリー報酬は有効化または無効化されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/reset": {
      "post": {
        "summary": "デイリー報酬をリセット",
        "description": "デイリー報酬における全ユーザーの進行状況をリセットします。`rolling`タイプのデイリー報酬にのみ適用されます。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-reset-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "デイリー報酬はリセットされました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain": {
      "get": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "get-daily-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "現在のユーザーのデイリー報酬を取得する",
        "description": "クライアント向けエンドポイント。現在のユーザーのデイリー報酬を取得します。\n\n<div class=\"notice\"><strong>注意</strong><br><br>メソッドはアイテムのページネーションリストを返します。最大値およびデフォルト値は<strong>1レスポンスあたり50アイテム</strong>です。リストからより多くのアイテムを取得するには、<code>limit</code>および<code>offset</code>パラメータを使用して、さらにページを取得してください。例えば、<code>limit = 25</code>および<code>offset = 100</code>でメソッドを呼び出すと、全体のリストの101番目のアイテムから始まる25アイテムが返されます。</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain/{daily_chain_id}": {
      "get": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "get-user-daily-chain-by-id",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "ID を指定して現在のユーザーのデイリー報酬を取得します。",
        "description": "クライアントエンドポイント。IDによって現在のユーザーのデイリー報酬を取得します。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "ユーザーのデイリー報酬が正常に取得されました。",
            "content": {
              "application/json": {
                "examples": {
                  "response": {
                    "$ref": "#/components/examples/200-client-daily-chain"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/client-daily-chain-model"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain/{daily_chain_id}/step/number/{step_number}/claim": {
      "post": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "claim-user-daily-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "デイリー報酬ステップを受け取る",
        "description": "クライアントエンドポイント。デイリー報酬から現在のユーザーのステップ報酬を請求します。すべてのステップは順番にのみ請求できます。見逃したステップの報酬は、仮想通貨や実際通貨、広告視聴によって取得することはできません。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "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": {
            "description": "ステップを受け取ることはできません。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/daily-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-daily-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain": {
      "get": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "get-offer-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "現在のユーザーのオファーチェーンを取得する",
        "description": "現在のユーザーのオファーチェーンを取得します。\n\n<div class=\"notice\"><strong>注意</strong><br><br>すべてのプロジェクトには、1つの応答で返されるアイテム数に制限があります。デフォルトおよび最大値は<strong>1応答50アイテム</strong>です。より多くのデータを取得するには、ページネーションのために<code>limit</code>と<code>offset</code>クエリパラメータを使用してください。</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}": {
      "get": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "get-user-offer-chain-by-id",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "IDで現在のユーザーのオファーチェーンを取得する",
        "description": "オファーチェーンのIDによって、現在のユーザーのオファーチェーンを取得します。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "ユーザーのオファーチェーンが正常に取得されました。",
            "content": {
              "application/json": {
                "examples": {
                  "response": {
                    "$ref": "#/components/examples/200-client-offer-chain"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/client-offer-chain-model"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/claim": {
      "post": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "claim-user-offer-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "無料オファーチェーンステップを請求する",
        "description": "現在のユーザーのオファーチェーンステップの進行を完了させ、関連する報酬を付与します。\n\n<div class=\"notice\">\n  <strong>注意</strong><br><br>\n    このコールは、オファーチェーン内の無料ステップにのみ使用してください。\n    実際通貨での支払いが必要なステップには、代わりに<a href=\"/ja/api/shop-builder/operation/order-user-offer-chain-step-reward\">有料オファーチェーンステップの注文を作成する</a>コールを使用してください。\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "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": {
            "description": "無料ステップが正常に請求され、報酬が付与されました。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_id": {
                      "type": "integer",
                      "description": "注文IDです。"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "order_id": 641
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-step-not-found"
          },
          "422": {
            "description": "このステップは請求できません。 以前のすべてのステップが完了しており、かつこのステップが無料としてマークされていることを確認してください。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offer-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-offer-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order": {
      "post": {
        "tags": [
          "offer-chain-client",
          "payment-client-side"
        ],
        "operationId": "order-user-offer-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "有料のオファーチェーンステップの注文を作成する",
        "description": "指定された有料オファーチェーンステップに関連付けられたアイテムの注文を作成します。作成された注文は`new`の注文ステータスになります。\n\n決済UIを新しいウィンドウで開くには、以下のリンクをご利用ください：`https://secure.xsolla.com/paystation4/?token={token}`で`{token}`受信したトークン。\n\nテスト目的には、以下のリンクを使用してください：`https://sandbox-secure.xsolla.com/paystation4/?token={token}`。\n\n<div class=\"notice\">\n  <strong>注意</strong> <br><br>\n    このメソッドはクライアントサイドで使用する必要があります。ユーザーのIPアドレスは国を特定するために使用され、それが通貨や利用可能な決済方法に影響を与えます。このメソッドをサーバーサイドから使用すると、通貨の検出が不正確になり、<a href=\"https://developers.xsolla.com/ja/doc/pay-station/\">ペイステーション</a>での決済方法に影響を与える可能性があります。\n</div>\n\n<br>\n\n<div class=\"notice\">\n  <strong>注意</strong><br><br>\n    有料のオファーチェーンステップにのみ、この呼び出しを使用してください。\n    無料ステップの場合は、代わりに<a href=\"/ja/api/shop-builder/operation/claim-user-offer-chain-step-reward\">無料オファーチェーンステップを請求する</a>コールを使用してください。\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "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": {
            "description": "ステップは購入できません。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offer-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-offer-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain": {
      "get": {
        "summary": "オファーチェーンのリストを取得する",
        "description": "管理用のオファーチェーンリストを取得します。\n\n<div class=\"notice\"><strong>注意</strong><br><br>すべてのプロジェクトには、1つの応答で返されるアイテム数に制限があります。デフォルトおよび最大値は<strong>1応答あたり10アイテム</strong>です。より多くのデータを取得するには、ページネーションのために<code>limit</code>と<code>offset</code>クエリパラメータを使用してください。</div>",
        "operationId": "admin-get-offer-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-offer-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "オファーチェーンを作成する",
        "description": "オファーチェーンを作成します。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}": {
      "get": {
        "summary": "オファーチェーンを取得する",
        "description": "管理用の特定のオファーチェーンを取得します。",
        "operationId": "admin-get-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "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"
          }
        }
      },
      "put": {
        "summary": "オファーチェーンを更新する",
        "description": "特定のオファーチェーンを更新するします。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-offer-chain"
        },
        "responses": {
          "204": {
            "description": "オファーチェーンは正常に更新されました。",
            "content": {}
          },
          "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"
          }
        }
      },
      "delete": {
        "summary": "オファーチェーンを削除する",
        "description": "特定のオファーチェーンを削除します。\n\n削除後：<ul><li>ユーザーがすでに受け取ったすべての報酬は保持されます。</li><li>未完了のステップは利用不可になり、その報酬は取得できなくなります。</li></ul>\n\n<a href=\"/ja/api/shop-builder/operation/admin-toggle-offer-chain\">オファーチェーンの有効/無効切り替える</a>コールによるオファーチェーンの無効化とは異なり、削除は元に戻すことができず、ユーザーの進捗状況は保持されません。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "オファーチェーンは正常に削除されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}/toggle": {
      "put": {
        "summary": "オファーチェーンの有効/無効切り替え",
        "description": "オファーチェーンを有効または無効にします。\n\nオファーチェーンが無効になると、ユーザーは一時的にアクセスできなくなりますが、進行状況は保持されます。\n\nオファーチェーンが再度有効になった後、ユーザーは中断したステップから再開できます。",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "オファーチェーンが無効化/有効化されました。",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/upsell": {
      "get": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "get-upsell-configurations-for-project-admin",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "200": {
            "description": "プロジェクトでアップセルに使用される構成に関する詳細とアイテムのリスト。",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "is_enabled": {
                        "type": "boolean",
                        "example": true,
                        "description": "Whether upsell is enabled for the project."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "fixed_list",
                          "most_sellable",
                          "only_promotions"
                        ],
                        "example": "fixed_list",
                        "description": "The type of upsell."
                      },
                      "items": {
                        "type": "array",
                        "example": [
                          {
                            "item_id": 1,
                            "sku": "com.xsolla.booster_mega_1",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "virtual_good"
                          }
                        ],
                        "description": "The list of items SKU that are a part of the upsell in the project.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "item_id": {
                              "$ref": "#/components/schemas/item_id"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/item_type"
                            },
                            "name": {
                              "$ref": "#/components/schemas/name-localization-object"
                            },
                            "bundle_type": {
                              "$ref": "#/components/schemas/bundle_type"
                            },
                            "unit_type": {
                              "$ref": "#/components/schemas/unit_type"
                            },
                            "unit_items": {
                              "type": "array",
                              "description": "Game keys for different DRMs.",
                              "items": {
                                "type": "object",
                                "description": "Game key item. It represents game on a certain platform (steam, gog, etc.).",
                                "properties": {
                                  "item_id": {
                                    "$ref": "#/components/schemas/item_id"
                                  },
                                  "sku": {
                                    "$ref": "#/components/schemas/sku"
                                  },
                                  "type": {
                                    "$ref": "#/components/schemas/item_type"
                                  },
                                  "name": {
                                    "$ref": "#/components/schemas/name-localization-object"
                                  },
                                  "drm_name": {
                                    "$ref": "#/components/schemas/drm_name"
                                  },
                                  "drm_sku": {
                                    "$ref": "#/components/schemas/drm_sku"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "upsell": {
                    "summary": "Project has upsell",
                    "value": [
                      {
                        "is_enabled": true,
                        "type": "fixed_list",
                        "items": [
                          {
                            "item_id": 1,
                            "sku": "com.xsolla.booster_mega_1",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "virtual_good"
                          },
                          {
                            "item_id": 2,
                            "sku": "com.xsolla.booster_mega_2",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "bundle",
                            "bundle_type": "standard"
                          },
                          {
                            "item_id": 3,
                            "sku": "com.xsolla.mega_game_1",
                            "name": {
                              "en": "Mega game"
                            },
                            "type": "unit",
                            "unit_type": "game",
                            "unit_items": [
                              {
                                "item_id": 4,
                                "sku": "com.xsolla.mega_game_steam_1",
                                "name": {
                                  "en": "Mega game steam"
                                },
                                "drm_name": "Steam",
                                "drm_sku": "steam_key_1"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "プロジェクトのアップセル情報を入手",
        "description": "プロジェクト内のアップセルに関する情報を取得します：アップセルが有効かどうか、アップセルのタイプ、アップセルの一部であるアイテムのSKUリスト。"
      },
      "post": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "post-upsell",
        "summary": "アップセルを作成",
        "description": "プロジェクトのアップセルを作成します。<br>\n\n<div class=\"notice\">\n  <strong>注意</strong><br><br>\n    このAPIコールは、認証にユーザーのJWTを使用します。<br><br>\n    以下の形式で<code>Authorization</code>ヘッダーにトークンを含めます：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTの詳細については、このコールの<strong>セキュリティ</strong>ブロックを参照してください。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        }
      },
      "put": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "put-upsell",
        "summary": "アップセルを更新",
        "description": "プロジェクトのアップセルを更新します。<br>\n\n<div class=\"notice\">\n  <strong>注意</strong><br><br>\n    このAPIコールは、認証にユーザーのJWTを使用します。<br><br>\n    以下の形式で<code>Authorization</code>ヘッダーにトークンを含めます：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTの詳細については、このコールの<strong>セキュリティ</strong>ブロックを参照してください。\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "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"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/upsell/{toggle}": {
      "put": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "put-upsell-toggle-active-inactive",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "202": {
            "description": "プロジェクトのアップセルがアクティブ化/非アクティブ化にしました。"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "name": "toggle",
            "in": "path",
            "required": true,
            "description": "アクティベーションステータス。",
            "schema": {
              "type": "string",
              "example": "activate"
            }
          }
        ],
        "summary": "プロジェクトのアップセルをアクティブ化/非アクティブ化",
        "description": "プロジェクト内のアップセルのステータスをアクティブまたは非アクティブに変更します。<br>\n\n<div class=\"notice\">\n  <strong>注意</strong><br><br>\n    このAPIコールは、認証にユーザーのJWTを使用します。<br><br>\n    以下の形式で<code>Authorization</code>ヘッダーにトークンを含めます：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTの詳細については、このコールの<strong>セキュリティ</strong>ブロックを参照してください。\n</div>"
      }
    },
    "/v2/project/{project_id}/items/upsell": {
      "get": {
        "tags": [
          "upsell-client"
        ],
        "operationId": "get-upsell-for-project-client",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Upsell-200-get-client-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "プロジェクト内のアップセルアイテムのリストを取得する",
        "description": "すでに設定されている場合、プロジェクト内のアップセルアイテムのリストを取得します。<br>\n\n<div class=\"note\">\n  <strong>注意</strong><br><br>\n    このAPIコールはユーザーJWTを使用して認証を行います。<br><br>\n    トークンは<code>Authorization</code>ヘッダーへ次の形式でトークンを設定します：<code>Bearer &lt;user_JWT&gt;</code>。ユーザーJWTに関する詳細情報は、該当コールの<strong>セキュリティ</strong>ブロックで確認できます。\n</div>"
      }
    },
    "/projects/{project_id}/admin/program": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "get": {
        "summary": "ロイヤルティプログラム情報の取得",
        "description": "プロジェクトのロイヤルティプログラムに関する情報を返します。",
        "tags": [
          "loyalty-program-admin"
        ],
        "operationId": "loyalty-get-programs",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-get-loyalty-program"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-program-not-found"
          }
        }
      }
    },
    "/projects/{project_id}/admin/programs/{loyalty_program_id}/loyalty_points": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "get": {
        "summary": "プログラム内のロイヤルティポイントリストの取得",
        "description": "プログラム内のロイヤルティポイントのリストを返します。",
        "tags": [
          "loyalty-program-admin"
        ],
        "operationId": "loyalty-get-program-loyalty-points",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/loyalty_program_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-get-program-loyalty-points"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-auth"
          }
        }
      }
    },
    "/projects/{project_id}/users/{user_id}/points/{point_id}/balance": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "get": {
        "summary": "ユーザーのロイヤルティポイント残高の取得",
        "description": "指定したロイヤルティポイントの現在の残高を返します。",
        "tags": [
          "loyalty-program-admin"
        ],
        "operationId": "loyalty-get-user-point-balance",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_id-path-param"
          },
          {
            "$ref": "#/components/parameters/point_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-get-point-balance"
          },
          "401": {
            "$ref": "#/components/responses/ItemGroup_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-user-or-point-not-found"
          }
        }
      }
    },
    "/projects/{project_id}/users/{user_id}/points/{point_id}/balance/debit": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "post": {
        "summary": "ユーザーのロイヤルティポイント残高を引き落とす",
        "description": "指定した金額分、ユーザーのロイヤルティポイント残高を引き落とします。",
        "tags": [
          "loyalty-program-admin"
        ],
        "operationId": "loyalty-debit-user-point-balance",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_id-path-param"
          },
          {
            "$ref": "#/components/parameters/point_id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/debit-point-balance"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-debit-point-balance"
          },
          "400": {
            "$ref": "#/components/responses/400-bad-request"
          },
          "401": {
            "$ref": "#/components/responses/ItemGroup_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-user-or-point-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-insufficient-balance"
          }
        }
      }
    },
    "/projects/{project_id}/users/{user_id}/points/{point_id}/balance/credit": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "post": {
        "summary": "ユーザーのロイヤルティポイント残高を加算する",
        "description": "指定した金額分、ユーザーのロイヤルティポイント残高に加算します。",
        "tags": [
          "loyalty-program-admin"
        ],
        "operationId": "loyalty-credit-user-point-balance",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_id-path-param"
          },
          {
            "$ref": "#/components/parameters/point_id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/credit-point-balance"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-credit-point-balance"
          },
          "400": {
            "$ref": "#/components/responses/400-bad-request"
          },
          "401": {
            "$ref": "#/components/responses/ItemGroup_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-user-or-point-not-found"
          }
        }
      }
    },
    "/v1/projects/{project_id}/loyalty_point_balance": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "get": {
        "summary": "ユーザーのロイヤルティポイント残高の取得",
        "description": "ロイヤルティポイントの現在の残高を返します。",
        "tags": [
          "loyalty-program-client"
        ],
        "operationId": "loyalty-get-user-balance",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-get-client-point-balance"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/payment/item/{item_sku}/loyalty_point/{loyalty_point_sku}": {
      "post": {
        "summary": "ロイヤルティポイントで購入する指定アイテムの注文作成",
        "description": "ユーザーのロイヤルティポイントのみで全額支払われる指定アイテムの注文を作成します。複数のアイテムを一度に購入する場合は、`quantity`パラメータにその数を指定してください。",
        "tags": [
          "loyalty-program-client"
        ],
        "operationId": "loyalty-create-order-with-item-for-loyalty-points",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          },
          {
            "$ref": "#/components/parameters/loyalty_point_sku-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "quantity": {
                    "type": "number",
                    "description": "Number of items to purchase. `1` by default."
                  }
                }
              },
              "example": {
                "quantity": 2
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-purchase-by-loyalty-points"
          },
          "422": {
            "$ref": "#/components/responses/422-purchase-by-loyalty-points"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "description": "サーバー側からのAPIコールには、`basicAuth`認証スキームを使用します。すべてのAPIリクエストには\n`Authorization: Basic <your_authorization_basic_key>`ヘッダーを含める必要があります。\nここで`your_authorization_basic_key`は`project_id:api_key`\nのペアをBase64標準に従ってエンコードしたものです。\n\n必要に応じて、`project_id`の代わりに`merchant_id`を使用することができます。機能には影響しません。\n\n[パブリッシャーアカウント](https://publisher.xsolla.com/)に移動して、パラメータの値を確認します：\n\n* `merchant_id`は次の場所に表示されます：\n  * **会社設定 > 会社**セクション\n  * パブリッシャーアカウントの任意のページのブラウザアドレスバーのURLに表示されます。URLの形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>`。\n* `api_key`は作成時にパブリッシャーアカウントで一度だけ表示され、お客様側で保存する必要があります。新しいキーは次のセクションで作成できます：\n  * [会社設定 > APIキー](https://publisher.xsolla.com/0/settings/api_key)\n  * [プロジェクト設定 > APIキー](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n{% html name=\"div\" attrs={\"class\": \"notice\"} %}\n**注意**\n\n必須のAPIコールにパスパラメータの`project_id`が含まれていない場合は、認証のために会社のすべてのプロジェクトにわたって有効なAPIキーを使用します\n{% /html %}\n\n* `project_id`は次の場所に表示されます：\n  * パブリッシャーアカウントのプロジェクト名の横。\n  * パブリッシャーアカウントでプロジェクトを処理する際のブラウザのアドレスバー内URL。URLの形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`。\n\nAPIキーの操作に関する詳細は、[APIリファレンス](https://developers.xsolla.com/ja/api/getting-started/#api_keys_overview)を参照してください。",
        "scheme": "basic"
      },
      "XsollaLoginUserJWT": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "クライアント側からのAPIコールには、`XsollaLoginUserJWT`認証スキームを使用します。リクエストの`Authorization`ヘッダーには、「Bearer `<user_JWT>`」という形式でユーザーのJWTを含める必要があります：このトークンによってユーザーが識別され、パーソナライズされたデータへのアクセスが可能になります。トークンの作成方法の詳細については、[エクソーラログインAPIに関するドキュメント](/ja/api/login/authentication-schemes#getting-user-token)を参照してください。\n\n別の方法として、[決済UIを開くためのトークン](/ja/api/pay-station/token/create-token)を使用することも可能です。"
      },
      "AuthForCart": {
        "type": "http",
        "scheme": "bearer",
        "description": "`AuthForCart`認証スキームはカートでの購入用であり、以下の2つのモードに対応しています：\n\n1. ユーザーのJWTによる認証。トークンは次の形式で認証ヘッダーに渡されます：`Authorization: Bearer <user_JWT>`。ここで`<user_JWT>`はユーザートークンです。トークンはユーザーを識別し、パーソナライズされたデータへのアクセスを提供します。\n\n別の方法として、[決済UIを開くためのトークン](/ja/api/pay-station/token/create-token)を使用することも可能です。\n\n`Authorization`ヘッダーなしの簡易モード。これは未認証ユーザー専用のモードであり、[ゲームキー販売](/ja/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users)のケースにのみ利用できます。トークンの代わりに、リクエストには以下のヘッダーを含める必要があります：\n* リクエストIDを指定した`x-unauthorized-id`\n* Base64でエンコードされたユーザーのメールアドレスを指定した`x-user`"
      },
      "basicMerchantAuth": {
        "type": "http",
        "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の形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>`。\n* `api_key`は作成時にパブリッシャーアカウントで一度だけ表示され、お客様側で保存する必要があります。新しいキーは次のセクションで作成できます：\n  * [会社設定 > APIキー](https://publisher.xsolla.com/0/settings/api_key)\n\nAPIキーの操作に関する詳細は、[APIリファレンス](https://developers.xsolla.com/ja/api/getting-started/#api_keys_overview)を参照してください。",
        "scheme": "basic"
      }
    },
    "parameters": {
      "project_id-path-param": {
        "name": "project_id",
        "in": "path",
        "required": true,
        "description": "プロジェクトID。このパラメータは、[パブリッシャーアカウント](https://publisher.xsolla.com/0/projects/0/)のプロジェクト名の横、またはプロジェクトの作業中にブラウザのアドレスバーで確認できます。URLの形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`。",
        "schema": {
          "type": "integer",
          "example": 44056
        }
      },
      "limit-query-param": {
        "name": "limit",
        "in": "query",
        "example": 50,
        "required": false,
        "description": "ページでの要素数の制限。",
        "schema": {
          "type": "integer",
          "example": 50,
          "minimum": 1
        }
      },
      "offset-query-param": {
        "name": "offset",
        "in": "query",
        "required": false,
        "example": 0,
        "description": "リストが生成される要素番号（カウントは0から始まります）。",
        "schema": {
          "type": "integer",
          "example": 0,
          "minimum": 0
        }
      },
      "enabled-query-param": {
        "name": "enabled",
        "in": "query",
        "required": false,
        "description": "`is_enabled`フラグで要素を絞り込みます。",
        "schema": {
          "type": "integer"
        }
      },
      "promotion_id-path-param": {
        "name": "promotion_id",
        "in": "path",
        "required": true,
        "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。",
        "schema": {
          "type": "integer",
          "example": 111425
        }
      },
      "code-path-param": {
        "name": "code",
        "in": "path",
        "required": true,
        "description": "大文字と小文字を区別する一意のコードです。文字と数字が含まれます。",
        "schema": {
          "type": "string",
          "example": "WINTER2021",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "coupon_code-path-param": {
        "name": "coupon_code",
        "in": "path",
        "required": true,
        "description": "大文字と小文字を区別する一意のコードです。文字と数字が含まれます。",
        "schema": {
          "type": "string",
          "example": "WINTER2021",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "external_id-promotion-path-param": {
        "name": "external_id",
        "in": "path",
        "required": true,
        "description": "プロモーションexternal ID。プロジェクト内での一意のプロモーション識別子。",
        "schema": {
          "type": "integer",
          "example": "coupon_44056_1"
        }
      },
      "promocode_code-path-param": {
        "name": "promocode_code",
        "in": "path",
        "required": true,
        "description": "大文字と小文字を区別する一意のコードです。文字と数字が含まれます。",
        "schema": {
          "type": "string",
          "example": "SO6rew99j9",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "user_external_id-query-param": {
        "name": "user_external_id",
        "in": "query",
        "required": true,
        "description": "ユーザーexternal ID",
        "schema": {
          "type": "string",
          "example": "d342dad2-9d59-11e9-a384-42010aa8003f"
        }
      },
      "codes-query-param": {
        "name": "codes[]",
        "in": "query",
        "description": "大文字と小文字を区別する一意のコード。文字と数字のみを含めてください。",
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        }
      },
      "is_enabled-query-param": {
        "name": "is_enabled",
        "in": "query",
        "required": false,
        "description": "`is_enabled`フラグで要素を絞り込みます。",
        "schema": {
          "type": "integer"
        }
      },
      "personalized-catalog-rule_id-path-param": {
        "name": "rule_id",
        "in": "path",
        "required": true,
        "description": "ルールID。",
        "schema": {
          "type": "number",
          "example": 1
        }
      },
      "item_sku-path-param": {
        "name": "item_sku",
        "in": "path",
        "required": true,
        "description": "アイテムSKU。",
        "schema": {
          "type": "string",
          "example": "booster_mega_1"
        }
      },
      "value_point_sku-path-param": {
        "name": "value_point_sku",
        "in": "path",
        "required": true,
        "description": "バリューポイントSKU。",
        "schema": {
          "type": "string",
          "example": "value_point_3"
        }
      },
      "reward_chain_id-path-param": {
        "name": "reward_chain_id",
        "in": "path",
        "required": true,
        "description": "報酬チェーンID。",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "reward_chain_step_id-path-param": {
        "name": "step_id",
        "in": "path",
        "required": true,
        "description": "報酬チェーンのステップID。",
        "schema": {
          "type": "integer",
          "example": 120
        }
      },
      "is_expired-daily-chain-query-param": {
        "name": "is_expired",
        "in": "query",
        "required": false,
        "description": "期限切れのデイリー報酬のみを表示するように絞り込みます。",
        "schema": {
          "type": "integer"
        }
      },
      "type-daily-chain-query-param": {
        "name": "type",
        "in": "query",
        "required": false,
        "description": "デイリー報酬を、指定された種類のみに絞り込んで表示します。",
        "schema": {
          "type": "string",
          "enum": [
            "calendar_hard",
            "rolling_skippable",
            "rolling_unskippable"
          ]
        }
      },
      "daily_chain_id-path-param": {
        "name": "daily_chain_id",
        "in": "path",
        "required": true,
        "description": "デイリー報酬ID。",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "daily_chain_step_number-path-param": {
        "name": "step_number",
        "in": "path",
        "required": true,
        "description": "デイリー報酬ステップ番号。",
        "schema": {
          "type": "integer",
          "example": 1
        }
      },
      "offer_chain_id-path-param": {
        "name": "offer_chain_id",
        "in": "path",
        "required": true,
        "description": "オファーチェーンID。",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "offer_chain_step_number-path-param": {
        "name": "step_number",
        "in": "path",
        "required": true,
        "description": "オファーチェーンステップ番号。",
        "schema": {
          "type": "integer",
          "example": 1
        }
      },
      "loyalty_program_id-path-param": {
        "name": "loyalty_program_id",
        "in": "path",
        "required": true,
        "description": "ロイヤルティプログラムIDです。IDを取得するには、<a href=\"https://developers.xsolla.com/ja/api/liveops/loyalty-program-admin/loyalty-get-programs\">ロイヤルティプログラム情報を取得する</a>APIコールを使用します。",
        "schema": {
          "type": "string",
          "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
      },
      "user_id-path-param": {
        "name": "user_id",
        "in": "path",
        "required": true,
        "description": "システム内のユーザーID。ロイヤルティポイントはこのユーザーIDに関連付けられるため、[決済トークンを作成する](https://developers.xsolla.com/ja/api/pay-station/token/create-token)際に渡す`user.id`パラメータの値と一致している必要があります。",
        "schema": {
          "type": "string",
          "example": "d342dad2-9d59-11e9-a384-42010aa8003f"
        }
      },
      "point_id-path-param": {
        "name": "point_id",
        "in": "path",
        "required": true,
        "description": "ロイヤルティポイントのID。ロイヤルティポイントは、パブリッシャーアカウントの[LiveOps > ロイヤルティプログラム](https://publisher.xsolla.com/0/projects/0/storefront/loyalty-program)セクションで設定されます。このIDを取得するには、[カタログ取得APIコール](https://developers.xsolla.com/ja/api/catalog/virtual-items-currency-catalog/get-virtual-items)を使用してください。IDは`loyalty_rewards[].sku`パラメータに含まれます。",
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
      },
      "loyalty_point_sku-path-param": {
        "name": "loyalty_point_sku",
        "in": "path",
        "required": true,
        "description": "ロイヤルティポイントSKUです。",
        "schema": {
          "type": "string",
          "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
      }
    },
    "schemas": {
      "Promotions_promotion_id": {
        "type": "integer",
        "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。",
        "example": 1
      },
      "promotion_periods": {
        "type": "array",
        "nullable": false,
        "description": "プロモーションの有効期間。複数の期間を指定する場合は、`date_from`と`date_until`の両方が必須となります。",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "nullable": false,
              "example": "2020-08-11T10:00:00+03:00",
              "description": "指定されたプロモーションの開始日。"
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "指定されたプロモーションの終了日。`null`に設定した場合、プロモーションは無期限となります。単一の有効期間のみが指定されている場合に限り、`null`に設定可能です。"
            }
          },
          "required": [
            "date_from"
          ]
        }
      },
      "Promotions_coupon_name": {
        "type": "object",
        "description": "プロモーションの名前。キーと値のペアを含む必要があります。\nキーは\"^[a-z]{2}-[A-Z]{2}$\"形式のロケール、値は文字列です。",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "en-US": "Coupon title",
          "de-DE": "Gutscheintitel"
        },
        "default": {
          "en-US": "Coupon title",
          "de-DE": "Gutscheintitel"
        }
      },
      "unit_items": {
        "type": "array",
        "description": "プラットフォーム指定のゲームキーの配列。アイテムタイプが`unit` (`bonus.item.type = 'unit'`)の場合にのみ使用されます。ゲームキーパッケージにプラットフォーム指定のキーが含まれている場合、ユーザーはそのうちの1つをボーナスとして選択できます。",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "example": "cool_game_steam",
              "pattern": "^[a-zA-Z0-9_\\-.]*$",
              "description": "プラットフォーム指定のゲームキーパッケージの一意のID。使用可能な文字：a-z、A-Z、0-9、ピリオド（.）、ハイフン（-）、アンダースコア（_）。これは`bonus.item.​sku`と`bonus.item.unit_items.drm_sku`の値を組み合わせたものです。例えば、`bonus.item.​sku = 'cool_game'`と`bonus.item.unit_items.drm_sku = 'steam'`の場合、値は`cool_game_steam`になります。"
            },
            "is_free": {
              "type": "boolean"
            },
            "type": {
              "type": "string",
              "enum": [
                "game_key"
              ],
              "description": "アイテムがゲームキーであることを示します。"
            },
            "name": {
              "type": "string",
              "example": "Awesome Game",
              "description": "ゲームタイトル。"
            },
            "drm_name": {
              "type": "string",
              "example": "Steam",
              "description": "DRM名。"
            },
            "drm_sku": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_\\-.]*$",
              "example": "steam",
              "description": "プラットフォーム固有のゲームキーであることを示すサフィックスとして使用される、一意のDRM ID。使用可能な文字：a-z、A-Z、0-9、ピリオド（.）、ハイフン（-）、アンダースコア（_）。"
            }
          }
        }
      },
      "Promotions_200-coupon-bonus-reward": {
        "type": "object",
        "properties": {
          "item": {
            "type": "object",
            "properties": {
              "sku": {
                "type": "string",
                "example": "game_01",
                "description": "一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
              },
              "name": {
                "type": "object",
                "example": {
                  "en": "Game name"
                },
                "description": "アイテム名。"
              },
              "type": {
                "type": "string",
                "example": "unit",
                "description": "アイテムタイプ。可能な値：<ul><li><code>virtual_good</code> — 仮想アイテム</li><li><code>virtual_currency</code> — 仮想通貨</li><li><code>bundle</code> — バンドル</li><li><code>unit</code> — ゲームキーパッケージ</li></ul>"
              },
              "bundle_type": {
                "type": "string",
                "description": "バンドルタイプ。アイテムタイプがバンドルの場合に返されます。",
                "enum": [
                  "standard",
                  "virtual_currency_package"
                ]
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Game description",
                "description": "アイテムの説明。"
              },
              "image_url": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "description": "画像URL。"
              },
              "content": {
                "type": "array"
              },
              "unit_items": {
                "$ref": "#/components/schemas/unit_items"
              }
            }
          },
          "quantity": {
            "type": "number",
            "description": "アイテム数量。",
            "default": 1
          }
        }
      },
      "Promotions_sku": {
        "type": "string",
        "example": "booster_mega_1",
        "description": "一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
      },
      "Promotions_name": {
        "type": "object",
        "description": "アイテム名。キーと値のペアを含む必要があります。\nキーは\"^[a-z]{2}-[A-Z]{2}$\"フォーマットのロケール、値は文字列です。",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "en-US": "Item title",
          "de-DE": "Artikeltitel"
        },
        "default": {
          "en-US": "Item title",
          "de-DE": "Artikeltitel"
        }
      },
      "Promotions_type": {
        "type": "string",
        "description": "アイテムタイプ：`virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`。"
      },
      "Promotions_redeem_code_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "コードごとの引き換え回数。",
        "example": 10,
        "default": 10
      },
      "Promotions_promotion_condition": {
        "type": [
          "array",
          "null"
        ],
        "items": {
          "description": "ユーザーがボーナスを受け取ったアイテムのリスト。",
          "type": "object",
          "properties": {
            "item": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/Promotions_sku"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_name"
                },
                "type": {
                  "$ref": "#/components/schemas/Promotions_type"
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "example": "Game description",
                  "description": "アイテムの説明。"
                },
                "image_url": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                  "description": "画像URL。"
                },
                "external_id": {
                  "type": "string",
                  "description": "プロモーションexternal ID。プロジェクト内での一意のプロモーション識別子。",
                  "minLength": 1,
                  "maxLength": 255,
                  "pattern": "^[-_.\\d\\w]+$"
                },
                "is_enabled": {
                  "type": "boolean"
                },
                "redeem_total_limit": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "redeem_user_limit": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-is_enabled": {
        "type": "boolean",
        "default": true
      },
      "Promotions_promotion_type": {
        "type": "string",
        "description": "プロモーションタイプ。",
        "example": "item_discount"
      },
      "Promotions_promotion_discount_percent": {
        "type": [
          "string",
          "null"
        ],
        "description": "割引率。\nカートの価格は、この割引率で計算された値で減少し、小数点以下2桁に四捨五入されます。",
        "default": "10.00",
        "example": "10.00"
      },
      "promotion_recurrent_schedule_response": {
        "type": [
          "object",
          "null"
        ],
        "description": "制限更新期間。",
        "properties": {
          "per_user": {
            "description": "ユーザー制限更新期間。",
            "oneOf": [
              {
                "type": "object",
                "title": "interval_type = 毎日",
                "description": "ユーザー制限の日次更新タイプ。",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "定期更新期間のタイプ。",
                    "enum": [
                      "daily"
                    ]
                  },
                  "time": {
                    "type": "string",
                    "description": "希望するタイムゾーンでのリミットの更新時刻（時間単位への四捨五入）。",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "制限が更新された日時（UNIXタイムスタンプ）。",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "最初の制限更新の日時（ISO 8601）。",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "制限をリセットする日時（ISO 8601）。",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              },
              {
                "type": "object",
                "title": "interval_type = 毎週",
                "description": "ユーザー制限の週次更新タイプ。",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "定期更新期間のタイプ。",
                    "enum": [
                      "weekly"
                    ]
                  },
                  "day_of_week": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "制限が更新される曜日。1は月曜日、7は日曜日です。`weekly`制限更新期間タイプは`null`のみではありません。",
                    "minimum": 1,
                    "maximum": 7
                  },
                  "time": {
                    "type": "string",
                    "description": "希望するタイムゾーンでのリミットの更新時刻（時間単位への四捨五入）。",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "制限が更新された日時（UNIXタイムスタンプ）。",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "最初の制限更新の日時（ISO 8601）。",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "制限をリセットする日時（ISO 8601）。",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              },
              {
                "type": "object",
                "title": "interval_type = 毎月",
                "description": "ユーザー制限の月次更新タイプ。",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "定期更新期間のタイプ。",
                    "enum": [
                      "monthly"
                    ]
                  },
                  "day_of_month": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "制限が更新される月の日。月の残り時間が短いために選択された日がない場合、更新はその月の最終日に行われます。`monthly`制限更新期間タイプは`null`のみではありません。",
                    "minimum": 1,
                    "maximum": 31
                  },
                  "time": {
                    "type": "string",
                    "description": "希望するタイムゾーンでのリミットの更新時刻（時間単位への四捨五入）。",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "制限が更新された日時（UNIXタイムスタンプ）。",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "最初の制限更新の日時（ISO 8601）。",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "制限をリセットする日時（ISO 8601）。",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              },
              {
                "type": "null",
                "title": "null"
              }
            ]
          }
        }
      },
      "Promotions_promotion_limits_response": {
        "type": "object",
        "description": "プロモーションの制限。",
        "properties": {
          "per_user": {
            "type": [
              "object",
              "null"
            ],
            "description": "別ユーザーでのプロモーション制限。",
            "properties": {
              "total": {
                "type": "integer",
                "description": "ユーザーが購入できるアイテムの総数。この数値はパブリッシャーアカウントで設定するか、ストアエンティティ（制限オブジェクト）の管理者エンドポイントを使用して設定することができます。",
                "example": 5
              }
            }
          },
          "per_item": {
            "type": [
              "integer",
              "null"
            ],
            "description": "グローバルアイテム制限。",
            "example": 10
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/promotion_recurrent_schedule_response"
          }
        }
      },
      "Promotions_200-get-promotion-model": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Promotions_promotion_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
            }
          },
          "condition": {
            "$ref": "#/components/schemas/Promotions_promotion_condition"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "type": {
            "$ref": "#/components/schemas/Promotions_promotion_type"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "percent": {
                "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "limits": {
            "$ref": "#/components/schemas/Promotions_promotion_limits_response"
          }
        }
      },
      "total_promotions_count": {
        "type": "integer",
        "description": "プロモーションの合計数。"
      },
      "active_promotions_count": {
        "type": "integer",
        "description": "アクティブなプロモーションの数。"
      },
      "inactive_promotions_count": {
        "type": "integer",
        "description": "非アクティブ化されたプロモーションの数。"
      },
      "Promotions_coupon-external_id": {
        "type": "string",
        "example": "coupon_external_id",
        "default": "coupon_external_id",
        "description": "一意のプロモーションID。`external_id`には、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
      },
      "Promotions_coupon_bonus": {
        "type": [
          "array",
          "null"
        ],
        "items": {
          "description": "ユーザー購入時にボーナスとして追加されるアイテムのリスト。",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "description": "アイテムSKU。",
              "default": "elven_shield"
            },
            "quantity": {
              "type": "number",
              "description": "アイテム数量。",
              "default": 1
            }
          }
        }
      },
      "Promotions_coupon-redeem_total_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "クーポンの総数を制限します。",
        "example": 10,
        "default": 10
      },
      "Promotions_coupon-redeem_user_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "一人のユーザーが引き換えできるクーポンの総数を制限します。",
        "example": 10,
        "default": 10
      },
      "Promotions_coupon_total_limit_state": {
        "type": [
          "object",
          "null"
        ],
        "description": "各クーポンコードには制限があります。",
        "properties": {
          "available": {
            "type": "integer",
            "description": "クーポンの残り使用可能回数。",
            "example": 3
          },
          "reserved": {
            "type": "integer",
            "description": "クーポンの予約番号。",
            "example": 3
          },
          "used": {
            "type": "integer",
            "description": "クーポンの使用回数。",
            "example": 5
          }
        }
      },
      "Promotions_cart_item_discount": {
        "type": "string",
        "nullable": false,
        "description": "割引率。\n\nカートアイテムの価格は、この割引率で\n計算された値で減少し、\n小数点以下2桁に四捨五入されます。",
        "default": "10.00",
        "example": "10.00"
      },
      "admin-promotions_200-get-redeemable-coupon-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "description": "プロモーションコード限定。",
            "properties": {
              "percent": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "割引率。\nカートの価格は、この割引率で計算された値で減少し、小数点以下2桁に四捨五入されます。",
                "default": "10.00",
                "example": "10.00"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "discounted_items": {
            "type": [
              "array",
              "null"
            ],
            "description": "プロモーションコードによる割引が適用されるアイテムのリスト。 プロモーションコード限定。",
            "items": {
              "description": "カート内の特定のアイテムに対する割引。",
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "アイテムSKU。",
                  "default": "elven_shield"
                },
                "discount": {
                  "type": "object",
                  "nullable": false,
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_cart_item_discount"
                    }
                  },
                  "required": [
                    "percent"
                  ]
                }
              },
              "required": [
                "sku",
                "discount"
              ],
              "minItems": 1
            }
          }
        }
      },
      "Promotions_selected_unit_items": {
        "type": "object",
        "description": "ユーザーがボーナスとして選択した、プラットフォーム指定のゲームキー。[受け取った](/ja/api/liveops/promotions-coupons/get-coupon-rewards-by-code#promotions-coupons/get-coupon-rewards-by-code/t=response&c=200&path=bonus/item)`bonus.item.sku`をキーとして渡し、選択された`bonus.item.unit_items.sku`を値として渡します。",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "game_1": "game_1_steam",
          "game_2": "game_2_playstation"
        }
      },
      "Promotions_200-coupon-discount-reward": {
        "type": [
          "object",
          "null"
        ],
        "description": "割引率。\nカートの価格は、この割引率で計算された値で減少し、小数点以下2桁に四捨五入されます。",
        "properties": {
          "percent": {
            "type": "string",
            "example": "10.00"
          }
        }
      },
      "Promotions_422_limit_error": {
        "description": "引き換えの利用限度額に達しました。",
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 9804
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-9804]: You have reached the coupon redemption limit."
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        },
        "example": {
          "statusCode": 422,
          "errorCode": 9804,
          "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
        }
      },
      "Promotions_422_reglock_error": {
        "description": "ユーザーの地域ではクーポンが利用できません。",
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 9808
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-9808]: Coupon is not available in your region."
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        },
        "example": {
          "statusCode": 422,
          "errorCode": 9804,
          "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
        }
      },
      "user-attribute_conditions_properties_attribute": {
        "type": "string",
        "description": "ユーザー属性コード。",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[-_.\\d\\w]+$"
      },
      "user-attribute_conditions_properties_type-string": {
        "type": "string",
        "enum": [
          "string"
        ],
        "description": "ユーザー属性タイプ。"
      },
      "user-attribute_conditions_properties_operator_string": {
        "type": "string",
        "enum": [
          "eq",
          "ne"
        ],
        "description": "条件によって実行される操作のタイプ。<code>string</code>属性タイプの場合。\n\n可能な値：\n- `eq` — イコール\n- `ne` — ノットイコール"
      },
      "user-attribute_conditions_properties_value": {
        "type": "string",
        "description": "ユーザー属性値の比較対象となる条件値。ライプは属性タイプに依存します。",
        "maxLength": 255
      },
      "user-attribute_conditions_properties_can_be_missing": {
        "type": "boolean",
        "description": "ユーザー属性に属性がない場合でも条件を満たすことを示します。`true`を渡すと、この属性を持たないユーザーにもアイテムを表示します。属性は持っているが、値が条件で指定されたものと一致しないユーザーには、アイテムは表示されません。`false` - その属性を持っているが、値が条件に指定されたものと一致しないか、属性が欠落しているユーザーには、アイテムは表示されません。"
      },
      "user-attribute_condition_string_model-get": {
        "type": "object",
        "title": "type = string",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-string"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_string"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_properties_type-number": {
        "type": "string",
        "enum": [
          "number"
        ],
        "description": "ユーザー属性タイプ。"
      },
      "user-attribute_conditions_properties_operator_number": {
        "type": "string",
        "enum": [
          "eq",
          "ne",
          "gt",
          "ge",
          "lt",
          "le"
        ],
        "description": "条件によって実行される操作のタイプ。<code>number</code>属性タイプの場合。\n\n可能な値：\n- `eq` — イコール\n- `ne` — ノットイコール\n- `gt` — より大きい\n- `ge` — 大なりイコール\n- `lt` — より小さい\n- `le` — 小なりイコール"
      },
      "user-attribute_condition_number_model-get": {
        "type": "object",
        "title": "type = number",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-number"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_number"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_properties_type-date": {
        "type": "string",
        "enum": [
          "date"
        ],
        "description": "ユーザー属性タイプ。"
      },
      "user-attribute_conditions_properties_operator_date": {
        "type": "string",
        "enum": [
          "eq",
          "ne",
          "lt",
          "gt",
          "le",
          "ge"
        ],
        "description": "条件によって実行される操作のタイプ。<code>date</code>属性タイプの場合。\n\n可能な値：\n- `eq` — 一致\n- `ne` — 不一致\n- `lt` — 指定より前\n- `gt` — 指定より後\n- `le` — 指定以前\n- `ge` — 指定以降"
      },
      "user-attribute_condition_date_model-get": {
        "type": "object",
        "title": "type = date",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-date"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_date"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_model-get": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "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"
            }
          ]
        }
      },
      "promotion_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "ユーザー属性を検証するための条件。\nユーザー属性が指定されたすべての条件に一致するかどうかに基づいて、プロモーションの可用性を決定します。"
          }
        ]
      },
      "admin-promotions_200-get-coupon-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          }
        }
      },
      "user-attribute_condition_string_model-post": {
        "type": "object",
        "title": "type = string",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-string"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_string"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_condition_number_model-post": {
        "type": "object",
        "title": "type = number",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-number"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_number"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_condition_date_model-post": {
        "type": "object",
        "title": "type = date",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-date"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_date"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_conditions_model-post": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "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"
            }
          ]
        }
      },
      "promotion_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "ユーザー属性を検証するための条件。\nユーザー属性が指定されたすべての条件に一致するかどうかに基づいて、プロモーションの可用性を決定します。"
          }
        ]
      },
      "Promotions_coupon_code": {
        "type": "string",
        "description": "大文字と小文字を区別する一意のコードです。文字と数字が含まれます。",
        "minLength": 1,
        "maxLength": 128,
        "example": "WINTER2021",
        "default": "WINTER2021",
        "pattern": "^[a-zA-Z0-9]+$"
      },
      "Promotions_coupon-generate-count": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50000,
        "example": 10
      },
      "value-is_free": {
        "type": "boolean",
        "example": false,
        "default": false,
        "description": "アイテムが無料かどうか。"
      },
      "Catalog_item_promotions": {
        "type": "array",
        "description": "カート内の特定アイテムに適用されるプロモーション。この配列は、以下のケースで返されます：\n\n* 特定のアイテムに対して、割引キャンペーンが構成されている場合。\n\n* **選択されたアイテムの割引**設定を持つプロモーションコードが適用された場合。\n\nアイテムレベルのプロモーションが適用されない場合は、空の配列が返されます。",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "date_start": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "date_end": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "discount": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "percent": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            },
            "bonus": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "sku": {
                    "type": "string"
                  },
                  "quantity": {
                    "type": "integer"
                  },
                  "type": {
                    "type": "string",
                    "description": "ボーナスアイテムタイプ。",
                    "enum": [
                      "virtual_good",
                      "virtual_currency",
                      "bundle",
                      "physical_good",
                      "game_key",
                      "nft"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "description": "ボーナスアイテムの名前です。ボーナスアイテムのタイプ`physical_good`では使用できません。"
                  },
                  "image_url": {
                    "type": "string",
                    "description": "ボーナスアイテムの画像URLです。ボーナスアイテムのタイプ `physical_good` では使用できません。ー"
                  },
                  "bundle_type": {
                    "type": "string",
                    "description": "ボーナスバンドルアイテムタイプ。ボーナスアイテムタイプ`bundle`のみで利用可能です。",
                    "enum": [
                      "standard",
                      "virtual_currency_package"
                    ]
                  }
                }
              }
            },
            "limits": {
              "type": "object",
              "properties": {
                "per_user": {
                  "type": "object",
                  "properties": {
                    "available": {
                      "type": "integer"
                    },
                    "total": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "Can_be_bought": {
        "type": "boolean",
        "example": true,
        "description": "`true`の場合、ユーザーはアイテムを購入することができます。"
      },
      "item_id": {
        "type": "integer",
        "example": 1,
        "description": "内部の一意のアイテムID。"
      },
      "value-point-sku": {
        "type": "string",
        "description": "一意のバリューポイントID。"
      },
      "value-point-amount": {
        "type": "integer",
        "description": "バリューポイントの量。"
      },
      "value-point-name": {
        "type": "string",
        "description": "バリューポイント名。"
      },
      "Common_admin-image_url": {
        "type": "string",
        "example": "https://image.example.com",
        "description": "画像URL。"
      },
      "is_clan": {
        "type": "boolean",
        "description": "バリューポイントがクランリワードチェーンで使用されるかどうか。",
        "example": true
      },
      "client-item-value-point-reward": {
        "type": "array",
        "description": "アイテムのバリューポイント報酬のリスト。",
        "items": {
          "type": "object",
          "properties": {
            "item_id": {
              "$ref": "#/components/schemas/item_id"
            },
            "sku": {
              "$ref": "#/components/schemas/value-point-sku"
            },
            "amount": {
              "$ref": "#/components/schemas/value-point-amount"
            },
            "name": {
              "$ref": "#/components/schemas/value-point-name"
            },
            "image_url": {
              "$ref": "#/components/schemas/Common_admin-image_url"
            },
            "is_clan": {
              "$ref": "#/components/schemas/is_clan"
            }
          }
        }
      },
      "loyalty-point-sku": {
        "type": "string",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
        "example": "123e4567-e89b-12d3-a456-426614174000",
        "description": "ロイヤルティポイントのSKUです。<a href=\"https://developers.xsolla.com/ja/api/liveops/loyalty-program-client/loyalty-create-order-with-item-for-loyalty-points#loyalty-program-client/loyalty-create-order-with-item-for-loyalty-points/t=request&in=path&path=loyalty_point_sku\">ロイヤルティポイントで支払う注文を作成する場合</a>など、他のAPIコールの`loyalty_point_sku`パラメータにこの値を渡してください。"
      },
      "image_url": {
        "type": [
          "string",
          "null"
        ],
        "example": "https://image.example.com",
        "description": "画像URL。"
      },
      "item-loyalty-point-reward": {
        "type": "array",
        "description": "アイテムを購入した際の報酬としてユーザーが付与されるロイヤルティポイント。",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "ロイヤリティポイント名。"
            },
            "sku": {
              "$ref": "#/components/schemas/loyalty-point-sku"
            },
            "description": {
              "type": "string",
              "description": "ロイヤルティポイントの説明。"
            },
            "image_url": {
              "$ref": "#/components/schemas/image_url"
            },
            "amount": {
              "type": "integer",
              "description": "アイテムを購入した際にユーザーが付与されるロイヤルティポイントの数。"
            }
          }
        }
      },
      "catalog_recurrent_schedule_client_response": {
        "description": "ユーザーのアイテム制限の定期更新期間。",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = 毎日",
            "description": "ユーザー制限の日次更新タイプ。",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "定期更新期間のタイプ。",
                "enum": [
                  "daily"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "制限がリセットされた日時（UNIXタイムスタンプ）。",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = 毎週",
            "description": "ユーザー制限の週次更新タイプ。",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "定期更新期間のタイプ。",
                "enum": [
                  "weekly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "制限がリセットされた日時（UNIXタイムスタンプ）。",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = 毎月",
            "description": "ユーザー制限の月次更新タイプ。",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "定期更新期間のタイプ。",
                "enum": [
                  "monthly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "制限がリセットされた日時（UNIXタイムスタンプ）。",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = 毎時間",
            "description": "ユーザー制限のリセットは、指定された時間間隔で実行されます。",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "定期更新期間のタイプ。",
                "enum": [
                  "hourly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "制限がリセットされた日時（UNIXタイムスタンプ）。",
                "example": 1677553200
              }
            }
          },
          {
            "type": "null",
            "title": "null"
          }
        ]
      },
      "limit_exceeded_visibility": {
        "type": "string",
        "example": "show",
        "enum": [
          "show",
          "hide"
        ],
        "description": "購入制限に達してから次回の制限リセットまでの間、カタログ内でのアイテムの表示・非表示を決定します。\n\nこれは、`recurrent_schedule`配列で定期的な制限リセットが設定されているアイテムに適用されます。\n\n購入制限のリセットが設定されていない場合、購入制限に達した後は、`limit_exceeded_visibility`の値に関わらず、そのアイテムはカタログに表示されなくなります。\n\n指定可能な値：\n- `show` — 購入制限に達した後も、カタログ取得用のAPIコールに対してアイテム情報が返却されます。クライアントサイドのカタログ取得APIコールにおいては、制限に達した時点でアイテムに`can_be_bought: false`フラグが付与されて返されます。次回のリセット日時は`reset_next_date`に格納されて返却されます。\n- `hide` — 購入制限に達した時点から、制限値がリセットされるまでの間、カタログ取得用のAPIコールにおいてアイテムは返されなくなります。",
        "default": "show"
      },
      "Catalog_item_limits": {
        "description": "アイテム制限。",
        "properties": {
          "per_user": {
            "type": [
              "object",
              "null"
            ],
            "description": "ユーザーのアイテム制限。",
            "properties": {
              "total": {
                "type": "integer",
                "description": "1ユーザーあたりのユーザーが購入できるアイテムの最大数。",
                "example": 5
              },
              "available": {
                "type": "integer",
                "description": "現在のユーザーが購入できるアイテムの残り数。",
                "example": 3
              },
              "recurrent_schedule": {
                "$ref": "#/components/schemas/catalog_recurrent_schedule_client_response"
              },
              "limit_exceeded_visibility": {
                "$ref": "#/components/schemas/limit_exceeded_visibility"
              }
            }
          },
          "per_item": {
            "type": [
              "object",
              "null"
            ],
            "description": "アイテムのアイテム制限。",
            "properties": {
              "total": {
                "type": "integer",
                "description": "すべてのユーザーが購入できるアイテムの最大数。",
                "example": 5
              },
              "available": {
                "type": "integer",
                "description": "すべてのユーザーが購入できるアイテムの残り数。",
                "example": 3
              }
            }
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "item-periods": {
        "type": [
          "array",
          "null"
        ],
        "description": "アイテム販売期間。",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "example": "2020-08-11T10:00:00+03:00",
              "description": "指定されたアイテムの販売開始日。"
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "指定されたアイテムが販売できなくなる日付。`null`を指定することもできます。"
            }
          }
        }
      },
      "Promotions_200-promo-code-bonus-reward": {
        "type": "object",
        "properties": {
          "item": {
            "type": "object",
            "properties": {
              "sku": {
                "type": "string",
                "example": "game_01",
                "description": "一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
              },
              "name": {
                "type": "string",
                "example": "Game name",
                "description": "アイテム名。"
              },
              "type": {
                "type": "string",
                "example": "unit",
                "description": "アイテムタイプ。可能な値：<ul><li><code>virtual_good</code> — 仮想アイテム</li><li><code>virtual_currency</code> — 仮想通貨</li><li><code>bundle</code> — バンドル</li><li><code>unit</code> — ゲームキーパッケージ</li></ul>"
              },
              "description": {
                "type": "string",
                "example": "Game description",
                "description": "アイテムの説明。"
              },
              "image_url": {
                "type": "string",
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "description": "画像URL。"
              },
              "unit_items": {
                "$ref": "#/components/schemas/unit_items"
              }
            }
          },
          "quantity": {
            "type": "number",
            "description": "アイテム数量。",
            "default": 1
          }
        }
      },
      "Promotions_discounted_items": {
        "type": [
          "array",
          "null"
        ],
        "description": "プロモーションコードによる割引が適用されるアイテムリスト。",
        "items": {
          "description": "カート内の特定のアイテムの割引。",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "description": "アイテムSKU。",
              "default": "elven_shield"
            },
            "discount": {
              "type": "object",
              "nullable": false,
              "properties": {
                "percent": {
                  "$ref": "#/components/schemas/Promotions_cart_item_discount"
                }
              },
              "required": [
                "percent"
              ]
            }
          },
          "required": [
            "sku",
            "discount"
          ],
          "minItems": 1
        }
      },
      "Promo_code_rewards": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-promo-code-bonus-reward"
            }
          },
          "discount": {
            "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items"
          },
          "is_selectable": {
            "type": "boolean",
            "description": "`true`の場合、ユーザーはプロモーションコードを引き換える前にボーナスを選択する必要があります。"
          }
        }
      },
      "admin-attribute-external_id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[a-zA-Z0-9-_]+$",
        "example": "attribute_1",
        "description": "一意の属性ID。`external_id`には、小文字と大文字のラテン英数字、ダッシュ、およびアンダースコアのみが含まれます。"
      },
      "value-external_id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[-_.\\d\\w]+$",
        "example": "attribute_value",
        "description": "属性の一意の値ID。`external_id`には、半角小文字の英数字、ハイフン、アンダースコアのみを含めることができます。"
      },
      "client-attributes": {
        "type": "array",
        "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"
              }
            ]
          }
        },
        "default": [],
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "$ref": "#/components/schemas/admin-attribute-external_id"
            },
            "name": {
              "type": "string",
              "description": "属性名。",
              "example": "Genre"
            },
            "values": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "external_id": {
                    "$ref": "#/components/schemas/value-external_id"
                  },
                  "value": {
                    "type": "string",
                    "description": "属性値。",
                    "example": "Strategy"
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_promocode_total_limit_state": {
        "type": [
          "object",
          "null"
        ],
        "description": "一意のプロモーションコードごとの制限。",
        "properties": {
          "available": {
            "type": "integer",
            "description": "プロモーションコードの残り使用可能回数。",
            "example": 3
          },
          "reserved": {
            "type": "integer",
            "description": "プロモーションコードの予約番号。",
            "example": 3
          },
          "used": {
            "type": "integer",
            "description": "プロモーションコードの使用回数。",
            "example": 5
          }
        }
      },
      "price_conditions_items": {
        "description": "各オブジェクトは、価格があるべきルールを説明しています。",
        "type": "object",
        "properties": {
          "operator": {
            "type": "string",
            "description": "プロモーションを適用する価格帯を設定する比較演算子。\n\n可能な値：\n- `ge` — 大なりイコール\n- `gt` — より大きい\n- `le` — 小なりイコール\n- `lt` — より小さい\n- `eq` — イコール\n- `ne` — ノットイコール",
            "enum": [
              "ge",
              "gt",
              "le",
              "lt",
              "eq",
              "ne"
            ]
          },
          "value": {
            "type": "string",
            "description": "プロモーションを適用する価格帯を決定するための値。",
            "pattern": "^\\d+(\\.\\d{1,4})?$"
          }
        },
        "required": [
          "operator",
          "value"
        ]
      },
      "price_conditions_promocode": {
        "type": [
          "array",
          "null"
        ],
        "description": "カート全体にプロモーションを適用するための価格帯を設定する条件を持つオブジェクトの配列。<br>\nユーザーのカート内の全アイテムの合計価格が、条件で指定された価格範囲と比較されます。[ボーナス](/ja/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request)と[割引](/ja/api/shop-builder/operation/create-promo-code/#!path=discount&t=request)は、カートの価格が指定された条件を満たす場合に、カート内のすべてのアイテムに適用されます。<br>\nこの配列を渡す場合は、[discounted_items](/ja/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) 配列の値を`null`に設定します。",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "item_price_conditions_promocode": {
        "type": [
          "array",
          "null"
        ],
        "description": "カートの中の特定のアイテムにプロモーションを適用するための価格範囲を設定する条件を持つオブジェクトの配列。<br>\nユーザーのカート内の各アイテムの価格は、条件で指定された価格帯と比較されます。[ボーナス](/ja/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request)と[ディスカウント](/ja/api/shop-builder/operation/create-promo-code/#!path=discount&t=request)は、カート内のアイテムのうち、価格が条件を満たすものにのみ適用されます。<br>\nこの配列を渡す場合は、[discounted_items](/ja/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request)配列の値を`null`に設定します。",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "excluded_promotions": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "example": [
          12,
          789
        ],
        "description": "このプロモーションを適用する際に除外するプロモーションIDのリスト。<br>Example：`[12, 789]`"
      },
      "Promotions_200-get-promocode-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "percent": {
                "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_promocode_total_limit_state"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          },
          "price_conditions": {
            "$ref": "#/components/schemas/price_conditions_promocode"
          },
          "item_price_conditions": {
            "$ref": "#/components/schemas/item_price_conditions_promocode"
          },
          "excluded_promotions": {
            "$ref": "#/components/schemas/excluded_promotions"
          }
        }
      },
      "Promotions_is_enabled": {
        "type": "boolean",
        "example": true,
        "description": "プロモーションが有効かどうか。"
      },
      "price_conditions_discount": {
        "type": [
          "array",
          "null"
        ],
        "description": "プロモーションを適用する価格帯を設定する条件を持つオブジェクトの配列。<br> プロモーションは、価格が配列内のすべての条件を満たすアイテムにのみ適用されます。この配列を渡す場合は、[アイテム](/ja/api/shop-builder/operation/create-item-promotion/#!path=items&t=request)オブジェクトの値を`null`に設定します。",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "Promotions_promotion_limits": {
        "type": "object",
        "description": "プロモーションの制限。",
        "properties": {
          "per_user": {
            "type": [
              "integer",
              "null"
            ],
            "description": "別ユーザーでのプロモーション制限。"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/promotion_recurrent_schedule_response"
          }
        }
      },
      "price_conditions_bonus": {
        "type": [
          "array",
          "null"
        ],
        "description": "プロモーションを適用する価格帯を設定する条件を持つオブジェクトの配列。<br> プロモーションは、価格が配列内のすべての条件を満たすアイテムにのみ適用されます。この配列を渡す場合は、[条件](/ja/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request)オブジェクトの値を`null`に設定します。",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "Promotions_200-get-bonus-promotion-model": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "type": "object",
            "description": "プロモーションの名前。キーと値のペアを含む必要があります。\nキーは\"^[a-z]{2}-[A-Z]{2}$\"形式のロケール、値は文字列です。",
            "additionalProperties": {
              "type": "string"
            },
            "example": {
              "en-US": "Summer season bonus",
              "de-DE": "Sommersaison Bonus"
            }
          },
          "is_enabled": {
            "type": "boolean",
            "default": true
          },
          "condition": {
            "type": [
              "array",
              "null"
            ],
            "description": "プロモーションを適用するために、購入に含める必要があるアイテムのセット。このパラメータが`null`である場合、プロジェクト内のすべての購入にプロモーションが適用されます。",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "アイテムSKU。",
                  "default": "elven_sword"
                }
              }
            }
          },
          "bonus": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "description": "ユーザー購入時にボーナスとして追加されるアイテムのリスト。",
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "アイテムSKU。",
                  "default": "elven_shield"
                },
                "quantity": {
                  "type": "number",
                  "description": "アイテム数量。",
                  "default": 1
                }
              }
            }
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          },
          "limits": {
            "$ref": "#/components/schemas/Promotions_promotion_limits_response"
          },
          "excluded_promotions": {
            "$ref": "#/components/schemas/excluded_promotions"
          },
          "price_conditions": {
            "$ref": "#/components/schemas/price_conditions_bonus"
          }
        }
      },
      "Coupon_rewards": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
            }
          },
          "is_selectable": {
            "type": "boolean",
            "description": "`true`の場合、ユーザーはクーポンを利用する前にボーナスを選択する必要があります。"
          }
        }
      },
      "Promotions_discounted_items_verify": {
        "type": [
          "array",
          "null"
        ],
        "description": "プロモーションコードによる割引が適用されるアイテムリスト。",
        "items": {
          "description": "特定アイテムの割引。",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "example": "game_01",
              "description": "一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
            },
            "name": {
              "type": "string",
              "example": "Game name",
              "description": "アイテム名。"
            },
            "type": {
              "type": "string",
              "example": "unit",
              "description": "アイテムタイプ。可能な値：<ul><li><code>virtual_good</code> — 仮想アイテム</li><li><code>virtual_currency</code> — 仮想通貨</li><li><code>bundle</code> — バンドル</li><li><code>unit</code> — ゲームキーパッケージ</li></ul>"
            },
            "description": {
              "type": "string",
              "example": "Game description",
              "description": "アイテムの説明。"
            },
            "image_url": {
              "type": "string",
              "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
              "description": "画像URL。"
            },
            "unit_items": {
              "$ref": "#/components/schemas/unit_items"
            },
            "discount": {
              "type": "object",
              "nullable": false,
              "properties": {
                "percent": {
                  "$ref": "#/components/schemas/Promotions_cart_item_discount"
                }
              }
            }
          }
        }
      },
      "Promo_code_rewards_verify": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-promo-code-bonus-reward"
            }
          },
          "discount": {
            "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items_verify"
          },
          "is_selectable": {
            "type": "boolean",
            "description": "`true`の場合、ユーザーはプロモーションコードを引き換える前にボーナスを選択する必要があります。"
          }
        }
      },
      "sku": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[a-zA-Z0-9_\\-–.]*$",
        "example": "booster_mega_1",
        "description": "一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
      },
      "Promotions_unique_catalog_offer_items": {
        "type": "array",
        "description": "ユニークカタログオファー使用後に利用可能なアイテムSKUリスト。",
        "items": {
          "$ref": "#/components/schemas/sku"
        }
      },
      "Promotions_200-get-unique-catalog-offer-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "items": {
            "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          }
        }
      },
      "Promotions_coupon_date_start": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "default": "2020-04-15T18:16:00+05:00",
        "description": "プロモーションを開始する日付。"
      },
      "Promotions_coupon_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "default": "2020-04-15T18:16:00+05:00",
        "description": "プロモーションが終了する日付。`null`にすることができます。 `date_end`が`null`の場合、プロモーションは時間無制限となります。"
      },
      "User-limit-promo-code": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "ユーザーがプロモーションコードを使用できる最大回数。"
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "ユーザーがプロモーションコードを利用できる残り回数。"
              }
            }
          }
        }
      },
      "User-limit-coupon": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "ユーザーがクーポンを利用できる最大回数。"
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "ユーザーがクーポンを利用できる残り回数。"
              }
            }
          }
        }
      },
      "Code-limit-promo-code": {
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/Promotions_coupon_code"
          },
          "per_code": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "description": "プロモーションコードの最大使用回数。"
              },
              "available": {
                "type": "integer",
                "description": "プロモーションコードの残り使用可能回数。"
              },
              "used": {
                "type": "integer",
                "description": "プロモーションコードの使用回数。"
              },
              "reserved": {
                "type": "integer",
                "description": "プロモーションコードの予約回数。"
              }
            }
          }
        }
      },
      "personalized-catalog_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "ユーザー属性を検証するための条件。\nユーザー属性が指定されたすべての条件に一致するかどうかに基づいて、カタログ内のアイテムの可用性を決定します。"
          }
        ]
      },
      "user-attribute_personalized-catalog": {
        "type": "object",
        "properties": {
          "rule_id": {
            "type": "number",
            "description": "ルールID。"
          },
          "name": {
            "type": "string",
            "description": "ルールの読みやすい名前。パブリッシャーアカウントでルールを表示するために使用します。"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "ルールが有効な場合。"
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "アイテムを無許可のユーザーに表示するかどうか。「`true`」の場合、カタログ表示ルールに関係なく、アイテムは権限のないユーザーに表示されます。デフォルトでは「`false`」です。"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-get"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "ユーザーの属性値が条件を満たした場合に表示されるアイテム。",
              "properties": {
                "item_id": {
                  "type": "number",
                  "description": "アイテムID。"
                },
                "sku": {
                  "type": "string",
                  "description": "アイテムSKU。"
                },
                "name": {
                  "type": "string",
                  "description": "アイテム名。"
                },
                "type": {
                  "type": "string",
                  "description": "アイテムのタイプ。",
                  "enum": [
                    "virtual_good",
                    "virtual_currency",
                    "bundle",
                    "physical_good",
                    "unit"
                  ]
                },
                "bundle_type": {
                  "type": "string",
                  "description": "バンドルタイプ。アイテムタイプがバンドルの場合に返されます。",
                  "enum": [
                    "standard",
                    "virtual_currency_package"
                  ]
                }
              }
            }
          }
        },
        "required": [
          "rule_id",
          "name",
          "is_enabled",
          "attribute_conditions",
          "items"
        ]
      },
      "personalized-catalog_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "ユーザー属性を検証するための条件。\nユーザー属性が指定されたすべての条件に一致するかどうかに基づいて、カタログ内のアイテムの可用性を決定します。"
          }
        ]
      },
      "user-attribute_personalized-catalog-body-required": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "ルールの読みやすい名前。パブリッシャーアカウントでルールを表示するために使用します。",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^\\S"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "ルールが有効な場合。"
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "アイテムを無許可のユーザーに表示するかどうか。「`true`」の場合、カタログ表示ルールに関係なく、アイテムは権限のないユーザーに表示されます。デフォルトでは「`false`」です。"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-post"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "属性値が条件を満たした場合に、ユーザーに表示されるアイテム。",
                  "properties": {
                    "item_id": {
                      "type": "number",
                      "description": "アイテムID。"
                    }
                  },
                  "required": [
                    "item_id"
                  ]
                },
                {
                  "type": "object",
                  "description": "属性値が条件を満たした場合に、ユーザーに表示されるアイテム。",
                  "properties": {
                    "sku": {
                      "type": "string",
                      "description": "アイテムSKU。"
                    }
                  },
                  "required": [
                    "sku"
                  ]
                }
              ]
            }
          }
        },
        "required": [
          "name",
          "is_enabled",
          "attribute_conditions",
          "items"
        ]
      },
      "422-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "number",
            "description": "レスポンスステータスコード。",
            "example": 422
          },
          "errorCode": {
            "type": "number",
            "description": "エラーコード。",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "description": "読み取り可能なエラーメッセージ。",
            "example": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
          },
          "transactionId": {
            "type": "string",
            "description": "リクエストのユニークID。",
            "example": "da145238620011eb8e24fe6913ff226a"
          }
        }
      },
      "user-attribute_personalized-catalog_all": {
        "type": "object",
        "properties": {
          "rule_id": {
            "type": "number",
            "description": "ルールID。"
          },
          "name": {
            "type": "string",
            "description": "ルールの読みやすい名前。パブリッシャーアカウントでルールを表示するために使用します。"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "ルールが有効な場合。"
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "アイテムを無許可のユーザーに表示するかどうか。「`true`」の場合、カタログ表示ルールに関係なく、アイテムは権限のないユーザーに表示されます。デフォルトでは「`false`」です。"
          }
        },
        "required": [
          "rule_id",
          "name",
          "is_enabled"
        ]
      },
      "user-attribute_personalized-catalog-body": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "ルールの読みやすい名前。パブリッシャーアカウントでルールを表示するために使用します。",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^\\S"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "ルールが有効な場合。"
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "アイテムを無許可のユーザーに表示するかどうか。「`true`」の場合、カタログ表示ルールに関係なく、アイテムは権限のないユーザーに表示されます。デフォルトでは「`false`」です。"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-post"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "属性値が条件を満たした場合に、ユーザーに表示されるアイテム。",
                  "properties": {
                    "item_id": {
                      "type": "number",
                      "description": "アイテムID。"
                    }
                  },
                  "required": [
                    "item_id"
                  ]
                },
                {
                  "type": "object",
                  "description": "属性値が条件を満たした場合に、ユーザーに表示されるアイテム。",
                  "properties": {
                    "sku": {
                      "type": "string",
                      "description": "アイテムSKU。"
                    }
                  },
                  "required": [
                    "sku"
                  ]
                }
              ]
            }
          }
        }
      },
      "User-limit_user-external-id": {
        "description": "ユーザーexternal ID。",
        "type": "string",
        "minLength": 1,
        "pattern": "^\\S+$"
      },
      "User-limit_user": {
        "type": "object",
        "properties": {
          "user_external_id": {
            "$ref": "#/components/schemas/User-limit_user-external-id"
          }
        },
        "required": [
          "user_external_id"
        ]
      },
      "User-limit_user_flexible": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "user_external_id": {
            "$ref": "#/components/schemas/User-limit_user-external-id"
          }
        }
      },
      "User-limit-promotion": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "ユーザーがプロモーションを利用できる最大回数。"
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "ユーザーがプロモーションを利用できる残りの回数。"
              }
            }
          }
        }
      },
      "User-limit_available_flexible": {
        "type": "integer",
        "minimum": 0,
        "description": "適用された制限内でユーザーが利用できる残りのアイテム数またはプロモーション利用回数。"
      },
      "User-limit_available": {
        "type": "integer",
        "minimum": 1,
        "description": "適用された制限内でユーザーが利用できる残りのアイテム数またはプロモーション利用回数。"
      },
      "two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "2文字の小文字の言語コード。",
        "title": "2文字",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "description": "英語"
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "description": "アラビア語"
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "description": "ブルガリア語"
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "description": "中国語（簡体字）"
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "description": "チェコ語"
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "description": "ドイツ語"
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "description": "スペイン語（スペイン）"
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "description": "フランス語"
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "description": "ヘブライ語"
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "description": "イタリア語"
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "description": "日本語"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "description": "韓国語"
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "description": "ポーランド語"
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "description": "ポルトガル語"
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "description": "ルーマニア語"
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "description": "ロシア語"
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "description": "タイ語"
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "description": "トルコ語"
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "description": "中国語（繁体字）"
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "description": "ベトナム語"
          },
          "km": {
            "type": [
              "string",
              "null"
            ],
            "description": "クメール語"
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "インドネシア語"
          },
          "lo": {
            "type": [
              "string",
              "null"
            ],
            "description": "ラオス語"
          },
          "my": {
            "type": [
              "string",
              "null"
            ],
            "description": "ビルマ語"
          },
          "ph": {
            "type": [
              "string",
              "null"
            ],
            "description": "フィリピン語"
          },
          "ne": {
            "type": [
              "string",
              "null"
            ],
            "description": "ネパール語"
          }
        }
      },
      "five-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "5文字のロケールコード。",
        "title": "５文字",
        "properties": {
          "en-US": {
            "type": [
              "string",
              "null"
            ],
            "description": "英語"
          },
          "ar-AE": {
            "type": [
              "string",
              "null"
            ],
            "description": "アラビア語"
          },
          "bg-BG": {
            "type": [
              "string",
              "null"
            ],
            "description": "ブルガリア語"
          },
          "zh-CN": {
            "type": [
              "string",
              "null"
            ],
            "description": "中国語（簡体字）"
          },
          "cs-CZ": {
            "type": [
              "string",
              "null"
            ],
            "description": "チェコ語"
          },
          "de-DE": {
            "type": [
              "string",
              "null"
            ],
            "description": "ドイツ語"
          },
          "es-ES": {
            "type": [
              "string",
              "null"
            ],
            "description": "スペイン語（スペイン）"
          },
          "fr-FR": {
            "type": [
              "string",
              "null"
            ],
            "description": "フランス語"
          },
          "he-IL": {
            "type": [
              "string",
              "null"
            ],
            "description": "ヘブライ語"
          },
          "it-IT": {
            "type": [
              "string",
              "null"
            ],
            "description": "イタリア語"
          },
          "ja-JP": {
            "type": [
              "string",
              "null"
            ],
            "description": "日本語"
          },
          "ko-KR": {
            "type": [
              "string",
              "null"
            ],
            "description": "韓国語"
          },
          "pl-PL": {
            "type": [
              "string",
              "null"
            ],
            "description": "ポーランド語"
          },
          "pt-BR": {
            "type": [
              "string",
              "null"
            ],
            "description": "ポルトガル語（ブラジル）"
          },
          "ro-RO": {
            "type": [
              "string",
              "null"
            ],
            "description": "ルーマニア語"
          },
          "ru-RU": {
            "type": [
              "string",
              "null"
            ],
            "description": "ロシア語"
          },
          "th-TH": {
            "type": [
              "string",
              "null"
            ],
            "description": "タイ語"
          },
          "tr-TR": {
            "type": [
              "string",
              "null"
            ],
            "description": "トルコ語"
          },
          "zh-TW": {
            "type": [
              "string",
              "null"
            ],
            "description": "中国語（繁体字）"
          },
          "vi-VN": {
            "type": [
              "string",
              "null"
            ],
            "description": "ベトナム語"
          },
          "km-KH": {
            "type": [
              "string",
              "null"
            ],
            "description": "クメール語"
          },
          "id-ID": {
            "type": [
              "string",
              "null"
            ],
            "description": "インドネシア語"
          },
          "lo-LA": {
            "type": [
              "string",
              "null"
            ],
            "description": "ラオス語"
          },
          "my-MM": {
            "type": [
              "string",
              "null"
            ],
            "description": "ビルマ語"
          },
          "ph-PH": {
            "type": [
              "string",
              "null"
            ],
            "description": "フィリピン語"
          },
          "ne-NP": {
            "type": [
              "string",
              "null"
            ],
            "description": "ネパール語"
          }
        }
      },
      "name-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "アイテム名に関するローカライズ用オブジェクト。2文字の小文字の言語コード（例：`en`）または5文字の言語コード（例：`en-US`）のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合（例：`en`と`en-US`）、最後に提供された値が保存されます。サポートされている言語の完全なリストは、[ドキュメント](/ja/doc/shop-builder/references/supported-languages/)で確認できます。",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "description-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "アイテムの説明に関するローカライズ用オブジェクト。2文字の小文字の言語コード（例：`en`）または5文字のロケールコード（例：`en-US`）のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合（例：`en`と`en-US`）、最後に提供された値が保存されます。サポートされている言語の完全なリストは、[ドキュメント](/ja/doc/shop-builder/references/supported-languages/)で確認できます。",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "long-description-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "アイテムの長文説明のローカライズを含むオブジェクト。2文字の小文字の言語コード（例：`en`）または5文字のロケールコード（例：`en-US`）のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のバリアント（例：`en`と`en-US`）が提供された場合、最後に提供された値が保存されます。サポートされている言語の完全なリストは、[ドキュメント](/ja/doc/shop-builder/references/supported-languages/)で確認できます。",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "Value-points-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9_\\-–.]*$",
            "example": "booster_mega_1",
            "description": "一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "media_list": {
            "type": "array",
            "example": [
              {
                "type": "image",
                "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
              }
            ],
            "description": "スクリーンショット、ゲームプレイ動画などのアイテム追加アセット。",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "image",
                    "video"
                  ],
                  "example": "image",
                  "description": "メディアタイプ：`image`/`video`。"
                },
                "url": {
                  "type": "string",
                  "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
                  "description": "リソースファイル。"
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "アイテムタイプ。"
          },
          "image_url": {
            "type": "string"
          },
          "is_enabled": {
            "type": "boolean"
          },
          "order": {
            "type": "integer",
            "example": 1,
            "description": "配列順序を定義します。"
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        }
      },
      "is_enabled": {
        "type": "boolean",
        "example": true
      },
      "media_list": {
        "type": "array",
        "example": [
          {
            "type": "image",
            "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
          }
        ],
        "description": "スクリーンショット、ゲームプレイ動画などのアイテム追加アセット。",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "image",
                "video"
              ],
              "example": "image",
              "description": "メディアタイプ：`image`/`video`。"
            },
            "url": {
              "type": "string",
              "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
              "description": "リソースファイル。"
            }
          }
        }
      },
      "order": {
        "type": "integer",
        "example": 1,
        "description": "配列順序を定義します。"
      },
      "admin_value_points-create": {
        "properties": {
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/Common_admin-image_url"
          },
          "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"
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        },
        "type": "object",
        "required": [
          "sku",
          "name"
        ]
      },
      "422-rc-vp-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        }
      },
      "Value-point-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9_\\-–.]*$",
            "example": "booster_mega_1",
            "description": "一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "media_list": {
            "type": "array",
            "example": [
              {
                "type": "image",
                "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
              }
            ],
            "description": "スクリーンショット、ゲームプレイ動画などのアイテム追加アセット。",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "image",
                    "video"
                  ],
                  "example": "image",
                  "description": "メディアタイプ：`image`/`video`。"
                },
                "url": {
                  "type": "string",
                  "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
                  "description": "リソースファイル。"
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "アイテムタイプ。"
          },
          "image_url": {
            "type": "string"
          },
          "is_enabled": {
            "type": "boolean"
          },
          "order": {
            "type": "integer",
            "example": 1,
            "description": "配列順序を定義します。"
          },
          "can_delete": {
            "type": "boolean",
            "description": "バリューポイントを削除できるかどうか。`false`の場合、バリューポイントが使用されているリワードチェーンが1つ以上あるため、バリューポイントを削除することはできません。バリューポイントを削除するには、、それを含むすべての報酬チェーンを[削除](https://developers.xsolla.com/ja/api/shop-builder/operation/admin-delete-reward-chain/)します。\n\n`true`の場合、バリューポイントはどのリワードチェーンでも使用されないので、[削除](https://developers.xsolla.com/ja/api/shop-builder/operation/admin-delete-value-point/)することができます。"
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        }
      },
      "admin-item-value-point-reward": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "amount": {
            "type": "integer",
            "description": "バリューポイントの量。"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/Common_admin-image_url"
          }
        }
      },
      "item-value-point-reward-set": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "$ref": "#/components/schemas/sku"
            },
            "amount": {
              "type": "integer",
              "description": "バリューポイントの量。"
            }
          },
          "required": [
            "sku",
            "amount"
          ]
        }
      },
      "item-value-point-reward-set-for-patch": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "$ref": "#/components/schemas/sku"
            },
            "amount": {
              "type": "integer",
              "description": "バリューポイントの量。",
              "minimum": 0
            }
          },
          "required": [
            "sku",
            "amount"
          ],
          "maxItems": 100
        }
      },
      "date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "報酬チェーンの開始日。"
      },
      "date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "報酬チェープロモーションが終了する日付。「`null`」も可能です。`date_end`が`null`の場合、報酬チェーンは時間制限がありません。"
      },
      "clan_type": {
        "type": [
          "string",
          "null"
        ],
        "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
        ]
      },
      "top_contributors": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "Rocket",
            "description": "認証プロセス中にエクソーラに送信されるユーザーID。ユーザーIDは、ユーザーをエクソーラログインプロジェクトにリンクするために使用され、ニックネームとして表示されます。[ユーザーID](https://developers.xsolla.com/ja/solutions/web-shop/create-web-shop/set-up-authentication/?tabs=100-UserIDAuth&link=100-UserIDAuth)経由での認証を使用している場合は、[ウェブフック応答](https://developers.xsolla.com/ja/webhooks/operation/user-validation-in-webshop/)で<code>name</code>パラメータを渡すことをお勧めします。このパラメータには、ニックネームとして使用されるユーザー名が含まれています。"
          },
          "contributed_amount": {
            "type": "integer",
            "example": 100,
            "description": "ユーザーが獲得したバリューポイントの額。"
          }
        }
      },
      "value-point-description": {
        "type": [
          "string",
          "null"
        ],
        "description": "バリューポイントの説明。"
      },
      "value-point-long-description": {
        "type": [
          "string",
          "null"
        ],
        "description": "バリューポイントの長い説明。"
      },
      "interval_type_weekly": {
        "type": "string",
        "description": "報酬チェーンの定期リセット頻度。",
        "enum": [
          "weekly"
        ]
      },
      "interval_type_monthly": {
        "type": "string",
        "description": "報酬チェーンの定期リセット頻度。",
        "enum": [
          "monthly"
        ]
      },
      "interval_type_hourly_rc": {
        "type": "string",
        "description": "報酬チェーンの定期リセット頻度。",
        "enum": [
          "hourly"
        ]
      },
      "reset_next_date": {
        "type": "integer",
        "description": "計算された報酬チェーンが次回にリセットされる日時<a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">Unixタイムスタンプ</a>。<br><br>例えば、報酬チェーンは2024年3月1日01:00（クアラルンプール時間 GMT+8）から毎月リセットされます。報酬チェーンが次回にリセットされる日時：2024年4月1日01:00（クアラルンプール時間 GMT+8）。これは、2024年3月31日17:00 GMT+0またはUnixタイムスタンプのフォーマットで`1711904400000`に相当します。 <br><br>例：`1711904400000`"
      },
      "recurrent_schedule_client_side": {
        "type": [
          "object",
          "null"
        ],
        "description": "報酬チェーンの定期リセット期間。",
        "properties": {
          "interval_type": {
            "oneOf": [
              {
                "title": "interval_type = 毎週",
                "$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"
              }
            ]
          },
          "reset_next_date": {
            "$ref": "#/components/schemas/reset_next_date"
          }
        }
      },
      "popup_header-two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "クラン報酬チェーンツールチップポップアップウィンドウのヘッダーのローカライズ付きオブジェクト。 小文字の2文字[言語コード](https://developers.xsolla.com/ja/doc/pay-station/features/localization/)。",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "example": "How to unlock rewards"
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "example": "Wie man Belohnungen freischaltet"
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "example": "Cómo desbloquear recompensas"
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "example": "Comment débloquer des récompenses"
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "example": "Come sbloccare ricompense"
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "example": "報酬をアンロックする方法"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "popup_instruction-two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "クラン報酬チェーンツールチップポップアップウィンドウに関する説明のローカライズ付きオブジェクト。 小文字の2文字[言語コード](https://developers.xsolla.com/ja/doc/pay-station/features/localization/)。",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "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."
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "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."
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "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."
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "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."
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "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."
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "example": "クランリワードを受け取るには、クランメンバーでなければなりません。 クランメンバーがあなたをクランに招待し、招待を受け入れると、クランに参加できます。 あなた自身のクランを作成することもできます。"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "popup_image_url": {
        "type": [
          "string",
          "null"
        ],
        "example": "https://image.example.com",
        "description": "クラン報酬チェーンのツールチップポップアップウィンドウの画像。",
        "format": "uri"
      },
      "client-reward-chain-item-model": {
        "type": "object",
        "properties": {
          "reward_chain_id": {
            "type": "integer",
            "example": 9,
            "description": "報酬チェーンID。"
          },
          "name": {
            "type": "string",
            "example": "Weekly quest",
            "description": "報酬チェーン名。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "example": "Major weekly quest",
            "description": "報酬チェーンの説明。"
          },
          "long_description": {
            "type": [
              "string",
              "null"
            ],
            "example": "You can get a lot of additional items just by shopping during the week",
            "description": "報酬チェーンの長い説明。"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "date_start": {
            "$ref": "#/components/schemas/date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/date_end"
          },
          "clan_type": {
            "$ref": "#/components/schemas/clan_type"
          },
          "top_contributors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/top_contributors"
            }
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/value-point-sku"
              },
              "name": {
                "$ref": "#/components/schemas/value-point-name"
              },
              "image_url": {
                "$ref": "#/components/schemas/Common_admin-image_url"
              },
              "description": {
                "$ref": "#/components/schemas/value-point-description"
              },
              "long_description": {
                "$ref": "#/components/schemas/value-point-long-description"
              },
              "amount": {
                "$ref": "#/components/schemas/value-point-amount"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              }
            }
          },
          "steps": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "報酬チェーンのステップ。",
              "properties": {
                "step_id": {
                  "type": "integer",
                  "example": 10,
                  "description": "ステップID。"
                },
                "name": {
                  "type": "string",
                  "example": "Level 1",
                  "description": "ステップ名。"
                },
                "is_claimed": {
                  "type": "boolean",
                  "example": false,
                  "description": "ステップ報酬が請求されるかどうか。"
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "price": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "type": "integer",
                      "example": 100,
                      "description": "ユーザーがそのステップに対して請求したバリューポイントの数。"
                    }
                  }
                },
                "reward": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "$ref": "#/components/schemas/sku"
                      },
                      "name": {
                        "type": "string",
                        "example": "Super box",
                        "description": "アイテム名。"
                      },
                      "type": {
                        "type": "string",
                        "example": "bundle",
                        "description": "アイテムタイプ。"
                      },
                      "description": {
                        "type": "string",
                        "example": "Super box with items",
                        "description": "アイテムの説明。"
                      },
                      "image_url": {
                        "$ref": "#/components/schemas/Common_admin-image_url"
                      },
                      "quantity": {
                        "type": "integer",
                        "example": 2,
                        "description": "アイテム数量。"
                      }
                    }
                  }
                }
              }
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_client_side"
          },
          "popup_header": {
            "$ref": "#/components/schemas/popup_header-two-letter-locale"
          },
          "popup_instruction": {
            "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
          },
          "popup_image_url": {
            "$ref": "#/components/schemas/popup_image_url"
          }
        }
      },
      "Pagination_has-more": {
        "type": "boolean",
        "example": true,
        "description": "ページ数がもっとあることを示す指標として使用されます。"
      },
      "reward_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "一意の報酬チェーンID。"
      },
      "periods": {
        "type": "array",
        "nullable": false,
        "description": "報酬チェーンの有効期間。複数の期間を指定する場合は、`date_from`と`date_until`の両方が必須となります。",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "nullable": false,
              "example": "2020-08-11T10:00:00+03:00",
              "description": "指定された報酬チェーンの開始日。"
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "指定された報酬チェーンの終了日。 有効期間が1つだけ指定されている場合に限り、`null`に設定可能です。"
            }
          },
          "required": [
            "date_from"
          ]
        }
      },
      "day_of_week": {
        "type": "integer",
        "description": "報酬チェーンがリセットされる曜日。`1`は月曜日、`7`は日曜日。",
        "minimum": 1,
        "maximum": 7
      },
      "time": {
        "type": "string",
        "description": "希望するタイムゾーンで報酬チェーンがリセットされる時間（時間数に丸める）。<br><br>例えば、報酬チェーンのリセットの設定時間は、クアラルンプールのタイムゾーン (GMT+8) の 01:00 です。この場合、`time`パラメータの値は`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])",
        "example": "01:00:00+08:00"
      },
      "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`",
        "type": "string",
        "format": "date-time"
      },
      "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`",
        "type": "string",
        "format": "date-time"
      },
      "day_of_month": {
        "type": "integer",
        "description": "報酬チェーンがリセットされる日付。月の日数が指定された日の序数よりも少ない場合、報酬チェーンのリセットは月の最終日に行われます。",
        "minimum": 1,
        "maximum": 31
      },
      "reward_chain_hours_interval": {
        "type": "integer",
        "description": "報酬チェーンがリセットされるまでの時間間隔。 <br><br> カウントダウンは<a href=\"https://developers.xsolla.com/ja/api/shop-builder/operation/admin-create-reward-chain/#!path=0/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時間ごとにリセットされます。",
        "minimum": 1,
        "maximum": 10000
      },
      "admin_recurrent_schedule": {
        "description": "報酬チェーンの定期リセット期間。",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = 毎週",
            "description": "報酬チェーンの週次リセット。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = 毎月",
            "description": "報酬チェーンの月次リセット。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = 毎時間",
            "description": "報酬チェーンのリセットは、指定された時間の間隔で実行されます。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_hourly_rc"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/reward_chain_hours_interval"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          },
          {
            "type": "null",
            "title": "null"
          }
        ]
      },
      "chain_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "ユーザー属性を検証するための条件。\nユーザー属性が指定されたすべての条件に一致するかどうかに基づいて、オファーチェーンの可用性を決定します。"
          }
        ]
      },
      "chain_is_always_visible": {
        "description": "報酬チェーンをすべてのユーザーに表示するかどうかを設定します。`true`の場合、ユーザーの認証ステータスや属性に関わらず、チェーンは常に表示されます。\n\n個人用設定を設定するには、`false`を渡す必要があります。チェーンの表示ロジックは以下のようになります：\n  * `false`が渡され、かつ`attribute_conditions`配列に表示条件が指定されている場合、そのチェーンはパーソナライズされているとみなされ、指定された条件を満たす認証されたユーザーにのみ表示されます。\n  * `false`が渡され、かつ`attribute_conditions`配列が渡されないか空である場合、チェーンは未認証のユーザーに表示されます。また、認証されたユーザーに対して一致するチェーンが見つからない場合にも表示されます。",
        "type": "boolean",
        "default": true,
        "example": true
      },
      "is_reset_after_end": {
        "description": "報酬チェーンの終了日以降に、報酬チェーン（バリューポイントおよび全ユーザーの進捗状況）をリセットするかどうか˙：\n* `true`の場合、報酬チェーンはその終了日の後にリセットされます。\n* `false`の場合、報酬チェーンはその終了日の後にリセットされません。\n\n<br>\n\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>",
        "type": "boolean",
        "default": false,
        "example": false
      },
      "admin-get-reward-chain-item-basic-model": {
        "type": "object",
        "description": "報酬チェーン。",
        "properties": {
          "reward_chain_id": {
            "$ref": "#/components/schemas/reward_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/value-point-sku"
              },
              "name": {
                "$ref": "#/components/schemas/value-point-name"
              },
              "type": {
                "type": "string",
                "example": "value_point"
              },
              "image_url": {
                "$ref": "#/components/schemas/Common_admin-image_url"
              },
              "description": {
                "$ref": "#/components/schemas/value-point-description"
              },
              "long_description": {
                "$ref": "#/components/schemas/value-point-long-description"
              },
              "amount": {
                "$ref": "#/components/schemas/value-point-amount"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "media_list": {
                "$ref": "#/components/schemas/media_list"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              }
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/admin_recurrent_schedule"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        }
      },
      "admin-get-reward-chain-item-clan-basic-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/admin-get-reward-chain-item-basic-model"
          },
          {
            "type": "object",
            "description": "クラン報酬チェーン。",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "クラン報酬チェーン用に構成されたバリューポイント。",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/value-point-sku"
                  },
                  "name": {
                    "$ref": "#/components/schemas/value-point-name"
                  },
                  "type": {
                    "type": "string",
                    "example": "value_point"
                  },
                  "image_url": {
                    "$ref": "#/components/schemas/Common_admin-image_url"
                  },
                  "description": {
                    "$ref": "#/components/schemas/value-point-description"
                  },
                  "long_description": {
                    "$ref": "#/components/schemas/value-point-long-description"
                  },
                  "amount": {
                    "$ref": "#/components/schemas/value-point-amount"
                  },
                  "is_clan": {
                    "$ref": "#/components/schemas/is_clan"
                  },
                  "is_enabled": {
                    "$ref": "#/components/schemas/is_enabled"
                  },
                  "media_list": {
                    "$ref": "#/components/schemas/media_list"
                  },
                  "order": {
                    "$ref": "#/components/schemas/order"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            }
          }
        ]
      },
      "step_price_amount": {
        "type": "integer",
        "example": 100,
        "description": "バリューポイントでのステップ価格。"
      },
      "reward_step_price": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/step_price_amount"
          }
        },
        "required": [
          "amount"
        ]
      },
      "reward_item_quantity": {
        "type": "integer",
        "example": 2,
        "description": "アイテム数量。"
      },
      "reward-chain-step-reward_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "ユーザー属性を検証するための条件。\nユーザー属性が指定されたすべての条件に一致するかどうかに基づいて、報酬チェーンの各ステップにおける報酬の可用性を決定します。"
          }
        ]
      },
      "create_reward_step": {
        "type": "object",
        "description": "報酬チェーンのステップ。",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-post"
                }
              },
              "required": [
                "sku",
                "quantity"
              ]
            }
          }
        },
        "required": [
          "name",
          "price",
          "reward"
        ]
      },
      "recurrent_schedule_create_update": {
        "description": "報酬チェーンの定期リセット期間。",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = 毎週",
            "description": "報酬チェーンの週次更新タイプ。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_week"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = 毎月",
            "description": "報酬チェーンの月次更新タイプ。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_month"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = 毎時間",
            "description": "報酬チェーンのリセットは、指定された時間の間隔で実行されます。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_hourly_rc"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/reward_chain_hours_interval"
              }
            },
            "required": [
              "interval_type",
              "hours_interval"
            ]
          },
          {
            "type": "null",
            "title": "null"
          }
        ]
      },
      "chain_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "ユーザー属性を検証するための条件。\nユーザー属性が指定されたすべての条件に一致するかどうかに基づいて、オファーチェーンの可用性を決定します。"
          }
        ]
      },
      "create-reward-chain-model": {
        "type": "object",
        "description": "報酬チェーン。",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/sku"
              }
            },
            "required": [
              "sku"
            ]
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/create_reward_step"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_create_update"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        },
        "required": [
          "name",
          "value_point",
          "periods",
          "steps",
          "is_enabled"
        ]
      },
      "create-clan-reward-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/create-reward-chain-model"
          },
          {
            "type": "object",
            "description": "クラン報酬チェーン。",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "クラン報酬チェーン用に構成されたバリューポイント。",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/sku"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            },
            "required": [
              "name",
              "value_point",
              "periods",
              "steps",
              "is_enabled",
              "popup_header",
              "popup_instruction"
            ]
          }
        ]
      },
      "step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "一意のステップID。"
      },
      "reward-chain-step-reward_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "ユーザー属性を検証するための条件。\nユーザー属性が指定されたすべての条件に一致するかどうかに基づいて、報酬チェーンの各ステップにおける報酬の可用性を決定します。"
          }
        ]
      },
      "reward_step_short": {
        "type": "object",
        "description": "報酬チェーンのステップ。",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/step_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-get"
                }
              }
            }
          }
        }
      },
      "admin-get-reward-chain-item-full-model": {
        "type": "object",
        "description": "報酬チェーン。",
        "properties": {
          "reward_chain_id": {
            "$ref": "#/components/schemas/reward_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/sku"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "long_description": {
                "$ref": "#/components/schemas/long-description-localization-object"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "type": {
                "type": "string"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "image_url": {
                "$ref": "#/components/schemas/image_url"
              },
              "media_list": {
                "$ref": "#/components/schemas/media_list"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              }
            }
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reward_step_short"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/admin_recurrent_schedule"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        }
      },
      "admin-get-reward-chain-item-clan-full-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/admin-get-reward-chain-item-full-model"
          },
          {
            "type": "object",
            "description": "クラン報酬チェーン。",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "クラン報酬チェーン用に構成されたバリューポイント。",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/sku"
                  },
                  "description": {
                    "$ref": "#/components/schemas/description-localization-object"
                  },
                  "long_description": {
                    "$ref": "#/components/schemas/long-description-localization-object"
                  },
                  "name": {
                    "$ref": "#/components/schemas/name-localization-object"
                  },
                  "type": {
                    "type": "string"
                  },
                  "is_enabled": {
                    "$ref": "#/components/schemas/is_enabled"
                  },
                  "image_url": {
                    "$ref": "#/components/schemas/image_url"
                  },
                  "media_list": {
                    "$ref": "#/components/schemas/media_list"
                  },
                  "order": {
                    "$ref": "#/components/schemas/order"
                  },
                  "is_clan": {
                    "$ref": "#/components/schemas/is_clan"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              },
              "top_contributors": {
                "$ref": "#/components/schemas/top_contributors"
              }
            }
          }
        ]
      },
      "modify_reward_step": {
        "type": "object",
        "description": "報酬チェーンのステップ。",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/step_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-post"
                }
              },
              "required": [
                "sku",
                "quantity"
              ]
            }
          }
        },
        "required": [
          "name",
          "price",
          "reward",
          "step_id"
        ]
      },
      "update-reward-chain-model": {
        "type": "object",
        "description": "報酬チェーン。",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modify_reward_step"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_create_update"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        },
        "required": [
          "name",
          "periods",
          "steps",
          "is_enabled"
        ]
      },
      "update-clan-reward-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/create-reward-chain-model"
          },
          {
            "type": "object",
            "description": "クラン報酬チェーン。",
            "properties": {
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            },
            "required": [
              "name",
              "periods",
              "steps",
              "is_enabled",
              "popup_header",
              "popup_instruction"
            ]
          }
        ]
      },
      "daily_chain_type": {
        "type": "string",
        "enum": [
          "calendar_hard",
          "rolling_skippable",
          "rolling_unskippable"
        ],
        "description": "ユーザーが報酬をいつ受け取れるかを決定するデイリー報酬のタイプ。\n\n可能な値：\n- `calendar_hard` — 24時間ごとに次のステップの報酬がアンロックされます。\n次のステップの報酬が利用可能になると、未受け取りのステップ報酬は永久に失われます。\n- `rolling_skippable` — `date_start`を基準として、24時間ごとに次のステップの報酬がアンロックされます。進行は一方向の順序形式です：\n前の報酬を受け取るまで、新しい報酬はアンロックされません。ユーザーが1日または複数日ログインしなかった場合でも、\n前回終了した時点から再開され、ログインしなかった日数分の報酬を複数同時に獲得することはできません。\n- `rolling_unskippable` — `date_start`を基準として、24時間ごとに次のステップの報酬がアンロックされます。進行は一方向の順序形式です：\n前の報酬を受け取るまで、新しい報酬はアンロックされません。ただし、ユーザーがログインしなかった日が1日でもある場合、\n進行状況はリセットされ、最初のステップからやり直す必要があります。"
      },
      "calendar_hard_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "デイリー報酬の開始日。"
      },
      "calendar_hard_is_recurrent": {
        "type": "boolean",
        "example": true,
        "default": false,
        "description": "デイリー報酬が繰り返し発生するかどうか。`true`の場合、デイリー報酬は終了日後に自動的にリセットされます。次回の`start_date`および`end_date`のスケジュールは、デイリー報酬ステップの数と`start_date`に設定された初期時間に基づいて決定されます。"
      },
      "calendar-hard-daily-chain-base": {
        "type": "object",
        "description": "`calendar_hard`デイリー報酬タイプの基本プロパティ。",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "calendar_hard"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/calendar_hard_date_start"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/calendar_hard_is_recurrent"
          }
        }
      },
      "daily_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "一意なデイリー報酬 ID。"
      },
      "daily_chain_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "デイリー報酬の終了日。`null`にすることも可能です。`calendar_hard`タイプを設定すると、追加したステップ数に基づいてこの日付が自動的に設定されるため、`null`のままにしておいても問題ありません。"
      },
      "daily_chain_number_of_step": {
        "type": "integer",
        "example": 3,
        "description": "これはデイリー報酬で設定されたステップ数です。ここでの各ステップは、デイリー報酬における1日を表します。"
      },
      "admin-calendar-hard-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`calendar_hard`デイリー報酬（短いバージョン）。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "daily_rolling_chain_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "デイリー報酬が開始される日時。この時刻は、ユーザーが報酬を受け取れるようになるデイリーリセットポイントも定義します。"
      },
      "rolling_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "デイリー報酬の終了日。"
      },
      "rolling_is_recurrent": {
        "type": "boolean",
        "example": true,
        "default": false,
        "description": "デイリー報酬が繰り返し発生するかどうか。`true`の場合、ユーザーが全てのステップを完了した時点でデイリー報酬がリセットされ、ステップ1から再度開始できるようになります。繰り返しは、`date_start`と`date_end`で定められた報酬の有効期間内でのみ適用されます。"
      },
      "rolling-skippable-daily-chain-base": {
        "type": "object",
        "description": "`rolling_skippable`デイリー報酬タイプの基本プロパティ。",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "rolling_skippable"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/daily_rolling_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/rolling_date_end"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/rolling_is_recurrent"
          }
        }
      },
      "admin-rolling-skippable-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`rolling_skippable`デイリー報酬（短いバージョン）。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "rolling-unskippable-daily-chain-base": {
        "type": "object",
        "description": "`rolling_unskippable`デイリー報酬タイプの基本プロパティ。",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "rolling_unskippable"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/daily_rolling_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/rolling_date_end"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/rolling_is_recurrent"
          }
        }
      },
      "admin-rolling-unskippable-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`rolling_unskippable`デイリー報酬（短いバージョン）。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "admin-daily-chain-short-model": {
        "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"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "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"
          }
        }
      },
      "daily_chain_step_number": {
        "type": "integer",
        "example": 2,
        "description": "ステップ番号。",
        "nullable": false,
        "minimum": 1
      },
      "modify-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "quantity": {
            "type": "integer",
            "description": "該当SKUに設定されたデイリー報酬ステップの数量",
            "minimum": 1
          }
        },
        "required": [
          "sku",
          "quantity"
        ]
      },
      "create-daily-chain-step-model": {
        "type": "object",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-daily-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "items"
        ]
      },
      "create-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`calendar_hard`タイプのデイリー報酬。",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "create-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`rolling_skippable`タイプのデイリー報酬。",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "create-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`rolling_unskippable`タイプのデイリー報酬。",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "daily-chain-error-model": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          },
          "errorMessageExtended": {
            "type": [
              "object",
              "null"
            ]
          }
        }
      },
      "daily_chain_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "デイリー報酬ステップの一意識別子",
        "minimum": 1
      },
      "item_type": {
        "type": "string",
        "description": "アイテムのタイプ：`virtual_good`/`virtual_currency`/`bundle`/`unit`。"
      },
      "admin-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          "description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "quantity": {
            "type": "integer",
            "description": "アイテム数。",
            "minimum": 1,
            "example": 1
          }
        }
      },
      "admin-daily-chain-step-model": {
        "type": "object",
        "description": "デイリー報酬ステップ。",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/daily_chain_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-daily-chain-item-model"
            }
          }
        }
      },
      "admin-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "管理者からの応答に対するcalendar_hardデイリー報酬。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "管理者からの応答に対するrolling_skippableデイリー報酬。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "管理者からの応答に対する`rolling_unskippable`デイリー報酬。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-daily-chain-long-model": {
        "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"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "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"
          }
        }
      },
      "daily_chain_update_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "デイリー報酬ステップの一意識別子。更新時に指定することで、このステップにおけるユーザーの進捗を保持できます。",
        "minimum": 1
      },
      "modify-daily-chain-step-model": {
        "type": "object",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/daily_chain_update_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-daily-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "items"
        ]
      },
      "update-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`calendar_hard`タイプのデイリー報酬。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "update-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`rolling_skippable`タイプのデイリー報酬。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "update-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "`rolling_unskippable`タイプのデイリー報酬。",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "client-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "type": "string",
            "description": "アイテム名。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "アイテムの説明。"
          },
          "bundle_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "standard",
              "virtual_currency_package"
            ]
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "アイテム数。",
            "minimum": 1,
            "example": 1
          },
          "content": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/client-daily-chain-item-model"
            }
          }
        }
      },
      "client-daily-chain-step-model": {
        "type": "object",
        "description": "デイリー報酬ステップ。",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "status": {
            "type": "string",
            "example": "claimed",
            "enum": [
              "claimed",
              "claimable",
              "blocked",
              "claim_in_future"
            ],
            "description": "ステップの現在の受取状況を定義します。\n\n可能な値：\n- `claimed` — ステップの報酬はすでに受け取り済みです。\n- `claimable` — ステップの報酬は受け取り可能です。\n- `blocked` — ステップの報酬は受け取ることができません：\n  - 未認証のユーザーの場合：すべてのステップがブロックとなります。\n  - `calendar_hard`の場合：報酬が受け取られないまま、ステップの期間が終了になりました。\n  - `rolling_skippable`の場合：前のステップの報酬が受け取られるまで、ステップはロックされます。\n- `claim_in_future` — ステップの報酬はまだ受け取られておらず、期間は開始前にあります。"
          },
          "unlocked_date": {
            "type": "integer",
            "format": "int64",
            "description": "ステップが解除されるUnixタイムスタンプ（秒単位）。"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-daily-chain-item-model"
            }
          }
        }
      },
      "client-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "クライアントからの応答に対するcalendar_hardデイリー報酬。",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "デイリー報酬ID。"
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "デイリー報酬名。"
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "デイリー報酬説明。"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "クライアントからの応答に応じたrolling_skippableデイリー報酬。",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "デイリー報酬ID。"
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "デイリー報酬名。"
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "デイリー報酬説明。"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "クライアントからの応答に応じた`rolling_unskippable`デイリー報酬。",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "デイリー報酬ID。"
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "デイリー報酬名。"
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "デイリー報酬説明。"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-daily-chain-model": {
        "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"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "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"
          }
        }
      },
      "offer_chain_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "オファーチェーンの開始日。"
      },
      "offer_chain_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "オファーチェーンの終了日です。`null`も可能です。もし`date_end`が`null`の場合、オファーチェーンには期限が設定されません。"
      },
      "offer_chain_step_number": {
        "type": "integer",
        "example": 2,
        "description": "ステップ番号。",
        "nullable": false,
        "minimum": 1
      },
      "offer_chain_is_free": {
        "type": "boolean",
        "description": "オファーチェーンのステップが無料であるかどうかを示します：<ul><li><code>true</code>の場合、ステップは<a href=\"/ja/api/shop-builder/operation/claim-user-offer-chain-step-reward\">無料オファーチェーンステップを請求する</a>コールを使用して請求する必要があります。</li><li><code>false</code>の場合、<a href=\"/ja/api/shop-builder/operation/order-user-offer-chain-step-reward\">有料オファーチェーンステップの注文を作成する</a>コールを使用して購入する必要があります。</li></ul>"
      },
      "offer_chain_step_price_amount": {
        "type": "number",
        "example": 99.99,
        "description": "実際通貨でのステップ価格。"
      },
      "offer_chain_step_price_currency": {
        "type": "string",
        "example": "USD",
        "description": "商品価格通貨。[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) による3文字コード。"
      },
      "offer_chain_step_price": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/offer_chain_step_price_amount"
          },
          "currency": {
            "$ref": "#/components/schemas/offer_chain_step_price_currency"
          }
        },
        "required": [
          "amount",
          "currency"
        ]
      },
      "client-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "type": "string",
            "description": "アイテム名。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "アイテムの説明。"
          },
          "bundle_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "standard",
              "virtual_currency_package"
            ]
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "アイテム数。",
            "minimum": 1,
            "example": 1
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "content": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-item-model"
            }
          }
        }
      },
      "client-offer-chain-step-model": {
        "type": "object",
        "description": "オファーチェーンステップ。",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "is_claimed": {
            "type": "boolean",
            "example": false,
            "description": "ステップ報酬が請求されたか、購入されたかを示します。  "
          },
          "step_price": {
            "$ref": "#/components/schemas/offer_chain_step_price"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-item-model"
            }
          },
          "step_vp_rewards": {
            "type": [
              "array",
              "null"
            ],
            "description": "報酬として付与される、報酬システムからのバリューポイントの配列。",
            "items": {
              "type": "object",
              "properties": {
                "item_id": {
                  "$ref": "#/components/schemas/item_id"
                },
                "sku": {
                  "$ref": "#/components/schemas/value-point-sku"
                },
                "amount": {
                  "$ref": "#/components/schemas/value-point-amount"
                },
                "name": {
                  "$ref": "#/components/schemas/value-point-name"
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "is_clan": {
                  "$ref": "#/components/schemas/is_clan"
                }
              }
            }
          },
          "step_loyalty_rewards": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "First Loyalty Point",
                  "description": "ロイヤリティポイント名。"
                },
                "sku": {
                  "type": "string",
                  "example": "0c745ef0-4243-46e1-aa90-54dee07da622",
                  "description": "ロイヤルティポイントSKUです。"
                },
                "description": {
                  "type": "string",
                  "example": "First Loyalty Point Desc",
                  "description": "ロイヤルティポイントの説明。"
                },
                "image_url": {
                  "$ref": "#/components/schemas/image_url"
                },
                "amount": {
                  "type": "integer",
                  "example": 1,
                  "description": "ロイヤルティポイント数。"
                }
              }
            }
          }
        }
      },
      "offer_chain_reset_next_date": {
        "type": "integer",
        "description": "計算されたオファーチェーンが次回にリセットされる日時<a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">Unixタイムスタンプ形式</a>。<br><br>例えば、毎月のオファーチェーンのリセットがクアラルンプール時間（GMT+8）の2024年3月1日午前1時に開始される場合、次のリセットはクアラルンプール時間（GMT+8）の2024年4月1日午前1時に行われます。これは、GMT+0の2024年3月31日17時に相当し、Unixタイムスタンプ形式では`1711904400000`となります。<br><br>例：`1711904400000`"
      },
      "offer_chain_recurrent_schedule_client_side": {
        "type": [
          "object",
          "null"
        ],
        "description": "オファーチェーンのリセット期間。",
        "properties": {
          "interval_type": {
            "type": "string",
            "description": "オファーチェーンのリセット頻度。",
            "enum": [
              "weekly",
              "monthly",
              "hourly"
            ]
          },
          "reset_next_date": {
            "$ref": "#/components/schemas/offer_chain_reset_next_date"
          }
        }
      },
      "client-offer-chain-model": {
        "type": "object",
        "description": "オファーチェーン。",
        "properties": {
          "id": {
            "type": "integer",
            "example": 9,
            "description": "オファーチェーンID。"
          },
          "name": {
            "type": "string",
            "example": "Weekly quest",
            "description": "オファーチェーン名。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "example": "Major weekly quest",
            "description": "オファーチェーンの説明。"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-step-model"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_client_side"
          },
          "next_step_number": {
            "type": [
              "integer",
              "null"
            ],
            "description": "次回のオファーチェーンステップ番号。オファーチェーンが完了した場合は`null`。",
            "example": 1
          }
        }
      },
      "offer-chain-error-model": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          },
          "errorMessageExtended": {
            "type": [
              "object",
              "null"
            ]
          }
        }
      },
      "offer_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "一意のオファーチェーンID。"
      },
      "offer_chain_interval_type_weekly": {
        "type": "string",
        "description": "オファーチェーンのリセット頻度。",
        "enum": [
          "weekly"
        ]
      },
      "offer_chain_day_of_week": {
        "type": "integer",
        "description": "オファーチェーンがリセットされる曜日。`1`は月曜日、`7`は日曜日。",
        "minimum": 1,
        "maximum": 7
      },
      "offer_chain_time": {
        "type": "string",
        "description": "オファーチェーンがリセットされる、指定されたタイムゾーンでの時間（時間に丸められます）。<br><br>例えば、リセット時間がクアラルンプールタイムゾーン（GMT+8）の01:00に設定されている場合、`time`パラメータの値は`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])",
        "example": "01:00:00+08:00"
      },
      "offer_chain_displayable_reset_start_date": {
        "description": "オファーチェーンが最初にリセットされた日時。<br><br>例えば、クアラルンプール時間2024年3月1日午前1時に予定されている最初のリセットは、<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`",
        "type": "string",
        "format": "date-time"
      },
      "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日午前1時に開始される場合、次のリセットはクアラルンプール時間の2024年4月1日午前1時に行われます。これは、<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`",
        "type": "string",
        "format": "date-time"
      },
      "offer_chain_interval_type_monthly": {
        "type": "string",
        "description": "オファーチェーンのリセット頻度。",
        "enum": [
          "monthly"
        ]
      },
      "offer_chain_day_of_month": {
        "type": "integer",
        "description": "オファーチェーンがリセットされる月の日。指定された日よりも日数が少ない月の場合、リセットはその月の最終日に行われます。",
        "minimum": 1,
        "maximum": 31
      },
      "offer_chain_interval_type_hourly": {
        "type": "string",
        "description": "オファーチェーンのリセット頻度。",
        "enum": [
          "hourly"
        ]
      },
      "offer_chain_hours_interval": {
        "type": "integer",
        "description": "オファーチェーンがリセットされるまでの時間間隔。 <br><br> カウントダウンは<a href=\"https://developers.xsolla.com/ja/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時間ごとにリセットされます。",
        "minimum": 1,
        "maximum": 10000
      },
      "offer_chain_recurrent_schedule": {
        "description": "オファーチェーンの定期リセット期間。",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = 毎週",
            "description": "オファーチェーンの週次リセット。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/offer_chain_day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = 毎月",
            "description": "オファーチェーンの月次リセット。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/offer_chain_day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = 毎時間",
            "description": "オファーチェーンのリセットは、指定された時間の間隔で実行されます。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_hourly"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/offer_chain_hours_interval"
              }
            }
          },
          {
            "type": "null",
            "title": "null"
          }
        ]
      },
      "admin-offer-chain-short-model": {
        "type": "object",
        "description": "オファーチェーン。",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          }
        }
      },
      "offer_chain_recurrent_schedule_create_update": {
        "description": "オファーチェーンのリセット期間。",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = 毎週",
            "description": "オファーチェーンの週次リセット。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/offer_chain_day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_week"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = 毎月",
            "description": "オファーチェーンの月次リセット。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/offer_chain_day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_month"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = 毎時間",
            "description": "オファーチェーンのリセットは、指定された時間の間隔で実行されます。",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_hourly"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/offer_chain_hours_interval"
              }
            },
            "required": [
              "interval_type",
              "hours_interval"
            ]
          },
          {
            "type": "null",
            "title": "null"
          }
        ]
      },
      "modify-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "quantity": {
            "type": "integer",
            "description": "このチェーンステップの報酬アイテム数量。",
            "minimum": 1
          },
          "order": {
            "description": "オファーチェーンステップの報酬注文。",
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          }
        },
        "required": [
          "sku",
          "quantity"
        ]
      },
      "create-offer-chain-step-model": {
        "type": "object",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "is_free",
          "items"
        ]
      },
      "create-offer-chain-model": {
        "type": "object",
        "description": "オファーチェーン。",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_create_update"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/create-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          }
        },
        "required": [
          "name",
          "date_start",
          "steps",
          "is_enabled"
        ]
      },
      "offer_chain_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "チェーンステップのユニークID。",
        "minimum": 1
      },
      "admin-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "アイテム数。",
            "minimum": 1,
            "example": 1
          },
          "order": {
            "$ref": "#/components/schemas/order"
          }
        }
      },
      "admin-offer-chain-step-model": {
        "type": "object",
        "description": "オファーチェーンステップ。",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/offer_chain_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "step_price": {
            "$ref": "#/components/schemas/offer_chain_step_price"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-offer-chain-item-model"
            }
          }
        }
      },
      "admin-offer-chain-long-model": {
        "type": "object",
        "description": "オファーチェーン。",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          }
        }
      },
      "update_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "ユニークチェーンステップID。更新時にこれを指定することで、このステップに関するユーザーの進行状況を保持できます。",
        "minimum": 1
      },
      "modify-offer-chain-step-model": {
        "type": "object",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/update_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "is_free",
          "items"
        ]
      },
      "modify-offer-chain-model": {
        "type": "object",
        "description": "オファーチェーン。",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_create_update"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          }
        },
        "required": [
          "name",
          "date_start",
          "steps",
          "is_enabled"
        ]
      },
      "bundle_type": {
        "type": "string",
        "description": "バンドルタイプ。アイテムタイプがバンドルの場合に返されます。",
        "enum": [
          "standard",
          "virtual_currency_package",
          "partner_side_content"
        ]
      },
      "unit_type": {
        "type": "string",
        "example": "game",
        "description": "ユニットタイプ：`game`。"
      },
      "drm_name": {
        "type": "string",
        "example": "Steam",
        "description": "ゲームキーDRMの名称。"
      },
      "drm_sku": {
        "type": "string",
        "example": "steam",
        "description": "DRMユニークID。"
      },
      "Upsell-model": {
        "type": "object",
        "description": "アップセルタイプ。",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "fixed_list"
            ],
            "example": true
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "items": {
            "type": "array",
            "example": [
              "game_sku"
            ],
            "default": null,
            "description": "アイテムSKUの配列。",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "is_enabled",
          "type",
          "items"
        ]
      },
      "Upsell-model-not-fixed-list": {
        "type": "object",
        "description": "アップセルタイプ。",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "most_sellable",
              "only_promotions"
            ],
            "example": true
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "items": {
            "type": "array",
            "example": [
              null
            ],
            "default": null,
            "description": "アイテムSKUの空の配列",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "is_enabled",
          "type"
        ]
      },
      "Upsell-422-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable entity. The property `is_enabled` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        }
      },
      "Virtual-Items-Currency_admin-groups-response": {
        "type": "array",
        "example": [
          {
            "external_id": "horror",
            "name": {
              "en": "Horror"
            }
          }
        ],
        "default": [],
        "description": "アイテムが所属するグループ。",
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "type": "string",
              "example": "horror"
            },
            "name": {
              "type": "object",
              "description": "アイテム名。キーと値のペアを含める必要があり、\nキーは \"^[a-z]\" 書式のロケール{2}で、値は文字列です。",
              "example": {
                "en": "Horror",
                "de": "Horror"
              },
              "default": {
                "en": "Horror"
              },
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      },
      "Virtual-Items-Currency_client-attributes": {
        "type": "array",
        "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"
              }
            ]
          }
        },
        "default": [],
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "$ref": "#/components/schemas/admin-attribute-external_id"
            },
            "name": {
              "type": "object",
              "description": "属性名。",
              "example": "Genre",
              "additionalProperties": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "values": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "external_id": {
                    "$ref": "#/components/schemas/value-external_id"
                  },
                  "value": {
                    "type": "string",
                    "description": "属性値。",
                    "example": "Strategy"
                  }
                }
              }
            }
          }
        }
      },
      "client_virtual_prices_response": {
        "type": "array",
        "description": "仮想価格。",
        "items": {
          "type": "object",
          "description": "仮想価格。",
          "properties": {
            "amount": {
              "type": "integer",
              "example": 100,
              "description": "仮想通貨建てのアイテム価格。"
            },
            "amount_without_discount": {
              "type": "integer",
              "example": 200,
              "description": "割引適用前の仮想通貨建てのアイテム価格。仮想通貨の価格には割引が適用されないため、常に`amount`と等しくなります。"
            },
            "sku": {
              "type": "string",
              "example": "vc_gold",
              "description": "仮想通貨SKU。"
            },
            "is_default": {
              "type": "boolean",
              "example": true,
              "description": "仮想通貨でのデフォルト価格であるかどうか。"
            },
            "image_url": {
              "type": [
                "string",
                "null"
              ],
              "example": "http://image.png",
              "description": "仮想通貨の画像URL。"
            },
            "name": {
              "type": "string",
              "example": "Gold",
              "description": "仮想通貨名。"
            },
            "type": {
              "type": "string",
              "example": "virtual_currency",
              "description": "アイテムタイプ。仮想通貨の場合は`virtual_currency`になります。"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "example": "In-game currency used to purchase weapons and upgrades",
              "description": "仮想通貨の説明。"
            }
          }
        }
      },
      "item-periods-response": {
        "type": "array",
        "description": "アイテム販売期間。",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T10:00:00+03:00",
              "description": "指定されたアイテムの販売開始日。"
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "指定されたアイテムが販売できなくなる日付。`null`を指定することもできます。"
            }
          }
        }
      },
      "item-custom-attributes-response": {
        "type": "object",
        "description": "アイテムの属性と値を含むJSONオブジェクト。",
        "format": "json"
      },
      "Upsell_item": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "example": "big_rocket",
            "description": "一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。"
          },
          "name": {
            "type": "string",
            "example": "Big Rocket",
            "description": "アイテム名。"
          },
          "groups": {
            "$ref": "#/components/schemas/Virtual-Items-Currency_admin-groups-response"
          },
          "attributes": {
            "$ref": "#/components/schemas/Virtual-Items-Currency_client-attributes"
          },
          "type": {
            "type": "string",
            "example": "virtual_good",
            "description": "アイテムタイプ：`virtual_good`/`virtual_currency`/`bundle`。"
          },
          "description": {
            "type": "string",
            "example": "Big Rocket - description",
            "description": "アイテムの説明。"
          },
          "image_url": {
            "type": "string",
            "example": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
            "description": "画像URL。"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "price": {
            "type": [
              "object",
              "null"
            ],
            "description": "アイテム価格。",
            "properties": {
              "amount": {
                "type": "string",
                "example": "100.99",
                "description": "割引後のアイテム価格。"
              },
              "amount_without_discount": {
                "type": "string",
                "example": "100.99",
                "description": "アイテム価格。"
              },
              "currency": {
                "type": "string",
                "example": "USD",
                "description": "商品価格通貨。[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) による3文字コード。"
              }
            }
          },
          "virtual_prices": {
            "$ref": "#/components/schemas/client_virtual_prices_response"
          },
          "can_be_bought": {
            "$ref": "#/components/schemas/Can_be_bought"
          },
          "virtual_item_type": {
            "type": "string",
            "example": "non-consumable",
            "description": "仮想アイテムタイプ。\n\n指定可能な値：\n- `consumable` — 使用後にインベントリから消滅するアイテム（例：弾薬など）。\n- `non_consumable` — 期間の制限なくインベントリに残り続けるアイテム。\n- `non_renewing_subscription` — 制限された期間内に限り、サービスやコンテンツへのアクセス権を付与する期間限定アイテム。",
            "enum": [
              "consumable",
              "non_consumable",
              "non_renewing_subscription"
            ]
          },
          "promotions": {
            "$ref": "#/components/schemas/Catalog_item_promotions"
          },
          "limits": {
            "$ref": "#/components/schemas/Catalog_item_limits"
          },
          "periods": {
            "$ref": "#/components/schemas/item-periods-response"
          },
          "custom_attributes": {
            "$ref": "#/components/schemas/item-custom-attributes-response"
          },
          "vp_rewards": {
            "$ref": "#/components/schemas/client-item-value-point-reward"
          }
        }
      },
      "Upsell_item-list": {
        "type": "object",
        "properties": {
          "has_more": {
            "$ref": "#/components/schemas/Pagination_has-more"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Upsell_item"
            }
          }
        }
      },
      "error-response-base": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "HTTPレスポンスステータス。"
          },
          "errorCode": {
            "type": "integer",
            "description": "エラーコード。"
          },
          "errorMessage": {
            "type": "string",
            "description": "エラーの簡潔な説明。"
          },
          "transactionId": {
            "type": "string",
            "description": "リクエストID。この特定のリクエストまたは操作に関連するログエントリを追跡し、関連付けるために使用されるIDです。このIDは、トラブルシューティング、デバッグ、および監査の目的に役立ちます。"
          }
        }
      }
    },
    "examples": {
      "Promotions_200-admin-promotions": {
        "value": {
          "promotions": [
            {
              "id": 1,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": null
                }
              ],
              "name": {
                "en": "promotion_1"
              },
              "type": "item_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.diamonds_pack_1",
                    "name": {
                      "en": "Diamonds pack",
                      "ru": "Пак кристаллов"
                    },
                    "type": "bundle",
                    "bundle_type": "virtual_currency_package",
                    "content": []
                  },
                  "quantity": 1
                }
              ],
              "condition": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  }
                }
              ],
              "discount": null
            },
            {
              "id": 2,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": "2030-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_2"
              },
              "type": "item_discount",
              "is_enabled": false,
              "bonus": [],
              "condition": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  }
                }
              ],
              "discount": {
                "percent": "10.99"
              }
            },
            {
              "id": 3,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": "2030-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_3"
              },
              "type": "coupon_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 2
                }
              ],
              "condition": [
                {
                  "item": {
                    "external_id": "coupon_2",
                    "name": {
                      "en": "Coupon name",
                      "ru": "Название купона"
                    },
                    "is_enabled": true,
                    "redeem_total_limit": null,
                    "redeem_user_limit": null,
                    "redeem_code_limit": 1
                  }
                }
              ],
              "discount": null
            },
            {
              "id": 4,
              "promotion_periods": [
                {
                  "date_from": "2018-01-01T00:00:00+03:00",
                  "date_until": "2031-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_4"
              },
              "type": "promocode_bonus_discount",
              "is_enabled": false,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 2
                }
              ],
              "condition": [
                {
                  "item": {
                    "external_id": "coupon_3",
                    "name": {
                      "en": "Coupon name",
                      "ru": "Название купона"
                    },
                    "is_enabled": true,
                    "redeem_total_limit": null,
                    "redeem_user_limit": null,
                    "redeem_code_limit": 1
                  }
                }
              ],
              "discount": {
                "percent": "12.99"
              }
            },
            {
              "id": 5,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": null
                }
              ],
              "name": {
                "en": "promotion_5"
              },
              "type": "cart_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_4",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 1
                }
              ],
              "condition": null,
              "discount": null
            }
          ],
          "total_promotions_count": 5,
          "active_promotions_count": 3,
          "inactive_promotions_count": 2
        }
      },
      "422-activate-deactivate-promotion": {
        "value": {
          "statusCode": 422,
          "errorCode": 9505,
          "errorMessage": "[0401-9505]: Error was occurred while promotion was being updated",
          "transactionId": "da145238620011eb8e24fe6913ff226a"
        }
      },
      "Promotions_200-get-coupon-rewards": {
        "value": {
          "bonus": [
            {
              "item": {
                "sku": "com.xsolla.game_1",
                "name": {
                  "en": "Game name"
                },
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "name": "Game name",
                    "type": "game_key",
                    "is_free": false,
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  },
                  {
                    "sku": "game_key_02",
                    "name": "Game name",
                    "type": "game_key",
                    "drm_name": "Origin",
                    "drm_sku": "origin_key_02"
                  }
                ]
              },
              "quantity": 1
            },
            {
              "item": {
                "sku": "com.xsolla.game_2",
                "name": {
                  "en": "Game name"
                },
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "type": "game_key",
                    "name": "Game name",
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  }
                ]
              },
              "quantity": 2
            }
          ],
          "discount": {
            "percent": "10.00"
          },
          "is_selectable": true
        }
      },
      "Promotions_200-admin-coupons": {
        "value": {
          "items": [
            {
              "external_id": "coupon_44056_1",
              "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"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "quantity": 1
                },
                {
                  "sku": "com.xsolla.elven_shield_1",
                  "quantity": 2
                },
                {
                  "sku": "com.xsolla.elven_gloves_1",
                  "quantity": 2
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null
            },
            {
              "external_id": "summer2021",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "Coupon name",
                "de-DE": "Gutscheintitel"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.diamonds_1",
                  "quantity": 100
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": 100,
              "redeem_code_limit": 1,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              }
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "Promotions_200-coupon-code-list": {
        "value": {
          "codes": [
            {
              "code": "CODE001"
            },
            {
              "code": "CODE002"
            },
            {
              "code": "CODE003"
            },
            {
              "code": "CODE004"
            },
            {
              "code": "CODE005"
            }
          ],
          "total_count": 5
        }
      },
      "Promotions_200-get-promocode-rewards": {
        "value": {
          "bonus": [
            {
              "item": {
                "sku": "com.xsolla.game_1",
                "name": "Game name",
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "name": "Game name",
                    "type": "game_key",
                    "is_free": false,
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  },
                  {
                    "sku": "com.xsolla.game_key_02",
                    "name": "Game name",
                    "type": "game_key",
                    "drm_name": "Origin",
                    "drm_sku": "origin_key_02"
                  }
                ]
              },
              "quantity": 1
            },
            {
              "item": {
                "sku": "com.xsolla.game_2",
                "name": "Game name",
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "type": "game_key",
                    "name": "Game name",
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  }
                ]
              },
              "quantity": 2
            }
          ],
          "discount": {
            "percent": "10.00"
          },
          "is_selectable": true,
          "discounted_items": [
            {
              "sku": "com.xsolla.elven_sword_1",
              "discount": {
                "percent": "10.00"
              }
            }
          ]
        }
      },
      "Promotions_200-admin-promocodes": {
        "value": {
          "items": [
            {
              "external_id": "promocode_100_crystals",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "quantity": 1
                },
                {
                  "sku": "com.xsolla.elven_shield_1",
                  "quantity": 2
                },
                {
                  "sku": "com.xsolla.elven_gloves_1",
                  "quantity": 2
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null,
              "discount": null,
              "discounted_items": null
            },
            {
              "external_id": "summer2021",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "Coupon name",
                "de-DE": "Gutscheintitel"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.diamonds_1",
                  "quantity": 100
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": 100,
              "redeem_code_limit": null,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              },
              "discount": {
                "percent": "10.99"
              },
              "discounted_items": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "discount": {
                    "percent": "10.00"
                  }
                }
              ],
              "price_conditions": [
                {
                  "operator": "ge",
                  "value": "10.0000"
                },
                {
                  "operator": "le",
                  "value": "50.0000"
                }
              ],
              "excluded_promotions": [
                23,
                45
              ]
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "Promotions_200-admin-unique-catalog-offers": {
        "value": {
          "items": [
            {
              "external_id": "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"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "items": [
                "booster",
                "booster_mega"
              ],
              "is_enabled": true,
              "redeem_user_limit": 1,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null
            },
            {
              "external_id": "secret_store",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": null
                }
              ],
              "name": {
                "en-US": "Secret store",
                "ru-RU": "Тайный магазин"
              },
              "items": [
                "helmet",
                "armor",
                "sword"
              ],
              "is_enabled": true,
              "redeem_user_limit": 1,
              "redeem_total_limit": 100,
              "redeem_code_limit": 1,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              }
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "404-coupon-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 9802,
          "errorMessage": "[0401-9802]: Coupon not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "404-user-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 5008,
          "errorMessage": "[0401-5008]: Could not find User",
          "transactionId": "transaction id"
        }
      },
      "Promotions_422-invalid-coupon": {
        "value": {
          "statusCode": 422,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
        }
      },
      "code-limit": {
        "value": {
          "promotion_id": 1,
          "items": [
            {
              "code": "WINTER2023",
              "per_code": {
                "total": 10,
                "available": 7,
                "used": 2,
                "reserved": 1
              }
            },
            {
              "code": "SUMMER2023",
              "per_code": {
                "total": 5,
                "available": 0,
                "used": 3,
                "reserved": 2
              }
            }
          ],
          "total_items_count": 2,
          "has_more": false
        }
      },
      "401-complex-auth-header-not-found": {
        "value": {
          "statusCode": 401,
          "errorCode": 1501,
          "errorMessage": "[0401-1501]: Authorization failed: Authorization header not sent",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "401-complex-auth-incorrect-credentials": {
        "value": {
          "statusCode": 401,
          "errorCode": 1013,
          "errorMessage": "[0401-1013]: Token not found.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "422-user_external_id_invalid": {
        "value": {
          "statusCode": 404,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity",
          "transactionId": "transaction id",
          "errorMessageExtended": [
            {
              "property": "user_external_id",
              "message": "Must be at least 1 characters long"
            },
            {
              "property": "user_external_id",
              "message": "Does not match the regex pattern ^\\S+$"
            }
          ]
        }
      },
      "404-promotion-by-id-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 1101,
          "errorMessage": "[0401-1101]: Promotion not found",
          "transactionId": "transaction id"
        }
      },
      "422-promotion-without-user-limit": {
        "value": {
          "statusCode": 422,
          "errorCode": 4509,
          "errorMessage": "[0401-4509]: Promotion does not have configured user limits.",
          "transactionId": "transaction id"
        }
      },
      "422-promotion-out-of-range-available-user-limit": {
        "value": {
          "statusCode": 422,
          "errorCode": 4511,
          "errorMessage": "[0401-4511]: Available promotion limit is out of range.",
          "transactionId": "transaction id"
        }
      },
      "200-value-points-reward-chain_admin_get-value-point-list": {
        "value": {
          "items": [
            {
              "sku": "com.xsolla.reward_vp_1",
              "name": {
                "en": "Reward VP 1"
              },
              "type": "value_point",
              "is_enabled": true,
              "description": {
                "en": "Points for reward system"
              },
              "long_description": {
                "en": "Points given to users to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 1,
              "is_clan": false
            },
            {
              "sku": "com.xsolla.reward_vp_2",
              "name": {
                "en": "Reward VP 2"
              },
              "type": "value_point",
              "is_enabled": false,
              "description": {
                "en": "Value points for reward system."
              },
              "long_description": {
                "en": "Value points given to users to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 2,
              "is_clan": false
            },
            {
              "sku": "com.xsolla.clan_value_point_1",
              "name": {
                "en": "Clan Reward VP 1"
              },
              "is_enabled": true,
              "description": {
                "en": "Value points for clan reward system."
              },
              "long_description": {
                "en": "Value points given to clans to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 3,
              "is_clan": true
            }
          ]
        }
      },
      "422-property-sku-is-required": {
        "value": {
          "statusCode": 422,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity. The property `sku` is required",
          "transactionId": "da145238620011eb8e24fe6913ff226a"
        }
      },
      "200-value-points-reward-chain_admin_get-value-point": {
        "value": {
          "sku": "com.xsolla.reward_vp_1",
          "name": {
            "en": "Reward VP 1"
          },
          "type": "value_point",
          "is_enabled": true,
          "description": {
            "en": "Points for reward system"
          },
          "long_description": {
            "en": "Points given to users to get new rewards in a reward chain."
          },
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "media_list": [],
          "order": 1,
          "is_clan": false,
          "can_delete": false
        }
      },
      "200-value-points-rewards-list": {
        "value": {
          "items": [
            {
              "item_id": 14232,
              "sku": "com.xsolla.booster_1",
              "name": {
                "en": "Booster"
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "amount": 100
            },
            {
              "item_id": 14232,
              "sku": "com.xsolla.booster_mega",
              "name": {
                "en": "Mega Booster"
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "amount": 200
            }
          ]
        }
      },
      "200-client-get-reward-chains-list": {
        "value": {
          "has_more": false,
          "total_items_count": 1,
          "items": [
            {
              "reward_chain_id": 10,
              "name": "Weekly quest",
              "description": "Big weekly quest",
              "long_description": "You can get a lot of additional items just by shopping during the week",
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "order": 1,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2023-04-25T18:16:00+05:00",
              "value_point": {
                "sku": "com.xsolla.value_point_1",
                "name": "Value point",
                "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                "description": null,
                "long_description": null,
                "amount": 130
              },
              "clan_type": null,
              "top_contributors": [],
              "steps": [
                {
                  "step_id": 1,
                  "name": "Level 1",
                  "is_claimed": true,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 100
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    }
                  ]
                },
                {
                  "step_id": 2,
                  "name": "Level 2",
                  "is_claimed": false,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 200
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    }
                  ]
                }
              ],
              "recurrent_schedule": {
                "interval_type": "weekly",
                "reset_next_date": 1746057600
              },
              "popup_header": null,
              "popup_instruction": null,
              "popup_image_url": null
            },
            {
              "reward_chain_id": 12,
              "name": "Weekly clan quest",
              "description": "Major weekly clan quest.",
              "long_description": "You and your clan members can get additional items for shopping during a certain month.",
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "order": 2,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2023-10-15T18:16:00+05:00",
              "value_point": {
                "sku": "com.xsolla.clan_value_point_1",
                "name": "Clan Reward VP 1",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "description": "Value points for clan reward system.",
                "long_description": "Value points given to clans to get new rewards in a reward chain.",
                "amount": 80
              },
              "clan_type": "guild",
              "top_contributors": [
                {
                  "name": "Rabbit",
                  "contributed_amount": 100
                },
                {
                  "name": "Rocket",
                  "contributed_amount": 80
                },
                {
                  "name": "Rain",
                  "contributed_amount": 40
                }
              ],
              "steps": [
                {
                  "step_id": 1,
                  "name": "Level 1",
                  "is_claimed": true,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 100
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    }
                  ]
                },
                {
                  "step_id": 2,
                  "name": "Level 2",
                  "is_claimed": false,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 200
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    }
                  ]
                }
              ],
              "recurrent_schedule": {
                "interval_type": "monthly",
                "reset_next_date": 1746057600
              },
              "popup_header": {
                "en": "How to unlock rewards"
              },
              "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."
              },
              "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png"
            }
          ]
        }
      },
      "200-client-get-user-reward-chain-balance": {
        "summary": "Reward chain example",
        "value": {
          "sku": "com.xsolla.value_point_1",
          "name": "Value point",
          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
          "description": null,
          "long_description": null,
          "amount": 130,
          "is_clan": false
        }
      },
      "200-client-get-user-clan-reward-chain-balance": {
        "summary": "Clan reward chain example",
        "value": {
          "sku": "com.xsolla.clan_value_point_1",
          "name": "Clan Reward VP 1",
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "description": "Value points for clan reward system.",
          "long_description": "Value points given to clans to get new rewards in a reward chain.",
          "amount": 80,
          "is_clan": true
        }
      },
      "200-client-update-user-clan": {
        "value": {
          "reward": [
            {
              "sku": "com.xsolla.box_1",
              "name": "Super box",
              "type": "bundle",
              "description": "Super box with items",
              "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
              "quantity": 1,
              "bundle_type": "standard"
            },
            {
              "sku": "com.xsolla.potion_1",
              "name": "Mega potion",
              "type": "virtual_good",
              "description": "Mega potion",
              "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
              "quantity": 1
            }
          ]
        }
      },
      "200-reward-chain-list": {
        "value": {
          "has_more": true,
          "items": [
            {
              "name": {
                "en": "Reward chain"
              },
              "reward_chain_id": 1,
              "description": {
                "en": "Reward chain description"
              },
              "long_description": {
                "en": "Reward chain long description"
              },
              "is_enabled": true,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "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"
                }
              ],
              "value_point": {
                "sku": "com.xsolla.reward_vp_1",
                "name": {
                  "en": "Reward VP 1"
                },
                "type": "value_point",
                "is_enabled": true,
                "description": "Value points for standard reward system.",
                "long_description": "Value points given to users to get new rewards in a reward chain.",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "media_list": [],
                "order": 1,
                "is_clan": false
              },
              "recurrent_schedule": null,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "ork",
                  "type": "string",
                  "can_be_missing": false
                }
              ],
              "is_always_visible": true,
              "is_reset_after_end": true
            },
            {
              "name": {
                "en": "Clan reward chain"
              },
              "reward_chain_id": 2,
              "description": {
                "en": "Clan reward chain description."
              },
              "long_description": {
                "en": "Clan reward chain long description."
              },
              "is_enabled": true,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "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"
                }
              ],
              "value_point": {
                "sku": "com.xsolla.clan_value_point_1",
                "name": {
                  "en": "Clan Reward VP 1"
                },
                "is_enabled": true,
                "description": "Value points for clan reward system.",
                "long_description": "Value points given to clans to get new rewards in a reward chain.",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "media_list": [],
                "order": 1,
                "is_clan": true
              },
              "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"
              },
              "popup_header": {
                "en": "How to unlock rewards"
              },
              "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."
              },
              "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "clan_type": "guild"
            }
          ]
        }
      },
      "200-reward-chain": {
        "summary": "Reward chain example",
        "value": {
          "reward_chain_id": 1,
          "name": {
            "en": "Reward chain"
          },
          "description": {
            "en": "Reward chain description"
          },
          "long_description": {
            "en": "Reward chain long description"
          },
          "is_enabled": true,
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "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"
            }
          ],
          "value_point": {
            "sku": "com.xsolla.reward_vp_1",
            "name": {
              "en": "Reward VP 1"
            },
            "type": "value_point",
            "is_enabled": true,
            "description": {
              "en": "Value points for reward system."
            },
            "long_description": {
              "en": "Value points given to users to get new rewards in a reward chain."
            },
            "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
            "media_list": [],
            "order": 1,
            "is_clan": false
          },
          "steps": [
            {
              "name": {
                "en": "First step of the reward chain"
              },
              "step_id": 1,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_1",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_2",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 10
              }
            },
            {
              "name": {
                "en": "Second step of the reward chain"
              },
              "step_id": 2,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_3",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_4",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 15
              }
            }
          ],
          "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"
          },
          "attribute_conditions": [
            {
              "attribute": "race",
              "operator": "eq",
              "value": "ork",
              "type": "string",
              "can_be_missing": false
            }
          ],
          "is_always_visible": true,
          "is_reset_after_end": true
        }
      },
      "200-clan-reward-chain": {
        "summary": "Clan reward chain example",
        "value": {
          "reward_chain_id": 1,
          "name": {
            "en": "Clan reward chain"
          },
          "description": {
            "en": "Clan reward chain description."
          },
          "long_description": {
            "en": "Clan reward chain long description."
          },
          "is_enabled": true,
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "order": 1,
          "periods": [
            {
              "date_from": "2020-04-15T18:16:00+05:00",
              "date_until": "2021-04-15T18:16:00+05:00"
            }
          ],
          "value_point": {
            "sku": "com.xsolla.clan_value_point_1",
            "name": {
              "en": "Clan Reward VP 1"
            },
            "is_enabled": true,
            "description": {
              "en": "Value points for clan reward system."
            },
            "long_description": {
              "en": "Value points given to clans to get new rewards in a certain reward chain."
            },
            "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
            "media_list": [],
            "order": 1,
            "is_clan": true
          },
          "steps": [
            {
              "name": {
                "en": "First step of the reward chain"
              },
              "step_id": 1,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_1",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_2",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 10
              }
            },
            {
              "name": {
                "en": "Second step of the reward chain"
              },
              "step_id": 2,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_3",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_4",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 15
              }
            }
          ],
          "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"
          },
          "popup_header": {
            "en": "How to unlock rewards"
          },
          "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."
          },
          "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "clan_type": "guild"
        }
      },
      "200-admin-daily-chain-list": {
        "summary": "Daily reward list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 1,
              "name": {
                "en": "Daily reward",
                "ru": "Ежедневная награда"
              },
              "description": {
                "en": "Daily reward short description"
              },
              "order": 1,
              "number_of_steps": 10,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": false,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 2,
              "name": {
                "en": "Monthly daily reward",
                "ru": "Ежедневные награды в цепочке на месяц"
              },
              "description": {
                "en": "Monthly daily reward short description"
              },
              "order": 2,
              "number_of_steps": 13,
              "date_start": "2025-04-15T00:00:00+08:00",
              "date_end": "2025-04-28T15:00:00+08:00",
              "is_enabled": false,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 3,
              "name": {
                "en": "Login reward"
              },
              "description": {
                "en": "Login reward short description"
              },
              "order": 3,
              "number_of_steps": 7,
              "date_start": "2023-05-01T18:16:00+05:00",
              "date_end": "2025-05-31T18:16:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "rolling_skippable"
            },
            {
              "id": 4,
              "name": {
                "en": "Daily reward",
                "ru": "Ежедневная награда"
              },
              "description": {
                "en": "Daily reward short description"
              },
              "order": 4,
              "number_of_steps": 10,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 5,
              "name": {
                "en": "Unskippable login reward"
              },
              "description": {
                "en": "Unskippable login reward short description"
              },
              "order": 3,
              "number_of_steps": 7,
              "date_start": "2025-11-01T10:00:00+05:00",
              "date_end": "2025-11-30T10:00:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "rolling_unskippable"
            }
          ]
        }
      },
      "422-admin-daily-chain-error-too-many-steps": {
        "summary": "Too many steps",
        "description": "Daily reward steps max amount limit of 30 items is exceeded. Try specifying less steps.",
        "value": {
          "statusCode": 422,
          "errorCode": 6203,
          "errorMessage": "[0401-6203]: Chain step count exceeds the allowed limit",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "step_count": 31,
            "max_steps": 30
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-steps-order": {
        "summary": "Incorrect steps order",
        "description": "Daily reward steps numbers sequence is incorrect. Correct step numbers should be sequential without any gaps or duplicates.",
        "value": {
          "statusCode": 422,
          "errorCode": 6210,
          "errorMessage": "[0401-6210]: Chain step numbers are invalid",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "incorrect_step_numbers": {
              "duplicates": [
                2,
                7
              ],
              "out_of_range": [
                7,
                8
              ],
              "missing": [
                3,
                4,
                5,
                6
              ]
            }
          }
        }
      },
      "422-admin-daily-chain-error-item-limit-exceeded": {
        "summary": "Item limit exceeded",
        "description": "Daily reward step item count exceeds the allowed limit for some steps. Currently only 1 item per step is allowed.",
        "value": {
          "statusCode": 422,
          "errorCode": 6208,
          "errorMessage": "[0401-6208]: Chain step item count exceeds the allowed limit for some steps",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "max_items": 1,
            "steps_exceeded_limits": [
              {
                "step_number": 1,
                "items_count": 2
              },
              {
                "step_number": 4,
                "items_count": 3
              }
            ]
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-items": {
        "summary": "Incorrect step 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.",
        "value": {
          "statusCode": 422,
          "errorCode": 6211,
          "errorMessage": "[0401-6211]: Chain steps items are not allowed or not found",
          "transactionId": "x-x-xX-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "invalid_items": {
              "not_found": [
                "vg_deleted_item_1",
                "vg_deleted_item_2",
                "not_existing_sku_404_1",
                "not_existing_sku_404_2"
              ],
              "disabled": [
                "vg_disabled_item_1",
                "vg_disabled_item_2",
                "vc_disabled_1"
              ],
              "invalid_item_type": {
                "allowed_item_type_list": [
                  "virtual_good",
                  "bundle"
                ],
                "sku_map": {
                  "vc_enabled_shown_in_store_1": "virtual_currency",
                  "vc_disabled_1": "virtual_currency",
                  "unit_enabled_shown_in_store_1": "unit",
                  "gk_steam_enabled_shown_in_store_1": "game_key"
                }
              }
            }
          }
        }
      },
      "422-admin-daily-chain-error-invalid-dates": {
        "summary": "Invalid date format",
        "description": "Please, ensure dates format is valid.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_format_dates": {
              "date_start": "2023-04-15 17:16:00Z",
              "date_end": "2025-04-25 19:16:00Z"
            }
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-period": {
        "summary": "Incorrect period of a daily reward",
        "description": "Please ensure start date is earlier than end date.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_periods": [
              {
                "start": "2025-04-25T18:16:00+05:00",
                "end": "2023-04-15T18:16:00+05:00"
              }
            ]
          }
        }
      },
      "200-admin-daily-chain": {
        "summary": "Daily reward example",
        "value": {
          "id": 3,
          "name": {
            "en": "Daily reward",
            "ru": "Ежедневная награда"
          },
          "description": {
            "en": "Daily reward short description"
          },
          "date_start": "2023-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "is_recurrent": false,
          "number_of_steps": 3,
          "steps": [
            {
              "step_id": 7,
              "step_number": 1,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 1
                },
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": {
                    "en": "Healing potion",
                    "ru": "Зелье лечения"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Heal 10% of your health",
                    "ru": "Лечит 10% здоровья"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 2
                }
              ]
            },
            {
              "step_id": 6,
              "step_number": 2,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 5
                }
              ]
            },
            {
              "step_id": 5,
              "step_number": 3,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 2
                }
              ]
            }
          ],
          "is_enabled": true,
          "type": "calendar_hard"
        }
      },
      "404-daily-chain-not-found": {
        "summary": "Daily reward is not found",
        "description": "Daily reward was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6201,
          "errorMessage": "[0401-6201]: Chain not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 4
          }
        }
      },
      "422-admin-daily-chain-error-invalid-chain-step-ids": {
        "summary": "Daily reward step IDs not found",
        "description": "Some of step IDs was not found. Please, double check if specified daily reward step IDs actually exist.",
        "value": {
          "statusCode": 404,
          "errorCode": 6206,
          "errorMessage": "[0401-6206]: Chain step IDs not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "chain_step_id_list": [
              404000
            ]
          }
        }
      },
      "422-admin-daily-chain-error-chain-id-mismatch": {
        "summary": "Daily reward ID mismatch",
        "description": "Daily reward ID specified in the body does not match the URL.",
        "value": {
          "statusCode": 422,
          "errorCode": 6205,
          "errorMessage": "[0401-6205]: Chain ID mismatch. Please, check the chain ID in your request body and URL",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "url_chain_id": 1,
            "body_chain_id": 2
          }
        }
      },
      "422-admin-daily-chain-error-duplicate-step-ids": {
        "summary": "Duplicate daily reward step IDs",
        "description": "Please, ensure that daily reward step IDs are unique in the request body.",
        "value": {
          "statusCode": 422,
          "errorCode": 6207,
          "errorMessage": "[0401-6207]: Duplicate chain step IDs detected in the request body",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_step_id_list": [
              8,
              9,
              10
            ],
            "chain_id": 3
          }
        }
      },
      "422-admin-daily-chain-error-activated": {
        "summary": "Active daily reward cannot be updated",
        "description": "Active daily reward have to be deactivated before being updated.",
        "value": {
          "statusCode": 422,
          "errorCode": 6209,
          "errorMessage": "[0401-6209]: Active chain cannot be updated. Please deactivate it first",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 2
          }
        }
      },
      "200-client-daily-chain-list": {
        "summary": "User's daily reward list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 101,
              "name": "Active daily reward",
              "description": null,
              "date_start": "2025-04-01T18:16:00+05:00",
              "date_end": "2025-04-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claimed",
                  "unlocked_date": 1711978560
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 2
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 102,
              "name": "Active daily reward 2",
              "description": null,
              "date_start": "2025-05-01T18:16:00+05:00",
              "date_end": "2025-05-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1714560960
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1714647360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 103,
              "name": "Active daily reward 3",
              "description": null,
              "date_start": "2025-04-01T18:16:00+05:00",
              "date_end": "2025-04-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1711978560
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "blocked",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "blocked",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 104,
              "name": "Active daily rolling reward",
              "description": null,
              "date_start": "2025-04-01T10:00:00+05:00",
              "date_end": "2025-04-28T10:00:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 1001,
                      "sku": "item_one",
                      "name": "Item One",
                      "type": "virtual_good",
                      "description": "Item one description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "status": "claimed",
                  "unlocked_date": -1
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 1002,
                      "sku": "item_two",
                      "name": "Item Two",
                      "type": "virtual_good",
                      "description": "Item two description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 1003,
                      "sku": "item_three",
                      "name": "Item Three",
                      "type": "virtual_good",
                      "description": "Item three description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "rolling_skippable"
            }
          ]
        }
      },
      "200-client-daily-chain": {
        "summary": "User's daily reward example",
        "value": {
          "id": 101,
          "name": "Active daily reward",
          "description": "Active daily reward description",
          "date_start": "2025-04-01T18:16:00+05:00",
          "date_end": "2025-04-03T18:16:00+05:00",
          "order": 1,
          "steps": [
            {
              "step_number": 1,
              "items": [
                {
                  "item_id": 10001,
                  "sku": "bundle_with_items",
                  "name": "Bundle with awesome stuff!",
                  "type": "bundle",
                  "description": "Many stuff",
                  "image_url": "https://picture.bundle-with-many-stuff.png",
                  "bundle_type": "standard",
                  "is_free": false,
                  "content": [
                    {
                      "item_id": 1,
                      "sku": "d0df11c5-f7c4-4907-9ae1-7dd40cecab05",
                      "name": "virtual_good_one",
                      "type": "virtual_good",
                      "description": "Virtual good one",
                      "image_url": "https://picture.virtual-good-picture.png",
                      "is_free": false,
                      "quantity": 1
                    },
                    {
                      "item_id": 2,
                      "sku": "coins",
                      "name": "Gold Coins",
                      "type": "virtual_currency",
                      "description": "Gold Coins",
                      "image_url": "https://picture.gold_coins.png",
                      "is_free": false,
                      "quantity": 100
                    }
                  ],
                  "quantity": 1
                }
              ],
              "status": "blocked",
              "unlocked_date": 1711978560
            },
            {
              "step_number": 2,
              "items": [
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": "Healing potion",
                  "type": "virtual_good",
                  "description": "Heal 10% of your health",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 1
                }
              ],
              "status": "claimed",
              "unlocked_date": 1712064960
            },
            {
              "step_number": 3,
              "items": [
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": "Healing potion",
                  "type": "virtual_good",
                  "description": "Heal 10% of your health",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 2
                }
              ],
              "status": "claimable",
              "unlocked_date": 1712151360
            },
            {
              "step_number": 4,
              "items": [
                {
                  "item_id": 9011,
                  "sku": "free_item",
                  "name": "Free item",
                  "type": "virtual_good",
                  "description": "store_item_0_lost_telescope_2_short_description",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 1
                }
              ],
              "status": "claim_in_future",
              "unlocked_date": 1712237760
            }
          ],
          "type": "calendar_hard"
        }
      },
      "404-daily-chain-step-not-found": {
        "summary": "Daily reward step not found",
        "description": "Daily reward step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6304,
          "errorMessage": "[0401-6304]: Daily Chain Step not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 100,
            "step_number": 1
          }
        }
      },
      "422-daily-chain-claim-error-invalid-step": {
        "summary": "Can't claim step reward",
        "description": "Ensure the user has not previously claimed the reward and that the correct step in the daily reward is selected for claiming.",
        "value": {
          "statusCode": 422,
          "errorCode": 6405,
          "errorMessage": "[0401-6405]: This step is not available to be claimed by the user.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 1,
            "step_number": 1
          }
        }
      },
      "200-client-offer-chain-list": {
        "summary": "User's offer chain list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 101,
              "name": "Active offer chain",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 99.99,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 15,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 2,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 2,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 199.98,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 30,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            },
            {
              "id": 102,
              "name": "Active offer chain 2",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                },
                {
                  "step_number": 2,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 45,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            },
            {
              "id": 103,
              "name": "Active offer chain 3",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                },
                {
                  "step_number": 2,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 299.97,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 45,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            }
          ]
        }
      },
      "200-client-offer-chain": {
        "summary": "User's offer chain example",
        "value": {
          "id": 4,
          "name": "Offer chain with bundles",
          "description": null,
          "date_start": "2010-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "recurrent_schedule": null,
          "steps": [
            {
              "step_number": 1,
              "is_free": false,
              "items": [
                {
                  "item_id": 7008,
                  "sku": "bundle_with_many_items",
                  "name": "Bundle with many awesome stuff!",
                  "type": "bundle",
                  "description": "Many stuff",
                  "image_url": "https://picture.bundle-with-many-stuff.png",
                  "bundle_type": "standard",
                  "is_free": false,
                  "content": [
                    {
                      "item_id": 1,
                      "sku": "d0df11c5-f7c4-4907-9ae1-7dd40cecab05",
                      "name": "Virtual Good Bundle",
                      "type": "virtual_good",
                      "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,
                      "quantity": 1
                    },
                    {
                      "item_id": 7009,
                      "sku": "vg-in-bundle-big-rocket",
                      "name": "Big Rocket",
                      "type": "virtual_good",
                      "description": "Big Rocket - short description",
                      "image_url": "https://picture.bigrocket.png",
                      "is_free": false,
                      "quantity": 1
                    },
                    {
                      "item_id": 7010,
                      "sku": "vc-in-bundle-gold-coins",
                      "name": "Gold Coins",
                      "type": "virtual_currency",
                      "description": "Gold Coins - short description",
                      "image_url": "https://picture.gold_coins.png",
                      "is_free": true,
                      "quantity": 100
                    },
                    {
                      "item_id": 7011,
                      "sku": "digital-content-drm-in-bundle-awesome-game",
                      "name": "Some Game",
                      "type": "virtual_good",
                      "description": "Some Game - short description",
                      "image_url": "https://picture.some_game.png",
                      "is_free": true,
                      "quantity": 1
                    },
                    {
                      "item_id": 7012,
                      "sku": "bundle-in-bundle-another-bundle",
                      "name": "Some Bundle in Bundle",
                      "type": "bundle",
                      "description": "Bundle - short description",
                      "image_url": "https://picture.bundle-picture.png",
                      "bundle_type": "standard",
                      "is_free": true,
                      "content": [
                        {
                          "item_id": 7010,
                          "sku": "vc-in-bundle-gold-coins",
                          "name": "Gold Coins",
                          "type": "virtual_currency",
                          "description": "Gold Coins - short description",
                          "image_url": "https://picture.gold_coins.png",
                          "is_free": true,
                          "quantity": 1
                        }
                      ],
                      "quantity": 1
                    },
                    {
                      "item_id": 7013,
                      "sku": "lootbox-in-bundle-awesome-game",
                      "name": "Some Lootbox",
                      "type": "lootbox",
                      "description": "Lootbox in bundle - short description",
                      "image_url": "https://picture.lootbox-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "quantity": 5,
                  "order": 0
                }
              ],
              "is_claimed": false,
              "step_price": {
                "amount": 499.95,
                "currency": "USD"
              },
              "step_vp_rewards": null
            },
            {
              "step_number": 2,
              "is_free": true,
              "items": [
                {
                  "item_id": 7007,
                  "sku": "bundle-empty",
                  "name": "Empty bundle",
                  "type": "bundle",
                  "description": "No",
                  "image_url": "https://picture.bundle-no-items.png",
                  "bundle_type": "standard",
                  "is_free": true,
                  "content": [],
                  "quantity": 10,
                  "order": 0
                }
              ],
              "is_claimed": false,
              "step_price": null,
              "step_vp_rewards": null
            }
          ],
          "next_step_number": 1
        }
      },
      "404-offer-chain-not-found": {
        "summary": "Chain not found",
        "description": "Offer chain step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6201,
          "errorMessage": "[0401-6201]: Chain not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 4
          }
        }
      },
      "404-offer-chain-step-not-found": {
        "summary": "Chain step not found",
        "description": "Offer chain step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6304,
          "errorMessage": "[0401-6304]: Offer Chain Step not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 100,
            "step_number": 1
          }
        }
      },
      "422-offer-chain-claim-error-invalid-step": {
        "summary": "Cannot claim step reward",
        "description": "The user must claim all previous steps, and the request must use a valid call – <a href=\"/ja/api/shop-builder/operation/order-user-offer-chain-step-reward\">Create order for paid offer chain step</a>, <a href=\"/ja/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>",
        "value": {
          "statusCode": 422,
          "errorCode": 6306,
          "errorMessage": "[0401-6306]: This step is not valid to claim by user.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 1,
            "step_number": 1
          }
        }
      },
      "200-admin-offer-chain-list": {
        "summary": "Offer chain list example",
        "value": {
          "has_more": false,
          "items": [
            {
              "id": 1,
              "name": {
                "en": "New personalized default offer chain",
                "ru": "Новая персонализированная цепочка предложений по умолчанию",
                "de": "Neue personalisierte Standard-Angebotskette",
                "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                "it": "Nuova catena di offerte personalizzata predefinita"
              },
              "description": {
                "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                "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"
              },
              "order": 1,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "recurrent_schedule": null,
              "is_always_visible": false
            },
            {
              "id": 2,
              "name": {
                "en": "New personalized offer chain",
                "ru": "Новая персонализированная цепочка предложений",
                "de": "Neue personalisierte Angebotskette",
                "fr": "Nouvelle chaîne d'offres personnalisée",
                "it": "Nuova catena di offerte personalizzata"
              },
              "description": {
                "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",
                "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                "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",
                "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"
              },
              "order": 2,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "recurrent_schedule": null,
              "is_always_visible": false,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "elf",
                  "type": "string",
                  "can_be_missing": false
                },
                {
                  "attribute": "level",
                  "operator": "ge",
                  "value": "10",
                  "type": "number",
                  "can_be_missing": false
                },
                {
                  "attribute": "10_level_up_date",
                  "operator": "le",
                  "value": "2026-01-01T00:00:00",
                  "type": "date",
                  "can_be_missing": false
                }
              ]
            },
            {
              "id": 4,
              "name": {
                "en": "Weekly offer chain",
                "ru": "Еженедельная цепочка предложений",
                "de": "Wöchentliche Angebotskette",
                "fr": "Chaîne d'offres hebdomadaire",
                "it": "Catena di offerte settimanale"
              },
              "description": {
                "en": "Offer chain that resets weekly on Wednesdays at 07:00 GMT+3",
                "ru": "Цепочка предложений, которая сбрасывается еженедельно по средам в 07:00 GMT+3",
                "de": "Angebotskette, die sich wöchentlich mittwochs um 07:00 Uhr GMT+3 zurücksetzt",
                "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"
              },
              "order": 3,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": false,
              "recurrent_schedule": {
                "interval_type": "weekly",
                "day_of_week": 3,
                "time": "07:00:00+03:00",
                "displayable_reset_start_date": "2018-12-05T07:00:00+03:00",
                "displayable_reset_next_date": "2018-12-05T07:00:00+03:00",
                "reset_next_date": 1543982400
              },
              "is_always_visible": true
            },
            {
              "id": 5,
              "name": {
                "en": "Monthly offer chain",
                "ru": "Ежемесячная цепочка предложений",
                "de": "Monatliche Angebotskette",
                "fr": "Chaîne d'offres mensuelle",
                "it": "Catena di offerte mensile"
              },
              "description": {
                "en": "Offer chain that resets monthly on the 28th at 15:00 GMT+8",
                "ru": "Цепочка предложений, которая сбрасывается ежемесячно 28-го числа в 15:00 GMT+8",
                "de": "Angebotskette, die sich monatlich am 28. um 15:00 Uhr GMT+8 zurücksetzt",
                "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"
              },
              "order": 4,
              "date_start": "2025-04-15T00:00:00+08:00",
              "date_end": "2025-08-28T15:00:00+08:00",
              "is_enabled": true,
              "recurrent_schedule": {
                "interval_type": "monthly",
                "day_of_month": 28,
                "time": "15:00:00+08:00",
                "displayable_reset_start_date": "2025-05-28T15:00:00+08:00",
                "displayable_reset_next_date": "2025-05-28T15:00:00+08:00",
                "reset_next_date": 1748415600
              },
              "is_always_visible": true
            }
          ]
        }
      },
      "422-admin-offer-chain-error-too-many-steps": {
        "summary": "Too many steps",
        "description": "The number of offer chain steps exceeds the allowed limit of 30. Try specifying fewer steps.",
        "value": {
          "statusCode": 422,
          "errorCode": 6203,
          "errorMessage": "[0401-6203]: Chain step count exceeds the allowed limit",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "step_count": 31,
            "max_steps": 30
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-steps-order": {
        "summary": "Invalid steps order",
        "description": "The sequence of offer chain step numbers is incorrect. Step numbers must be sequential, without gaps or duplicates.",
        "value": {
          "statusCode": 422,
          "errorCode": 6210,
          "errorMessage": "[0401-6210]: Chain step numbers are invalid",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "incorrect_step_numbers": {
              "duplicates": [
                2,
                7
              ],
              "out_of_range": [
                7,
                8
              ],
              "missing": [
                3,
                4,
                5,
                6
              ]
            }
          }
        }
      },
      "422-admin-offer-chain-error-item-limit-exceeded": {
        "summary": "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.",
        "value": {
          "statusCode": 422,
          "errorCode": 6208,
          "errorMessage": "[0401-6208]: Chain step item count exceeds the allowed limit for some steps",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "max_items": 1,
            "steps_exceeded_limits": [
              {
                "step_number": 1,
                "items_count": 2
              },
              {
                "step_number": 4,
                "items_count": 3
              }
            ]
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-items": {
        "summary": "Invalid step 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.",
        "value": {
          "statusCode": 422,
          "errorCode": 6211,
          "errorMessage": "[0401-6211]: Chain steps items are not allowed or not found",
          "transactionId": "x-x-xX-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "invalid_items": {
              "not_found": [
                "vg_deleted_item_1",
                "vg_deleted_item_2",
                "not_existing_sku_404_1",
                "not_existing_sku_404_2"
              ],
              "disabled": [
                "vg_disabled_item_1",
                "vg_disabled_item_2",
                "vc_disabled_1"
              ],
              "invalid_item_type": {
                "allowed_item_type_list": [
                  "virtual_good",
                  "bundle"
                ],
                "sku_map": {
                  "vc_enabled_shown_in_store_1": "virtual_currency",
                  "vc_disabled_1": "virtual_currency",
                  "unit_enabled_shown_in_store_1": "unit",
                  "gk_steam_enabled_shown_in_store_1": "game_key"
                }
              }
            }
          }
        }
      },
      "422-admin-offer-chain-error-invalid-dates": {
        "summary": "Invalid date format",
        "description": "The date format must be valid. Use <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_format_dates": {
              "date_start": "2023-04-15 17:16:00Z",
              "date_end": "2025-04-25 19:16:00Z"
            }
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-period": {
        "summary": "Invalid chain period",
        "description": "The start date must be earlier than the end date.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_periods": [
              {
                "start": "2025-04-25T18:16:00+05:00",
                "end": "2023-04-15T18:16:00+05:00"
              }
            ]
          }
        }
      },
      "200-admin-offer-chain": {
        "summary": "Offer chain example",
        "value": {
          "id": 3,
          "name": {
            "en": "Offer chain",
            "ru": "Цепочка",
            "de": "Angebotskette",
            "fr": "Chaîne d'offres",
            "it": "Catena di offerte"
          },
          "description": {
            "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",
            "ru": "Персонализированная цепочка предложений - для эльфов 10 уровня и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
            "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",
            "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"
          },
          "date_start": "2023-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "recurrent_schedule": null,
          "steps": [
            {
              "step_id": 7,
              "step_number": 1,
              "is_free": false,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture.vg.sku-telescope.png",
                  "quantity": 1,
                  "order": 1
                },
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": {
                    "en": "Healing potion",
                    "ru": "Зелье лечения",
                    "de": "Heiltrank",
                    "fr": "Potion de soin",
                    "it": "Pozione curativa"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Heal 10% of your health",
                    "ru": "Лечит 10% здоровья",
                    "de": "Heilt 10% deiner Gesundheit",
                    "fr": "Soigne 10% de votre santé",
                    "it": "Cura il 10% della tua salute"
                  },
                  "image_url": "https://cdn.picture/vg-sku-health_potion.png",
                  "quantity": 2,
                  "order": 0
                }
              ]
            },
            {
              "step_id": 6,
              "step_number": 2,
              "is_free": false,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture/vg-sku-telescope.png",
                  "quantity": 5,
                  "order": 0
                }
              ]
            },
            {
              "step_id": 5,
              "step_number": 3,
              "is_free": true,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture/vg-sku-telescope.png",
                  "quantity": 2,
                  "order": 0
                }
              ]
            }
          ],
          "is_enabled": true,
          "is_always_visible": false,
          "attribute_conditions": [
            {
              "attribute": "race",
              "operator": "eq",
              "value": "elf",
              "type": "string",
              "can_be_missing": false
            },
            {
              "attribute": "level",
              "operator": "ge",
              "value": "10",
              "type": "number",
              "can_be_missing": false
            },
            {
              "attribute": "10_level_up_date",
              "operator": "le",
              "value": "2026-01-01T00:00:00",
              "type": "date",
              "can_be_missing": false
            }
          ]
        }
      },
      "422-admin-offer-chain-error-invalid-chain-step-ids": {
        "summary": "Chain step IDs not found",
        "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=\"/ja/api/shop-builder/operation/order-user-offer-chain-step-reward#tag/offer-chain-admin/operation/admin-get-offer-chain\">Get offer chain</a> call.",
        "value": {
          "statusCode": 404,
          "errorCode": 6206,
          "errorMessage": "[0401-6206]: Chain step IDs not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "chain_step_id_list": [
              404000
            ]
          }
        }
      },
      "422-admin-offer-chain-error-chain-id-mismatch": {
        "summary": "Chain ID mismatch",
        "description": "Offer chain ID in the request body does not match the ID in the URL.",
        "value": {
          "statusCode": 422,
          "errorCode": 6205,
          "errorMessage": "[0401-6205]: Chain ID mismatch. Please, check the chain ID in your request body and URL",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "url_chain_id": 1,
            "body_chain_id": 2
          }
        }
      },
      "422-admin-offer-chain-error-duplicate-step-ids": {
        "summary": "Duplicate chain step IDs",
        "description": "Chain step IDs must be unique in the request body.",
        "value": {
          "statusCode": 422,
          "errorCode": 6207,
          "errorMessage": "[0401-6207]: Duplicate chain step IDs detected in the request body",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_step_id_list": [
              8,
              9,
              10
            ],
            "chain_id": 3
          }
        }
      },
      "422-admin-offer-chain-error-activated": {
        "summary": "Active offer chain cannot be updated",
        "description": "Active offer chain has to be deactivated before being updated. To do this, use the <a href=\"/ja/api/shop-builder/operation/admin-toggle-offer-chain\">Toggle offer chain</a> call.",
        "value": {
          "statusCode": 422,
          "errorCode": 6209,
          "errorMessage": "[0401-6209]: Active chain cannot be updated. Please deactivate it first",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 2
          }
        }
      }
    },
    "responses": {
      "Promotions_200-get-promotions": {
        "description": "プロモーションのリストが正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-promotions"
              }
            }
          }
        }
      },
      "Promotions_401-invalid-basic-auth": {
        "description": "基本認証が不合格または不正です。基本認証または正しい認証情報を使用したことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "Promotions_422-activate-deactivate-promotion": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9505]: Error was occurred while promotion was being updated"
                },
                "transactionId": {
                  "type": "string",
                  "example": "da145238620011eb8e24fe6913ff226a"
                }
              }
            },
            "examples": {
              "Error was occurred": {
                "$ref": "#/components/examples/422-activate-deactivate-promotion"
              }
            }
          }
        }
      },
      "200-admin-get-redeemable-by-code": {
        "description": "プロモーションは正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/admin-promotions_200-get-redeemable-coupon-promotion-model"
            },
            "examples": {
              "Promo Code Response": {
                "value": {
                  "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"
                    }
                  ],
                  "bonus": [],
                  "is_enabled": true,
                  "external_id": "falls2023",
                  "name": {
                    "ru": "Скидка по промокоду на Epic Fall Hammer",
                    "en": "Promo Code discount for Epic Fall Hammer"
                  },
                  "redeem_total_limit": 2,
                  "redeem_user_limit": 3,
                  "redeem_code_limit": null,
                  "total_limit_state": {
                    "available": 1,
                    "reserved": 1,
                    "used": 0
                  },
                  "discount": {
                    "percent": null
                  },
                  "discounted_items": [
                    {
                      "sku": "epic_fall_hammer_1",
                      "discount": {
                        "percent": "20.00"
                      }
                    }
                  ]
                }
              },
              "Coupon Response": {
                "value": {
                  "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"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "epic_fall_hammer_1",
                      "quantity": 3
                    }
                  ],
                  "is_enabled": true,
                  "external_id": "coupon_fall_hammer_2",
                  "name": {
                    "en": "This is a Coupon code for Epic Fall Hammer",
                    "ru": "Eto kod kupona на Epic Fall Hammer"
                  },
                  "redeem_total_limit": 99,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": null
                }
              }
            }
          }
        }
      },
      "401-invalid-basic-auth": {
        "description": "基本認証が不合格または不正です。基本認証または正しい認証情報を使用したことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "404-code-not-found": {
        "description": "引き換え可能なコードが見つかりません。提供されたコード値が正しいことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9811
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9811]: Code not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9811,
                  "errorMessage": "[0401-9811]: Code not found."
                }
              }
            }
          }
        }
      },
      "405-method-not-found": {
        "description": "引き換え可能なコードの形式が間違っています。コードには文字と数字のみを含めることができます。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 405
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Method is not allowed. Method must be one of: OPTIONS"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 405,
                  "errorCode": 0,
                  "errorMessage": "Method is not allowed. Method must be one of: OPTIONS"
                }
              }
            }
          }
        }
      },
      "Promotions_200-coupon-redeemed": {
        "description": "クーポンは正常に引き換えされました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "price": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "アイテム価格。",
                        "properties": {
                          "amount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "割引後のアイテム価格。"
                          },
                          "amount_without_discount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "アイテム価格。"
                          },
                          "currency": {
                            "type": "string",
                            "example": "USD",
                            "description": "商品価格通貨。[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) による3文字コード。"
                          }
                        }
                      },
                      "type": {
                        "type": "string"
                      },
                      "virtual_item_type": {
                        "type": "string",
                        "example": "non-consumable",
                        "description": "仮想アイテムタイプ。\n\n指定可能な値：\n- `consumable` — 使用後にインベントリから消滅するアイテム（例：弾薬など）。\n- `non_consumable` — 期間の制限なくインベントリに残り続けるアイテム。\n- `non_renewing_subscription` — 制限された期間内に限り、サービスやコンテンツへのアクセス権を付与する期間限定アイテム。",
                        "enum": [
                          "consumable",
                          "non_consumable",
                          "non_renewing_subscription"
                        ]
                      },
                      "virtual_prices": {
                        "type": "array"
                      },
                      "description": {
                        "type": "string"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "type": "boolean"
                      },
                      "attributes": {
                        "type": "array"
                      }
                    }
                  },
                  "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": []
                    }
                  ]
                }
              }
            },
            "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": []
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_401-invalid-client-auth": {
        "description": "認証を通過できず、または間違っています。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1501,
                  "errorMessage": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            }
          }
        }
      },
      "Promotions_403-auth-header": {
        "description": "認証ヘッダーが送信されていません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 403
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Authorization header not sent."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 403,
                  "errorCode": 0,
                  "errorMessage": "Authorization header not sent"
                }
              }
            }
          }
        }
      },
      "Promotions_404-coupon": {
        "description": "有効なクーポンコードを入力してください。",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9807]: Enter valid coupon code."
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_422-redeem-coupon": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `coupon_code` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `coupon_code` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_200-coupon-rewards": {
        "description": "クーポンリワードのリストは正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "bonus": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
                  }
                },
                "is_selectable": {
                  "type": "boolean",
                  "description": "`true`の場合、ユーザーはクーポンを引き換える前にボーナスを選択する必要があります。"
                },
                "discount": {
                  "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-get-coupon-rewards"
              }
            }
          }
        }
      },
      "Promotions_422-rewards": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Promotions_422_limit_error"
                },
                {
                  "$ref": "#/components/schemas/Promotions_422_reglock_error"
                }
              ]
            }
          }
        }
      },
      "Promotions_200-get-coupons": {
        "description": "クーポンのリストは正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-promotions_200-get-coupon-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-coupons"
              }
            }
          }
        }
      },
      "Promotions_422-invalid-coupon": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-coupon": {
        "description": "クーポンが見つかりません。`external_id`が正しいことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9802]: Coupon not found"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-error": {
        "description": "プロモーションサービスからプロモーションを受信中にエラーが発生しました。",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9502
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9502]: Error occurred while receiving the promotion from the promotion service"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_200-coupon-code-list": {
        "description": "クーポン用のコードリストは正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "クーポンコードの合計数。"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "Promotions_201-coupon-promocode-code-created": {
        "description": "コードは正常に作成されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "code": "WINTER2021"
                }
              }
            }
          }
        }
      },
      "Promotions_422-coupon-promocode-same-code-exists": {
        "description": "リクエストが無効です。コードはすでに存在しています。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9803
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9803]: The code already exists."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9803,
                  "errorMessage": "[0401-9803]: The code already exists.",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-promocode": {
        "description": "プロモーションコードが見つかりません。`external_id`が正しいことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9802]: Promocode not found"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_200-promo-code-redeemed": {
        "description": "プロモーションコードは正常に引き換えされました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart_id": {
                  "type": "string",
                  "example": "cart_id",
                  "description": "カートID。"
                },
                "price": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "amount": {
                      "type": "string",
                      "example": "50.0000000000000000"
                    },
                    "amount_without_discount": {
                      "type": "string",
                      "example": "100.0000000000000000"
                    },
                    "currency": {
                      "type": "string",
                      "example": "USD"
                    }
                  },
                  "example": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  },
                  "description": "カート価格。"
                },
                "is_free": {
                  "$ref": "#/components/schemas/value-is_free"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "type": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "$ref": "#/components/schemas/value-is_free"
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/Catalog_item_promotions"
                      },
                      "can_be_bought": {
                        "$ref": "#/components/schemas/Can_be_bought"
                      },
                      "vp_rewards": {
                        "$ref": "#/components/schemas/client-item-value-point-reward"
                      },
                      "loyalty_rewards": {
                        "$ref": "#/components/schemas/item-loyalty-point-reward"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Catalog_item_limits"
                      },
                      "periods": {
                        "$ref": "#/components/schemas/item-periods"
                      }
                    }
                  },
                  "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": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": false
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ]
                },
                "rewards": {
                  "$ref": "#/components/schemas/Promo_code_rewards"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "cart_id": "cart_id",
                  "is_free": false,
                  "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": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": false
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "loyalty_rewards": [
                        {
                          "name": "Gold Coin",
                          "sku": "f752ecb0-e684-4071-8397-2aba694983e1",
                          "description": "These are rebate coins that can be used to purchase items in the store.",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "amount": 50
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    },
                    {
                      "attributes": [],
                      "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,
                      "name": "Sword Xsolla Skin",
                      "price": [],
                      "quantity": 1,
                      "sku": "com.xsolla.swords_1",
                      "type": "virtual_good",
                      "virtual_item_type": "non_consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "loyalty_rewards": [
                        {
                          "name": "Gold Coin",
                          "sku": "f752ecb0-e684-4071-8397-2aba694983e1",
                          "description": "These are rebate coins that can be used to purchase items in the store.",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "amount": 50
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ],
                  "price": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "12300.0000000000000000",
                    "currency": "USD"
                  },
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "name": "Sword Xsolla Skin",
                          "sku": "com.xsolla.swords_1",
                          "type": "virtual_good",
                          "virtual_item_type": "non_consumable",
                          "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"
                        },
                        "quantity": 1
                      }
                    ],
                    "discount": {
                      "percent": null
                    },
                    "discounted_items": [
                      {
                        "sku": "com.xsolla.booster_mega_1",
                        "discount": {
                          "percent": "50.00"
                        }
                      }
                    ],
                    "is_selectable": false
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_404-promo-code": {
        "description": "有効なプロモーションコードを入力してください。",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9807]: Enter valid promo code."
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_200-promo-code-canceled": {
        "description": "プロモーションコードは正常にキャンセルされました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart_id": {
                  "type": "string",
                  "example": "cart_id",
                  "description": "カートID。"
                },
                "price": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "amount": {
                      "type": "string",
                      "default": "50.0000000000000000"
                    },
                    "amount_without_discount": {
                      "type": "string",
                      "default": "100.0000000000000000"
                    },
                    "currency": {
                      "type": "string",
                      "default": "USD"
                    }
                  },
                  "example": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  },
                  "description": "カート価格。"
                },
                "is_free": {
                  "$ref": "#/components/schemas/value-is_free"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "type": {
                        "type": "string"
                      },
                      "virtual_item_type": {
                        "type": "string",
                        "example": "non-consumable",
                        "description": "仮想アイテムタイプ。\n\n指定可能な値：\n- `consumable` — 使用後にインベントリから消滅するアイテム（例：弾薬など）。\n- `non_consumable` — 期間の制限なくインベントリに残り続けるアイテム。\n- `non_renewing_subscription` — 制限された期間内に限り、サービスやコンテンツへのアクセス権を付与する期間限定アイテム。",
                        "enum": [
                          "consumable",
                          "non_consumable",
                          "non_renewing_subscription"
                        ]
                      },
                      "virtual_prices": {
                        "type": "array"
                      },
                      "description": {
                        "type": "string"
                      },
                      "attributes": {
                        "$ref": "#/components/schemas/client-attributes"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "$ref": "#/components/schemas/value-is_free"
                      },
                      "price": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "アイテム価格。",
                        "properties": {
                          "amount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "割引後のアイテム価格。"
                          },
                          "amount_without_discount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "アイテム価格。"
                          },
                          "currency": {
                            "type": "string",
                            "example": "USD",
                            "description": "商品価格通貨。[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) による3文字コード。"
                          }
                        }
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/Catalog_item_promotions"
                      },
                      "can_be_bought": {
                        "$ref": "#/components/schemas/Can_be_bought"
                      },
                      "vp_rewards": {
                        "$ref": "#/components/schemas/client-item-value-point-reward"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Catalog_item_limits"
                      },
                      "periods": {
                        "$ref": "#/components/schemas/item-periods"
                      }
                    }
                  },
                  "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": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "cart_id": "cart_id",
                  "is_free": false,
                  "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": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ],
                  "price": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_422-cancel-promo-code": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `id` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `id` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_200-promocode-rewards": {
        "description": "プロモーションコードリワードのリストは正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Promo_code_rewards"
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-get-promocode-rewards"
              }
            }
          }
        }
      },
      "Promotions_200-get-promocodes": {
        "description": "プロモーションコードのリストは正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-promocode-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-promocodes"
              }
            }
          }
        }
      },
      "Promotions_200-promocode-code-list": {
        "description": "プロモーションコードのコードリストは正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "プロモーションコードのコードの合計数。"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "Promotions_200-get-item-promotions": {
        "description": "アイテムプロモーションのリストが正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。"
                      },
                      "promotion_periods": {
                        "$ref": "#/components/schemas/promotion_periods"
                      },
                      "is_enabled": {
                        "$ref": "#/components/schemas/Promotions_is_enabled"
                      },
                      "name": {
                        "type": "object",
                        "description": "プロモーション名。キーと値のペアを含む必要があります。キーは\"^[a-z]{{2}-[A-Z]{2}$\"フォーマットのロケール、値は文字列です。",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "example": {
                          "en-US": "Promotion",
                          "ru-RU": "Акция"
                        }
                      },
                      "discount": {
                        "type": "object",
                        "properties": {
                          "percent": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "パーセントの割引\nこのパーセントで計算された値で、アイテムの価格が下がります。",
                            "default": "10.00"
                          }
                        }
                      },
                      "items": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "description": "割引の対象となるアイテムのリスト。",
                          "type": "object",
                          "properties": {
                            "sku": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "アイテムSKU。",
                              "default": "elven_sword"
                            }
                          }
                        }
                      },
                      "attribute_conditions": {
                        "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Promotions_promotion_limits_response"
                      },
                      "excluded_promotions": {
                        "$ref": "#/components/schemas/excluded_promotions"
                      },
                      "price_conditions": {
                        "$ref": "#/components/schemas/price_conditions_discount"
                      }
                    }
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotions": [
                    {
                      "id": 1,
                      "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"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "20.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_sword_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": null,
                        "per_item": null,
                        "recurrent_schedule": null
                      }
                    },
                    {
                      "id": 2,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_1"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "excluded_promotions": [
                        1,
                        3
                      ]
                    },
                    {
                      "id": 3,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_2"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_2"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "20.0000"
                        }
                      ]
                    },
                    {
                      "id": 4,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": null,
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "lt",
                          "value": "20.0000"
                        }
                      ]
                    }
                  ],
                  "total_promotions_count": 4,
                  "active_promotions_count": 4,
                  "inactive_promotions_count": 0
                }
              }
            }
          }
        }
      },
      "Promotions_201-create-promotion": {
        "description": "プロモーションは正常に作成されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotion_id": 2384756
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-missed-items-property": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]:  Unprocessable Entity. The property `items` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `items` is required",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-promotion": {
        "description": "プロモーションが見つかりません。`promotion_id`が正しいことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9502
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                }
              },
              "type": "object"
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9502,
                  "errorMessage": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                }
              }
            }
          }
        }
      },
      "Promotions_200-get-bonus-promotions": {
        "description": "ボーナスプロモーションのリストが正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-bonus-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotions": [
                    {
                      "id": 1,
                      "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"
                        }
                      ],
                      "name": {
                        "en-US": "New Year Bonus",
                        "de-DE": "Neujahrsbonus"
                      },
                      "is_enabled": true,
                      "condition": [
                        {
                          "sku": "com.xsolla.elven_boots_1"
                        },
                        {
                          "sku": "com.xsolla.elven_knife_1"
                        }
                      ],
                      "bonus": [
                        {
                          "sku": "com.xsolla.elven_sword_1",
                          "quantity": 1
                        },
                        {
                          "sku": "com.xsolla.elven_shield_1",
                          "quantity": 2
                        },
                        {
                          "sku": "com.xsolla.elven_gloves_1",
                          "quantity": 2
                        }
                      ],
                      "limits": {
                        "per_user": null,
                        "per_item": null,
                        "recurrent_schedule": null
                      }
                    },
                    {
                      "id": 2,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Summer season bonus",
                        "de-DE": "Sommersaison Bonus"
                      },
                      "is_enabled": true,
                      "condition": null,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        1
                      ]
                    }
                  ],
                  "total_promotions_count": 2,
                  "active_promotions_count": 2,
                  "inactive_promotions_count": 0
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-missed-bonus-property": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]:  Unprocessable Entity. The property `bonus` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `bonus` is required",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_200-admin-get-bonus-promotion": {
        "description": "ボーナスプロモーションが正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Promotions_200-get-bonus-promotion-model"
            },
            "examples": {
              "response": {
                "value": {
                  "id": 1,
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "is_enabled": true,
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_1"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_1"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ],
                  "limits": {
                    "per_user": {
                      "total": 10
                    },
                    "per_item": null,
                    "recurrent_schedule": {
                      "per_user": {
                        "interval_type": "daily",
                        "time": "11:00:00+08:00",
                        "reset_next_date": 1677553200,
                        "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                        "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                      }
                    }
                  },
                  "excluded_promotions": [
                    23,
                    45
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.0000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_200-verify-promo-code": {
        "description": "コードに関する情報。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "コードタイプ：`promocode`/`coupon`。"
                },
                "code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                },
                "rewards": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/Coupon_rewards"
                    },
                    {
                      "$ref": "#/components/schemas/Promo_code_rewards_verify"
                    }
                  ]
                }
              }
            },
            "examples": {
              "coupon info": {
                "value": {
                  "type": "coupon",
                  "code": "WINTER2023",
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "sku": "com.xsolla.game_1",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "name": "Game name",
                              "type": "game_key",
                              "is_free": false,
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            },
                            {
                              "sku": "com.xsolla.game_key_02",
                              "name": "Game name",
                              "type": "game_key",
                              "drm_name": "Origin",
                              "drm_sku": "origin_key_1"
                            }
                          ]
                        },
                        "quantity": 1
                      },
                      {
                        "item": {
                          "sku": "com.xsolla.game_2",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "type": "game_key",
                              "name": "Game name",
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            }
                          ]
                        },
                        "quantity": 2
                      }
                    ],
                    "is_selectable": true
                  }
                }
              },
              "promocode info": {
                "value": {
                  "type": "promocode",
                  "code": "SUMMER2023",
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "sku": "com.xsolla.game_2",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "type": "game_key",
                              "name": "Game name",
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            }
                          ]
                        },
                        "quantity": 2
                      }
                    ],
                    "discount": {
                      "percent": "10.00"
                    },
                    "discounted_items": [
                      {
                        "sku": "com.xsolla.elven_sword_1",
                        "name": "Elven sword",
                        "type": "virtual_good",
                        "description": "sword",
                        "image_url": null,
                        "discount": {
                          "percent": "10.00"
                        }
                      }
                    ],
                    "is_selectable": true
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_404-verify-promo-code": {
        "description": "コードが見つかりません。`code`の値が正しいことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9811
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9811]: Code not found."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_422-verify-promo-code": {
        "description": "プロモーションコードが無効です。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "integer"
                },
                "statusCode": {
                  "type": "integer"
                },
                "errorMessage": {
                  "type": "string"
                }
              }
            },
            "examples": {
              "code redemption limit": {
                "value": {
                  "errorCode": 9804,
                  "statusCode": 422,
                  "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
                }
              },
              "regionally restricted": {
                "value": {
                  "errorCode": 9808,
                  "statusCode": 422,
                  "errorMessage": "[0401-9808]: Coupon is not available in your region."
                }
              }
            }
          }
        }
      },
      "Promotions_200-get-unique-catalog-offers": {
        "description": "クーポンのリストが正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-unique-catalog-offer-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-unique-catalog-offers"
              }
            }
          }
        }
      },
      "Promotions_200-unique-catalog-offer-code-list": {
        "description": "ユニークなカタログオファーのコードリストが正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "ユニークなカタログオファーコードの総数。"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "200-admin-get-user-promo-code-limits": {
        "description": "ユーザーのプロモーションコード制限を正常に受信しました。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-promo-code"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "Common_401-invalid-basic-auth": {
        "description": "基本認証の認証情報が提供されていないか、正しくありません。基本認証を使用していること、および資格情報が正しいことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "200-admin-get-user-coupon-limits": {
        "description": "ユーザーのクーポン制限を正常に受信しました。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-coupon"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-code-promo-code-limits": {
        "description": "コードに関するプロモーションコード制限を正常に受け取りました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Code-limit-promo-code"
                  }
                },
                "total_items_count": {
                  "type": "number",
                  "description": "コードの総数。"
                },
                "has_more": {
                  "type": "boolean",
                  "description": "コードを含む別のページが存在する場合。"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/code-limit"
              }
            }
          }
        }
      },
      "200-admin-get-code-coupon-limits": {
        "description": "コードのクーポン制限を正常に受け取りました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Code-limit-promo-code"
                  }
                },
                "total_items_count": {
                  "type": "number",
                  "description": "コードの総数。"
                },
                "has_more": {
                  "type": "boolean",
                  "description": "コードを含む別のページが存在する場合。"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/code-limit"
              }
            }
          }
        }
      },
      "Common_401-complex": {
        "description": "認証に失敗しましたか、誤りがあります。認証または正しい認証情報を使用したことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Authorization header not sent"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              },
              "type": "object"
            },
            "examples": {
              "Authorization header not sent": {
                "$ref": "#/components/examples/401-complex-auth-header-not-found"
              },
              "Incorrect credentials": {
                "$ref": "#/components/examples/401-complex-auth-incorrect-credentials"
              }
            }
          }
        }
      },
      "403-auth-header-not-sent": {
        "description": "認証ヘッダーが送信されていません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 403
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Authorization header not sent."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 403,
                  "errorCode": 0,
                  "errorMessage": "Authorization header not sent"
                }
              }
            }
          }
        }
      },
      "Common_422-body-validation": {
        "description": "リクエスト検証エラー。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/422-invalid-request"
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `name` is required",
                  "transactionId": "da145238620011eb8e24fe6913ff226a"
                }
              }
            }
          }
        }
      },
      "200-admin-get-user-promotion-limits": {
        "description": "ユーザーのプロモーション制限が正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-promotion"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-value-points": {
        "description": "バリューポイントのリストが正常に受信されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-value-points-reward-chain_admin_get-value-point-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Value-points-item-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-value-point": {
        "description": "バリューポイントは正常に作成されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "sku": "com.xsolla.item_new",
                  "item_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "example": "new-sku"
                },
                "item_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-admin-create-update-rc-vp-invalid-request": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/422-rc-vp-invalid-request"
            },
            "examples": {
              "The property `sku` is required": {
                "$ref": "#/components/examples/422-property-sku-is-required"
              }
            }
          }
        }
      },
      "200-admin-get-value-point": {
        "description": "指定されたバリューポイントが正常に受信されました。",
        "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"
            }
          }
        }
      },
      "200-admin-get-list-value-point-rewards": {
        "description": "アイテムリストとそのバリューポイント報酬が正常に受け取られました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-value-points-rewards-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-item-value-point-reward"
                  }
                }
              }
            }
          }
        }
      },
      "sellable-item-by-sku_404": {
        "description": "アイテムが見つかりません。`project_id`と`sku`が正しいことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Item with sku = 'electric_shiel' not found"
                }
              }
            }
          }
        }
      },
      "200-client-get-reward-chains-list": {
        "description": "ユーザーの報酬チェーンが正常に取得されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-get-reward-chains-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "ページ数がもっとあることを示す指標として使用されます。"
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 10,
                  "description": "システム内の報酬チェーンの総数。"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-reward-chain-item-model"
                  }
                }
              }
            }
          }
        }
      },
      "200-client-get-user-reward-chain-balance": {
        "description": "ユーザーのバリューポイント残高が正常に取得されました。",
        "content": {
          "application/json": {
            "examples": {
              "common": {
                "$ref": "#/components/examples/200-client-get-user-reward-chain-balance"
              },
              "clan": {
                "$ref": "#/components/examples/200-client-get-user-clan-reward-chain-balance"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/value-point-sku"
                },
                "name": {
                  "$ref": "#/components/schemas/value-point-name"
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "description": {
                  "$ref": "#/components/schemas/value-point-description"
                },
                "long_description": {
                  "$ref": "#/components/schemas/value-point-long-description"
                },
                "amount": {
                  "type": "integer",
                  "description": "バリューポイントの数量。"
                },
                "is_clan": {
                  "$ref": "#/components/schemas/is_clan"
                }
              }
            }
          }
        }
      },
      "404-reward-chain-step-not-found": {
        "description": "報酬チェーンのステップが見つかりません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9911
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9911]: Reward chain step not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9911,
                  "errorMessage": "[0401-9911]: Reward chain step not found."
                }
              }
            }
          }
        }
      },
      "422-reward-chain-step-reward-can-not-claimed": {
        "description": "ステップ報酬を受け取ることができません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9912
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9912]: Can't claim the step reward."
                }
              }
            },
            "examples": {
              "Reward chain step reward already claimed": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9912,
                  "errorMessage": "[0401-9912]: Reward already claimed."
                }
              },
              "Not enough VP to claim reward chain step reward": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9913,
                  "errorMessage": "[0401-9913]: Not enough value points to claim step reward."
                }
              }
            }
          }
        }
      },
      "200-client-update-user-clan": {
        "description": "ユーザーのクランが正常に更新されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-update-user-clan"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "reward": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "$ref": "#/components/schemas/sku"
                      },
                      "name": {
                        "type": "string",
                        "example": "Super box",
                        "description": "アイテム名。"
                      },
                      "type": {
                        "type": "string",
                        "example": "bundle",
                        "description": "アイテムタイプ。"
                      },
                      "description": {
                        "type": "string",
                        "example": "Super box with items",
                        "description": "アイテムの説明。"
                      },
                      "image_url": {
                        "$ref": "#/components/schemas/Common_admin-image_url"
                      },
                      "quantity": {
                        "type": "integer",
                        "example": 2,
                        "description": "アイテム数量。"
                      },
                      "bundle_type": {
                        "type": "string",
                        "description": "バンドルタイプ。アイテムタイプがバンドルの場合に返されます。",
                        "enum": [
                          "standard",
                          "virtual_currency_package"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-list-reward-chains": {
        "description": "報酬チェーンのリストが正常に受信されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-reward-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/admin-get-reward-chain-item-basic-model"
                      },
                      {
                        "$ref": "#/components/schemas/admin-get-reward-chain-item-clan-basic-model"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-reward-chain": {
        "description": "報酬チェーンが正常に作成されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "reward_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "reward_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "200-admin-get-reward-chain": {
        "description": "指定された報酬チェーンが正常に受信されました。",
        "content": {
          "application/json": {
            "examples": {
              "common": {
                "$ref": "#/components/examples/200-reward-chain"
              },
              "clan": {
                "$ref": "#/components/examples/200-clan-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"
                }
              ]
            }
          }
        }
      },
      "404-admin-reward-chain-not-found": {
        "description": "報酬チェーンが見つかりません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Reward chain not found"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9901,
                  "errorMessage": "[0401-4001]: Reward chain not found"
                }
              }
            }
          }
        }
      },
      "204-admin-update-reward-chain": {
        "description": "報酬チェーンは正常に更新されました。",
        "content": {}
      },
      "204-admin-delete-reward-chain": {
        "description": "報酬チェーンは正常に削除されました。",
        "content": {}
      },
      "204-admin-toggle-reward-chain": {
        "description": "報酬チェーンが無効化/有効化されました。",
        "content": {}
      },
      "204-admin-reset-reward-chain": {
        "description": "報酬チェーンはリセットされました。",
        "content": {}
      },
      "200-admin-get-list-daily-chains": {
        "description": "デイリー報酬のリストが正常に取得されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-daily-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 3,
                  "description": "デイリー報酬の総数。"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-daily-chain-short-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-daily-chain": {
        "description": "デイリー報酬が正常に作成されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "daily_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "daily_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-admin-create-error-list": {
        "description": "デイリー報酬の誤った設定エラー。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-period"
              }
            }
          }
        }
      },
      "200-admin-get-daily-chain": {
        "description": "デイリー報酬データが正常に取得されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-daily-chain"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/admin-daily-chain-long-model"
            }
          }
        }
      },
      "404-daily-chain-not-found": {
        "description": "デイリー報酬が見つかりませんでした。",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-daily-chain-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            }
          }
        }
      },
      "422-admin-update-error-list": {
        "description": "デイリー報酬の誤った設定エラー。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-period"
              },
              "invalid-chain-step-ids": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-chain-step-ids"
              },
              "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"
              },
              "active-daily-chain": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-activated"
              }
            }
          }
        }
      },
      "200-client-get-daily-chains-list": {
        "description": "ユーザーのデイリー報酬が正常に取得されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-daily-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "ページ数がもっとあることを示す指標として使用されます。"
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 3,
                  "description": "デイリー報酬の総数。"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-daily-chain-model"
                  }
                }
              }
            }
          }
        }
      },
      "401-client-auth-error": {
        "description": "認証を通過できず、または間違っています。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1501,
                  "errorMessage": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            }
          }
        }
      },
      "404-daily-chain-step-not-found": {
        "description": "デイリー報酬またはデイリー報酬ステップが見つかりませんでした。",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-daily-chain-step-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            }
          }
        }
      },
      "200-client-get-offer-chains-list": {
        "description": "オファーチェーンのリストが正常に受信されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-offer-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "これ以上ページがあるかどうかを示します。"
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 10,
                  "description": "利用可能なオファーチェーンの総数。"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-offer-chain-model"
                  }
                }
              }
            }
          }
        }
      },
      "404-offer-chain-not-found": {
        "description": "オファーチェーンが見つかりませんでした。",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-offer-chain-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            }
          }
        }
      },
      "404-offer-chain-step-not-found": {
        "description": "オファーチェーンまたはステップが見つかりませんでした。",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-offer-chain-step-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            }
          }
        }
      },
      "Cart-Payment_200-order-created": {
        "description": "注文が正常に作成されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "order_id": {
                  "type": "integer",
                  "description": "注文IDです。"
                },
                "token": {
                  "type": "string",
                  "description": "決済トークン。"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "order_id": 641,
                  "token": "f4puMEFFDZcx9nv5HoNHIkPe9qghvBQo"
                }
              }
            }
          }
        }
      },
      "200-admin-get-list-offer-chains": {
        "description": "オファーチェーンのリストが正常に取得されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-offer-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-offer-chain-short-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-offer-chain": {
        "description": "オファーチェーンが正常に作成されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "offer_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "offer_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-create-error-list": {
        "description": "オファーチェーンの設定が無効です。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-period"
              }
            }
          }
        }
      },
      "200-admin-get-offer-chain": {
        "description": "オファーチェーンのデータが正常に取得されました。",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-offer-chain"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/admin-offer-chain-long-model"
            }
          }
        }
      },
      "422-update-error-list": {
        "description": "オファーチェーンの設定が無効です。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-period"
              },
              "invalid-chain-step-ids": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-chain-step-ids"
              },
              "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"
              },
              "active-offer-chain": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-activated"
              }
            }
          }
        }
      },
      "Upsell-404-item-not-found": {
        "description": "アイテムが見つかりません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Items weren't found: sku1, sku2"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9901,
                  "errorMessage": "[0401-4001]: Items weren't found: sku1, sku2"
                }
              }
            }
          }
        }
      },
      "Upsell-422-invalid-request": {
        "description": "無効なリクエスト。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Upsell-422-invalid-request"
            }
          }
        }
      },
      "Upsell-200-get-client-list": {
        "description": "アップセルアイテムのリストが正常に受信されました。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Upsell_item-list"
            },
            "examples": {
              "response": {
                "value": {
                  "has_more": true,
                  "items": [
                    {
                      "sku": "com.xsolla.big_rocket_1",
                      "name": "Big Rocket",
                      "groups": [
                        {
                          "external_id": "accessory",
                          "name": {
                            "en": "accessory"
                          }
                        }
                      ],
                      "attributes": [
                        {
                          "external_id": "stack_size",
                          "name": {
                            "en": "Quantity of items in the upsell set"
                          },
                          "values": [
                            {
                              "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
                              "value": "5"
                            }
                          ]
                        }
                      ],
                      "type": "virtual_good",
                      "description": "Big Rocket - description",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
                      "is_free": false,
                      "price": {
                        "amount": "100.99",
                        "amount_without_discount": "100.99",
                        "currency": "USD"
                      },
                      "virtual_prices": [
                        {
                          "amount": 100,
                          "sku": "com.xsolla.vc_1",
                          "is_default": true,
                          "amount_without_discount": 100,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        }
                      ],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": null,
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            },
                            {
                              "quantity": 1,
                              "sku": "com.xsolla.phys_good_1",
                              "type": "physical_good"
                            },
                            {
                              "quantity": 1,
                              "name": "Super Lootbox with items",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/9676f06265375087e607cb79c5283688.png",
                              "sku": "com.xsolla.SuperLootboxBundle_1",
                              "type": "bundle",
                              "bundle_type": "standard"
                            }
                          ]
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "total": 5,
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "limit_exceeded_visibility": "show"
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ],
                      "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      },
                      "vp_rewards": []
                    },
                    {
                      "sku": "com.xsolla.shotgun_raider_1",
                      "name": "SHOTGUN FOR TRUE RAIDERS",
                      "groups": [
                        {
                          "external_id": "weapons",
                          "name": {
                            "en": "Weapons"
                          }
                        }
                      ],
                      "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"
                            }
                          ]
                        }
                      ],
                      "type": "virtual_good",
                      "description": "description",
                      "image_url": "http://image.png",
                      "is_free": false,
                      "price": {
                        "amount": "101.0",
                        "amount_without_discount": "101.0",
                        "currency": "USD"
                      },
                      "virtual_prices": [
                        {
                          "amount": 100,
                          "sku": "com.xsolla.vc_2",
                          "is_default": true,
                          "amount_without_discount": 100,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        },
                        {
                          "amount": 200,
                          "sku": "com.xsolla.vc_3",
                          "is_default": false,
                          "amount_without_discount": 200,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        }
                      ],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [],
                      "limits": null,
                      "periods": [
                        {
                          "date_from": "2020-08-11T20:00:00+03:00",
                          "date_until": null
                        }
                      ],
                      "vp_rewards": []
                    },
                    {
                      "sku": "com.xsolla.shotgun_raider_2",
                      "name": "SHOTGUN FOR TRUE RAIDERS",
                      "groups": [],
                      "attributes": [],
                      "type": "virtual_good",
                      "description": "description",
                      "image_url": "http://image.png",
                      "is_free": true,
                      "price": null,
                      "virtual_prices": [],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [],
                      "limits": null,
                      "periods": [],
                      "vp_rewards": []
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "200-get-loyalty-program": {
        "description": "ロイヤルティプログラムが正常に取得されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "ロイヤルティプログラムIDです。"
                },
                "project_id": {
                  "type": "integer",
                  "format": "uint32",
                  "description": "ロイヤルティプログラムが所属するプロジェクトのIDです。"
                },
                "name": {
                  "$ref": "#/components/schemas/two-letter-locale",
                  "description": "ロイヤルティプログラム名の多言語対応オブジェクトです。キーには2文字の小文字言語コード（例: en）を使用します。対応言語の完全なリストは<a href=\"https://developers.xsolla.com/ja/dev-resources/references/supported-languages/\">ドキュメント</a>で確認できます。"
                },
                "description": {
                  "$ref": "#/components/schemas/two-letter-locale",
                  "description": "ロイヤルティプログラムの説明文の多言語対応オブジェクトです。キーには2文字の小文字言語コード（例: en）を使用します。対応言語の完全なリストは<a href=\"https://developers.xsolla.com/ja/dev-resources/references/supported-languages/\">ドキュメント</a>で確認できます。"
                },
                "external_id": {
                  "type": "string",
                  "description": "システム内のロイヤルティプログラムIDです。"
                },
                "is_active": {
                  "type": "boolean",
                  "description": "ロイヤルティプログラムが有効であるかどうか。"
                },
                "spend_max_threshold": {
                  "type": "number",
                  "format": "double",
                  "description": "ユーザーがロイヤルティポイントで支払うことができる注文価格の最大割合。"
                },
                "cashback_policy": {
                  "type": "object",
                  "description": "購入に対するキャッシュバックとしてユーザーにロイヤルティポイントを付与するためのルール。",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "キャッシュバック計算タイプ：`static` — 全注文に固定割合を適用；`dynamic` — 注文金額範囲に応じて割合が変動。",
                      "enum": [
                        "static",
                        "dynamic"
                      ]
                    },
                    "ranges": {
                      "type": "array",
                      "description": "各範囲のキャッシュバック割合を含む注文金額範囲。",
                      "items": {
                        "type": "object",
                        "properties": {
                          "min": {
                            "type": "string",
                            "description": "範囲の最小注文金額（指定値を含む）。"
                          },
                          "max": {
                            "type": "string",
                            "description": "範囲の最大注文金額（指定値を含む）。上限がない場合は`inf`を使用します。"
                          },
                          "currency_code": {
                            "type": "string",
                            "description": "<a href=\"https://developers.xsolla.com/ja/dev-resources/references/supported-currencies/\">ISO 4217</a>形式による範囲の通貨コード。"
                          },
                          "percentage": {
                            "type": "string",
                            "description": "範囲内の注文に対するキャッシュバック割合。"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "id": "c0de0000-0000-0000-0000-000000000001",
                  "project_id": 89203,
                  "name": {
                    "en": "Program name"
                  },
                  "description": {
                    "en": "Program description"
                  },
                  "external_id": "external-id-89203",
                  "is_active": true,
                  "spend_max_threshold": 45,
                  "cashback_policy": {
                    "type": "dynamic",
                    "ranges": [
                      {
                        "currency_code": "USD",
                        "min": "0",
                        "max": "100",
                        "percentage": "5"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "401-invalid-auth": {
        "description": "認証が無効です。"
      },
      "404-program-not-found": {
        "description": "ロイヤルティプログラムが見つかりません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "description": "エラーの簡潔な説明。",
                  "example": "loyalty program not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "message": "loyalty program not found."
                }
              }
            }
          }
        }
      },
      "200-get-program-loyalty-points": {
        "description": "ロイヤルティポイントのリストが正常に取得されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "ロイヤルティポイントIDです。"
                  },
                  "program_id": {
                    "type": "string",
                    "description": "ポイントが所属するロイヤルティプログラムIDです。"
                  },
                  "name": {
                    "$ref": "#/components/schemas/two-letter-locale",
                    "description": "ロイヤルティポイント名の多言語対応オブジェクトです。キーには2文字の小文字言語コード（例: en）を使用します。対応言語の完全なリストは<a href=\"https://developers.xsolla.com/ja/dev-resources/references/supported-languages/\">ドキュメント</a>で確認できます。"
                  },
                  "description": {
                    "$ref": "#/components/schemas/two-letter-locale",
                    "description": "ロイヤルティポイントの説明文の多言語対応オブジェクトです。キーには2文字の小文字言語コード（例: en）を使用します。対応言語の完全なリストは<a href=\"https://developers.xsolla.com/ja/dev-resources/references/supported-languages/\">ドキュメント</a>で確認できます。"
                  },
                  "icon_url": {
                    "type": "string",
                    "format": "uri",
                    "description": "画像URL。"
                  },
                  "exchange_rate": {
                    "type": "object",
                    "description": "各通貨におけるロイヤルティポイントの金銭的価値。",
                    "properties": {
                      "rates": {
                        "type": "array",
                        "description": "各通貨の為替レートのリスト。",
                        "items": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "<a href=\"https://developers.xsolla.com/ja/dev-resources/references/supported-currencies/\">ISO 4217</a>形式による通貨コード。"
                            },
                            "rate": {
                              "type": "number",
                              "format": "double",
                              "description": "指定された通貨におけるロイヤルティポイント1ポイントあたりの金銭的価値。"
                            }
                          }
                        }
                      }
                    }
                  },
                  "linked_sku": {
                    "type": "object",
                    "description": "購入時にロイヤルティポイントが付与されるアイテムSKU。SKU配列が含まれます。デフォルト値`\"*\"`は、すべてのアイテムに対してロイヤルティポイントが付与されることを意味します。"
                  },
                  "amount_of_points_per_dollar": {
                    "type": "integer",
                    "description": "消費された通貨1単位あたりにユーザーが受け取るロイヤルティポイント数。"
                  }
                }
              }
            },
            "examples": {
              "response": {
                "value": [
                  {
                    "id": "d0750000-0000-0000-0000-000000000001",
                    "program_id": "c0de0000-0000-0000-0000-000000000001",
                    "name": {
                      "en": "point-en"
                    },
                    "description": {
                      "en": "point-desc"
                    },
                    "icon_url": "https://example.com/icon.png",
                    "exchange_rate": {
                      "rates": [
                        {
                          "code": "USD",
                          "rate": 0.25
                        }
                      ]
                    },
                    "linked_sku": {
                      "sku": [
                        "*"
                      ]
                    },
                    "amount_of_points_per_dollar": 4
                  }
                ]
              }
            }
          }
        }
      },
      "200-get-point-balance": {
        "description": "ロイヤルティポイント残高を正常に取得しました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "balance"
              ],
              "properties": {
                "balance": {
                  "type": "number",
                  "format": "double",
                  "description": "現在のロイヤルティポイント残高。",
                  "example": 150.5
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "balance": 150.5
                }
              }
            }
          }
        }
      },
      "ItemGroup_401-invalid-basic-auth": {
        "description": "基本認証に失敗したか、無効な資格情報が提供されました。基本認証を使用していること、および資格情報が正しいことを確認してください。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error-response-base"
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "404-user-or-point-not-found": {
        "description": "ユーザーアカウントまたはロイヤルティポイントが見つかりません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message_id",
                "message"
              ],
              "properties": {
                "message_id": {
                  "type": "string",
                  "description": "エラーコード。",
                  "example": "error_not_found"
                },
                "message": {
                  "type": "string",
                  "description": "エラーの簡潔な説明。",
                  "example": "User account or loyalty points not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "message_id": "error_not_found",
                  "message": "User account or loyalty points not found."
                }
              }
            }
          }
        }
      },
      "200-debit-point-balance": {
        "description": "ロイヤルティポイント残高の引き落としが正常に完了しました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "transaction_id",
                "previous_balance",
                "new_balance",
                "amount"
              ],
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "本リクエストにより作成された引き落とし取引のID。",
                  "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                },
                "previous_balance": {
                  "type": "number",
                  "format": "double",
                  "description": "引き落とし前の残高。",
                  "example": 150.5
                },
                "new_balance": {
                  "type": "number",
                  "format": "double",
                  "description": "引き落とし後の残高。",
                  "example": 100.5
                },
                "amount": {
                  "type": "number",
                  "format": "double",
                  "description": "残高から引き落とされた数。",
                  "example": 50
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "transaction_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                  "previous_balance": 150.5,
                  "new_balance": 100.5,
                  "amount": 50
                }
              }
            }
          }
        }
      },
      "400-bad-request": {
        "description": "リクエストエラー。リクエストに無効なパラメータが含まれています。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message_id",
                "message"
              ],
              "properties": {
                "message_id": {
                  "type": "string",
                  "description": "エラーコード。",
                  "example": "error_bad_request"
                },
                "message": {
                  "type": "string",
                  "description": "エラーの簡潔な説明。",
                  "example": "Invalid request body."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "message_id": "error_bad_request",
                  "message": "Invalid request body."
                }
              }
            }
          }
        }
      },
      "422-insufficient-balance": {
        "description": "引き落とし処理に必要なロイヤルティポイント残高が不足しています。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message_id",
                "message"
              ],
              "properties": {
                "message_id": {
                  "type": "string",
                  "description": "エラーコード。",
                  "example": "error_bad_request"
                },
                "message": {
                  "type": "string",
                  "description": "エラーの簡潔な説明。",
                  "example": "Insufficient loyalty point balance."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "message_id": "error_bad_request",
                  "message": "Insufficient loyalty point balance."
                }
              }
            }
          }
        }
      },
      "200-credit-point-balance": {
        "description": "ロイヤルティポイント残高の加算が正常に完了しました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "transaction_id",
                "previous_balance",
                "new_balance",
                "amount"
              ],
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "本リクエストにより作成された加算取引のID。",
                  "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                },
                "previous_balance": {
                  "type": "number",
                  "format": "double",
                  "description": "加算前の残高。",
                  "example": 100.5
                },
                "new_balance": {
                  "type": "number",
                  "format": "double",
                  "description": "加算後の残高。",
                  "example": 150.5
                },
                "amount": {
                  "type": "number",
                  "format": "double",
                  "description": "残高に加算された数。",
                  "example": 50
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "transaction_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                  "previous_balance": 100.5,
                  "new_balance": 150.5,
                  "amount": 50
                }
              }
            }
          }
        }
      },
      "200-get-client-point-balance": {
        "description": "ロイヤルティポイント残高が正常に取得されました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "description": "現在の残高を含むユーザーのロイヤルティポイントのリスト。",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "ロイヤルティポイントのSKUです。<a href=\"https://developers.xsolla.com/ja/api/liveops/loyalty-program-client/loyalty-create-order-with-item-for-loyalty-points#loyalty-program-client/loyalty-create-order-with-item-for-loyalty-points/t=request&in=path&path=loyalty_point_sku\">ロイヤルティポイントで支払う注文を作成する場合</a>など、他のAPIコールの`loyalty_point_sku`パラメータにこの値を渡してください。"
                      },
                      "name": {
                        "type": "string",
                        "description": "ロイヤリティポイント名。"
                      },
                      "description": {
                        "type": "string",
                        "description": "ロイヤルティポイントの説明。"
                      },
                      "image_url": {
                        "type": "string",
                        "description": "画像URL。"
                      },
                      "amount": {
                        "type": "number",
                        "description": "指定されたロイヤルティポイントの現在の残高。"
                      }
                    }
                  }
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "items": [
                    {
                      "sku": "d0750000-0000-0000-0000-000000000001",
                      "name": "Point name",
                      "description": "Point description",
                      "image_url": "https://example.com/icon.png",
                      "amount": 100
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "200-purchase-by-loyalty-points": {
        "description": "ロイヤルティポイントでの購入が正常に完了しました。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "order_id": {
                  "type": "integer",
                  "description": "注文IDです。"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "order_id": 641
                }
              }
            }
          }
        }
      },
      "422-purchase-by-loyalty-points": {
        "description": "ロイヤルティポイント残高が不足しているか、または対象のアイテムをロイヤルティポイントで購入することはできません。",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "integer",
                  "example": 9971
                },
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorMessage": {
                  "type": "string",
                  "description": "エラーメッセージです。",
                  "example": "[0401-9971]: Not enough loyalty points"
                }
              }
            },
            "examples": {
              "Not enough loyalty points": {
                "value": {
                  "errorCode": 9971,
                  "statusCode": 422,
                  "errorMessage": "[0401-9971]: Not enough loyalty points"
                }
              },
              "Not eligible item": {
                "value": {
                  "errorCode": 9970,
                  "statusCode": 422,
                  "errorMessage": "[0401-9970]: Item cannot be purchased using loyalty points"
                }
              }
            }
          }
        }
      }
    },
    "requestBodies": {
      "Promotions_redeem-coupon-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "type": "string",
                  "description": "一意のコードです。文字と数字が含まれます。",
                  "minLength": 1,
                  "maxLength": 128,
                  "example": "WINTER2021",
                  "default": "WINTER2021"
                },
                "selected_unit_items": {
                  "$ref": "#/components/schemas/Promotions_selected_unit_items"
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "external_id": "coupon_external_id",
                  "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"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "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"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_create-coupon-promocode-code": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                }
              }
            }
          }
        }
      },
      "Promotions_redeem-promo-code-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "type": "string",
                  "description": "プロモーションコードの一意のコード。文字と数字が含まれています。",
                  "minLength": 1,
                  "maxLength": 128,
                  "example": "SUMMER2021",
                  "default": "SUMMER2021"
                },
                "cart": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "カートID。",
                      "default": "current"
                    }
                  },
                  "required": [
                    "id"
                  ]
                },
                "selected_unit_items": {
                  "$ref": "#/components/schemas/Promotions_selected_unit_items"
                }
              }
            }
          }
        }
      },
      "Promotions_cancel-promo-code-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "カートID。",
                      "default": "current"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_promocode-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "discount": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
                    }
                  },
                  "example": {
                    "percent": "10.10"
                  }
                },
                "discounted_items": {
                  "$ref": "#/components/schemas/Promotions_discounted_items"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_promocode"
                },
                "item_price_conditions": {
                  "$ref": "#/components/schemas/item_price_conditions_promocode"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                }
              }
            },
            "examples": {
              "simple bonus": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "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"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "simple discount": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  }
                }
              },
              "personalized": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "ge",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with item price conditions": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_3",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_3",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_3",
                      "quantity": 2
                    }
                  ],
                  "item_price_conditions": [
                    {
                      "operator": "ge",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_promocode-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "discount": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
                    }
                  },
                  "example": {
                    "percent": "10.10"
                  }
                },
                "discounted_items": {
                  "$ref": "#/components/schemas/Promotions_discounted_items"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_promocode"
                },
                "item_price_conditions": {
                  "$ref": "#/components/schemas/item_price_conditions_promocode"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                }
              }
            },
            "examples": {
              "simple bonus": {
                "value": {
                  "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"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "simple discount": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  }
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with item price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_3",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_3",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_3",
                      "quantity": 2
                    }
                  ],
                  "item_price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_create-update-item-promotion": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "object",
                  "description": "プロモーション名。キーと値のペアを含む必要があります。\nキーは\"^[a-z]{{2}-[A-Z]{2}$\"フォーマットのロケール、値は文字列です。",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "example": {
                    "en-US": "Promotion",
                    "ru-RU": "Акция"
                  }
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "discount": {
                  "type": "object",
                  "properties": {
                    "percent": {
                      "type": "string",
                      "description": "割引率。\nアイテムの価格は、この割引率で計算された値で減少し、小数点以下2桁に四捨五入されます。",
                      "example": 10
                    }
                  },
                  "required": [
                    "percent"
                  ]
                },
                "items": {
                  "type": "array",
                  "items": {
                    "description": "割引の対象となるアイテムのリスト。",
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "アイテムSKU。",
                        "default": "elven_sword"
                      }
                    },
                    "required": [
                      "sku"
                    ]
                  }
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_discount"
                },
                "limits": {
                  "$ref": "#/components/schemas/Promotions_promotion_limits"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                },
                "is_enabled": {
                  "$ref": "#/components/schemas/Promotions_is_enabled"
                }
              },
              "required": [
                "items",
                "discount",
                "name"
              ]
            },
            "examples": {
              "simple": {
                "value": {
                  "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"
                    }
                  ],
                  "discount": {
                    "percent": "10.00"
                  },
                  "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": "Акция"
                  },
                  "is_enabled": true
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "24.00"
                  },
                  "items": [],
                  "is_enabled": true,
                  "name": {
                    "en-US": "Ork set discount",
                    "ru-RU": "Скидка на набор для орка"
                  },
                  "attribute_conditions": [
                    {
                      "type": "string",
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork"
                    },
                    {
                      "type": "number",
                      "attribute": "level",
                      "operator": "eq",
                      "value": "10",
                      "can_be_missing": true
                    }
                  ]
                }
              },
              "with price condition": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "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"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "24.00"
                  },
                  "items": [],
                  "name": {
                    "en-US": "Ork set discount",
                    "ru-RU": "Скидка на набор для орка"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ],
                  "is_enabled": true
                }
              }
            }
          }
        },
        "description": "プロモーションデータを持つオブジェクト。",
        "required": true
      },
      "Promotions_create-update-bonus-promotion": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "condition",
                "bonus",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "プロモーションID。プロジェクト内での一意のプロモーション識別子。"
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "type": "object",
                  "description": "プロモーション名。キーと値のペアを含む必要があります。キーは\"^[a-z]{2}-[A-Z]{2}$\"フォーマットのロケール、値は文字列です。",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "example": {
                    "en-US": "Summer season bonus",
                    "de-DE": "Sommersaison Bonus"
                  }
                },
                "condition": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "description": "プロモーションを適用するために、購入に含める必要があるアイテムのセット。このパラメータが`null`である場合、プロジェクト内のすべての購入にプロモーションが適用されます。",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "アイテムSKU。",
                        "default": "elven_sword"
                      }
                    }
                  }
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "bonus": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "description": "ユーザー購入時にボーナスとして追加されるアイテムのリスト。",
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "アイテムSKU。",
                        "default": "elven_shield"
                      },
                      "quantity": {
                        "type": "number",
                        "description": "アイテム数量。",
                        "default": 1
                      }
                    }
                  }
                },
                "limits": {
                  "$ref": "#/components/schemas/Promotions_promotion_limits"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_bonus"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                },
                "is_enabled": {
                  "$ref": "#/components/schemas/Promotions_is_enabled"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "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"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_1"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_1"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.year_1_season_pass"
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.mp_credits",
                      "quantity": 50000
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_2"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_2"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.0000"
                    },
                    {
                      "operator": "lt",
                      "value": "20.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.year_1_season_pass"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.mp_credits",
                      "quantity": 50000
                    }
                  ],
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_unique_catalog_offer-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "date_start": {
                  "$ref": "#/components/schemas/Promotions_coupon_date_start"
                },
                "date_end": {
                  "$ref": "#/components/schemas/Promotions_coupon_date_end"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "items": {
                  "type": "array",
                  "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "external_id": "offer_external_id",
                  "date_start": "2020-04-15T18:16:00+05:00",
                  "date_end": "2020-04-25T18:16:00+05:00",
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ]
                }
              },
              "limited": {
                "value": {
                  "external_id": "offer_external_id",
                  "date_start": "2020-04-15T18:16:00+05:00",
                  "date_end": "2020-04-25T18:16:00+05:00",
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ],
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1
                }
              }
            }
          }
        }
      },
      "Promotions_unique_catalog_offer-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "items": {
                  "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "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"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ]
                }
              },
              "limited": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ],
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1
                }
              }
            }
          }
        }
      },
      "personalized-catalog_create-update-body": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/user-attribute_personalized-catalog-body-required"
            },
            "example": {
              "name": "Ork race armor rule",
              "is_enabled": true,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "ork",
                  "type": "string",
                  "can_be_missing": false
                }
              ],
              "items": [
                {
                  "item_id": 1
                }
              ],
              "is_satisfied_for_unauth": false
            }
          }
        }
      },
      "reset-user-limits": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              }
            }
          }
        }
      },
      "reset-user-limits-flexible": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user_flexible"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              }
            }
          }
        }
      },
      "update-user-limits-flexible": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user",
                "available"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                },
                "available": {
                  "$ref": "#/components/schemas/User-limit_available_flexible"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              },
              "available": 0
            }
          }
        }
      },
      "update-user-limits-strict": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user",
                "available"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                },
                "available": {
                  "$ref": "#/components/schemas/User-limit_available"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              },
              "available": 1
            }
          }
        }
      },
      "create-value-point": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/admin_value_points-create"
            },
            "examples": {
              "default": {
                "summary": "Value point for reward chain",
                "value": {
                  "sku": "com.xsolla.reward_vp_1",
                  "name": {
                    "en": "Reward VP 1"
                  },
                  "is_enabled": true,
                  "description": {
                    "en": "Value points for reward system."
                  },
                  "long_description": {
                    "en": "Value points given to users to get new rewards in a reward chain."
                  },
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "media_list": [],
                  "order": 1
                }
              },
              "clan": {
                "summary": "Value point for clan reward chain",
                "value": {
                  "sku": "com.xsolla.clan_value_point_1",
                  "name": {
                    "en": "Clan Reward VP 1"
                  },
                  "is_enabled": true,
                  "description": {
                    "en": "Value points for clan reward system."
                  },
                  "long_description": {
                    "en": "Value points given to clans to get new rewards in a reward chain."
                  },
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "media_list": [],
                  "order": 3,
                  "is_clan": true
                }
              }
            }
          }
        }
      },
      "set-item-value-point-reward": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/item-value-point-reward-set"
            },
            "example": [
              {
                "sku": "com.xsolla.booster_1",
                "amount": 100
              },
              {
                "sku": "com.xsolla.booster_mega",
                "amount": 200
              }
            ]
          }
        }
      },
      "set-item-value-point-reward-for-patch": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/item-value-point-reward-set-for-patch"
            },
            "example": [
              {
                "sku": "booster_1",
                "amount": 100
              },
              {
                "sku": "booster_mega",
                "amount": 0
              }
            ]
          }
        }
      },
      "create-reward-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/create-reward-chain-model"
                },
                {
                  "$ref": "#/components/schemas/create-clan-reward-chain-model"
                }
              ]
            },
            "examples": {
              "default": {
                "summary": "Reward chain example",
                "value": {
                  "name": {
                    "en": "Reward chain"
                  },
                  "description": {
                    "en": "Reward chain description."
                  },
                  "long_description": {
                    "en": "Reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "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"
                    }
                  ],
                  "value_point": {
                    "sku": "com.xsolla.value_point_1"
                  },
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork",
                      "type": "string",
                      "can_be_missing": false
                    }
                  ],
                  "is_always_visible": true,
                  "is_reset_after_end": true
                }
              },
              "clan": {
                "summary": "Clan reward chain example",
                "value": {
                  "name": {
                    "en": "Clan reward chain"
                  },
                  "description": {
                    "en": "Clan reward chain description."
                  },
                  "long_description": {
                    "en": "Clan reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "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"
                    }
                  ],
                  "value_point": {
                    "sku": "com.xsolla.clan_value_point_1"
                  },
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "popup_header": {
                    "en": "How to unlock rewards"
                  },
                  "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."
                  },
                  "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "clan_type": "guild"
                }
              }
            }
          }
        }
      },
      "update-reward-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/update-reward-chain-model"
                },
                {
                  "$ref": "#/components/schemas/update-clan-reward-chain-model"
                }
              ]
            },
            "examples": {
              "default": {
                "summary": "Reward chain example",
                "value": {
                  "name": {
                    "en": "Reward chain"
                  },
                  "description": {
                    "en": "Reward chain description."
                  },
                  "long_description": {
                    "en": "Reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "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"
                    }
                  ],
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "step_id": 1,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "step_id": 2,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork",
                      "type": "string",
                      "can_be_missing": false
                    }
                  ],
                  "is_always_visible": true,
                  "is_reset_after_end": true
                }
              },
              "clan": {
                "summary": "Clan reward chain example",
                "value": {
                  "name": {
                    "en": "Clan reward chain"
                  },
                  "description": {
                    "en": "Clan reward chain description."
                  },
                  "long_description": {
                    "en": "Clan reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "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"
                    }
                  ],
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "step_id": 1,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "step_id": 2,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "popup_header": {
                    "en": "How to unlock rewards"
                  },
                  "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."
                  },
                  "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "clan_type": "guild"
                }
              }
            }
          }
        }
      },
      "create-daily-chain": {
        "content": {
          "application/json": {
            "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"
                }
              ]
            },
            "examples": {
              "calendar_hard": {
                "summary": "Daily reward with `calendar_hard` type",
                "value": {
                  "name": {
                    "en": "New daily reward",
                    "ru": "Новая ежедневная награда"
                  },
                  "description": {
                    "en": "New daily reward short description"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "calendar_hard"
                }
              },
              "rolling_skippable": {
                "summary": "Daily reward with `rolling_skippable` type",
                "value": {
                  "name": {
                    "en": "New skippable login reward"
                  },
                  "description": {
                    "en": "New skippable login reward short description"
                  },
                  "order": 1,
                  "date_start": "2023-05-01T10:00:00+05:00",
                  "date_end": "2023-05-31T10:00:00+05:00",
                  "is_enabled": true,
                  "is_recurrent": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "saturday_reward_item_six",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 7,
                      "items": [
                        {
                          "sku": "sunday_reward_item_seven",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_skippable"
                }
              },
              "rolling_unskippable": {
                "summary": "Daily reward with `rolling_unskippable` type",
                "value": {
                  "name": {
                    "en": "New unskippable login reward"
                  },
                  "description": {
                    "en": "New unskippable login reward short description"
                  },
                  "order": 2,
                  "date_start": "2023-06-01T10:00:00+05:00",
                  "date_end": "2023-06-30T10:00:00+05:00",
                  "is_enabled": true,
                  "is_recurrent": false,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_unskippable"
                }
              }
            }
          }
        }
      },
      "update-daily-chain": {
        "content": {
          "application/json": {
            "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"
                }
              ]
            },
            "examples": {
              "calendar_hard": {
                "summary": "Daily reward with `calendar_hard` type",
                "value": {
                  "name": {
                    "en": "Updated daily reward",
                    "ru": "Обновленная ежедневная награда"
                  },
                  "description": {
                    "en": "Updated daily reward description"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_2",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 10,
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "vg_not_shown_in_store",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 8,
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "calendar_hard"
                }
              },
              "rolling_skippable": {
                "summary": "Daily reward with `rolling_skippable` type",
                "value": {
                  "name": {
                    "en": "Updated login reward"
                  },
                  "description": {
                    "en": "Updated login reward description"
                  },
                  "order": 4,
                  "date_start": "2023-08-01T10:00:00+05:00",
                  "date_end": "2023-08-31T10:00:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "saturday_reward_item_six",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 7,
                      "items": [
                        {
                          "sku": "sunday_reward_item_seven",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_skippable"
                }
              },
              "rolling_unskippable": {
                "summary": "Daily reward with `rolling_unskippable` type",
                "value": {
                  "name": {
                    "en": "Updated unskippable login reward"
                  },
                  "description": {
                    "en": "Updated unskippable login reward description"
                  },
                  "order": 2,
                  "date_start": "2023-09-01T10:00:00+05:00",
                  "date_end": "2023-09-30T10:00:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_unskippable"
                }
              }
            }
          }
        }
      },
      "create-offer-chain": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/create-offer-chain-model"
            },
            "examples": {
              "default": {
                "summary": "Non-personalized offer chain example",
                "value": {
                  "name": {
                    "en": "New offer chain",
                    "ru": "Новая цепочка предложений",
                    "de": "Neue Angebotskette",
                    "fr": "Nouvelle chaîne d'offres",
                    "it": "Nuova catena di offerte"
                  },
                  "description": {
                    "en": "A short description of a regular offer chain",
                    "ru": "Краткое описание обычной цепочки предложений",
                    "de": "Eine kurze Beschreibung einer regulären Angebotskette",
                    "fr": "Une brève description d'une chaîne d'offres régulière",
                    "it": "Una breve descrizione di una catena di offerte regolare"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_3_paid_virtual_currency_package_sku",
                          "quantity": 5
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_4_free_bundle_sku",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "recurrent": {
                "summary": "Recurrent offer chain example",
                "value": {
                  "name": {
                    "en": "New recurrent offer chain",
                    "ru": "Новая рекуррентная цепочка предложений",
                    "de": "Neue wiederkehrende Angebotskette",
                    "fr": "Nouvelle chaîne d'offres récurrente",
                    "it": "Nuova catena di offerte ricorrente"
                  },
                  "description": {
                    "en": "A recurring offer chain that resets weekly on Wednesdays at 07:00 AM GMT+3",
                    "ru": "Рекуррентная цепочка предложений, которая сбрасывается еженедельно по средам в 07:00 по GMT+3",
                    "de": "Eine wiederkehrende Angebotskette, die wöchentlich mittwochs um 07:00 Uhr GMT+3 zurückgesetzt wird",
                    "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"
                  },
                  "order": 1,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": "2025-04-25T18:16:00+05:00",
                  "is_enabled": false,
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 3,
                    "time": "07:00:00+03:00"
                  },
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 3
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "personalized-default": {
                "summary": "Offer chain displayed when no personalized offer chains are found example",
                "value": {
                  "name": {
                    "en": "New personalized default offer chain",
                    "ru": "Новая персонализированная цепочка предложений по умолчанию",
                    "de": "Neue personalisierte Standard-Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                    "it": "Nuova catena di offerte personalizzata predefinita"
                  },
                  "description": {
                    "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                    "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                    "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                    "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"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_default",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_default",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_default",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false
                }
              },
              "personalized-with-conditions": {
                "summary": "Personalized offer chain with user attribute conditions example",
                "value": {
                  "name": {
                    "en": "New personalized offer chain",
                    "ru": "Новая персонализированная цепочка предложений",
                    "de": "Neue personalisierte Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée",
                    "it": "Nuova catena di offerte personalizzata"
                  },
                  "description": {
                    "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",
                    "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                    "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",
                    "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"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_for_elves_level_10_and_above",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false,
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "elf",
                      "type": "string",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "level",
                      "operator": "ge",
                      "value": "10",
                      "type": "number",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "10_level_up_date",
                      "operator": "le",
                      "value": "2026-01-01T00:00:00",
                      "type": "date",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "update-offer-chain": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/modify-offer-chain-model"
            },
            "examples": {
              "default": {
                "summary": "Default example",
                "value": {
                  "name": {
                    "en": "Updated offer chain",
                    "ru": "Обновляемая цепочка предложений",
                    "de": "Aktualisierte Angebotskette",
                    "fr": "Chaîne d'offres mise à jour",
                    "it": "Catena di offerte aggiornata"
                  },
                  "description": {
                    "en": "A short description of a regular offer chain",
                    "ru": "Краткое описание обычной цепочки предложений",
                    "de": "Eine kurze Beschreibung einer regulären Angebotskette",
                    "fr": "Une brève description d'une chaîne d'offres régulière",
                    "it": "Una breve descrizione di una catena di offerte regolare"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_3_paid_virtual_currency_package_sku",
                          "quantity": 5
                        }
                      ]
                    },
                    {
                      "step_id": 9,
                      "step_number": 4,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_4_free_bundle_sku",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "recurrent": {
                "summary": "Recurrent offer chain example",
                "value": {
                  "id": 1,
                  "name": {
                    "en": "Updated recurrent offer chain",
                    "ru": "Обновляемая рекуррентная цепочка предложений",
                    "de": "Aktualisierte wiederkehrende Angebotskette",
                    "fr": "Chaîne d'offres récurrente mise à jour",
                    "it": "Catena di offerte ricorrente aggiornata"
                  },
                  "description": {
                    "en": "Updated offer chain that becomes recurrent and resets monthly on the 2nd day at 03:00 AM GMT+8",
                    "ru": "Обновляемая цепочка предложений, которая становится рекуррентной и сбрасывается ежемесячно во 2-й день в 03:00 по GMT+8",
                    "de": "Aktualisierte Angebotskette, die wiederkehrend wird und monatlich am 2. Tag um 03:00 Uhr GMT+8 zurückgesetzt wird",
                    "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"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T17:16:00+05:00",
                  "date_end": "2025-04-25T19:16:00+05:00",
                  "is_enabled": true,
                  "recurrent_schedule": {
                    "interval_type": "monthly",
                    "day_of_month": 2,
                    "time": "03:00:00+08:00"
                  },
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_bundle_sku",
                          "quantity": 6
                        }
                      ]
                    },
                    {
                      "step_number": 1,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    }
                  ]
                }
              },
              "personalized-default": {
                "summary": "Personalized default offer chain example",
                "value": {
                  "name": {
                    "en": "New personalized default offer chain",
                    "ru": "Новая персонализированная цепочка предложений по умолчанию",
                    "de": "Neue personalisierte Standard-Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                    "it": "Nuova catena di offerte personalizzata predefinita"
                  },
                  "description": {
                    "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                    "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                    "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                    "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"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_default",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_default",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_id": 9,
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_default",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false
                }
              },
              "personalized-with-conditions": {
                "summary": "Personalized offer chain with user attribute conditions example",
                "value": {
                  "name": {
                    "en": "New personalized offer chain",
                    "ru": "Новая персонализированная цепочка предложений",
                    "de": "Neue personalisierte Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée",
                    "it": "Nuova catena di offerte personalizzata"
                  },
                  "description": {
                    "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",
                    "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                    "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",
                    "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"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 8,
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_for_elves_level_10_and_above",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false,
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "elf",
                      "type": "string",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "level",
                      "operator": "ge",
                      "value": "10",
                      "type": "number",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "10_level_up_date",
                      "operator": "le",
                      "value": "2026-01-01T00:00:00",
                      "type": "date",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "update-upsell": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Upsell-model"
                },
                {
                  "$ref": "#/components/schemas/Upsell-model-not-fixed-list"
                }
              ]
            },
            "examples": {
              "fixed_list": {
                "summary": "Example of upsell with fixed list of items",
                "value": {
                  "is_enabled": true,
                  "type": "fixed_list",
                  "items": [
                    "game_sku_1",
                    "game_sku_2",
                    "game_sku_3"
                  ]
                }
              },
              "special_type_promotions": {
                "summary": "Example of upsell with promotion items only",
                "value": {
                  "is_enabled": true,
                  "type": "only_promotions",
                  "items": []
                }
              },
              "special_type_most_sellable": {
                "summary": "Example of upsell with most sellable items for last 30 days",
                "value": {
                  "is_enabled": true,
                  "type": "most_sellable",
                  "items": []
                }
              }
            }
          }
        }
      },
      "create-upsell": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Upsell-model"
                },
                {
                  "$ref": "#/components/schemas/Upsell-model-not-fixed-list"
                }
              ]
            },
            "examples": {
              "fixed_list": {
                "summary": "Example of upsell with fixed list of items",
                "value": {
                  "is_enabled": true,
                  "type": "fixed_list",
                  "items": [
                    "game_sku_1",
                    "game_sku_2",
                    "game_sku_3"
                  ]
                }
              },
              "special_type_promotions": {
                "summary": "Example of upsell with promotion items only",
                "value": {
                  "is_enabled": true,
                  "type": "only_promotions",
                  "items": []
                }
              },
              "special_type_most_sellable": {
                "summary": "Example of upsell with most sellable items for last 30 days",
                "value": {
                  "is_enabled": true,
                  "type": "most_sellable",
                  "items": []
                }
              }
            }
          }
        }
      },
      "debit-point-balance": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "amount",
                "reason"
              ],
              "properties": {
                "amount": {
                  "type": "number",
                  "format": "double",
                  "description": "引き落とすロイヤルティポイントの数量。正の値を指定する必要があります。",
                  "example": 50
                },
                "reason": {
                  "type": "string",
                  "description": "自由記述形式による残高変動の理由（例：報酬、補償、手動調整など）。",
                  "example": "Manual adjustment"
                }
              }
            },
            "examples": {
              "request": {
                "value": {
                  "amount": 50,
                  "reason": "Manual adjustment"
                }
              }
            }
          }
        }
      },
      "credit-point-balance": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "amount",
                "reason"
              ],
              "properties": {
                "amount": {
                  "type": "number",
                  "format": "double",
                  "description": "加算するロイヤルティポイントの数量。正の値を指定する必要があります。",
                  "example": 50
                },
                "reason": {
                  "type": "string",
                  "description": "自由記述形式による残高変動の理由（例：報酬、補償、手動調整など）。",
                  "example": "Manual adjustment"
                }
              }
            },
            "examples": {
              "request": {
                "value": {
                  "amount": 50,
                  "reason": "Manual adjustment"
                }
              }
            }
          }
        }
      }
    }
  },
  "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": [
        "promotion-limits-overview",
        "user-limits-admin"
      ]
    },
    {
      "name": "リワードチェーン & バリューポイント",
      "tags": [
        "reward-chain-value-points-overview",
        "reward-chain-value-points-admin",
        "reward-chain-client",
        "clan-reward-chain-client"
      ]
    },
    {
      "name": "デイリーチェーン",
      "tags": [
        "daily-chain-overview",
        "daily-chain-admin",
        "daily-chain-client"
      ]
    },
    {
      "name": "オファーチェーン",
      "tags": [
        "offer-chains-overview",
        "offer-chain-admin",
        "offer-chain-client"
      ]
    },
    {
      "name": "アップセル",
      "tags": [
        "upsell-overview",
        "upsell-admin",
        "upsell-client"
      ]
    },
    {
      "name": "LOYALTY AS SERVICE",
      "tags": [
        "loyalty-program-overview",
        "loyalty-program-admin",
        "loyalty-program-client"
      ]
    }
  ]
}