# LiveOps API

# 概要 {% #overview %}

* **バージョン:** 2.0.0
* **サーバー**: `https://store.xsolla.com/api`
* **[メールでのお問い合わせ](mailto:integration@xsolla.com)**
* **お問い合わせURL：** https://xsolla.com/
* **必要なTLSバージョン：** 1.2

LiveOpsは、プロモーションやパーソナライズされたオファーを通じて、プレイヤーの継続的なエンゲージメントを高めるためのツールキットです。

APIを使用して、以下の機能を管理できます：

* **プロモーション** — クーポン、プロモコード、割引、ボーナスキャンペーンを作成または管理します。
* **個人用設定** — アイテムカタログの表示や、特定の認証済みユーザーのみにプロモーションを適用するための条件を指定します。
* **プロモーション制限** — ユーザーがプロモーションを利用できる回数の上限を設定し、これらの制限を定期的にリセットするスケジュールを構成します。
* **報酬チェーンとバリューポイント** — バリューポイントの蓄積に連動した報酬進行度を構成します。
* **デイリーチェーン** — 定期的なログインを促すために、繰り返し受け取れるデイリー報酬を設定します。
* **オファーチェーン** — ステップごとの価格設定や無料リワードのオプションを含む、段階的な購入オファーを構築します。
* **アップセル** — ユーザーに対して、追加の価値を持つアイテムの購入を促す販売手法です。

## APIコール {% #api-calls %}

APIは**次のグループ**に分かれています：

* **<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)によって認証されます。
* **<nt>Client</nt>** — 認証済みエンドユーザーの代理として、利用可能なプロモーションの取得、アクティブなチェーンの取得、コードの引き換え、よび報酬の請求を実行するAPIコール。ユーザーのJWTにより認証を行います。

# 認証 {% #authentication %}

APIコールには、ユーザーまたはプロジェクトのいずれかに代わって認証が必要です。使用される認証スキームは、各コールの説明の**セキュリティ**セクションに指定されています。

## ユーザーのJWTを使用した認証 {% #authentication-using-users-jwt %}

ユーザーのJWTを使用した認証は、ブラウザ、モバイルアプリケーション、またはゲームからリクエストが送信される場合に使用されます。デフォルトでは、`XsollaLoginUserJWT`スキームが適用されます。トークンの作成方法の詳細については、[エクソーラログインAPIに関するドキュメント](/ja/api/login/authentication-schemes#getting-user-token)を参照してください。

トークンは`Authorization`ヘッダーに次の形式で渡されます：`Authorization: Bearer <user_JWT>`。ここで`<user_JWT>`はユーザートークンです。このトークンによってユーザーが特定され、パーソナライズされたデータへのアクセスが可能になります。

別の方法として、[決済UIを開くためのトークン](/ja/api/pay-station/token/create-token)を使用することも可能です。

## 基本HTTP認証 {% #basic-http-authentication %}

基本HTTP認証は、ユーザーのブラウザやモバイルアプリケーションからではなく、サーバーから直接APIコールが送信される場合のサーバー間のやり取りに使用されます。通常、[APIキーを使用したHTTP基本認証](/ja/api/getting-started/#api_keys_overview)が使用されます。

<div class="note"><b>注意</b><br><br>APIキーは機密性高いため、クライアントアプリケーション側での保存および使用は厳禁とします。</div>

基本的なサーバーサイド認証では、すべてのAPIリクエストに以下のヘッダーを含める必要があります：

- `basicAuth`の場合 — `Authorization: Basic <your_authorization_basic_key>`。ここで`your_authorization_basic_key`は、Base64でエンコードされた`project_id:api_key`ペアです。
- `basicMerchantAuth`の場合 — `Authorization: Basic <your_authorization_basic_key>`。ここで`your_authorization_basic_key`は、Base64でエンコードされた`merchant_id:api_key`ペアです。

パラメータの値は[パブリッシャーアカウント](https://publisher.xsolla.com/)で確認できます：

- `merchant_id`は次の場所に表示されます：
  - **会社設定 > 会社**。
  - パブリッシャーアカウントの任意のページのブラウザアドレスバーのURLに。URLの形式は以下の通りです： `https://publisher.xsolla.com/<merchant_id>`。
- `project_id`は次の場所に表示されます：
  - パブリッシャーアカウントのプロジェクト名の横に。
  - パブリッシャーアカウントでプロジェクトを操作しているときのブラウザアドレスバーのURLに。URLの形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`。
- `api_key`は作成時にのみパブリッシャーアカウントに表示され、あなたの側で安全に保管する必要があります。APIキーは次のセクションで作成できます：
  - [会社設定 > APIキー](https://publisher.xsolla.com/0/settings/api_key)
  - [プロジェクト設定 > APIキー](https://publisher.xsolla.com/0/projects/0/edit/api_key)

<div class="notice"><b>注意</b><br><br>必要なAPIコールに<code>project_id</code>パスパラメータが含まれていない場合、認証を行うには、会社のすべてのプロジェクト共通で有効なAPIキーを使用してください。</div>

APIキーの操作に関する詳細は、[APIリファレンス](/ja/api/getting-started/#api_keys_overview)を参照してください。

## ゲストアクセスをサポートする認証 {% #authentication-with-guest-access-support %}

`AuthForCart`認証スキームはカートでの購入用であり、以下の2つのモードに対応しています：

1. **ユーザーのJWTによる認証。** トークンは`Authorization`ヘッダーで次の形式で渡されます：`Authorization: Bearer <user_JWT>`、ここで`<user_JWT>`はユーザートークンです。このトークンによってユーザーが特定され、パーソナライズされたデータへのアクセスが可能になります。あるいは、[決済UIを開くためのトークン](/ja/api/pay-station/token/create-token)を使用することもできます。

2. **認証ヘッダーを使用しない簡易モード。** このモードは未認証ユーザーにのみ使用され、[ゲームキー販売](/ja/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users)にのみ適用できます。リクエストにはトークンの代わりに、以下のヘッダーを含める必要があります：
   - リクエストIDを含む`x-unauthorized-id`
   - Base64でエンコードされたユーザーのメールアドレスを含む`x-user`

## 関連リンク {% #authentication-useful-links %}

- [相互作用モデルに基づくAPIコール](/ja/api/getting-started/#api_interaction_model)
- [エンドポイントタイプ](/ja/api/getting-started/#api_endpoint_types)
- [エラー処理](/ja/api/getting-started/#api_errors_handling)
- [APIキー](/ja/api/getting-started/#api_keys_overview)

# 主要なエンティティ構造 {% #core-entity-structure %}

すべてのタイプ（仮想アイテム、バンドル、仮想通貨、キー）のアイテムは、同様のデータ構造を使用しています。この基本構造を理解することで、APIの利用が簡素化され、ドキュメントをよりスムーズに読み進められるようになります。

<div class="note"><b>注意</b><br><br>一部のコールには追加のフィールドが含まれる場合がありますが、基本構造が変わることはありません。</div>

**識別**

- `merchant_id` — [パブリッシャーアカウント](https://publisher.xsolla.com/)における会社ID
- `project_id` — パブリッシャーアカウントにおけるプロジェクトID
- `sku` — アイテムSKU、プロジェクト内で一意です

**ストア表示**

- `name` — アイテム名
- `description` — アイテム説明
- `image_url` — 画像URL
- `is_enabled` — アイテムの可用性
- `is_show_in_store` — アイテムがカタログに表示されるかどうか

カタログ内のアイテムの可用性管理に関する詳細は、[ドキュメント](/ja/items-catalog/catalog-features/items-availability/)を参照してください。

**組織**

- `type` — アイテムタイプ、例：仮想アイテム（`virtual_item`）またはバンドル（`bundle`）
- `groups` — アイテムが属するグループ
- `order` — カタログ内の表示順序

**販売条件**

- `prices` — 実際通貨または仮想通貨での価格
- `limits` — 購入制限
- `periods` — 可用期間
- `regions` — 地域別制限

**主要なエンティティ構造の例：**

```json
{
  "attributes": [],
  "bundle_type": "virtual_currency_package",
  "content": [
    {
      "description": {
        "en": "Main in-game currency"
      },
      "image_url": "https://.../image.png",
      "name": {
        "en": "Crystals",
        "de": "Kristalle"
      },
      "quantity": 500,
      "sku": "com.xsolla.crystal_2",
      "type": "virtual_currency"
    }
  ],
  "description": {
    "en": "Crystals x500"
  },
  "groups": [],
  "image_url": "https://.../image.png",
  "is_enabled": true,
  "is_free": false,
  "is_show_in_store": true,
  "limits": {
    "per_item": null,
    "per_user": null,
    "recurrent_schedule": null
  },
  "long_description": null,
  "media_list": [],
  "name": {
    "en": "Medium crystal pack"
  },
  "order": 1,
  "periods": [
    {
      "date_from": null,
      "date_until": "2020-08-11T20:00:00+03:00"
    }
  ],
  "prices": [
    {
      "amount": 20,
      "country_iso": "US",
      "currency": "USD",
      "is_default": true,
      "is_enabled": true
    }
  ],
  "regions": [],
  "sku": "com.xsolla.crystal_pack_2",
  "type": "bundle",
  "vc_prices": []
}
```

# 基本的な購入フロー {% #basic-purchase-flow %}

エクソーラAPIを使用すると、ゲーム内ストアのロジックを実装でき、アイテムカタログの取得、カートの管理、注文の作成、そのステータスの追跡が可能です。統合シナリオに応じて、APIコールは**管理者**と**カタログ**のサブセクションに分かれ、異なる[認証スキーム](/ja/api/catalog/authentication)を使用します。

以下の例は、アイテムの作成から購入に至るまで、ストアのセットアップおよび運用の基本フローを示しています。

## アイテムおよびグループの作成（管理者向け） {% #create-items-and-groups-admin %}

仮想アイテム、バンドル、仮想通貨など、ストアのアイテムカタログを作成します。

APIコールの例：
- [仮想アイテムを作成する](/ja/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)
- [バンドルを作成する](/ja/api/catalog/bundles-admin/admin-create-bundle)
- [仮想通貨を作成する](/ja/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)

## プロモーション、チェーン、および制限の設定（管理者向け） {% #set-up-promotions-chains-and-limits-admin %}

割引、ボーナス、デイリー報酬、またはオファーチェーンなど、ユーザー獲得および収益化のためのツールを設定します。

APIコールの例：
- [ボーナスプロモーションを作成する](/ja/api/liveops/promotions-bonuses/create-bonus-promotion)
- [デイリー報酬を作成する](/ja/api/liveops/daily-chain-admin/admin-create-daily-chain)
- [ユニークなカタログオファープロモーションを作成する](/ja/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)

## アイテム情報の取得（クライアント向け） {% #get-item-information-client %}

アプリケーション内でのアイテム表示を設定します。

<div class="notice">
  <b>注意</b><br><br>
    ユーザーカタログを構築するために管理サブセクションのAPIコールを使用しないでください。これらのAPIコールには<a href="https://developers.xsolla.com/ja/api/getting-started/#api_rate_limits" target="_blank">レート制限</a>があり、ユーザーのトラフィックを対象としていません。
</div>

<br>

APIコールの例：
- [仮想アイテムリストを取得する](/ja/api/catalog/virtual-items-currency-catalog/get-virtual-items)
- [アイテムグループリストを取得する](/ja/api/catalog/virtual-items-currency-catalog/get-item-groups)
- [バンドルリストを取得する](/ja/api/catalog/bundles-catalog/get-bundle-list)
- [販売可能なアイテムリストを取得する](/ja/api/catalog/common-catalog/get-sellable-items)

<div class="note">
  <b>注意</b><br><br>
    デフォルトでは、カタログAPIコールはリクエスト時にストアで現在利用可能なアイテムを返します。まだ利用可能でない、または利用できなくなったアイテムを取得するには、カタログリクエストにパラメータ<code>"show_inactive_time_limited_items": 1</code>を含めてください。
</div>

## アイテムの販売 {% #sell-items %}

アイテムは以下の方法で販売できます：
- 迅速な購入 — 1つのSKUを複数回販売します。
- カート購入 — ユーザーがアイテムをカートに追加し、アイテムを削除し、単一の注文内で数量を更新します。

アイテムが実際のお金ではなく仮想通貨で購入された場合は、[仮想通貨で購入した指定アイテムで注文を作成する](/ja/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency)APIコールを使用してください。当該APIコールの実行時に課金処理が行われるため、決済UIを表示する必要はありません。

無料アイテムの購入には、[指定した無料アイテムで注文を作成する](/ja/api/catalog/free-item/create-free-order-with-item)APIコールまたは[無料カートで注文を作成する](/ja/api/catalog/free-item/create-free-order)APIコールを使用してください。決済UIを表示する必要はありません。注文は即時に<code>done</code>ステータスに設定されます。

### 迅速な購入 {% #fast-purchase %}

クライアント側のAPIコールを使用して、[指定したアイテムで注文を作成](/ja/api/catalog/payment-client-side/create-order-with-item)します。このコールは、決済UIを開くために使用するトークンを返します。

<div class="note">
  <b>注意</b><br><br>
    割引情報は決済UIでのみユーザーに提供されます。プロモーションコードはサポートされていません。
</div>

### カート購入 {% #cart-purchase %}

カートの設定と購入は、クライアントまたはサーバー側で実行できます。

**クライアント側でのカートのセットアップと購入**

アイテムの追加および削除のロジックは、独自に実装してください。カートを設定するためのAPIを呼び出す前は、購入にどのプロモーションが適用されるかに関する情報は取得できません。つまり、合計金額や、追加されるボーナスアイテムの詳細を事前に知ることはできません。

以下のカートロジックを実装します：
1. プレイヤーがカートにアイテムを入れた後、[カートにアイテムを入れる](/ja/api/shop-builder/operation/cart-fill/)APIコールを使用します。このコールは、選択されたアイテムに関する現在の情報（割引前後の価格、ボーナスアイテム）を返します。
2. ユーザーのアクションに基づいてカートの内容を更新します：
   - アイテムの追加または数量の変更を行うには、[カートIDでカートアイテムを更新する](/ja/api/shop-builder/operation/put-item-by-cart-id/)APIコールを使用します。
   - アイテムを削除するには、[カートIDでカートアイテムを削除する](/ja/api/shop-builder/operation/delete-item-by-cart-id/)APIコールを使用します。

<div class="note">
  <b>注意</b><br><br>
    カートの現在のステータスを取得するには、現在のユーザーのカートを取得するAPIコールを使用してください。
</div>

3. [現在のカートからすべてのアイテムで注文を作成する](/ja/api/shop-builder/operation/create-order/)APIコールを使用します。このコールは注文IDと決済トークンを返します。新しく作成された注文はデフォルトで<code>new</code>ステータスに設定されます。

**サーバー側でのカートのセットアップと購入**

カートへの変更ごとにAPIコールを伴う必要があるため、この設定オプションではカートの設定に時間がかかる場合があります。

以下のカートロジックを実装します：
1. プレイヤーがカートにアイテムを入れた後、[カートにアイテムを入れる](/ja/api/catalog/cart-server-side)APIコールを使用します。このコールは、選択されたアイテムに関する現在の情報（割引前後の価格、ボーナスアイテム）を返します。
2. [現在のカートのすべてのアイテムで注文を作成する](/ja/api/shop-builder/operation/create-order/)APIコールを使用します。このコールは、注文IDと支払いトークンを返します。新しく作成された注文は、デフォルトで<code>new</code>ステータスに設定されます。

## 決済UIを開く {% #open-payment-ui %}

返されたトークンを使用して、新しいウィンドウで決済UIを開きます。決済UIを開くその他の方法は、[ドキュメント](/ja/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui)に記載されています。

| アクション                          | エンドポイント                                                     |
|:--------------------------------|:--------------------------------------------------------------------------|
| 本番環境で開きます。 | <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |
| サンドボックスモードで開きます。           | <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |

<div class="note">
  <b>注意</b><br><br>
    開発およびテスト中はサンドボックスモードを使用してください。テスト購入では実際のアカウントに料金は発生しません。<a href="https://developers.xsolla.com/ja/dev-resources/testing/test-cards/">テスト用銀行カード</a>を使用できます。

    最初の実際の支払いが行われた後、厳格なサンドボックス決済ポリシーが適用されます。サンドボックスモードでの支払いは、[パブリッシャーアカウント > 会社設定 > ユーザー](https://publisher.xsolla.com/0/settings/users)で指定されたユーザーのみが利用可能です。

    実際通貨で仮想通貨やアイテムを購入するには、エクソーラとのライセンス契約を締結する必要があります。これを行うには、[パブリッシャーアカウント](https://publisher.xsolla.com/)で**契約と税金 > 契約**に移動し、契約フォームを記入して確認を待ちます。契約の審査には最大3営業日かかる場合があります。
</div>

サンドボックスモードを有効または無効にするには、迅速な購入およびカート購入のリクエストで`sandbox`パラメータの値を変更します。サンドボックスモードはデフォルトでオフになっています。

可能な注文状況：
- `new` — 注文作成済み
- `paid` — 支払い受領済み
- `done` — アイテム付与完了
- `canceled` — 注文キャンセル済み
- `expired` — 注文期限切れ

以下のいずれかの方法を使用して、注文ステータスを追跡します：
- [サーバーサイドで設定されたウェーブフック](/ja/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)
- [ショートポーリング](/ja/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_short_polling)
- [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)

## 関連リンク {% #basic-purchase-flow-useful-links %}

- 認証
- [インタラクションモデルに基づくAPIコール](/ja/api/catalog/authentication)
- [決済テスト](/ja/dev-resources/testing/general-info/#general_overview)
- [注文状況の追跡設定](/ja/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)
- [ウェブフック](/ja/webhooks/overview)
- [レート制限](/ja/api/login/rate-limits)
- [エラー処理](/ja/api/getting-started/#api_errors_handling)
- [APIキー](/ja/api/getting-started/#api_keys_overview)

# ページネーション {% #pagination %}

大規模なレコードセットを返すAPIコール（カタログを構築する場合など）では、データがページ分割されて返されます。ページネーションは、単一のAPI応答で返されるアイテム数を制限し、下一ページのデータを順次取得できるようにするための仕組みです。

返されるアイテム数を制御するには、以下のパラメータを使用します：

- `limit` — 1ページあたりのアイテム件数
- `offset` — ページ上の最初のアイテムのインデックス（番号付けは0から始まります）
- `has_more` — 次のページが利用可能かどうかを示します
- `total_items_count` — アイテムの総数

リクエスト例：

```
GET /items?limit=20&offset=40
```

応答例：

```json
{
  "items": [...],
  "has_more": true,
  "total_items_count": 135
}
```

応答が`has_more = false`を返すまで、後続のリクエストを送信することをお勧めします。

# 日付と時刻の形式 {% #date-and-time-format %}

日付と時間の値は、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)フォーマットで渡されます。

以下がサポートされています：

- UTCオフセット
- アイテムの表示に時間制限がない場合は`null`値
- 一部のフィールドで使用される[Unixタイムスタンプ](https://www.unixtimestamp.com/)（秒単位）

フォーマット：`YYYY-MM-DDTHH:MM:SS±HH:MM`

例：`2026-03-16T10:00:00+03:00`

# ローカリゼーション {% #localization %}

エクソーラは、アイテム名や説明などのユーザー向けフィールドのローカライズをサポートしています。ローカライズされた値は、言語コードをキーとするオブジェクトとして渡されます。サポートされている言語の完全なリストは、[ドキュメント](/ja/doc/shop-builder/references/supported-languages/)で確認できます。

**サポートされているフィールド**

次のパラメータに対してローカリゼーションを指定できます：

- `name`
- `description`
- `long_description`

**ロケール形式**

ロケールキーは、以下のいずれかのフォーマットで指定できます：

- 2文字の言語コード：`en`、`ru`
- 5文字の言語コード： `en-US`、`ru-RU`、`de-DE`

**例**

2文字の言語コードの例：

```json
{
  "name": {
    "en": "Starter Pack",
    "ru": "Стартовый набор"
  }
}
```

5文字の言語コードの例：

```json
{
  "description": {
    "en-US": "Premium bundle",
    "de-DE": "Premium-Paket"
  }
}
```

# エラー応答フォーマット {% #error-response-format %}

エラーが発生した場合、APIはHTTPステータスとJSON応答本文を返します。ストア関連のエラーの全リストは[ドキュメント](/ja/dev-resources/references/errors/store-errors/)で確認できます。

**応答例：**

```json
{
  "errorCode": 1102,
  "errorMessage": "Validation error",
  "statusCode": 422,
  "transactionId": "c9e1a..."
}
```

- `errorCode` — エラーコード。
- `errorMessage` — エラーの簡潔な説明。
- `statusCode` — HTTPレスポンスステータス。
- `transactionId` — リクエストID。一部の場合にのみ返されます。
- `errorMessageExtended` — リクエストパラメータなどの追加エラー詳細。一部の場合にのみ返されます。

**拡張応答例：**

```json
{
  "errorCode": 7001,
  "errorMessage": "Chain not found",
  "errorMessageExtended": {
    "chain_id": "test_chain_id",
    "project_id": "test_project_id",
    "step_number": 2
  },
  "statusCode": 404
}
```

**共通のHTTPステータスコード**

- `400` — 無効なリクエスト
- `401` — 認証エラー
- `403` — 権限不足
- `404` — リソースが見つかりません
- `422` — 検証エラー
- `429` — レート制限超過

**推奨事項**

- HTTPステータスと応答本文を一緒に処理します。
- `errorCode`を使用してアプリケーションロジックに関連するエラーを処理します。
- `transactionId`を使用して、エラーを分析する際にリクエストをより迅速に特定します。

Version: 2.0.0

## Servers

```
https://store.xsolla.com/api
```

## Security

### basicAuth

サーバー側からのAPIコールには、`basicAuth`認証スキームを使用します。すべてのAPIリクエストには
`Authorization: Basic <your_authorization_basic_key>`ヘッダーを含める必要があります。
ここで`your_authorization_basic_key`は`project_id:api_key`
のペアをBase64標準に従ってエンコードしたものです。

必要に応じて、`project_id`の代わりに`merchant_id`を使用することができます。機能には影響しません。

[パブリッシャーアカウント](https://publisher.xsolla.com/)に移動して、パラメータの値を確認します：

* `merchant_id`は次の場所に表示されます：
  * **会社設定 > 会社**セクション
  * パブリッシャーアカウントの任意のページのブラウザアドレスバーのURLに表示されます。URLの形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>`。
* `api_key`は作成時にパブリッシャーアカウントで一度だけ表示され、お客様側で保存する必要があります。新しいキーは次のセクションで作成できます：
  * [会社設定 > APIキー](https://publisher.xsolla.com/0/settings/api_key)
  * [プロジェクト設定 > APIキー](https://publisher.xsolla.com/0/projects/0/edit/api_key)

{% html name="div" attrs={"class": "notice"} %}
**注意**

必須のAPIコールにパスパラメータの`project_id`が含まれていない場合は、認証のために会社のすべてのプロジェクトにわたって有効なAPIキーを使用します
{% /html %}

* `project_id`は次の場所に表示されます：
  * パブリッシャーアカウントのプロジェクト名の横。
  * パブリッシャーアカウントでプロジェクトを処理する際のブラウザのアドレスバー内URL。URLの形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`。

APIキーの操作に関する詳細は、[APIリファレンス](https://developers.xsolla.com/ja/api/getting-started/#api_keys_overview)を参照してください。

Type: http
Scheme: basic

### XsollaLoginUserJWT

クライアント側からのAPIコールには、`XsollaLoginUserJWT`認証スキームを使用します。リクエストの`Authorization`ヘッダーには、「Bearer `<user_JWT>`」という形式でユーザーのJWTを含める必要があります：このトークンによってユーザーが識別され、パーソナライズされたデータへのアクセスが可能になります。トークンの作成方法の詳細については、[エクソーラログインAPIに関するドキュメント](/ja/api/login/authentication-schemes#getting-user-token)を参照してください。

別の方法として、[決済UIを開くためのトークン](/ja/api/pay-station/token/create-token)を使用することも可能です。

Type: http
Scheme: bearer
Bearer Format: JWT

### AuthForCart

`AuthForCart`認証スキームはカートでの購入用であり、以下の2つのモードに対応しています：

1. ユーザーのJWTによる認証。トークンは次の形式で認証ヘッダーに渡されます：`Authorization: Bearer <user_JWT>`。ここで`<user_JWT>`はユーザートークンです。トークンはユーザーを識別し、パーソナライズされたデータへのアクセスを提供します。

別の方法として、[決済UIを開くためのトークン](/ja/api/pay-station/token/create-token)を使用することも可能です。

`Authorization`ヘッダーなしの簡易モード。これは未認証ユーザー専用のモードであり、[ゲームキー販売](/ja/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users)のケースにのみ利用できます。トークンの代わりに、リクエストには以下のヘッダーを含める必要があります：
* リクエストIDを指定した`x-unauthorized-id`
* Base64でエンコードされたユーザーのメールアドレスを指定した`x-user`

Type: http
Scheme: bearer

### basicMerchantAuth

サーバー側のコールでは、`basicMerchantAuth`認証スキームを使用します。APIへのすべてのリクエストには、`Authorization: Basic <your_authorization_basic_key>`ヘッダーを含める必要があります。ここで、`your_authorization_basic_key`は、Base64標準に従ってエンコードされた`merchant_id:api_key`ペアです。

[パブリッシャーアカウント](https://publisher.xsolla.com/)に移動して、パラメータの値を確認します：

* `merchant_id`は次の場所に表示されます：
  * **会社設定 > 会社**セクション
  * パブリッシャーアカウントの任意のページのブラウザアドレスバーのURLに表示されます。URLの形式は以下の通りです：`https://publisher.xsolla.com/<merchant_id>`。
* `api_key`は作成時にパブリッシャーアカウントで一度だけ表示され、お客様側で保存する必要があります。新しいキーは次のセクションで作成できます：
  * [会社設定 > APIキー](https://publisher.xsolla.com/0/settings/api_key)

APIキーの操作に関する詳細は、[APIリファレンス](https://developers.xsolla.com/ja/api/getting-started/#api_keys_overview)を参照してください。

Type: http
Scheme: basic

## Download OpenAPI description

[LiveOps API](https://xsolla.redocly.app/_bundle/@l10n/ja/api/liveops/index.yaml)

## 共通のAPIコール

このサブセクションのAPIメソッドを呼び出すことで、さまざまなタイプのプロモーションを管理できます。

### すべてのプロモーションリストを取得

 - [GET /v3/project/{project_id}/admin/promotion](https://xsolla.redocly.app/ja/api/liveops/promotions-common/get-promotion-list.md): プロジェクトのプロモーションリストを取得します。

### プロモーションをアクティブ化にする

 - [PUT /v2/project/{project_id}/admin/promotion/{promotion_id}/activate](https://xsolla.redocly.app/ja/api/liveops/promotions-common/activate-promotion.md): プロモーションをアクティブ化にします。

### プロモーションを停止

 - [PUT /v2/project/{project_id}/admin/promotion/{promotion_id}/deactivate](https://xsolla.redocly.app/ja/api/liveops/promotions-common/deactivate-promotion.md): プロモーションを停止にします。

### コードで引き換え可能なプロモーションを入手する

 - [GET /v3/project/{project_id}/admin/promotion/redeemable/code/{code}](https://xsolla.redocly.app/ja/api/liveops/promotions-common/get-redeemable-promotion-by-code.md): プロモーションコードまたはクーポンコードを取得します。

### プロモーションコードを検証する

 - [GET /v2/project/{project_id}/promotion/code/{code}/verify](https://xsolla.redocly.app/ja/api/liveops/promotions-common/verify-promotion-code.md): コードがプロモーションコードであるかクーポンコードであるかを判別し、ユーザーがそれを適用できるかどうかを判定します。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

## クーポン

クーポンプロモーションを設定または管理するには、本サブセクションのAPIメソッドを使用してください。

<div class="note">
  <p><b>注</b></p>
  <p>クーポンに関する詳細情報は、<a href="https://developers.xsolla.com/ja/liveops/promotion-tools/coupons/">ドキュメント</a>を参照してください。</p>
</div>

### クポーンコードを引き換える

 - [POST /v2/project/{project_id}/coupon/redeem](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/redeem-coupon.md): クーポンコードを引き換えます。クーポンが引き換えられると、ユーザーはボーナスを受け取ります。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### クーポン特典を入手

 - [GET /v2/project/{project_id}/coupon/code/{coupon_code}/rewards](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/get-coupon-rewards-by-code.md): コードに基づいてクーポンの報酬を取得します。
す。ユーザーがボーナスとして複数のアイテムの中から1つを選択できるようにする場合に使用できます。
一般的なユースケースとしては、クーポンにボーナスとしてゲームが含まれている場合(type=unit)に、DRMを選択するケースなどが挙げられます。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### クーポンプロモーションを作成

 - [POST /v3/project/{project_id}/admin/coupon](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/admin-create-coupon.md): クーポンプロモーションを作成します。

### クーポンプロモーションのリストを取得

 - [GET /v3/project/{project_id}/admin/coupon](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/get-coupons.md): プロジェクトのクーポンプロモーションのリストを取得します。

### クーポンプロモーションを更新

 - [PUT /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/update-coupon-promotion.md): クーポンプロモーションを更新しました。

### クーポンプロモーションを取得

 - [GET /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/get-coupon.md): 指定されたクーポンプロモーションを取得します。

### クーポンプロモーションを削除

 - [DELETE /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/delete-coupon-promotion.md): クーポンプロモーションを削除します。削除されたプロモーション：
* プロジェクトで設定されたプロモーションのリストから消えます。
* アイテムカタログに適用されなくなります。

削除後、プロモーションを復元することはできません。
削除されたプロモーションのクーポンコードは、既存のプロモーションに追加することができます。

### クーポンプロモーションをアクティブ化にする

 - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/activate](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/activate-coupon.md): クーポンプロモーションをアクティブ化にします。
作成されたクーポンのプロモーションは、デフォルトで無効になっています。
アクティブ化されるまで、引き換えの準備ができません。
このエンドポイントを使用して、クーポンのプロモーションをアクティブ化にします。

### クーポンプロモーションを非アクティブ化にする

 - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/deactivate](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/deactivate-coupon.md): クーポンプロモーションを非アクティブ化にします。
作成されたクーポンのプロモーションは、デフォルトで無効になっています。
アクティブ化されるまで、引き換えの準備ができません。
このエンドポイントを使用して、クーポンのプロモーションを無効化または非アクティブ化します。

### クーポンコードを作成

 - [POST /v2/project/{project_id}/admin/coupon/{external_id}/code](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/create-coupon-code.md): クーポンコードを作成します。

### クーポンコードを取得

 - [GET /v2/project/{project_id}/admin/coupon/{external_id}/code](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/get-coupon-codes.md): クーポンコードを取得します。

応答には、プロモーション内のコードの総数（total_count）と、現在のページ（codes）のコードが含まれています。次のページを取得するには、すべてのコードを回収し終えるまで、limitの値ずつoffsetを増やしてください（例：“offset”: 100の次は“offset”: 200）。

ほとんどの場合、“limit”: 100または“limit”: 1000で十分です。“limit”: 10000などのより大きな値は、1回限りの一括エクスポート用として残しておき、必要でない限り“limit”: 50000の使用は避けてください。

### クーポンコードを生成

 - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/code/generate](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/generate-coupon-codes.md): クーポンコードを生成します。

コード生成に関するガイドライン：

* プロモーションあたりのコードの最大総数に制限はありませんが、1回のリクエストの上限は50,000コードです。これより多い数を指定したリクエストは、422 Unprocessable Entityエラーを返します。50,000コード以上必要な場合は、複数回に分けてリクエストを送信してください。

* 信頼性を高めるため、1回のリクエストにつき最大10,000コードまでの、より小さなバッチに分けてコードを生成することをお勧めします。例えば、100,000コードを作成する場合、"count": 50000で2回送信するのではなく、"count": 10000で10回リクエストを送信します。次のリクエストを送信する前に、各リクエストが正常な応答を返したことを確認してください。

* 1秒あたり15リクエストに設定されているレート制限にご留意ください。大量のコードを生成する場合は、レート制限を超過して429エラーが発生するのを防ぐため、リクエストを順次送信してください。

* コードのリストを取得するには、クーポンコードを取得するメソッドを呼び出します。

| パラメータ | 値 |
|---|---|
| 1回のリクエストあたりの最小コード数。 | 1 |
| 1回のリクエストあたりの最大コード数。可能な限り最大の単一バッチ塊が必要な場合にのみ使用してください。 | 50,000 |
| 1回のリクエストあたりの推奨コード数。| 最大10,000まで。これ以上の数を作成する必要がある場合は、リクエストを順次送信してください。|

### 指定したユーザーのクーポン上限を取得する

 - [GET /v2/project/{project_id}/admin/user/limit/coupon/external_id/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/get-coupon-user-limit.md): 指定したユーザがクーポンを使用できる残り回数を取得します。

User limit APIを使用すると、ユーザーがクーポンを使用できる回数を制限することができます。ユーザー制限自体の設定は、管理セクションにアクセスしてください：
* クーポン

### 一意のクーポンコード制限を取得する

 - [GET /v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-coupons/get-coupon-code-limit.md): コードの残り使用可能回数を取得します。コードのフィルタリングには、codesクエリパラメータを使用します。

コードの上限を設定するには、管理セクションに移動します：
* クーポン

## プロモーションコード

このサブセクションのAPIメソッドを呼び出して、プロモーションコードのプロモーションを設定および管理します。

<div class="note">
  <p><b>注</b></p>
  <p>プロモーションコードに関する詳細情報は、<a href="https://developers.xsolla.com/ja/liveops/promotion-tools/promo-codes/">ドキュメント</a>を参照してください。</p>
</div>

### Apply promo code

 - [POST /v2/project/{project_id}/promocode/redeem](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/redeem-promo-code.md): Applies a code to a cart. When a promo code is applied, the cart total is recalculated to reflect a discount on the entire cart or on selected items. Bonus items may also be added to the cart. The discount is applied at checkout, while bonus items are granted after successful payment. Before payment, the user can remove the promo code, which cancels the discount and removes the bonus items from the cart.

### カートからプロモーションコードを削除

 - [PUT /v2/project/{project_id}/promocode/remove](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/remove-cart-promo-code.md): プロモーションコードをカートから削除します。
プロモーションコードを削除した後、カート内のすべてのアイテムの合計金額は、プロモーションコードによるボーナスや割引を除いて再計算されます。

### プロモーションコードの特典を入手

 - [GET /v2/project/{project_id}/promocode/code/{promocode_code}/rewards](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/get-promo-code-rewards-by-code.md): コードに基づいてクーポンの報酬を取得します。
す。ユーザーがボーナスとして複数のアイテムの中から1つを選択できるようにする場合に使用できます。
一般的なユースケースとしては、クーポンにボーナスとしてゲームが含まれている場合(type=unit)に、DRMを選択するケースなどが挙げられます。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### プロモーションコードのプロモーションを作成

 - [POST /v3/project/{project_id}/admin/promocode](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/create-promo-code.md): プロモーションコードのプロモーションを作成します。

### プロモーションコードのプロモーションのリストを取得

 - [GET /v3/project/{project_id}/admin/promocode](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/get-promo-codes.md): プロジェクトのプロモーションコードリストを取得します。

### プロモーションコードのプロモーションを更新

 - [PUT /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/update-promo-code.md): プロモーションコードのプロモーションを更新しました。

### プロモーションコードのプロモーションを取得

 - [GET /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/get-promo-code.md): 指定されたプロモーションコードを取得します。

### プロモーションコードのプロモーションを削除

 - [DELETE /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/delete-promo-code.md): プロモーションコードのプロモーションを削除します。削除されたプロモーション：
* プロジェクトで設定されたプロモーションのリストから消える。
* アイテムカタログとカートに適用されなくなる。

削除後、プロモーションを復元することはできません。
削除されたプロモーションのプロモーションコードを既存のプロモーションに追加できます。

### プロモーションコードのプロモーションをアクティブ化

 - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/activate](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/activate-promo-code.md): プロモーションコードのプロモーションをアクティブ化にします。

作成されたプロモーションコードのプロモーションは、デフォルトで無効になっています。
アクティブ化されるまで、引き換えの準備ができません。
このエンドポイントを使用して、プロモーションコードのプロモーションを有効化またはアクティブ化します。

### プロモーションコードのプロモーションを非アクティブ化

 - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/deactivate](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/deactivate-promo-code.md): プロモーションコードのプロモーションを非アクティブ化にします。

作成されたプロモーションコードのプロモーションは、デフォルトで無効になっています。
アクティブ化されるまで、引き換えの準備ができません。
このエンドポイントを使用して、プロモーションコードのプロモーションを無効化または非アクティブ化します。

### プロモーションコードのプロモーション用のコードを作成

 - [POST /v2/project/{project_id}/admin/promocode/{external_id}/code](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/create-promo-code-code.md): プロモーションコードのプロモーション用のコードを作成します。

### プロモーションコードのプロモーション用のコードを取得

 - [GET /v2/project/{project_id}/admin/promocode/{external_id}/code](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/get-promocode-codes.md): プロモーションコードのプロモーション用のコードを取得します。

応答には、プロモーション内のコードの総数（total_count）と、現在のページ（codes）のコードが含まれています。次のページを取得するには、すべてのコードを回収し終えるまで、limitの値ずつoffsetを増やしてください（例：“offset”: 100の次は“offset”: 200）。

ほとんどの場合、“limit”: 100または“limit”: 1000で十分です。“limit”: 10000などのより大きな値は、1回限りの一括エクスポート用として残しておき、必要でない限り“limit”: 50000の使用は避けてください。

### プロモーションコードのプロモーション用のコードを生成

 - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/code/generate](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/generate-promo-code-codes.md): プロモーションコードのプロモーション用のコードを生成します。

コード生成に関するガイドライン：

* プロモーションあたりのコードの最大総数に制限はありませんが、1回のリクエストの上限は50,000コードです。これより多い数を指定したリクエストは、422 Unprocessable Entityエラーを返します。50,000コード以上必要な場合は、複数回に分けてリクエストを送信してください。

* 信頼性を高めるため、1回のリクエストにつき最大10,000コードまでの、より小さなバッチに分けてコードを生成することをお勧めします。例えば、100,000コードを作成する場合、"count": 50000で2回送信するのではなく、"count": 10000で10回リクエストを送信します。次のリクエストを送信する前に、各リクエストが正常な応答を返したことを確認してください。

* 1秒あたり15リクエストに設定されているレート制限にご留意ください。大量のコードを生成する場合は、レート制限を超過して429エラーが発生するのを防ぐため、リクエストを順次送信してください。

* コードのリストを取得するには、プロモーションコードのプロモーション用のコードを取得メソッドを呼び出します。

| パラメータ | 値 |
|---|---|
| 1回のリクエストあたりの最小コード数。 | 1 |
| 1回のリクエストあたりの最大コード数。可能な限り最大の単一バッチ塊が必要な場合にのみ使用してください。 | 50,000 |
| 1回のリクエストあたりの推奨コード数。| 最大10,000まで。これ以上の数を作成する必要がある場合は、リクエストを順次送信してください。|

### 指定したユーザーのプロモーションコード上限を取得する

 - [GET /v2/project/{project_id}/admin/user/limit/promocode/external_id/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/get-promo-code-user-limit.md): 指定したユーザがプロモーションコードを使用できる残り回数を取得します。

User limit APIを使用すると、ユーザーがプロモーションコードを使用できる回数を制限することができます。ユーザー制限自体の設定は、管理セクションにアクセスしてください：
* プロモーションコード

### コードのプロモーションコード制限を取得する

 - [GET /v2/project/{project_id}/admin/code/limit/promocode/external_id/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-promo-codes/get-promo-code-code-limit.md): コードの残り使用可能回数を取得します。コードのフィルタリングには、codesクエリパラメータを使用します。

コードの上限を設定するには、管理セクションに移動します：
* プロモーションコード

## ユニークなカタログオファー

ユニークカタログオファーを設定または管理するには、本サブセクションのAPIメソッドを使用してください。

<div class="note">
  <p><b>注</b></p>
  <p>ユニークオファーに関する詳細情報は、<a href="https://developers.xsolla.com/ja/liveops/promotion-tools/unique-offer/">ドキュメント</a>を参照してください。</p>
</div>

### ユニークなカタログオファープロモーションを作成する

 - [POST /v3/project/{project_id}/admin/unique_catalog_offer](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer.md): ユニークなカタログオファープロモーションを作成します。

### ユニークなカタログオファープロモーションのリストを取得します。

 - [GET /v3/project/{project_id}/admin/unique_catalog_offer](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offers.md): プロジェクトのユニークなカタログオファープロモーションのリストを取得します。

### ユニークカタログオファープロモーションをアップデート

 - [PUT /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/update-unique-catalog-offer-promotion.md): ユニークカタログオファープロモーションをアップデート

### ユニークなカタログオファープロモーションを取得

 - [GET /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offer.md): 指定されたユニークなカタログオファープロモーションを取得します。

### ユニークなカタログオファープロモーションを削除

 - [DELETE /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/delete-unique-catalog-offer-promotion.md): ユニークなカタログオファープロモーションを削除します。削除されたプロモーション：
* プロジェクトで設定されたプロモーションのリストから消えます。
* アイテムカタログとカートに適用されなくなります。

削除後、プロモーションを復元することはできません。

### ユニークなカタログオファープロモーションをアクティブ化にする

 - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/activate](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/activate-unique-catalog-offer.md): ユニークなカタログオファープロモーションを有効化にします。デフォルトでは、新しく作成されたプロモーションは無効状態です。
プロモーションが有効化されるまで、そのコードを使用することはできません。

### ユニークカタログオファープロモーションを非アクティブ化する

 - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/deactivate](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/deactivate-unique-catalog-offer.md): ユニークなカタログオファープロモーションを無効化します。プロモーションが無効化されると、そのコードを使用することはできなくなります。
このプロモーションに関連付けられた非表示アイテムは、カタログに表示されません。

### ユニークなカタログオファーコードを作成する

 - [POST /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/create-unique-catalog-offer-code.md): ユニークなカタログオファーコードを作成します。

### ユニークなカタログオファーコードを取得する

 - [GET /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offer-codes.md): ユニークなカタログオファーコードを取得する

### ユニークなカタログオファーコードを生成する

 - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code/generate](https://xsolla.redocly.app/ja/api/liveops/promotions-unique-catalog-offers/generate-unique-catalog-offer-codes.md): ユニークなカタログオファーコードを生成します。

## ディスカウント

割引プロモーションを設定または管理するには、本サブセクションのAPIメソッドを使用してください。

<div class="note">
  <p><b>注</b></p>
  <p>割引に関する詳細情報は、<a href="https://developers.xsolla.com/ja/liveops/promotion-tools/discounts/">ドキュメント</a>を参照してください。</p>
</div>

### アイテムの割引プロモーションを作成

 - [POST /v3/project/{project_id}/admin/promotion/item](https://xsolla.redocly.app/ja/api/liveops/promotions-discounts/create-item-promotion.md): アイテムの割引キャンペーンを作成します。

プロモーションは、アイテムの割引（％）を提供します。
指定したアイテムの全価格に割引が適用されます。

### アイテムプロモーションのリストを取得

 - [GET /v3/project/{project_id}/admin/promotion/item](https://xsolla.redocly.app/ja/api/liveops/promotions-discounts/get-item-promotion-list.md): プロジェクトのアイテムプロモーションのリストを取得します。

プロモーションは、アイテムの割引（％）を提供します。
指定したアイテムの全価格に割引が適用されます。

### アイテムプロモーションを更新する

 - [PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/ja/api/liveops/promotions-discounts/update-item-promotion.md): プロモーションを更新します。

注意新しいデータは古いデータに置き換わります。プロモーションの一部だけを更新したい場合は、必要なデータもすべてリクエストで転送する必要があります。

プロモーションは、アイテムの割引（％）を提供します。
指定したアイテムの全価格に割引が適用されます。

### アイテムプロモーションを取得

 - [GET /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/ja/api/liveops/promotions-discounts/get-item-promotion.md): 特定のアイテムに適用されるプロモーションを取得します。

プロモーションは、アイテムの割引（％）を提供します。
指定したアイテムの全価格に割引が適用されます。

### アイテムプロモーションを削除

 - [DELETE /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/ja/api/liveops/promotions-discounts/delete-item-promotion.md): 割引プロモーションを削除します。削除されたプロモーション：
* プロジェクトで設定されたプロモーションのリストから消えます。
* アイテムカタログとカートに適用されなくなります。

削除後、プロモーションを復元することはできません。

## ボーナス

ボーナスプロモーションを設定または管理するには、本サブセクションのAPIメソッドを使用してください。

<div class="note">
  <p><b>注</b></p>
  <p>ボーナスに関する詳細情報は、<a href="https://developers.xsolla.com/ja/liveops/promotion-tools/bonuses/">ドキュメント</a>を参照してください。</p>
</div>

### ボーナスプロモーションを作成

 - [POST /v3/project/{project_id}/admin/promotion/bonus](https://xsolla.redocly.app/ja/api/liveops/promotions-bonuses/create-bonus-promotion.md): ボーナスプロモーションを作成します。

プロモーションは、ユーザーによる購入に無料のボーナスアイテムを追加します。
プロモーションは、プロジェクト内のすべての購入、または特定のアイテムを含む購入に適用することができます。

### ボーナスプロモーションのリストを取得

 - [GET /v3/project/{project_id}/admin/promotion/bonus](https://xsolla.redocly.app/ja/api/liveops/promotions-bonuses/get-bonus-promotion-list.md): プロジェクトのボーナスプロモーションのリストを取得します。

プロモーションは、ユーザーによる購入に無料のボーナスアイテムを追加します。
プロモーションは、プロジェクト内のすべての購入、または特定のアイテムを含む購入に適用することができます。

### ボーナスプロモーションを更新

 - [PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/ja/api/liveops/promotions-bonuses/update-bonus-promotion.md): プロモーションを更新します。

注意新しいデータは古いデータに置き換わります。プロモーションの一部だけを更新したい場合は、必要なデータもすべてリクエストで転送する必要があります。

プロモーションは、ユーザーによる購入に無料のボーナスアイテムを追加します。
プロモーションは、プロジェクト内のすべての購入、または特定のアイテムを含む購入に適用することができます。

### ボーナスプロモーションを取得

 - [GET /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/ja/api/liveops/promotions-bonuses/get-bonus-promotion.md): ボーナスプロモーションを取得します。

プロモーションは、ユーザーによる購入に無料のボーナスアイテムを追加します。
プロモーションは、プロジェクト内のすべての購入、または特定のアイテムを含む購入に適用することができます。

### ボーナスプロモーションを削除

 - [DELETE /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/ja/api/liveops/promotions-bonuses/delete-bonus-promotion.md): ボーナスプロモーションを削除します。削除されたプロモーション：
* プロジェクトで設定されたプロモーションのリストから消えます。
* アイテムカタログとカートに適用されなくなります。

削除後、プロモーションを復元することはできません。

## 個人用カタログ

個人用設定機能を使用すると、認証された特定のユーザーに対してのみ、アイテムカタログの表示条件を設定したりプロモーションを適用したりすることができます。条件はユーザー属性に基づいて定義され、特定のユーザーに最も関連性の高いアイテムやプロモーションを提供できるようになります。

利用可能な個人用設定のタイプは次のとおりです：

* [エクソーラ側の個人用設定](/ja/liveops/promotion-tools/personalization/#guides_personalization_on_xsolla_side)。個人用設定のルールとロジックはエクソーラ側で設定および保存されます。ユーザー属性を渡すと、エクソーラがそれを使用してパーソナライズされたカタログを生成します。
* [パートナー側の個人用設定](/ja/liveops/promotion-tools/personalization/#guides_personalization_on_partner_side)。個人用設定のルールとロジックを自分の側で設定し、指定したユーザーに対する最終的なカタログペイロードをエクソーラに送信します。

<div class="note">
  <b>注意</b><br><br>
  使用できる個人用設定のタイプは1つだけです。変更するには、
  <a href="/ja/liveops/promotion-tools/personalization/#guides_personalization_change">説明</a>に従ってください。
</div>

エクソーラAPIを使用してエクソーラ側で個人用設定を構成するには：

1. [仮想アイテムと仮想通貨](/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コールを使用して、アイテムを作成します。
2. [エクソーラログインAPIを使用してユーザー属性をセットアップ](/ja/liveops/promotion-tools/personalization/#web_shop_guide_personalization_setting_attributes)し、ゲーム内で変更が発生した場合はエクソーラ内のデータを更新して同期を保ちます。
3. アイテムまたはプロモーションの個人用設定を設定します：
    * アイテムカタログをパーソナライズするには、[カタログフィルタルールを作成する](/ja/api/liveops/personalized-catalog/create-filter-rule)APIコールを使用してカタログの表示ルールを定義します：
        * [attribute_conditions](/ja/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=attribute_conditions)配列で、ユーザー属性に基づいてアイテムの可用性を決定する条件を指定します。
        * [items](/ja/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=items)配列で、指定された条件に一致するユーザーに表示されるべきアイテムのリストを提供します。
    * パーソナライズされたプロモーションを設定するには、[必要なプロモーションタイプのAPIコールを作成または更新する](/ja/api/liveops/promotions-discounts/create-item-promotion)を使用します。[attribute_conditions](/ja/api/liveops/promotions-discounts/create-item-promotion)配列で、ユーザー属性に基づいてプロモーションの可用性を決定する条件を指定します。

4. ユーザー属性を含む[ユーザー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)に渡して、パーソナライズされたカタログを受け取ります。

**アイテムカタログにおけるエクソーラ側パーソナライズの設定および適用手順：**

![アイテムカタログの個人用設定](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png)

**プロモーションにおけるエクソーラ側パーソナライズの設定および適用手順：**

![プロモーションの個人用設定](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)

<div class="note">
<b>注意</b><br><br>
詳細情報は以下に提供されています：
<ul>
  <li><a href="/ja/liveops/promotion-tools/personalization/">エクソーラ側およびパートナー側での個人用設定に関するガイド</a></li>
  <li><a href="/ja/doc/shop-builder/tutorials/personalization-tutorial/">エクソーラ側でのアイテムカタログ個人用設定に関するステップバイステップのチュートリアル</a></li>
</ul>
</div>

### カタログフィルタルールのリストを取得

 - [GET /v2/project/{project_id}/admin/user/attribute/rule](https://xsolla.redocly.app/ja/api/liveops/personalized-catalog/get-filter-rules.md): ユーザー属性に適用されるすべてのルールを取得します。

### カタログフィルタルールを作成

 - [POST /v2/project/{project_id}/admin/user/attribute/rule](https://xsolla.redocly.app/ja/api/liveops/personalized-catalog/create-filter-rule.md): ユーザー属性のルールを作成します。

### クライアントサイドで検索するためのすべてのカタログルールを取得します

 - [GET /v2/project/{project_id}/admin/user/attribute/rule/all](https://xsolla.redocly.app/ja/api/liveops/personalized-catalog/get-all-filter-rules.md): クライアント側での検索に使用する、すべてのカタログルールのリストを取得します。

注意ルールID、名称、およびis_enabledのみを返します

### カタログフィルタルールを取得

 - [GET /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/ja/api/liveops/personalized-catalog/get-filter-rule-by-id.md): ユーザー属性に適用される特定のルールを取得します。

### カタログフィルタールールを更新

 - [PUT /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/ja/api/liveops/personalized-catalog/update-filter-rule-by-id.md): ユーザー属性に適用される特定のルールを更新します。指定されていないプロパティはデフォルト値が使用されます（プロパティが必須でない場合）。

### カタログフィルタルールを修正

 - [PATCH /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/ja/api/liveops/personalized-catalog/patch-filter-rule-by-id.md): ユーザー属性に適用される特定のルールを更新します。指定されていないプロパティには、現在の値が使用されます。

### カタログフィルタルールを削除

 - [DELETE /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/ja/api/liveops/personalized-catalog/delete-filter-rule-by-id.md): 特定のルールを削除します。

## 管理

### 指定したユーザーのプロモーション制限をすべて更新する

 - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/all](https://xsolla.redocly.app/ja/api/liveops/user-limits-admin/reset-all-user-promotions-limit.md): して、これらのプロモーションを再度使用できるため、指定されたユーザーのすべてのプロモーションのすべての制限を更新します。

User limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：
* 割引プロモーション
* ボーナスプロモーション

### ユーザー向けプロモーション制限を更新する

 - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}/all](https://xsolla.redocly.app/ja/api/liveops/user-limits-admin/reset-user-promotion-limit.md): ユーザーがこのプロモーションを再度使用できるように、プロモーション制限を更新します。userパラメータがnullである場合、このコールはすべてのユーザーのこの制限を更新します。

User limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：
* 割引プロモーション
* ボーナスプロモーション

### 指定したユーザーのプロモーション制限を取得する

 - [GET /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/ja/api/liveops/user-limits-admin/get-user-promotion-limit.md): 指定されたユーザーが適用される制限内でプロモーションを使用できる残りの回数を取得します。

User limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：
* 割引プロモーション
* ボーナスプロモーション

### 指定したユーザーのプロモーション制限を増やす

 - [POST /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/ja/api/liveops/user-limits-admin/add-user-promotion-limit.md): 指定されたユーザーが適用される制限内でプロモーションを使用できる残りの回数を増やします。

User limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：
* 割引プロモーション
* ボーナスプロモーション

### 指定したユーザーのプロモーション制限を設定する

 - [PUT /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/ja/api/liveops/user-limits-admin/set-user-promotion-limit.md): プロモーションの増減後に適用される制限の中で、指定したユーザーが利用できる回数を設定します。

User limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：
* 割引プロモーション
* ボーナスプロモーション

### 指定したユーザーのプロモーション制限を減らす

 - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/ja/api/liveops/user-limits-admin/remove-user-promotion-limit.md): 適用されている制限の範囲内で、指定したユーザーがプロモーションを利用できる残り回数を減らします。

User limit API を使用すると、ユーザーがプロモーションを使用できる回数を制限できます。ユーザー制限自体を構成するには、目的のプロモーションタイプの管理セクションに移動します：
* 割引プロモーション
* ボーナスプロモーション

## 管理者

### バリューポイントのリストを取得する

 - [GET /v2/project/{project_id}/admin/items/value_points](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-get-value-points-list.md): 管理用のプロジェクト内のバリューポイントのリストを取得します。

### バリューポイントを作成する

 - [POST /v2/project/{project_id}/admin/items/value_points](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-create-value-points.md): バリューポイントを作成します。

### バリューポイントを取得する

 - [GET /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-get-value-point.md): 管理用のプロジェクト内のSKUによってバリューポイントを取得します。

### バリューポイントを更新する

 - [PUT /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-update-value-point.md): SKUで特定されるバリューポイントを更新します。

### バリューポイントを削除する

 - [DELETE /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-delete-value-point.md): SKUによって識別されるバリューポイントを削除します。

### バリューポイントを持つアイテムのリストを取得する

 - [GET /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-get-items-value-point-reward.md): 管理用に、プロジェクト内のバリューポイントを持つすべてのアイテムリストを取得します。

### アイテムのバリューポイントを設定する

 - [PUT /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-set-items-value-point-reward.md): SKUによって1つまたは複数のアイテムにバリューポイントを割り当てます。ユーザーはこれらのアイテムを購入した後にバリューポイントを受け取ります。

このPUT要求は、プロジェクト内のアイテムの以前に設定されたすべてのバリューポイントを上書きすることに注意してください。

意図しないバリューポイントの削除を避けるため、各PUTリクエストにすべてのアイテムとそれぞれのバリューポイントを含めてください。

特定のアイテムのバリューポイントだけを更新し、他のアイテムのバリューポイントを保持したい場合は、GETリクエストを使って現在のバリューポイントセットを取得し、ご希望のアイテムのバリューポイントを修正し、修正したバリューポイントセットを特定のアイテムの更新されたバリューポイントと一緒に送り返す必要があります。

### アイテムのバリューポイントを部分的に更新する

 - [PATCH /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-patch-items-value-point-reward.md): SKUに基づいて、1つまたは複数のアイテムのバリューポイント数を部分的に更新します。

バリューポイント更新の原則：
 * アイテムがまだバリューポイントを持っていない場合、amountフィールドにゼロ以外の値を送信すると、バリューポイントが作成されます。
 * アイテムがすでにバリューポイントを持っている場合、amountフィールドに 0 以外の値を送信すると、バリューポイントが更新されます。
 * amountが0に設定された場合、そのアイテムの既存のバリューポイントは削除されます。

PUTメソッド（アイテムにバリューポイントを設定する）とは異なり、このPATCHメソッドは、プロジェクト内のアイテムの既存のバリューポイントをすべて上書きするのではなく、指定されたアイテムのみを更新します。

1 つのリクエストで最大100アイテムまで更新できます。重複するアイテム SKU を同じリクエストに含めることはできません。

### アイテムからバリューポイントを削除する

 - [DELETE /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-delete-items-value-point-reward.md): すべてのアイテムからバリューポイント報酬を削除します。

### 報酬チェーンのリストを取得する

 - [GET /v3/project/{project_id}/admin/reward_chain](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-get-reward-chains.md): 報酬チェーンのリストを取得します。

注意すべてのプロジェクトには、応答で得られるアイテムの数に制限があります。初期値および最大値は、1応答あたり10アイテムです。ページごとにより多くのデータを取得するには、LIMITとOFFSETフィールドを使用してください。

### 報酬チェーンを作成する

 - [POST /v3/project/{project_id}/admin/reward_chain](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-create-reward-chain.md): 報酬チェーンを作成します。

### 報酬チェーンを取得する

 - [GET /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-get-reward-chain.md): 特定の報酬チェーンを取得します。

### 報酬チェーンを更新する

 - [PUT /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-update-reward-chain.md): 特定の報酬チェーンを更新します。

### 報酬チェーンを削除する

 - [DELETE /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-delete-reward-chain.md): 特定の報酬チェーンを削除します。

### 報酬チェーンの切り替え

 - [PUT /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/toggle](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-toggle-reward-chain.md): 報酬チェーンを有効/無効にします。

### 報酬チェーンのリセット

 - [POST /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/reset](https://xsolla.redocly.app/ja/api/liveops/reward-chain-value-points-admin/admin-reset-reward-chain.md): 報酬チェーン内の全ユーザーのバリューポイント残高と進捗状況をリセットします。 残高は特定の報酬チェーンではなく、バリューポイントのタイプに紐付いています。そのため、これらのバリューポイントが他のチェーンでも使用されている場合、そのポイントを使用するすべてのチェーンで残高がリセットされます。リセット完了後、報酬チェーンの有効期間を更新することで、ユーザーは再び進捗を進められるようになります。クランの残高は、そのメンバーの残高の合計として算出されます。そのため、リセット後はクランの残高もリセットされます。このリクエストは取り消しができず、プロジェクト内のすべてのユーザーに適用されます。

注意
  
有効期間中に報酬チェーンをリセットしないでください。この場合、ユーザーは報酬を請求する前に獲得したバリューポイントを失う可能性があります。

## クライアント

### 現在のユーザーの報酬チェーンを取得する

 - [GET /v2/project/{project_id}/user/reward_chain](https://xsolla.redocly.app/ja/api/liveops/reward-chain-client/get-reward-chains-list.md): クライアントエンドポイント。現在のユーザー報酬チェーンを取得します。


  注意
    すべてのプロジェクトには、応答で取得できるアイテム数に制限があります。デフォルトおよび最大値は1応答あたり50アイテムです。ページごとにデータを取得するには、制限とオフセットフィールドを使用してください。





  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### 現在のユーザーのバリューポイント残高を取得する

 - [GET /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance](https://xsolla.redocly.app/ja/api/liveops/reward-chain-client/get-user-reward-chain-balance.md): クライアント向けエンドポイント。現在のユーザーのバリューポイント残高を取得します。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### ステップ報酬を請求する

 - [POST /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/step/{step_id}/claim](https://xsolla.redocly.app/ja/api/liveops/reward-chain-client/claim-user-reward-chain-step-reward.md): クライアント向けエンドポイント。現在のユーザーが、報酬チェーンから現在のステップの報酬を受け取ります。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

## クランクライアント

### クランの下で報酬チェーンへの貢献度トップ10を獲得する

 - [GET /v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top](https://xsolla.redocly.app/ja/api/liveops/clan-reward-chain-client/get-user-clan-top-contributors.md): 現在のユーザーのクランの下にある特定の報酬チェーンのトップ10の貢献者のリストを取得します。ユーザーがクランに属していない場合、コールは空の配列を返します。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### 現在のユーザーのクランを更新する

 - [PUT /v2/project/{project_id}/user/clan/update](https://xsolla.redocly.app/ja/api/liveops/clan-reward-chain-client/user-clan-update.md): ユーザー属性を通じて現在のユーザーのクランを更新します。以前のクランで請求されなかった報酬チェーンのすべての報酬を請求し、応答に返します。クランに所属していたユーザーが、現在はクランに所属していない場合、クランへの所属は取り消されます。ユーザーがクランを変更した場合、クランは変更されます。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

## 管理者

### デイリー報酬のリストを取得する

 - [GET /v2/project/{project_id}/admin/daily_chain](https://xsolla.redocly.app/ja/api/liveops/daily-chain-admin/admin-get-daily-chains.md): 管理用のデイリー報酬のリストを取得します。

注意メソッドはアイテムのページネーションリストを返します。最大値およびデフォルト値は1レスポンスあたり50アイテムです。リストからより多くのアイテムを取得するには、limitおよびoffsetパラメータを使用して、さらにページを取得してください。例えば、limit = 25およびoffset = 100でメソッドを呼び出すと、全体のリストの101番目のアイテムから始まる25アイテムが返されます。

### デイリー報酬の作成

 - [POST /v2/project/{project_id}/admin/daily_chain](https://xsolla.redocly.app/ja/api/liveops/daily-chain-admin/admin-create-daily-chain.md): デイリー報酬を作成します。

### デイリー報酬を取得する

 - [GET /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/ja/api/liveops/daily-chain-admin/admin-get-daily-chain.md): 管理用の特定のデイリー報酬を取得します。

### デイリー報酬を更新する

 - [PUT /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/ja/api/liveops/daily-chain-admin/admin-update-daily-chain.md): 特定のデイリー報酬を更新します。

### デイリー報酬の削除

 - [DELETE /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/ja/api/liveops/daily-chain-admin/admin-delete-daily-chain.md): 特定のデイリー報酬を削除します。

### デイリー報酬のトグルを切り替える

 - [PUT /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/toggle](https://xsolla.redocly.app/ja/api/liveops/daily-chain-admin/admin-toggle-daily-chain.md): デイリー報酬を有効/無効にします。

### デイリー報酬をリセット

 - [POST /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/reset](https://xsolla.redocly.app/ja/api/liveops/daily-chain-admin/admin-reset-daily-chain.md): デイリー報酬における全ユーザーの進行状況をリセットします。rollingタイプのデイリー報酬にのみ適用されます。

## クライアント

### 現在のユーザーのデイリー報酬を取得する

 - [GET /v2/project/{project_id}/user/daily_chain](https://xsolla.redocly.app/ja/api/liveops/daily-chain-client/get-daily-chains-list.md): クライアント向けエンドポイント。現在のユーザーのデイリー報酬を取得します。

注意メソッドはアイテムのページネーションリストを返します。最大値およびデフォルト値は1レスポンスあたり50アイテムです。リストからより多くのアイテムを取得するには、limitおよびoffsetパラメータを使用して、さらにページを取得してください。例えば、limit = 25およびoffset = 100でメソッドを呼び出すと、全体のリストの101番目のアイテムから始まる25アイテムが返されます。




  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### ID を指定して現在のユーザーのデイリー報酬を取得します。

 - [GET /v2/project/{project_id}/user/daily_chain/{daily_chain_id}](https://xsolla.redocly.app/ja/api/liveops/daily-chain-client/get-user-daily-chain-by-id.md): クライアントエンドポイント。IDによって現在のユーザーのデイリー報酬を取得します。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### デイリー報酬ステップを受け取る

 - [POST /v2/project/{project_id}/user/daily_chain/{daily_chain_id}/step/number/{step_number}/claim](https://xsolla.redocly.app/ja/api/liveops/daily-chain-client/claim-user-daily-chain-step-reward.md): クライアントエンドポイント。デイリー報酬から現在のユーザーのステップ報酬を請求します。すべてのステップは順番にのみ請求できます。見逃したステップの報酬は、仮想通貨や実際通貨、広告視聴によって取得することはできません。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

## 管理者

### オファーチェーンのリストを取得する

 - [GET /v2/project/{project_id}/admin/offer_chain](https://xsolla.redocly.app/ja/api/liveops/offer-chain-admin/admin-get-offer-chains.md): 管理用のオファーチェーンリストを取得します。

注意すべてのプロジェクトには、1つの応答で返されるアイテム数に制限があります。デフォルトおよび最大値は1応答あたり10アイテムです。より多くのデータを取得するには、ページネーションのためにlimitとoffsetクエリパラメータを使用してください。

### オファーチェーンを作成する

 - [POST /v2/project/{project_id}/admin/offer_chain](https://xsolla.redocly.app/ja/api/liveops/offer-chain-admin/admin-create-offer-chain.md): オファーチェーンを作成します。

### オファーチェーンを取得する

 - [GET /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/ja/api/liveops/offer-chain-admin/admin-get-offer-chain.md): 管理用の特定のオファーチェーンを取得します。

### オファーチェーンを更新する

 - [PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/ja/api/liveops/offer-chain-admin/admin-update-offer-chain.md): 特定のオファーチェーンを更新するします。

### オファーチェーンを削除する

 - [DELETE /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/ja/api/liveops/offer-chain-admin/admin-delete-offer-chain.md): 特定のオファーチェーンを削除します。

削除後：ユーザーがすでに受け取ったすべての報酬は保持されます。未完了のステップは利用不可になり、その報酬は取得できなくなります。

オファーチェーンの有効/無効切り替えるコールによるオファーチェーンの無効化とは異なり、削除は元に戻すことができず、ユーザーの進捗状況は保持されません。

### オファーチェーンの有効/無効切り替え

 - [PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}/toggle](https://xsolla.redocly.app/ja/api/liveops/offer-chain-admin/admin-toggle-offer-chain.md): オファーチェーンを有効または無効にします。

オファーチェーンが無効になると、ユーザーは一時的にアクセスできなくなりますが、進行状況は保持されます。

オファーチェーンが再度有効になった後、ユーザーは中断したステップから再開できます。

## クライアント

### 現在のユーザーのオファーチェーンを取得する

 - [GET /v2/project/{project_id}/user/offer_chain](https://xsolla.redocly.app/ja/api/liveops/offer-chain-client/get-offer-chains-list.md): 現在のユーザーのオファーチェーンを取得します。

注意すべてのプロジェクトには、1つの応答で返されるアイテム数に制限があります。デフォルトおよび最大値は1応答50アイテムです。より多くのデータを取得するには、ページネーションのためにlimitとoffsetクエリパラメータを使用してください。




  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### IDで現在のユーザーのオファーチェーンを取得する

 - [GET /v2/project/{project_id}/user/offer_chain/{offer_chain_id}](https://xsolla.redocly.app/ja/api/liveops/offer-chain-client/get-user-offer-chain-by-id.md): オファーチェーンのIDによって、現在のユーザーのオファーチェーンを取得します。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### 無料オファーチェーンステップを請求する

 - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/claim](https://xsolla.redocly.app/ja/api/liveops/offer-chain-client/claim-user-offer-chain-step-reward.md): 現在のユーザーのオファーチェーンステップの進行を完了させ、関連する報酬を付与します。


  注意
    このコールは、オファーチェーン内の無料ステップにのみ使用してください。
    実際通貨での支払いが必要なステップには、代わりに有料オファーチェーンステップの注文を作成するコールを使用してください。





  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

### 有料のオファーチェーンステップの注文を作成する

 - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://xsolla.redocly.app/ja/api/liveops/offer-chain-client/order-user-offer-chain-step-reward.md): 指定された有料オファーチェーンステップに関連付けられたアイテムの注文を作成します。作成された注文はnewの注文ステータスになります。

決済UIを新しいウィンドウで開くには、以下のリンクをご利用ください：https://secure.xsolla.com/paystation4/?token={token}で{token}受信したトークン。

テスト目的には、以下のリンクを使用してください：https://sandbox-secure.xsolla.com/paystation4/?token={token}。


  注意 
    このメソッドはクライアントサイドで使用する必要があります。ユーザーのIPアドレスは国を特定するために使用され、それが通貨や利用可能な決済方法に影響を与えます。このメソッドをサーバーサイドから使用すると、通貨の検出が不正確になり、ペイステーションでの決済方法に影響を与える可能性があります。





  注意
    有料のオファーチェーンステップにのみ、この呼び出しを使用してください。
    無料ステップの場合は、代わりに無料オファーチェーンステップを請求するコールを使用してください。





  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

## payment-client-side

### 有料のオファーチェーンステップの注文を作成する

 - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://xsolla.redocly.app/ja/api/liveops/offer-chain-client/order-user-offer-chain-step-reward.md): 指定された有料オファーチェーンステップに関連付けられたアイテムの注文を作成します。作成された注文はnewの注文ステータスになります。

決済UIを新しいウィンドウで開くには、以下のリンクをご利用ください：https://secure.xsolla.com/paystation4/?token={token}で{token}受信したトークン。

テスト目的には、以下のリンクを使用してください：https://sandbox-secure.xsolla.com/paystation4/?token={token}。


  注意 
    このメソッドはクライアントサイドで使用する必要があります。ユーザーのIPアドレスは国を特定するために使用され、それが通貨や利用可能な決済方法に影響を与えます。このメソッドをサーバーサイドから使用すると、通貨の検出が不正確になり、ペイステーションでの決済方法に影響を与える可能性があります。





  注意
    有料のオファーチェーンステップにのみ、この呼び出しを使用してください。
    無料ステップの場合は、代わりに無料オファーチェーンステップを請求するコールを使用してください。





  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

## 管理者

### プロジェクトのアップセル情報を入手

 - [GET /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/ja/api/liveops/upsell-admin/get-upsell-configurations-for-project-admin.md): プロジェクト内のアップセルに関する情報を取得します：アップセルが有効かどうか、アップセルのタイプ、アップセルの一部であるアイテムのSKUリスト。

### アップセルを作成

 - [POST /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/ja/api/liveops/upsell-admin/post-upsell.md): プロジェクトのアップセルを作成します。


  注意
    このAPIコールは、認証にユーザーのJWTを使用します。
    以下の形式でAuthorizationヘッダーにトークンを含めます：Bearer &lt;user_JWT&gt;。ユーザーJWTの詳細については、このコールのセキュリティブロックを参照してください。

### アップセルを更新

 - [PUT /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/ja/api/liveops/upsell-admin/put-upsell.md): プロジェクトのアップセルを更新します。


  注意
    このAPIコールは、認証にユーザーのJWTを使用します。
    以下の形式でAuthorizationヘッダーにトークンを含めます：Bearer &lt;user_JWT&gt;。ユーザーJWTの詳細については、このコールのセキュリティブロックを参照してください。

### プロジェクトのアップセルをアクティブ化/非アクティブ化

 - [PUT /v2/project/{project_id}/admin/items/upsell/{toggle}](https://xsolla.redocly.app/ja/api/liveops/upsell-admin/put-upsell-toggle-active-inactive.md): プロジェクト内のアップセルのステータスをアクティブまたは非アクティブに変更します。


  注意
    このAPIコールは、認証にユーザーのJWTを使用します。
    以下の形式でAuthorizationヘッダーにトークンを含めます：Bearer &lt;user_JWT&gt;。ユーザーJWTの詳細については、このコールのセキュリティブロックを参照してください。

## クライアント

### プロジェクト内のアップセルアイテムのリストを取得する

 - [GET /v2/project/{project_id}/items/upsell](https://xsolla.redocly.app/ja/api/liveops/upsell-client/get-upsell-for-project-client.md): すでに設定されている場合、プロジェクト内のアップセルアイテムのリストを取得します。


  注意
    このAPIコールはユーザーJWTを使用して認証を行います。
    トークンはAuthorizationヘッダーへ次の形式でトークンを設定します：Bearer &lt;user_JWT&gt;。ユーザーJWTに関する詳細情報は、該当コールのセキュリティブロックで確認できます。

## 管理者

### ロイヤルティプログラム情報の取得

 - [GET /projects/{project_id}/admin/program](https://xsolla.redocly.app/ja/api/liveops/loyalty-program-admin/loyalty-get-programs.md): プロジェクトのロイヤルティプログラムに関する情報を返します。

### プログラム内のロイヤルティポイントリストの取得

 - [GET /projects/{project_id}/admin/programs/{loyalty_program_id}/loyalty_points](https://xsolla.redocly.app/ja/api/liveops/loyalty-program-admin/loyalty-get-program-loyalty-points.md): プログラム内のロイヤルティポイントのリストを返します。

### ユーザーのロイヤルティポイント残高の取得

 - [GET /projects/{project_id}/users/{user_id}/points/{point_id}/balance](https://xsolla.redocly.app/ja/api/liveops/loyalty-program-admin/loyalty-get-user-point-balance.md): 指定したロイヤルティポイントの現在の残高を返します。

### ユーザーのロイヤルティポイント残高を引き落とす

 - [POST /projects/{project_id}/users/{user_id}/points/{point_id}/balance/debit](https://xsolla.redocly.app/ja/api/liveops/loyalty-program-admin/loyalty-debit-user-point-balance.md): 指定した金額分、ユーザーのロイヤルティポイント残高を引き落とします。

### ユーザーのロイヤルティポイント残高を加算する

 - [POST /projects/{project_id}/users/{user_id}/points/{point_id}/balance/credit](https://xsolla.redocly.app/ja/api/liveops/loyalty-program-admin/loyalty-credit-user-point-balance.md): 指定した金額分、ユーザーのロイヤルティポイント残高に加算します。

## クライアント

### ユーザーのロイヤルティポイント残高の取得

 - [GET /v1/projects/{project_id}/loyalty_point_balance](https://xsolla.redocly.app/ja/api/liveops/loyalty-program-client/loyalty-get-user-balance.md): ロイヤルティポイントの現在の残高を返します。

### ロイヤルティポイントで購入する指定アイテムの注文作成

 - [POST /v2/project/{project_id}/payment/item/{item_sku}/loyalty_point/{loyalty_point_sku}](https://xsolla.redocly.app/ja/api/liveops/loyalty-program-client/loyalty-create-order-with-item-for-loyalty-points.md): ユーザーのロイヤルティポイントのみで全額支払われる指定アイテムの注文を作成します。複数のアイテムを一度に購入する場合は、quantityパラメータにその数を指定してください。

