{
  "openapi": "3.1.0",
  "info": {
    "description": "# 概要\n\nウェブフックは、システムで発生するイベントに関する通知です。特定のイベントが発生すると、エクソーラはHTTPリクエストを送信し、イベントデータがアプリケーション\nに送信されます。通常、これはJSON形式のPOSTリクエストです。\n\n<strong>イベントの例：</strong>\n- アイテムカタログとのユーザーインタラクション\n- 注文の決済またはキャンセル\n\n設定されたイベントが発生すると、エクソーラはウェブフック経由でシステムにそれを通知します。その結果、次のようなアクションを実行できます：\n- ユーザーの残高を補充する\n- 支払いを返金する\n- ユーザーアカウントから新しいアイテムをクレジットまたはデビットする\n- サブスクリプションの提供を開始する\n- 詐欺の疑いがある場合にユーザーをブロックする\n\n<b>支払い処理ウェブフックのワークフローの例：</b>\n\n![支払い処理ウェブフック](https://cdn.xsolla.net/developers/current/images/api_docs/webhooks-general.svg)\n\n<div class=\"note\">\n<p><strong>注意</strong></p><p>使用されるソリューションとその統合のタイプに応じて、ウェブフックのセットとインタラクションのシーケンスは、提供された例とは異なる場合があります。</p>\n</div>\n\n<b>エクソーラウェブフック統合のビデオガイド：</b>\n\n<div style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 15px; overflow: hidden;\">\n  <iframe src=\"https://player.vimeo.com/video/1034591338\" style=\"position: absolute; top:0; left: 0; width: 100%; height: 100%; border:0; border-radius: 15px;\" allowfullscreen></iframe>\n</div>\n\n\n<b>エクソーラ製品およびソリューションを使用する場合のウェブフック設定：</b>\n\n<table>\n<thead>\n    <tr>\n        <th>製品/ソリューション</th>\n        <th>必須/任意</th>\n        <th>ウェブフックは何に使用されますか</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>決済ソリューション</td>\n        <td>必須</td>\n        <td>\n          <ul>\n            <li>ユーザー検証。</li>\n            <li>支払いが成功した場合や支払いが返金された場合に、トランザクションの詳細情報を受け取ります。</li>\n            <li>ユーザーに購入したアイテムを付与し、注文がキャンセルされた場合にアイテムを差し引きます。</li>\n          </ul>\n        </td>\n    </tr>\n    <tr>\n        <td>インゲームストア</td>\n        <td>必須</td>\n        <td>\n          <ul>\n            <li>ユーザー検証。</li>\n            <li>支払いが成功した場合や支払いが返金された場合に、トランザクションの詳細情報を受け取ります。</li>\n            <li>ユーザーに購入したアイテムを付与し、注文がキャンセルされた場合にアイテムを差し引きます。</li>\n          </ul>\n        </td>\n    </tr>\n    <tr>\n        <td>ゲーム販売</td>\n        <td>任意</td>\n        <td>ゲームキーの販売では、ユーザーの検証やアイテムの付与は必要ありません。支払いや注文キャンセルなどのイベントに関する情報を受け取りたい場合は、ウェブフックを接続することができます。<br />ウェブフックを接続する場合は、すべての受信した<a href=\"/ja/webhooks/overview/#section/List-of-required-webhooks\">必要なウェブフック</a>を処理することが重要です。\n</td>\n    </tr>\n    <tr>\n        <td>サブスクリプション</td>\n        <td>任意</td>\n        <td>サブスクリプションの作成、更新、またはキャンセルに関する情報を受け取ります。または、<a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_information_set_up_via_api\">API経由で情報をリクエストする</a>こともできます。\n</td>\n    </tr>\n    <tr>\n        <td>ウェブショップ</td>\n        <td>必須</td>\n        <td>\n          <ul>\n            <li>ユーザー検証。</li>\n            <li>支払いが成功した場合や支払いが返金された場合に、トランザクションの詳細情報を受け取ります。</li>\n            <li>ユーザーに購入したアイテムを付与し、注文がキャンセルされた場合にアイテムを差し引きます。</li>\n            <li>ユーザー認証、ユーザーIDによる認証を使用する場合。または、<a href=\"/solutions/web-shop/authentication-and-analytics/set-up-authentication/#web_shop_guide_shop_with_auth_set_up_auth_xsolla_login_how_to_get_it\">エクソーラログイン経由でユーザー認証</a>を使用することもできます。</li>\n          </ul>\n        </td>\n    </tr>\n    <tr>\n        <td>デジタル配信ソリューション</td>\n        <td>必須</td>\n        <td>\n          <ul>\n            <li>ユーザー検証。</li>\n            <li>エクソーラ側のトランザクションIDをシステムのトランザクションIDにリンクします。</li>\n            <li>注文に追加のトランザクションパラメータを転送します。</li>\n            <li>ユーザーに購入したアイテムを付与し、注文がキャンセルされた場合にアイテムを差し引きます。</li>\n          </ul>\n          <p>ウェブフックの設定に関する詳細情報は、デジタル配信ソリューションの<a href=\"/solutions/ddh/#integration_guide_ddh_webhook\">ドキュメント</a>を参照してください。</p>\n        </td>\n    </tr>\n    <tr>\n        <td>ログイン</td>\n        <td>任意</td>\n        <td>\n          <p>イベント情報の受信：</p>\n          <ul>\n            <li>ユーザー登録/認証</li>\n            <li>ユーザーメールアドレスの確認</li>\n            <li>ユーザーのソーシャルメディアアカウントをリンクする</li>\n          </ul>\n          <p>ウェブフックの設定の詳細については、<a href=\"/api/login/operation/add-webhook-for-event/\">ログインに関するドキュメント</a>を参照してください。</p>\n        </td>\n    </tr>\n</tbody>\n</table>\n\n# 必須なウェブフックのリスト\nウェブフックの操作が必要な製品やソリューションを使用している場合、<a href=\"/webhooks/overview/#section/Set-up-\nwebhooks-in-Publisher-Account\">パブリッシャーアカウントでウェブフックを有効化してテスト</a>し、<a \nhref=\"/webhooks/overview/#section/Webhook-\nlistener\">その処理をセットアップ</a>します。特定のイベントが発生する時、ウェブフックが順次送信されます。したがって、1つのウェブフックを処理しない\n場合、その後のウェブフックは送信されません。必要なウェブフックのリストは以下の通りです。\n\n## インゲームストアと決済ソリューション\nエクソーラ側では、サイトでアイテムを購入して返品する際に2 \nつのウェブフック送信オプションが設定されています。支払いと取引データ、および購入したアイテムに関する情報は、個別に提供することも、1つのウェブフックにまとめるこ\nともできます。\n\n<b>まとめたウェブフックで情報を受け取ります：</b>\n\n2025年1月22日以降に<a \nhref=\"https://publisher.xsolla.com/\">パブリッシャーアカウント</a>に登録した場合は、<a \nhref=\"/webhooks/operation/successful-order-\npayment\">注文支払い完了</a>（`order_paid`）と<a href=\"/webhooks/operation/order-\ncancellation\">注文キャンセル</a>（`order_canceled`）ウェブフックですべての情報を受け取ります。この場合、<a \nhref=\"/webhooks/operation/payment\">支払い</a>（`payment`）と<a \nhref=\"/webhooks/operation/refund\">返金</a>（`refund`）ウェブフックを処理する必要はありません。\n\n<b>個別のウェブフックで情報を受け取ります：</b>\n\n2025年1月22日以前に<a \nhref=\"https://publisher.xsolla.com/\">パブリッシャーアカウント</a>に登録した場合は、以下のウェブフックを受け取ります：\n- <a href=\"/webhooks/operation/payment\">支払い</a> （`payment` ） そして<a \n  href=\"/webhooks/operation/refund\">返金</a> （`refund` ）に支払いデータと取引の詳細に関する情報が記載されます。\n- 購入したアイテムに関する情報を含む<a href=\"/webhooks/operation/successful-order-payment-\n  separate\">注文支払い完了</a>（`order_paid`）と<a href=\"/webhooks/operation/order-\n  cancellation-separate\">注文キャンセル</a>（`order_canceled`）。\n\nすべての受信ウェブフックを処理する必要があります。まとめたウェブフックを受信する新しいオプションに切り替えるには、カスタマーサクセスマネージャーにご連絡いただく\nか、<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>まで電子メールをお送りください。\n\nインゲームストアと決済管理の完全な運用のためには、主要なウェブフックの処理を実装する必要があります。\n\n<b>まとめたウェブフックを受信する場合</b>：\n\n<table>\n<thead>\n    <tr>\n        <th>ウェブフック名とタイプ</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>ユーザー検証 &gt; <a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>（<code>user_validation</code>）</td>\n        <td>ユーザーがゲームに登録されていることを確認するために、支払いプロセスのさまざまな段階で送信されます。</td>\n    </tr>\n    <tr>\n        <td>ゲームサービス &gt; まとめたウェブフック &gt; <a href=\"/webhooks/operation/successful-order-payment\">注文支払い完了</a>（<code>order_paid</code>）</td>\n        <td>支払いデータ、取引の詳細、購入されたアイテムに関する情報が含まれます。ウェブフックからのデータを使用して、ユーザーにアイテムを追加します。</td>\n    </tr>\n    <tr>\n        <td>ゲームサービス &gt; まとめたウェブフック &gt; <a href=\"/webhooks/operation/order-cancellation\">注文キャンセル</a>（<code>order_canceled</code>）</td>\n        <td>キャンセルされた支払のデータ、取引の詳細、および購入したアイテムに関する情報が含まれています。ウェブフックからのデータを使用して、購入されたアイテムを削除します。</td>\n    </tr>\n</tbody>\n</table>\n\n\n<b>個別のウェブフックを受信する場合</b>：\n\n<table>\n<thead>\n    <tr>\n        <th>ウェブフック名とタイプ</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>ユーザー検証 &gt; <a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>（<code>user_validation</code>）</td>\n        <td>ユーザーがゲームに登録されていることを確認するために、支払いプロセスのさまざまな段階で送信されます。</td>\n    </tr>\n    <tr>\n        <td>決済ソリューション &gt; <a href=\"/webhooks/operation/payment\">支払い</a>（<code>payment</code>）</td>\n        <td>支払いデータと取引の詳細が含まれています。</td>\n    </tr>\n    <tr>\n        <td>ゲームサービス&gt; 個別のウェブフック&gt; <a href=\"/webhooks/operation/successful-order-payment-separate\">注文支払い完了</a>（<code>order_paid</code>）</td>\n        <td>購入したアイテムに関する情報が含まれています。ウェブフックからのデータを使用して、ユーザーにアイテムを追加します。</td>\n    </tr>\n    <tr>\n        <td>決済ソリューション &gt; <a href=\"/webhooks/operation/refund\">返金</a>（<code>refund</code>）</td>\n        <td>支払いデータと取引の詳細が含まれています。</td>\n    </tr>\n    <tr>\n        <td>ゲームサービス &gt; 個別のウェブフック &gt; <a href=\"/webhooks/operation/order-cancellation-separate\">注文キャンセル</a>（<code>order_canceled</code>）</td>\n        <td>購入したアイテムとキャンセルされたトランザクションのIDに関する情報が含まれます。ウェブフックのデータを使用して、購入したアイテムを削除します。</td>\n    </tr>\n</tbody>\n</table>\n\nアイテムカタログの<a href=\"/doc/in-game-\nstore/features/personalization\">個人用設定</a>がアプリケーション側で実装されている場合は、<a \nhref=\"/webhooks/operation/personalized-partner-\ncatalog\">パートナー側でのカタログ個人用設定</a>ウェブフックの処理を設定します。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>実際の支払いを受け取るには、<a href=\"/doc/in-game-store/integration-guide/sign-licensing-agreement/\">ライセンス契約に署名し、</a>以下のウェブフック処理を実装するだけです：</p>\n<p><ul><li>個別のウェブフックを受信する場合、<a href=\"/webhooks/operation/payment\">支払い</a>、<a href=\"/webhooks/operation/successful-order-payment-separate\">注意文支払い完了</a>、 および<a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a></li><li>まとめたウェブフックを受信する場合、<a href=\"/webhooks/operation/successful-order-payment\">注意文支払い完了</a>と<a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a></li></ul></p>\n</div>\n\n## サブスクリプション\nサブスクリプションプランを自動的に管理するには、主要なウェブフックの処理を実装する必要があります：\n- <a href=\"/webhooks/operation/user-validation/\">ユーザーの検証</a>（`user_validation`） — \n  決済プロセスのさまざまな段階で送信され、ユーザーがゲームに登録されていることを確認します。\n- <a href=\"/webhooks/operation/payment\">決済</a>（`payment`） — \n  注文が支払われたときに送信され、決済データとトランザクションの詳細が含まれます。\n- <a href=\"/webhooks/operation/created-\n  subscription/\">作成されたサブスクリプション</a>（`create_subscription`） — <a \n  href=\"/webhooks/operation/payment\">決済</a>ウェブフックが正常に処理されたとき、またはユーザーが試用期間付きのサブスクリプ\n  ションを購入したときに送信されます。これは購入したサブスクリプションの詳細とユーザーデータを含んでいます。ウェブフックデータを使用して、ユーザーにサブスクリプシ\n  ョンを追加します。\n- <a href=\"/webhooks/operation/updated-\n  subscription/\">更新されたサブスクリプション</a>（`update_subscription`） — \n  サブスクリプションが更新または変更されたとき、<a \n  href=\"https://developers.xsolla.com/ja/webhooks/operation/payment\">決済</a>ウェブフックが正常に\n  処理されたときに送信されます。購入したサブスクリプションの詳細とユーザーデータが含まれます。ウェブフックデータを使用して、ユーザーのサブスクリプションを延長する\n  か、サブスクリプションパラメータを変更します。\n- <a href=\"/webhooks/operation/refund\">返金</a>（`refund`） — \n  注文がキャンセルされたときに送信され、キャンセルされた決済データとトランザクションの詳細が含まれます。\n- <a href=\"/webhooks/operation/canceled-\n  subscription/\">キャンセルされたサブスクリプション</a>（`cancel_subscription`） — <a \n  href=\"/webhooks/operation/refund\">返金</a>ウェブフックが正常に処理されたとき、またはサブスクリプションが別の理由でキャンセ\n  ルされたときに送信されます。サブスクリプションとユーザーデータに関する情報を含んでいます。ウェブフックデータを使用して、ユーザーから購入したサブスクリプションを\n  差し引きます。\n\n# パブリッシャーアカウントでウェブフックをセットアップする\n\n## 一般設定\n\nウェブフックの受信を有効にするには：\n1. パブリッシャーアカウントのプロジェクトで、<a \n   href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/\">プロジェクト設定 &gt; \n   ウェブフック</a>セクションに移動します。\n2. <b>ウェブフックサーバー</b>フィールドには、ウェブフックを受信したいサーバーのURLを `https://example.com` \n   形式で指定します。ウェブフックをテストするツールで見つけたURLを指定することもできます。\n\n<div class=\"notice\">\n<p><strong>注意。</strong></p>\n<p> データ転送にはHTTPSプロトコルが使用されます。HTTPプロトコルはサポートされていません。</p>\n</div>\n\n<p></p>\n\n3. プロジェクトのウェブフックに署名するための秘密鍵は、デフォルトで生成されます。新しい秘密鍵を生成したい場合は、更新アイコンをクリックします。\n4. 「<b>ウェブフックを有効にする</b>」をクリックします。\n\n![Enable \nwebhooks](https://cdn.xsolla.net/developers/current/images/api_docs/enable.png)\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>ウェブフックをテストするには、<a href=\"https://webhook.site/#!/\">webhook.site</a>のような専用のウェブサイトか、<a href=\"https://ngrok.com/\">ngrok</a>のようなプラットフォームを選択できます。</p>\n</div>\n\n<p></p>\n\n<div class=\"notice\">\n    <p><strong>注意</strong></p>\n    <p>異なるURLに同時にウェブフックを送信することはできません。パブリッシャーアカウントでは、まずテスト用のURLを指定し、それを実際のURLに置き換えることができます。</p>\n</div>\n\nウェブフックの受信を無効にするには：\n1. パブリッシャーアカウントのプロジェクトで、<a \n   href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/\">プロジェクト設定 &gt; \n   ウェブフック</a>セクションに移動します。\n2. 「<b>ウェブフックを無効にする</b>」をクリックします。\n\n## 詳細設定\n\nウェブフックについては<a href=\"/webhooks/overview/#section/Test-webhooks-in-Publisher-\nAccount/Store\">決済ソリューションとストア</a>セクションでは、詳細設定が利用できます。「<b>ウェブフックを取得</b>」ボタンをクリックする\nと、自動的に<a href=\"/webhooks/overview/#section/Set-up-webhooks-in-Publisher-Account\n/General-settings\">一般設定</a>ブロックの下に表示されます。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>詳細設定が表示されない場合は、一般設定でウェブフック受信が接続されていることを確認し、<b>テスト &gt; 決済ソリューションとストア</b>タブにいることを確認してください。</p>\n</div>\n\nこのセクションでは、ウェブフックでの追加情報の受信を設定できます。これを行うには、対応するスイッチをアクティブポジションに設定します。各権限の行は、設定の変更に\nよって影響を受けるウェブフックを示します。\n\n<table>\n<thead>\n    <tr>\n        <th>トグル</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>保存された決済アカウントに関する情報を表示する</td>\n        <td>保存された決済方法に関する情報は、<code>payment_account</code>カスタムオブジェクト。</td>\n    </tr>\n    <tr>\n        <td>保存された決済方法による取引に関する情報を表示する</td>\n        <td><p>情報は、ウェブフックの以下のカスタムパラメータに渡されます：</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — 保存された決済方法は使用されませんでした</li><li><code>1</code> — 決済方法は現在の支払い時に保存されました</li><li><code>2</code> — 保存された決済方法は使用されませんでした</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — 一回払い</li><li><code>2</code> — 定期支払い</li></ul></li></ul></td>\n    </tr>\n    <tr>\n        <td>注文オブジェクトをウェブフックに追加する</td>\n        <td>注文に関する情報は、<a href=\"/webhooks/operation/payment/\">決済</a>ウェブフックの<code>order</code>オブジェクトに渡されます。</td>\n    </tr>\n    <tr>\n        <td>機密データは含まず、必要なユーザーパラメータのみを送信する</td>\n        <td><p>ウェブフックでは、ユーザーに関する次の情報のみが渡されます：</p><ul><li>ID</li><li>国</li></ul></td>\n    </tr>\n    <tr>\n        <td>カスタムパラメータを送信する</td>\n        <td><a href=\"/api/pay-station/operation/create-token/\">カスタムトークンパラメータ</a>に関する情報は、ウェブフックで渡されます。</td>\n    </tr>\n    <tr>\n        <td>カードのBINとサフィックスを表示する</td>\n        <td><p>ウェブフックには、銀行カード番号に関する以下の情報が渡されます：</p><ul><li><code>card_bin</code>パラメータの最初の6桁</li><li><code>card_suffix</code>パラメータの最後の4桁</li></ul></td>\n    </tr>\n    <tr>\n        <td>カードブランドを表示する</td>\n        <td>決済に使用したカードのブランド。例えば、MastercardやVisaなど。</td>\n    </tr>\n</tbody>\n</table>\n\n![高度な設定](https://cdn.xsolla.net/developers/current/images/api_docs/advanced-settings-upd.png)\n\n# パブリッシャーアカウントでウェブフックをテストする\n\nウェブフックをテストすると、ユーザー側とエクソーラ側の両方でプロジェクトが正しく設定されていることを確認できます。\n\nウェブフックが正常に<a href=\"/webhooks/overview/#section/Set-up-webhooks-in-Publisher-\nAccount\">セットアップ</a>した場合、ウェブフック設定セクションの下にウェブフックのテストセクションが表示されます。\n\n![ウェブフックのテストセクション](https://cdn.xsolla.net/developers/current/images/api_docs/testing.png)\n\nパブリッシャーアカウントのテストセクションは、ウェブフック受信オプションによって異なります。\n\n<b>まとめたウェブフックを受信する場合</b>：\n\n<table>\n<thead>\n    <tr>\n        <th>ウェブフックテストのタブ名</th>\n        <th>ウェブフック名とタイプ</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td><b>決済ソリューションとストア</b></td>\n        <td>ユーザー検証 &gt; <a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>（<code>user_validation</code>）</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>ゲームサービス &gt; まとめたウェブフック &gt; <a href=\"/webhooks/operation/successful-order-payment\">注文支払い完了</a>（<code>order_paid</code>）</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>ゲームサービス &gt; まとめたウェブフック &gt; <a href=\"/webhooks/operation/order-cancellation\">注文キャンセル</a>（<code>order_canceled</code>）</td>\n    </tr>\n    <tr>\n        <td><b>サブスクリプション</b></td>\n        <td>ユーザー検証 &gt; <a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>（<code>user_validation</code>）</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>決済ソリューション &gt; <a href=\"/webhooks/operation/payment\">支払い</a>（<code>payment</code>）</td>\n    </tr>\n</tbody>\n</table>\n\n\n<b>個別のウェブフックを受信する場合</b>：\n\n<table>\n<thead>\n    <tr>\n        <th>ウェブフックテストのタブ名</th>\n        <th>ウェブフック名とタイプ</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td><b>ストア</b></td>\n        <td>ゲームサービス&gt; 個別のウェブフック&gt; <a href=\"/webhooks/operation/successful-order-payment-separate\">注文支払い完了</a>（<code>order_paid</code>）</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>ゲームサービス &gt; 個別のウェブフック &gt; <a href=\"/webhooks/operation/order-cancellation-separate\">注文キャンセル</a>（<code>order_canceled</code>）</td>\n    </tr>\n    <tr>\n        <td><b>決済ソリューション</b></td>\n        <td>ユーザー検証 &gt; <a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>（<code>user_validation</code>）</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>決済ソリューション &gt; <a href=\"/webhooks/operation/payment\">支払い</a>（<code>payment</code>）</td>\n    </tr>\n    <tr>\n        <td><b>サブスクリプション</b></td>\n        <td>ユーザー検証 &gt; <a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>（<code>user_validation</code>）</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>決済ソリューション &gt; <a href=\"/webhooks/operation/payment\">支払い</a>（<code>payment</code>）</td>\n    </tr>\n</tbody>\n</table>\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>テストセクションにテストがパスしていないという警告が表示された場合は、<a href=\"/webhooks/overview/#section/Webhook-listener\">ウェブフックリスナー</a>のウェブフック応答設定を確認します。テストでのエラーの理由はテスト結果に示されます。</p>\n<p><b>例：</b></p>\n<p>テストには、専門サイト<a href=\"https://webhook.site/#!/\">webhook.site</a>を使用します。</p>\n<p>「<b>無効な署名に対する応答のテスト</b>」セクションにエラーが表示されます。</p>\n<p>エクソーラが間違った署名を持つウェブフックを送信し、ハンドラーが<code>INVALID_SIGNATURE</code>エラーコードを指定する<code>4xx</code> HTTPコードで応答することを期待しているために発生します。</p>\n<p><a href=\"https://webhook.site/#!/\">webhook.site</a>は、署名が間違ったウェブフックを含むすべてのウェブフックに応答して<code>200</code> HTTPコードを送信します。期待される<code>4xx</code> HTTPコードが得られないため、テスト結果にエラーが表示されます。</p>\n</div>\n\n![テストエラー](https://cdn.xsolla.net/developers/current/images/api_docs/test-error.png)\n\nまとめたウェブフックを使用したシナリオのテストプロセスを以下に説明します。\n\n## 決済ソリューションとストア\n\n「<b>決済ソリューションとストア</b>」タブでは、次のウェブフックをテストできます：\n- <a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>（`user_validation`）\n- <a href=\"/webhooks/operation/successful-order-\n  payment\">注文の支払いが完了しました</a>（`order_paid`）\n- <a href=\"/webhooks/operation/order-cancellation\">注文キャンセル</a>（`order_canceled`）\n\nテストするには：\n1. ウェブフックのテストセクションで、「<b>決済ソリューションとストア</b>」タブに移動します。\n2. ドロップダウンメニューで、アイテムのタイプを選択します。選択したタイプのアイテムがパブリッシャーアカウントに設定されていない場合は、以下をクリックします：\n   * <b>接続</b> – このタイプのアイテムを含むモジュールが接続されていない場合\n   * <b>構成</b> – \n     以前にモジュールを接続したが、セットアップを完了していない場合<br/>ボタンをクリックすると、選択したアイテムのタイプに対応するパブリッシャーアカウントのセク\n     ションにリダイレクトされます。アイテムを作成したら、ウェブフックのテストセクションに戻り、次のステップに進みます。\n3. 必要なフィールドに入力します：<ol type=\"a\"> \n   <li>ドロップダウンリストからアイテムのSKUを選択し、数量を指定します。同じタイプのアイテムを複数選択するには、「<b> + \n   </b>」をクリックして新しい行に追加します。</li> <li><b>ユーザーID</b> — \n   テスト時には、文字と数字の任意の組み合わせを使用できます。</li> <li><b>パブリックユーザーID</b> — \n   ユーザーに知られているID（メールアドレスやニックネームなど）。このフィールドは、プロジェクトで「<b>ペイステーション &gt; \n   設定</b>」でパブリックユーザーIDが有効になっている場合に表示されます。</li> \n   <li><b>エクソーラ注文ID</b>フィールドに任意の値を入力します。</li> <li><b>エクソーラ請求書ID</b> — \n   エクソーラ側のトランザクションID。テスト時には任意の数値を使用できます。</li> <li><b>請求書ID</b> — ゲーム側のトランザクションID。 \n   テスト時には、文字と数字の任意の組み合わせを使用できます。これは支払いを成功させるために必要なパラメータではありませんが、これを渡すことで、ゲーム側のトランザク\n   ションIDをエクソーラ側のトランザクション ID にリンクできます。</li> <li><b>金額</b> — \n   支払い金額。テスト時には任意の数値を使用できます。</li> <li><b>通貨</b> — ドロップダウンリストから通貨を選択します。</li> </ol>\n\n4. 「<b>ウェブフックをテスト</b>」をクリックします。\n\n\n指定されたデータを含む<a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>、<a \nhref=\"/webhooks/operation/successful-order-payment\">注文支払い完了</a>および<a \nhref=\"/webhooks/operation/order-\ncancellation\">注文キャンセル</a>ウェブフックが、指定されたURLに送信されます。各ウェブフックタイプのテスト結果は、「<b>ウェブフックをテス\nト</b>」ボタンの下に表示されます。\n\nプロジェクトでパブリックユーザー IDが有効になっている場合は、ユーザー検索チェックの結果も表示されます。\n\n各ウェブフックについて、成功したシナリオとエラーが発生したシナリオの両方の処理を設定する必要があります。\n\n![支払いテストセクション](https://cdn.xsolla.net/developers/current/images/api_docs/payments-tab.png)\n\n## サブスクリプション\n「<b>サブスクリプション</b>」タブでは、次のウェブフックをテストできます：\n- <a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a>（`user_validation`）\n- <a href=\"/webhooks/operation/payment\">決済</a>（`payment`）\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>パブリッシャーアカウントでは、基本的なユーザー検証および支払いウェブフックのみをテストできます。他のウェブフックタイプをテストするには、次の場所に移動します：</p>\n<p><ul><li><a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_test_payment\">サブスクリプション購入をテスト</a></li><li><a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_test_renewal\">サブスクリプション更新をテスト</a></li><li><a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_test_cancelation\">サブスクリプションのキャンセルをテスト</a></li></ul></p>\n</div>\n\n<p></p>\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>ウェブフックをテストするには、<b>パブリッシャーアカウント &gt; サブスクリプション &gt; サブスクリプションプラン</b>セクションで、少なくとも1つの<a href=\"/doc/subscriptions/integration-guide/set-up-plan/\">サブスクリプションプランが作成されている</a>必要があります。</p>\n</div>\n\nテストするには：<ol> <li>テストセクションで、<b>サブスクリプション</b>タブに移動します。</li> \n<li>必要なフィールドに入力します：<ol type=\"a\"> <li><b>ユーザーID</b> — \nテスト時には、文字と数字を任意に組み合わせて使用できます。</li> <li><b>エクソーラインボイスID</b> — \nエクソーラ側のトランザクションID。テスト時には、任意の数値を使用できます。</li> <li><b>パブリックユーザーID</b> — \nメールアドレスやニックネームなど、ユーザーに知られているID。このフィールドは、「ペイステーション &gt; 設定 &gt; \n追加設定」セクションでプロジェクトのパブリックユーザーIDが有効になっている場合に表示されます。</li> <li><b>通貨</b>— \nドロップダウンリストから通貨を選択します。</li> <li><b>プランID</b> — \nサブスクリプションプラン。ドロップダウンリストからプランを選択します。</li> <li><b>サブスクリプション製品</b> — \nドロップダウンリストから製品を選択します（任意）。</li> <li><b>金額</b>- 支払金額。テスト時には、任意の数値を使用できます。</li> \n<li><b>インボイスID</b> — \nゲーム側のトランザクションID。テスト時には、文字と数字を任意に組み合わせて使用できます。これは決済を成功させるために必要なパラメータではありませんが、エクソー\nラ側のトランザクションIDとあなた側のトランザクションIDをリンクさせるために渡すことができます。</li> <li><b>試用期間</b>。<a \nhref=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_sandbox\">試用期間\nのないサブスクリプションの購入</a>をテストする、または<a href=\"/doc/subscriptions/integration-guide/get-\nsubscription-\ninformation/#guides_subscriptions_get_subscription_set_up_webhooks_test_renewal\"\n>サブスクリプションの更新</a>をテストするには、値<code>0</code>を指定します。</li> </ol> </li> \n<li>「<b>ウェブフックをテストする</b>」をクリックします。</li> </ol>\n\n指定したURLに、データが入力されたウェブフックを受け取ります。各ウェブフックのテスト結果は、成功したシナリオとエラーが発生したシナリオの両方で、「<b>ウェブ\nフックをテストする</b>」ボタンの下に表示されます。\n\n<a id=\"webhook-listener\"></a>\n\n# ウェブフックリスナー\n\nウェブフックリスナーは、指定されたURLアドレスでウェブフックを受信し、<a href=\"/webhooks/overview/#section\n/Webhook-listener/Generation-of-signature\">署名を生成し</a>、<a \nhref=\"/webhooks/overview/#section/Webhook-listener/Sending-responses-to-\nwebhook\">エクソーラウェブフックサーバーに応答を送信する</a>ことができるプログラムコードです。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p><a href=\"https://developers.xsolla.com/ja/sdk/php/\">Pay Station PHP SDKライブラリ</a>には、ウェブフックを処理するための既製のクラスが含まれています。</p>\n</div>\n\n<!-- IMPORTANT! Changing the list of IP addresses should be coordinated with the administrators. Request for Director of Infrastructure and IT approval in the ticket for changing the IP address list. -->\n\nアプリケーション側で、以下のIPアドレスからのウェブフックの受信を実装してください：\n- `185.30.20.0/24`\n- `185.30.21.0/24`\n- `185.30.22.0/24`\n- `185.30.23.0/24`\n- `34.102.38.178`\n- `34.94.43.207`\n- `35.236.73.234`\n- `34.94.69.44`\n- `34.102.22.197`\n\nもし「<a href=\"/doc/login/\">ログイン</a>」製品を統合している場合、以下のIPアドレスからのウェブフックの処理も追加してください：\n\n- `34.94.0.85`\n- `34.94.14.95`\n- `34.94.25.33`\n- `34.94.115.185`\n- `34.94.154.26`\n- `34.94.173.132`\n- `34.102.48.30`\n- `35.235.99.248`\n- `35.236.32.131`\n- `35.236.35.100`\n- `35.236.117.164`\n\n制限：\n- アプリケーションのデータベースに同じIDで成功したトランザクションが複数存在することは許可されていません。\n- ウェブフックリスナーがデータベースにすでに存在するIDを持つウェブフックを受信した場合、このトランザクションの以前の処理結果を返す必要があります。ユーザーに重複\n  した購入をクレジットし、データベースに重複したレコードを作成することは推奨されません。\n\n## 署名の生成\n\n安全なデータ転送を確保するには、ウェブフックが実際にエクソーラサーバーから送信され、転送中に改ざんされていないことを確認する必要があります。これを行うには、受信\nしたリクエスト本文のペイロードに基づいて独自の署名を生成し、それを着信リクエストの`authorization`ヘッダーで提供される署名と比較してください。両方\nの署名が一致する場合、そのウェブフックは正規のものであり、安全に処理できます。\n\n検証ステップ：\n\n1. 着信ウェブフックリクエストの`authorization`ヘッダーから署名を取得します。ヘッダーの形式は`Signature \n   <signature_value>`です。\n2. ウェブフックのリクエスト本文をJSON形式で取得してください。<div \n   class=\"notice\"><p><strong>注意</strong></p><p>JSONペイロードは、受信したものをそのまま使用してください。ペイロード\n   をパースしたり再エンコードしたりしないでください。フォーマットが変更され、署名検証が失敗する原因となります。</p></div><p></p>\n\n3. 比較用に独自の署名を生成します：<ol type=\"a\"> \n   <li>JSONペイロードとプロジェクトの秘密鍵を連結します。秘密鍵は文字列の末尾に追加してください。</li> \n   <li>結果の文字列にSHA-1暗号ハッシュ関数を適用します。結果は小文字の16進数文字列になります。</li> </ol>\n4. 生成した署名を`authorization`ヘッダーからの署名と比較してください。両者が一致すれば、ウェブフックは信頼できるものです。\n\n以下に、署名生成の実装例を各種プログラミング言語で示します： C#、C++、Go、PHP、Node.js。\n\n### ウェブフック（HTTP）の例：\n\n```http\nPOST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-type: application/json\ncontent-length: 165\nauthorization: Signature 52eac2713985e212351610d008e7e14fae46f902\n{\n  \"notification_type\":\"user_validation\",\n  \"user\":{\n      \"ip\":\"127.0.0.1\",\n      \"phone\":\"18777976552\",\n      \"email\":\"email@example.com\",\n      \"id\":1234567,\n      \"name\":\"Xsolla User\",\n      \"country\":\"US\"\n  }\n}\n```\n\n### ウェブフック（curl）の例：\n\n```bash\ncurl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'authorization: Signature 52eac2713985e212351610d008e7e14fae46f902' \\\n-d '{\n  \"notification_type\":\n    \"user_validation\",\n    \"user\":\n      {\n        \"ip\": \"127.0.0.1\",\n        \"phone\": \"18777976552\",\n        \"email\": \"email@example.com\",\n        \"id\": 1234567,\n        \"name\": \"Xsolla User\",\n        \"country\": \"US\"\n      }\n    }'\n```\n\n### C#で署名生成の実装例（一般サンプル）：\n\n<div class=\"note\">\n<p><strong>注</strong></p>\n<p>このコードサンプルは、.NET Framework 4.0以降、および.NET Coreやその他の最新の.NETバージョンと互換性があります。署名検証には、タイミング攻撃を防ぐために、<code>ConstantTimeEquals</code>メソッドによる定数時間比較が使用されています。</p>\n</div>\n\n```csharp\nusing System;\nusing System.Security.Cryptography;\nusing System.Text;\npublic static class XsollaWebhookSignature\n{\n    public static string ComputeSha1(string jsonBody, string secretKey)\n    {\n        // Concatenation of the JSON from the request body and the project's secret key\n        string dataToSign = jsonBody + secretKey;\n        using (SHA1 sha1 = SHA1.Create())\n        {\n            byte[] hashBytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(dataToSign));\n            // Convert hash bytes to lowercase hexadecimal string\n            var hexString = new StringBuilder(hashBytes.Length * 2);\n            foreach (byte b in hashBytes)\n            {\n                hexString.Append(b.ToString(\"x2\"));\n            }\n            return hexString.ToString();\n        }\n    }\n    public static bool VerifySignature(string jsonBody, string secretKey, string receivedSignature)\n    {\n        string computedSignature = ComputeSha1(jsonBody, secretKey);\n        string receivedSignatureLower = receivedSignature.ToLower();\n        // Use constant-time comparison to prevent timing attacks\n        return ConstantTimeEquals(computedSignature, receivedSignatureLower);\n    }\n    private static bool ConstantTimeEquals(string a, string b)\n    {\n        if (a.Length != b.Length)\n        {\n            return false;\n        }\n        int result = 0;\n        for (int i = 0; i < a.Length; i++)\n        {\n            result |= a[i] ^ b[i];\n        }\n        return result == 0;\n    }\n}\n```\n\n### C#による署名生成の実装例（.NET 5.0以降）：\n\n<div class=\"note\">\n<p><strong>注</strong></p>\n<p><code>Convert.ToHexString</code>メソッドを使用するには、.NET 5.0 以降が必要です。<p></p>.NET 7.0以降をお持ちの場合は、 <code>CryptographicOperations.FixedTimeEquals</code>メソッドの代わりに<code>ConstantTimeEquals</code>を使用することもできます。</p>\n</div>\n\n```csharp\n// For .NET 5.0 and later, you can use the more concise Convert.ToHexString method:\nusing System;\nusing System.Security.Cryptography;\nusing System.Text;\npublic static class XsollaWebhookSignature\n{\n    public static string ComputeSha1(string jsonBody, string secretKey)\n    {\n        string dataToSign = jsonBody + secretKey;\n        using var sha1 = SHA1.Create();\n        byte[] hashBytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(dataToSign));\n        return Convert.ToHexString(hashBytes).ToLower();\n    }\n    public static bool VerifySignature(string jsonBody, string secretKey, string receivedSignature)\n    {\n        string computedSignature = ComputeSha1(jsonBody, secretKey);\n        string receivedSignatureLower = receivedSignature.ToLower();\n        // Use constant-time comparison to prevent timing attacks\n        return ConstantTimeEquals(computedSignature, receivedSignatureLower);\n    }\n    private static bool ConstantTimeEquals(string a, string b)\n    {\n        if (a.Length != b.Length)\n        {\n            return false;\n        }\n        int result = 0;\n        for (int i = 0; i < a.Length; i++)\n        {\n            result |= a[i] ^ b[i];\n        }\n        return result == 0;\n    }\n}\n```\n\n### C#による署名生成の実装例（.NET 7.0以降）：\n\n<div class=\"note\">\n<p><strong>注</strong></p>\n<p>.NET 7.0以降をお持ちの場合は、<code>CryptographicOperations.FixedTimeEquals</code>メソッドを使用できます。</p>\n</div>\n\n```csharp\n// For .NET 7.0+, you can use the built-in CryptographicOperations.FixedTimeEquals:\nusing System.Security.Cryptography;\npublic static bool VerifySignature(string jsonBody, string secretKey, string receivedSignature)\n{\n    string computedSignature = ComputeSha1(jsonBody, secretKey);\n    byte[] computedBytes = Encoding.UTF8.GetBytes(computedSignature);\n    byte[] receivedBytes = Encoding.UTF8.GetBytes(receivedSignature.ToLower());\n    return CryptographicOperations.FixedTimeEquals(computedBytes, receivedBytes);\n}\n```\n\n### C++での署名生成の実装例：\n\n```c++\n#include <string>\n#include <sstream>\n#include <iomanip>\n#include <openssl/sha.h>\nclass XsollaWebhookSignature {\npublic:\n    static std::string computeSha1(const std::string& jsonBody, const std::string& secretKey) {\n        // Concatenation of the JSON from the request body and the project's secret key\n        std::string dataToSign = jsonBody + secretKey;\n        unsigned char digest[SHA_DIGEST_LENGTH];\n        // Create SHA1 hash\n        SHA1(reinterpret_cast<const unsigned char*>(dataToSign.c_str()),\n             dataToSign.length(), digest);\n        // Convert to lowercase hexadecimal string\n        std::ostringstream hexStream;\n        hexStream << std::hex << std::setfill('0');\n        for (int i = 0; i < SHA_DIGEST_LENGTH; ++i) {\n            hexStream << std::setw(2) << static_cast<unsigned int>(digest[i]);\n        }\n        return hexStream.str();\n    }\n    static bool verifySignature(const std::string& jsonBody, const std::string& secretKey, const std::string& receivedSignature) {\n        std::string computedSignature = computeSha1(jsonBody, secretKey);\n        // Timing-safe comparison\n        if (computedSignature.length() != receivedSignature.length()) {\n            return false;\n        }\n        volatile unsigned char result = 0;\n        for (size_t i = 0; i < computedSignature.length(); ++i) {\n            result |= (computedSignature[i] ^ receivedSignature[i]);\n        }\n        return result == 0;\n    }\n};\n```\n\n### Goでの署名生成の実装例：\n\n```go\npackage main\nimport (\n\t\"crypto/sha1\"\n    \"crypto/subtle\"\n\t\"encoding/hex\"\n\t\"strings\"\n)\ntype XsollaWebhookSignature struct{}\nfunc (x *XsollaWebhookSignature) ComputeSha1(jsonBody, secretKey string) string {\n\t// Concatenation of the JSON from the request body and the project's secret key\n\tdataToSign := jsonBody + secretKey\n\t// Create SHA1 hash\n\th := sha1.New()\n\th.Write([]byte(dataToSign))\n\tsignature := h.Sum(nil)\n\t// Convert to lowercase hexadecimal string\n\treturn strings.ToLower(hex.EncodeToString(signature))\n}\nfunc (x *XsollaWebhookSignature) VerifySignature(jsonBody, secretKey, receivedSignature string) bool {\n\tcomputedSignature := x.ComputeSha1(jsonBody, secretKey)\n\treceivedSignatureLower := strings.ToLower(receivedSignature)\n\t// Use constant time comparison to prevent timing attacks\n\treturn subtle.ConstantTimeCompare([]byte(computedSignature), []byte(receivedSignatureLower)) == 1\n}\n```\n\n### PHPでの署名生成の実装例：\n\n```php\n<?php\nclass XsollaWebhookSignature\n{\n    /**\n     * Compute SHA1 signature from webhook JSON body and secret key\n     *\n     * @param string $jsonBody The raw JSON body from webhook\n     * @param string $secretKey The project's secret key\n     * @return string The lowercase SHA1 signature\n     */\n    public static function computeSha1(string $jsonBody, string $secretKey): string\n    {\n        // Concatenation of the JSON from the request body and the project's secret key\n        $dataToSign = $jsonBody . $secretKey;\n        // Generate SHA1 signature\n        $signature = sha1($dataToSign);\n        return strtolower($signature);\n    }\n    /**\n     * Verify webhook signature using timing-safe comparison\n     *\n     * @param string $jsonBody The raw JSON body from webhook\n     * @param string $secretKey The project's secret key  \n     * @param string $receivedSignature The signature from authorization header\n     * @return bool True if signature is valid, false otherwise\n     */\n    public static function verifySignature(string $jsonBody, string $secretKey, string $receivedSignature): bool\n    {\n        $computedSignature = self::computeSha1($jsonBody, $secretKey);\n        // Use hash_equals for timing-safe comparison\n        return hash_equals($computedSignature, strtolower($receivedSignature));\n    }\n}\n?>\n```\n\n### Node.jsでの署名生成の実装例：\n\n```js\nconst crypto = require('crypto');\nclass XsollaWebhookSignature {\n    // IMPORTANT: jsonBody must be the raw JSON string exactly as received from Xsolla\n    static computeSha1(jsonBody, secretKey) {\n        // Concatenation of the JSON from the request body and the project's secret key\n        const dataToSign = jsonBody + secretKey;\n        // Create SHA1 hash\n        const hash = crypto.createHash('sha1');\n        hash.update(dataToSign, 'utf8');\n        // Convert to lowercase hexadecimal string\n        return hash.digest('hex').toLowerCase();\n    }\n    static verifySignature(jsonBody, secretKey, receivedSignature) {\n        const computedSignature = this.computeSha1(jsonBody, secretKey);\n        const cleanReceivedSignature = receivedSignature.toLowerCase();\n        // Check if signatures have the same length before using timingSafeEqual\n        if (computedSignature.length !== cleanReceivedSignature.length) {\n            return false;\n        }\n        try {\n            return crypto.timingSafeEqual(\n                Buffer.from(computedSignature, 'hex'),\n                Buffer.from(cleanReceivedSignature, 'hex')\n            );\n        } catch (error) {\n            // Return false if there's any error (e.g., invalid hex characters)\n            return false;\n        }\n    }\n}\n```\n\n## ウェブフックへの応答の送信\n\nウェブフックの受信を確認するには、サーバーは以下を返す必要があります：\n* 成功した応答の場合は、`200`、`201`、または`204`HTTPコード。\n* `400`HTTPコードは<a \n  href=\"/webhooks/overview/#section/エラー\">問題の説明</a>を含む、指定されたユーザーが見つからないか、無効な署名が渡\n  された場合に送信されます。ウェブフックハンドラーは、サーバーで一時的な問題が発生した場合に`5xx`HTTPコードを返すこともあります。\n\nエクソーラサーバーが <a href=\"/webhooks/operation/successful-order-\npayment\">注文支払い完了</a>と<a href=\"/webhooks/operation/order-\ncancellation\">注文キャンセル</a>へのレスポンスを受け取らなかった場合、または`5xx`コードのレスポンスを受け取った場合、ウェブフックは以下の\nスケジュールに従って再送されます：\n* 5分間隔で2回の試行\n* 15分間隔で7回の試行\n* 60分間隔で10回の試行\n\nウェブフックの送信は、最初の送信から12時間以内に最大20回まで試行されます。\n\n<a href=\"/webhooks/operation/payment\">決済</a>と<a \nhref=\"/webhooks/operation/refund\">返金</a>ウェブフックの再試行ロジックは、対応するウェーブフックページに記載されています。\n\n<div class=\"notice\">\n<p><strong>注意</strong></p>\n<p>以下の条件がすべて満たされている場合でも、支払いはユーザーに返金されます：<ul><li>返金はエクソーラによって開始されました。</li><li>ウェーブフックに対する応答として、<code>4xx</code>ステータスコードが返された、またはすべての再試行後に応答がなかった、あるいは<code>5xx</code>ステータスコードが返された場合。</li></ul></p>\n</div>\n\nエクソーラサーバーが<a href=\"/webhooks/operation/user-\nvalidation/\">ユーザー認証</a>ウェブフックへの応答を受信しなかった場合、または`400`または`5xx`のコードで応答を受信した場合、<a \nhref=\"/webhooks/operation/user-\nvalidation/\">ユーザー認証</a>ウェブフックは再送信されません。この場合、ユーザーにはエラーが表示され、<a \nhref=\"/webhooks/operation/payment\">支払い</a>と<a href=\"/webhooks/operation\n/successful-order-payment\">注文支払い完了</a>ウェブフックは送信されません。\n\n# エラー\n\nHTTPコード400のエラーコード：\n\n<table>\n<thead>\n    <tr>\n        <th>コード</th>\n        <th>メッセージ</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>INVALID_USER</td>\n        <td>無効なユーザー</td>\n    </tr>\n    <tr>\n        <td>INVALID_PARAMETER</td>\n        <td>無効なパラメータ</td>\n    </tr>\n    <tr>\n        <td>INVALID_SIGNATURE</td>\n        <td>無効な署名</td>\n    </tr>\n    <tr>\n        <td>INCORRECT_AMOUNT</td>\n        <td>不正確な金額</td>\n    </tr>\n    <tr>\n        <td>INCORRECT_INVOICE</td>\n        <td>不正確なインボイス</td>\n    </tr>\n</tbody>\n</table>\n\n```\nHTTP/1.1 400 Bad Request\n{\n    \"error\":{\n        \"code\":\"INVALID_USER\",\n        \"message\":\"Invalid user\"\n    }\n}\n```\n\n# 適用事例\n\n## セキュリティ\n\n以下のガイドラインに従ってください：\n\n* 有効な証明書を備えたHTTPSのみを使用してください。\n* 署名の検証は必ずリクエスト本文の生データに対して行ってください。データの解析や再エンコードは行わないでください\n* 機密データをURLに含めたり、エラーメッセージに技術的な詳細情報を記載したりしないでください。\n* ウェーブフックのエンドポイントを[CSRF](https://en.wikipedia.org/wiki/Cross-site_request_forgery)ミドルウェアの対象から除外してください  — \n  エクソーラからの受信リクエストにはCSRFトークンが含まれていないため、この設定がないと拒否されます。\n* [エクソーラIPアドレス](/ja/webhooks/section/webhook-listener)を許可リストに追加してください。\n\n\n## ウェブフックハンドラのアーキテクチャ\n\n以下のガイドラインに従ってください：\n\n1. 本文とヘッダーを**変更することなく**、そのままの状態で`POST`リクエストを受け取ります。\n2. [ウェブフックの署名を検証し](/ja/webhooks/section/webhook-listener/generation-of-signature) \n   、適切なステータスコードを返してください。\n   * `4xx` — 署名が一致しない場合。\n   * `2xx` —成功した場合。メインのビジネスロジックを実行する**前**に、「204 No Content」を返すことを推奨します。「200 \n     OK」も受け入れ可能です。\n3. ペイロードを非同期ジョブまたはキューに渡し、さらなる処理を行います。\n4. [冪等性](https://en.wikipedia.org/wiki/Idempotence#Computer_science_meaning)を実装してくだ\n   さい。[同じウェーブフックを複数回受信した場合](/ja/webhooks/section/webhook-listener/sending-responses-to-webhook)でも、システムが適切に処理できるようにする必要があります。\n\n**フローの例：**\n\n```http\nHTTP POST /webhooks/xsolla\n  read raw_body, headers\n  if !verify_signature(raw_body, headers['authorization']):\n     return 400 {\"error\":{\"code\":\"INVALID_SIGNATURE\",\"message\":\"Invalid signature\"}}\n  enqueue(raw_body)\n  return 204  # or 200\n```\n\n## 冪等性と重複\n\n以下のガイドラインに従ってください：\n\n* トランザクションIDおよび/または [external ID](/ja/dev-resources/faq/payments/#faq_payments_q_new_transaction_external_id)、注文IDを冪等性キーとし\n  て使用してください。\n* 処理済みのIDを保存し、重複するリクエストを受信した場合は前回の結果を返却します。\n* アイテムの重複付与、データベースへの二重登録、および二重課金を回避してください。\n* 逐次配信においては、前のイベントでエラーが発生すると、それ以降のすべてのイベントの処理がブロックされる点に注意してください。\n\n## システムの回復性\n\n以下のガイドラインに従ってください：\n\n* サードパーティへのAPIコール、請求処理、アイテム付与などのリソース消費の激しい操作には、キューと非同期処理を使用してください。\n* ウェブフックハンドラにタイムアウト（1〜3秒）を設定してください。一時的な障害の場合は、[エクソーラのの再試行メカニズム](/ja/webhooks/section/webhook-listener/sending-responses-to-webhook)を活用してください。\n* フックハンドラ内で再試行を実装しないでください。再配信はエクソーラによって処理されます。\n* ウェブフックの配信日時と処理ステータスをログに記録してください。また、5xx エラーの急増や再配信の発生に対するアラートを設定してください。\n* ウェブフックに含まれる相関IDを、自システムのログやモニタリングシステム（APM）に伝播させてください。\n* エラーログの記録とモニタリングをセットアップしてください。修復不可能な障害については、ジョブをデッドレターキュー（DLQ）に移動させてください。また、冪等性メカ\n  ニズムによって保護された、イベントを再実行するための安全なツールを開発してください。\n\n## 実装例\n\n**購入成功 - 初回試行でアイテムが付与されました：**\n\n![購入](https://cdn.xsolla.net/developers/current/images/api_docs/webhook-schemes/purchase-v2.svg)\n\n**重複配信（初回試行時にパートナーのタイムアウトが発生しました）**\n\n![タイムアウト](https://cdn.xsolla.net/developers/current/images/api_docs/webhook-schemes/timeout-v2.svg)\n\n**返金：**\n\n![返金](https://cdn.xsolla.net/developers/current/images/api_docs/webhook-schemes/refund-v2.svg)\n\n**パートナー側の機能障害**：\n\n![パートナー側の機能障害](https://cdn.xsolla.net/developers/current/images/api_docs/webhook-schemes/server-error.svg)\n\n# よくある質問\n\n## ウェブフックプロトコルにはHTTPSを使用する必要がありますか？\n\nはい。\n\n## 複数のURLで支払いに関するウェブフックを受信することはできますか？\n\nいいえ。支払いウェブフックはサーバー間プロトコルを使用しており、[プロジェクト設定](/ja/webhooks/section/set-up-webhooks-in-publisher-account)で指定された単一のURLに送信されます。ゲーム、ウェブサイト、またはモバイルアプリケーションで通知を受け取りたい場合は、お客様のサーバー側でウェ\nブフックの送信設定を行い、エクソーラとお使いのゲーム間でデータを渡すようにしてください。また、開発者コンソールからウェブフックのテストを行うことも可能です。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>ローカル環境で統合のテストを行っている場合、エクソーラからの`POST`リクエストは<code>http://localhost:3000/my-webhook-endpoint</code>のようなURLには届きません。外部からのアクセスを可能にするトンネルを作成できる<a href=\"https://ngrok.com/\">Ngrok</a>などのサービスを使用することで、ローカル環境でエクソーラからのリクエストを受信できるようになります。詳細については、<a href=\"https://ngrok.com/docs/guides/share-localhost/webhooks#test-webhooks-locally\">ngrokに関するドキュメント</a>を参照してください。</p>\n</div>\n\n## エクソーラからの通知がウェブフックURLに送信されなかったのはなぜですか？\n\nウェブフックサーバーが、HTTPリクエストの`POST`および`GET`メソッドをサポートしていることを確認してください。\n\n## 処理中のトランザクションIDの重複を防ぐにはどうすればよいですか？\n\nexternal \nIDを使用してください。これはお客様のシステム内の注文に割り当てられた、ゲーム内でのトランザクションIDを指します。エクソーラ側では、external \nIDはトランザクションIDにリンクされており、これによりエクソーラは同じトランザクションに対する重複支払いを防止できます。設定の詳細については、こちらの[ドキュ\nメント](/ja/dev-resources/faq/payments/#faq_payments_q_new_transaction_external_id)を参照してください。\n\n## ウェブフックを利用する際の適用事例はありますか？\n\n以下の対応を推奨します：\n\n* 署名検証後、直ちに「204」または「200」を返します。\n* 変更を加えず、生のリクエスト本文に対してウェブフックの署名を検証します。\n* すべての演算に対して冪等性を実装します。\n* すべてのイベントをログに記録し、エラーモニタリングをセットアップします。\n* URLに機密データを含めることを避け、エラーメッセージに技術的な詳細情報を記載したりしないでください。\n\n詳細については、[適用事例](/ja/webhooks/section/best-practices)セクションを参照してください。\n\n# ウェブフック統合のチェックリスト\n\nウェブフックを正しく機能させるために、本番環境へのリリース前に以下のことが整っていることを確認してください：\n\n* HTTPSが使用されています。\n* ウェブフックの[署名検証](/ja/webhooks/section/webhook-listener/generation-of-signature)が、リクエスト本文を変更することなく、生データに対して実装されています。\n* 署名が確認されるとすぐに「204/200」という応答が返されます。\n* すべての操作に対して、冪等性が実装されています。\n* エラーログの記録とモニタリングが設定されています。\n* 機密データはURLには含まれず、技術的な詳細はエラーメッセージにも表示されません。\n* [エクソーラの再試行ロジック](/ja/webhooks/section/webhook-listener/sending-responses-to-webhook)に基づき、ウェブフックの再試行がサポートされています。\n* 統合プロセス全体がドキュメント化されています。\n\n# ウェブフックリスト\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>通知タイプは<code>notification_type</code>パラメータで送信されます。</p>\n</div>\n\n<table>\n<thead>\n    <tr>\n        <th>ウェブフック</th>\n        <th>通知タイプ</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td><a href=\"/webhooks/operation/user-validation/\">ユーザー検証</a></td>\n        <td><code>user_validation</code></td>\n        <td>ユーザーがゲーム内に存在するかどうかを確認するために送信されます。</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/user-search/\">ユーザー検索</a></td>\n        <td><code>user_search</code></td>\n        <td>パブリックユーザーIDに基づいてユーザー情報を取得するために送信されます。</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/payment/\">決済</a></td>\n        <td><code>payment</code></td>\n        <td>ユーザーが決済を完了した場合に送信されます。</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/refund/\">返金</a></td>\n        <td><code>refund</code></td>\n        <td>何らかの理由で決済をキャンセルする必要がある場合に送信されます。</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/partial-refund/\">一部返金</a></td>\n        <td><code>partial_refund</code></td>\n        <td>何らかの理由で決済を一部キャンセルする必要がある場合に送信されます。</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/payment-declined/\">支払いが拒否されました</a></td>\n        <td><code>ps_declined</code></td>\n        <td>支払いが決済システムによって拒否されたときに送信されます。</td>\n    </tr>\n    <tr>\n        <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/afs-rejected-transaction/\">AFSが拒否したトランザクション</a></td>\n        <td><code>afs_reject</code></td>\n        <td>AFSチェック中にトランザクションが拒否された場合に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/afs-rejected-blocklist/\">AFSが更新したトランザクション</a></td>\n      <td><code>afs_black_list</code></td>\n      <td>AFSブロックリストが更新される場合に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/created-subscription/\">作成されたサブスクリプション</a></td>\n      <td><code>create_subscription</code></td>\n      <td>ユーザーがサブスクリプションを作成する場合に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/updated-subscription/\">更新されたサブスクリプション</a></td>\n      <td><code>update_subscription</code></td>\n      <td>サブスクリプションが更新または変更された場合に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/canceled-subscription/\">キャンセルされたサブスクリプション</a></td>\n      <td><code>cancel_subscription</code></td>\n      <td>サブスクリプションがキャンセルされた場合に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/nonrenewing-subscription/\">非更新サブスクリプション</a></td>\n      <td><code>non_renewal_subscription</code></td>\n      <td>ステータスが非更新に設定される場合に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/add-payment-account/\">決済アカウントを追加する</a></td>\n      <td><code>payment_account_add</code></td>\n      <td>ユーザーが支払いアカウントを追加または保存した場合に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/remove-payment-account/\">決済アカウントを削除する</a></td>\n      <td><code>payment_account_remove</code></td>\n      <td>ユーザーが保存済みアカウントから決済アカウントを削除する場合に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/user-validation-in-webshop\">ウェブショップでのユーザー検証</a></td>\n      <td><code>-</code></td>\n      <td>ウェブショップのサイトから送信され、ゲーム内にユーザーが存在するかどうかを確認します。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/personalized-partner-catalog\">パートナー側でのカタログ個人用設定</a></td>\n      <td><code>partner_side_catalog</code></td>\n      <td>ユーザーがストアと直接交信する時に送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/successful-order-payment\">注文支払い完了</a></td>\n      <td><code>order_paid</code></td>\n      <td>注文が支払われたときに送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/order-cancellation\">注文キャンセル</a></td>\n      <td><code>order_canceled</code></td>\n      <td>注文がキャンセルされたときに送信されます。</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/ja/webhooks/operation/dispute\">紛争</a></td>\n      <td><code>dispute</code></td>\n      <td>新しい紛争手続きが開かれたときに送信されます。</td>\n    </tr>\n</tbody>\n</table>\n",
    "title": "ウェブフック",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.xsolla.com/merchant/v2"
    }
  ],
  "tags": [
    {
      "name": "user-validation",
      "x-displayName": "ユーザー検証"
    },
    {
      "name": "payments",
      "x-displayName": "決済ソリューション"
    },
    {
      "name": "game-services",
      "x-displayName": "ゲームサービス"
    },
    {
      "name": "anti-fraud",
      "x-displayName": "不正決済防止"
    },
    {
      "name": "subscriptions",
      "x-displayName": "サブスクリプション"
    },
    {
      "name": "combined-webhooks",
      "x-displayName": "まとめたウェブフック"
    },
    {
      "name": "separate-webhooks",
      "x-displayName": "個別のウェブフック"
    },
    {
      "name": "personalization",
      "x-displayName": "個人用設定ウェブフック"
    }
  ],
  "webhooks": {
    "add-payment-account": {
      "post": {
        "description": "ユーザーがゲーム内で何かを購入するときに決済アカウントを追加したり、決済アカウントを保存したりするたびに、エクソーラは「`payment_account_add`」タイプのウェブフックをウェブフックURLに送信します。このウェブフックを受信するには、カスタマーサクセスマネージャーにご連絡いただくか、<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>まで電子メールでお問い合わせください。",
        "operationId": "add-payment-account",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "payment_account": {
                    "description": "決済アカウントの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/payment_account.country"
                      },
                      "id": {
                        "$ref": "#/components/schemas/payment_account.id"
                      },
                      "name": {
                        "$ref": "#/components/schemas/payment_account.name"
                      },
                      "payment_method": {
                        "$ref": "#/components/schemas/payment_account.payment_method"
                      },
                      "type": {
                        "$ref": "#/components/schemas/payment_account.type"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "ip": {
                        "$ref": "#/components/schemas/user.ip"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      },
                      "zip": {
                        "$ref": "#/components/schemas/user.zip"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "決済アカウントを追加する",
        "tags": [
          "payments"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \\\n-d '{\n    \"notification_type\":\"payment_account_add\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"ip\": \"127.0.0.1\",\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\",\n        \"country\": \"US\",\n        \"zip\": \"12345\"\n    },\n    \"payment_account\": {\n        \"id\": \"12345678\",\n        \"name\": \"email@example.com\",\n        \"payment_method\": \"24\",\n        \"country\": \"US\",\n        \"type\": \"paypal\"\n    }\n}'"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost:           your.hostname\naccept:         application/json\ncontent-length: 255\ncontent-type:   application/json\nauthorization:  Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843\n\n{\n    \"notification_type\": \"payment_account_add\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"ip\": \"127.0.0.1\",\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\",\n        \"country\": \"US\",\n        \"zip\": \"12345\"\n    },\n    \"payment_account\": {\n        \"id\": \"12345678\",\n        \"name\": \"email@example.com\",\n        \"payment_method\": \"24\",\n        \"country\": \"US\",\n        \"type\": \"paypal\"\n    }\n}"
          }
        ]
      }
    },
    "afs-rejected-blocklist": {
      "post": {
        "description": "不不正決済防止システムのブロックリストが更新（パラメータを追加または削除）される場合、エクソーラは`afs_black_list`タイプのウェブフックをウェブフックURLに送信します。引数の追加はエクソーラ側で、または要求に応じて自動的に行われます。パラメータは要求時にのみ削除できます。このウェブフックを受信するには、カスタマーサクセスマネージャーにご連絡いただくか、<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>まで電子メールでお問い合わせください。",
        "operationId": "afs-rejected-blocklist",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "event": {
                    "description": "AFSブロックリストイベントに関する情報を持つオブジェクト。",
                    "properties": {
                      "action": {
                        "description": "イベントタイプ。",
                        "enum": [
                          "adding",
                          "removing"
                        ],
                        "type": "string"
                      },
                      "date_of_last_action": {
                        "description": "[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式の最新のAFSブロックリストイベントの時刻。",
                        "type": "string"
                      },
                      "parameter": {
                        "description": "イベントが発生したパラメータの名称。",
                        "enum": [
                          "nick",
                          "email",
                          "ps_account",
                          "ip_address",
                          "card_issuer",
                          "phone"
                        ],
                        "type": "string",
                        "x-enumDescriptions": {
                          "card_issuer": "ユーザーのクレジットカード発行銀行",
                          "email": "ユーザーのメールアドレス",
                          "ip_address": "ユーザーのIPアドレス",
                          "nick": "ユーザーのニックネーム",
                          "phone": "ユーザーの電話番号",
                          "ps_account": "ユーザーの請求先アカウント"
                        }
                      },
                      "parameter_value": {
                        "description": "イベントが発生したパラメータの値。",
                        "type": "string"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      },
                      "reason": {
                        "description": "イベントの原因。",
                        "enum": [
                          "chargeback",
                          "fraud_activity",
                          "suspicious_activity",
                          "ps_reported_fraud",
                          "linked_chargeback",
                          "partner_request",
                          "friendly_fraud",
                          "user_reported_fraud",
                          "linked_parameter",
                          "other_data_in_blacklist",
                          "by_afs_filters",
                          "wrongly_added",
                          "removed_by_cs_review",
                          "other_forgiveness_reason"
                        ],
                        "type": "string",
                        "x-enumDescriptions": {
                          "by_afs_filters": "AFSフィルター（追加）",
                          "chargeback": "チャージバック（追加）",
                          "fraud_activity": "詐欺（追加）",
                          "friendly_fraud": "フレンドリー詐欺（追加）",
                          "linked_chargeback": "チャージバック関連（追加）",
                          "linked_parameter": "AFSブロックリストのリンクされたパラメータ（追加）",
                          "other_data_in_blacklist": "AFSブロックリストの他のパラメータ（追加）",
                          "other_forgiveness_reason": "削除するその他の理由（削除）",
                          "partner_request": "請求次第（追加）",
                          "ps_reported_fraud": "不正行為に関する決済システムの通知（追加）",
                          "removed_by_cs_review": "Xsollaテクニカルサポートに報告した後に削除（削除）",
                          "suspicious_activity": "不審な行動（追加）",
                          "user_reported_fraud": "不正行為に関するユーザー報告（追加）",
                          "wrongly_added": "間違えて追加（削除）"
                        }
                      },
                      "transaction_id": {
                        "description": "イベントが発生したパラメータに関連付けられたトランザクションID。",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  }
                },
                "required": [
                  "notification_type",
                  "event"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "不正決済防止ブロックリストの更新",
        "tags": [
          "anti-fraud"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'authorization: Signature 32c64a80d2527dc08906ae1891bac4489509b9f6' \\\n-d '{\n  \"event\": {\n    \"action\": \"adding\",\n    \"date_of_last_action\": \"2020-11-27T10:09:05+03:00\",\n    \"parameter\": \"email\",\n    \"parameter_value\": \"email@example.com\",\n    \"reason\": \"ps_reported_fraud\",\n    \"transaction_id\": \"111111111\",\n    \"project_id\": \"123456\"\n  },\n  \"notification_type\": \"afs_black_list\"\n}'"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-type: application/json\ncontent-length: 233\nauthorization: Signature 32c64a80d2527dc08906ae1891bac4489509b9f6\n\n{\n  \"event\": {\n    \"action\": \"adding\",\n    \"date_of_last_action\": \"2020-11-27T10:09:05+03:00\",\n    \"parameter\": \"email\",\n    \"parameter_value\": \"email@example.com\",\n    \"reason\": \"ps_reported_fraud\",\n    \"transaction_id\": \"111111111\",\n    \"project_id\": \"123456\"\n  },\n  \"notification_type\": \"afs_black_list\"\n}"
          }
        ]
      }
    },
    "afs-rejected-transaction": {
      "post": {
        "description": "不正決済防止システムのチェック中にトランザクションが拒否された場合、エクソーラはウェブフックのトランザクションの詳細を「`afs_reject`」タイプでウェブ\nフックURLに送信します。このウェブフックを受信するには、カスタマーサクセスマネージャーにご連絡いただくか、<a \nhref=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>まで電子メールでお問い合わせください。\n\nパブリッシャーアカウントにウェブフックURLを保存すると、ウェブフックで詳細情報を受信する権限を与えることができます。これを行うには、パブリッシャーアカウントの\n<a \nhref=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/store\">プロジェクト設定&gt\n; ウェブフック&gt; 詳細設定</a> セクションで次のトグルを「アクティブ」に設定します。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、「<a href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments\">プロジェクト設定&gt;ウェブフック&gt;テスト&gt;決済ソリューション&gt;詳細設定</a>」セクションでトグルを見つけます。</p>\n</div>\n\n<table>\n<thead>\n    <tr>\n        <th>トグル</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>保存された決済方法による取引に関する情報を表示する</td>\n        <td><p>情報は、パラメータの以下のカスタムパラメータに渡されます：</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — 保存された決済方法は使用されませんでした</li><li><code>1</code> — 決済方法は現在の支払い時に保存されました</li><li><code>2</code> — 保存された決済方法は使用されませんでした</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — 一回払い</li><li><code>2</code> — 定期支払い</li></ul></li></ul></td>\n    </tr>\n</tbody>\n</table>\n",
        "operationId": "afs-rejected-transaction",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "refund_details": {
                    "description": "返金の詳細（オブジェクト）。",
                    "properties": {
                      "author": {
                        "description": "返金イニシエーター。フィールド値は、次の表に従って渡されます：\n\n<table>\n    <thead>\n    <tr>\n        <th>返金イニシエーター</th>\n        <th>フィールド値</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>ゲーム（API経由）。</td>\n        <td>API</td>\n    </tr>\n    <tr>\n        <td>パブリッシャーアカウントのユーザー（自動返金）。</td>\n        <td>ユーザーのメールアドレス</td>\n    </tr>\n    <tr>\n        <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    <tr>\n        <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    </tbody>\n</table>\n",
                        "type": "string"
                      },
                      "code": {
                        "description": "コードID。\n\n<table>\n    <thead>\n    <tr>\n        <th>コード</th>\n        <th>理由</th>\n        <th>説明</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>1</td>\n        <td>Cancellation by the user request / the game request</td>\n        <td>パブリッシャーアカウントからキャンセルが開始されました。</td>\n    </tr>\n    <tr>\n        <td>2</td>\n        <td>Chargeback</td>\n        <td>トランザクションのチャージバックが要求されました。</td>\n    </tr>\n    <tr>\n        <td>3</td>\n        <td>Integration error</td>\n        <td>エクソラとゲームの統合に関する問題<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>4</td>\n        <td>Potential fraud</td>\n        <td>不正の疑いがあります。<br /><b>推奨事項: ユーザーをブロックリストに追加してください。</b></td>\n    </tr>\n    <tr>\n        <td>5</td>\n        <td>Test payment</td>\n        <td>テストトランザクション後にキャンセル処理が実行されます。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>6</td>\n        <td>User invoice expired</td>\n        <td>請求書の期限が切れました（後払いモデルで使用）。</td>\n    </tr>\n    <tr>\n        <td>7</td>\n        <td>Fraud notification from PS</td>\n        <td>決済システムで支払いが拒否されました。決済システムで不正の可能性が検出されました。<br /><b>推奨事項：ユーザーをブロックリストに追加してください。</b></td>\n    </tr>\n    <tr>\n        <td>8</td>\n        <td>Cancellation by the PS request</td>\n        <td>決済システムによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>9</td>\n        <td>Cancellation by the user request</td>\n        <td>ユーザは何らかの理由でゲームや購入に満足していませんでした。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>10</td>\n        <td>Cancellation by the game request</td>\n        <td>ゲームによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>11</td>\n        <td>Account holder called to report fraud</td>\n        <td>アカウント所有者がトランザクションを行わなかったと述べています。</td>\n    </tr>\n    <tr>\n        <td>12</td>\n        <td>Friendly fraud</td>\n        <td>フレンドリー詐欺が報告されました。</td>\n    </tr>\n    <tr>\n        <td>13</td>\n        <td>Duplicate</td>\n        <td>同じインボイスのトランザクションが重複しています。</td>\n    </tr>\n    </tbody>\n</table>\n",
                        "type": "integer"
                      },
                      "reason": {
                        "description": "返金の理由。",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "transaction": {
                    "description": "トランザクションの詳細（オブジェクト）。",
                    "properties": {
                      "agreement": {
                        "description": "契約ID",
                        "type": "integer"
                      },
                      "dry_run": {
                        "description": "テストトランザクション。パラメータは、テストトランザクションの場合は1つの値を持ち、もしくはトランザクションが実際の場合は送信されません。",
                        "type": "integer"
                      },
                      "external_id": {
                        "description": "トランザクション外部ID。",
                        "type": "string"
                      },
                      "id": {
                        "description": "トランザクションID。",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "ip": {
                        "$ref": "#/components/schemas/user.ip"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      },
                      "phone": {
                        "description": "ユーザーの電話。",
                        "type": "string"
                      },
                      "zip": {
                        "$ref": "#/components/schemas/user.zip"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "transaction"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "不正決済防止システムによりトランザクションが拒否されました",
        "tags": [
          "anti-fraud"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-d '{\n  \"notification_type\": \"afs_reject\",\n  \"settings\": {\n    \"project_id\": 18404,\n    \"merchant_id\": 2340\n  },\n  \"user\": {\n    \"ip\": \"127.0.0.1\",\n    \"phone\": \"18777976552\",\n    \"email\": \"email@example.com\",\n    \"id\": \"1234567\",\n    \"name\": \"John Smith\",\n    \"country\": \"US\"\n  },\n  \"transaction\": {\n    \"id\": 1,\n    \"external_id\": 1,\n    \"dry_run\": 1,\n    \"agreement\": 1\n  },\n  \"refund_details\": {\n    \"code\": 4,\n    \"reason\": \"Potential fraud\"\n  }\n}'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n  'notification_type' => 'afs_reject',\n  'settings' => array(\n    'project_id' => 18404,\n    'merchant_id' => 2340\n  ),\n  'user' => array(\n    'ip' => '127.0.0.1',\n    'phone' => '18777976552',\n    'email' => 'email@example.com',\n    'id' => '1234567',\n    'country' => 'US'\n  ),\n  'transaction' => array(\n    'id' => 87654321,\n    'payment_method' => 1380,\n    'dry_run' => 1\n  ),\n  'refund_details' => array(\n    'code' => 4,\n    'reason' => 'Potential fraud'\n  )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-type: application/json\ncontent-length: 1220\nauthorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7\n\n{\n  \"notification_type\": \"afs_reject\",\n  \"settings\": {\n    \"project_id\": 18404,\n    \"merchant_id\": 2340\n  },\n  \"user\": {\n    \"ip\": \"127.0.0.1\",\n    \"phone\": \"18777976552\",\n    \"email\": \"email@example.com\",\n    \"id\": \"1234567\",\n    \"name\": \"John Smith\",\n    \"country\": \"US\"\n  },\n  \"transaction\": {\n    \"id\": 1,\n    \"external_id\": 1,\n    \"dry_run\": 1,\n    \"agreement\": 1\n  },\n  \"refund_details\": {\n    \"code\": 4,\n    \"reason\": \"Potential fraud\"\n  }\n}"
          }
        ]
      }
    },
    "canceled-subscription": {
      "post": {
        "description": "サブスクリプションがキャンセルされる場合、エクソーラは「`cancel_subscription`」タイプのウェブフックをウェブフックURLに送信します。",
        "operationId": "canceled-subscription",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "subscription": {
                    "description": "サブスクリプションの詳細（オブジェクト）。",
                    "properties": {
                      "date_create": {
                        "$ref": "#/components/schemas/subscription.date_create"
                      },
                      "date_end": {
                        "$ref": "#/components/schemas/subscription.date_end"
                      },
                      "plan_id": {
                        "$ref": "#/components/schemas/subscription.plan_id"
                      },
                      "product_id": {
                        "$ref": "#/components/schemas/subscription.product_id"
                      },
                      "subscription_id": {
                        "$ref": "#/components/schemas/subscription.subscription_id"
                      },
                      "tags": {
                        "$ref": "#/components/schemas/subscription.tags"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "キャンセルされたサブスクリプション",
        "tags": [
          "subscriptions"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \\\n-d '{\n        \"notification_type\": \"cancel_subscription\",\n        \"settings\": {\n          \"project_id\": 18404,\n          \"merchant_id\": 2340\n        },\n        \"user\": {\n            \"id\": \"1234567\",\n            \"name\": \"John Smith\"\n        },\n        \"subscription\": {\n            \"plan_id\": \"b5dac9c8\",\n            \"subscription_id\": \"10\",\n            \"product_id\": \"Demo Product\",\n            \"date_create\": \"2014-09-22T19:25:25+04:00\",\n            \"date_end\": \"2015-01-22T19:25:25+04:00\"\n        }\n    }'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'cancel_subscription',\n    'settings' => array(\n      'project_id' => 18404,\n      'merchant_id' => 2340\n    ),\n    'user' => array(\n        'id' => '1234567',\n        'name' => 'John Smith'\n    ),\n    'subscription' => array(\n        'plan_id' => 'b5dac9c8',\n        'subscription_id' => '10',\n        'product_id' => 'Demo Product',\n        'date_create' => '2014-09-22T19:25:25+04:00',\n        'date_end' => '2015-01-22T19:25:25+04:00',\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost: your.hostname\naccept: application/json\ncontent-type: application/json\ncontent-length: 240\nauthorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f\n\n{\n    \"notification_type\": \"cancel_subscription\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\":{\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\"\n    },\n    \"subscription\": {\n        \"plan_id\": \"b5dac9c8\",\n        \"subscription_id\": \"10\",\n        \"product_id\": \"Demo Product\",\n        \"date_create\": \"2014-09-22T19:25:25+04:00\",\n        \"date_end\": \"2015-01-22T19:25:25+04:00\"\n    }\n}"
          }
        ]
      }
    },
    "created-subscription": {
      "post": {
        "description": "ユーザーがサブスクリプションを作成すると、エクソーラは`create_subscription`タイプのウェブフックをウェブフックURLに送信します。",
        "operationId": "created-subscription",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "custom_parameters": {
                    "description": "カスタムパラメータ。",
                    "type": "object"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "subscription": {
                    "description": "サブスクリプションの詳細（オブジェクト）。",
                    "properties": {
                      "date_create": {
                        "$ref": "#/components/schemas/subscription.date_create"
                      },
                      "date_next_charge": {
                        "$ref": "#/components/schemas/subscription.date_next_charge"
                      },
                      "is_gift": {
                        "$ref": "#/components/schemas/subscription.is_gift"
                      },
                      "plan_id": {
                        "$ref": "#/components/schemas/subscription.plan_id"
                      },
                      "product_id": {
                        "$ref": "#/components/schemas/subscription.product_id"
                      },
                      "subscription_id": {
                        "$ref": "#/components/schemas/subscription.subscription_id"
                      },
                      "tags": {
                        "$ref": "#/components/schemas/subscription.tags"
                      },
                      "trial": {
                        "description": "試行期間（オブジェクト）。",
                        "properties": {
                          "type": {
                            "description": "試行期間種類：day。",
                            "type": "string"
                          },
                          "value": {
                            "description": "試行期間。",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "作成されたサブスクリプション",
        "tags": [
          "subscriptions"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \\\n-d '{\n        \"notification_type\": \"create_subscription\",\n        \"settings\": {\n          \"project_id\": 18404,\n          \"merchant_id\": 2340\n        },\n        \"user\": {\n            \"id\": \"1234567\",\n            \"name\": \"John Smith\"\n        },\n        \"subscription\": {\n            \"plan_id\": \"b5dac9c8\",\n            \"subscription_id\": \"10\",\n            \"product_id\": \"Demo Product\",\n            \"date_create\": \"2014-09-22T19:25:25+04:00\",\n            \"date_next_charge\": \"2015-01-22T19:25:25+04:00\",\n            \"trial\": {\n                    \"value\": 90,\n                    \"type\": \"day\"\n                },\n            \"is_gift\": true\n        }\n    }'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'create_subscription',\n    'settings' => array(\n      'project_id' => 18404,\n      'merchant_id' => 2340\n    ),\n    'user' => array(\n        'id' => '1234567',\n        'name' => 'John Smith'\n    ),\n    'subscription' => array(\n        'plan_id' => 'b5dac9c8',\n        'subscription_id' => '10',\n        'product_id' => 'Demo Product',\n        'date_create' => '2014-09-22T19:25:25+04:00',\n        'date_next_charge' => '2015-01-22T19:25:25+04:00',\n        'trial' =>  array(\n                'value' =>  90,\n                'type' =>  'day'\n            ),\n        'is_gift' => true,\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nHost: your.hostname\naccept: application/json\ncontent-type: application/json\ncontent-length: 240\nauthorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f\n\n{\n    \"notification_type\": \"create_subscription\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\"\n    },\n    \"subscription\": {\n        \"plan_id\": \"b5dac9c8\",\n        \"subscription_id\": \"10\",\n        \"product_id\": \"Demo Product\",\n        \"date_create\": \"2014-09-22T19:25:25+04:00\",\n        \"date_next_charge\": \"2015-01-22T19:25:25+04:00\",\n        \"trial\": {\n                \"value\": 90,\n                \"type\": \"day\"\n            },\n        \"is_gift\": true\n    }\n}"
          }
        ]
      }
    },
    "dispute": {
      "post": {
        "description": "新しい異議申立が行われ、または異議申立のステータスが変更された時、エクソーラは「`dispute`」タイプのウェブフックをウェブフックURLに送信します。このウェブフックを受信するには、カスタマーサクセスマネージャーにご連絡いただくか、<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>まで電子メールでお問い合わせください。",
        "operationId": "dispute",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "action": {
                    "description": "アクションのタイプ。",
                    "enum": [
                      "adding",
                      "updating"
                    ],
                    "type": "string",
                    "x-enumDescriptions": {
                      "adding": "新しい異議申立が行われました。",
                      "updating": "異議申立のステータスが変更されました。"
                    }
                  },
                  "dispute": {
                    "description": "異議申立に関する情報を含むオブジェクト。",
                    "properties": {
                      "incoming_date": {
                        "$ref": "#/components/schemas/dispute-date"
                      },
                      "reason": {
                        "$ref": "#/components/schemas/dispute-reason"
                      },
                      "status": {
                        "$ref": "#/components/schemas/dispute-status"
                      },
                      "type": {
                        "$ref": "#/components/schemas/dispute-type"
                      }
                    },
                    "required": [
                      "incoming_date",
                      "reason",
                      "type",
                      "status"
                    ],
                    "type": "object"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定に関する情報を含むオブジェクト。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "required": [
                      "project_id",
                      "merchant_id"
                    ],
                    "type": "object"
                  },
                  "transaction": {
                    "description": "トランザクションに関する情報を含むオブジェクト。",
                    "properties": {
                      "country_code": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "date_create": {
                        "$ref": "#/components/schemas/date-create"
                      },
                      "external_id": {
                        "$ref": "#/components/schemas/external-id"
                      },
                      "id": {
                        "$ref": "#/components/schemas/transaction-id"
                      },
                      "payment_method": {
                        "$ref": "#/components/schemas/dispute-payment-method"
                      },
                      "total": {
                        "description": "異議申立に関する情報を含むオブジェクト。",
                        "properties": {
                          "amount": {
                            "$ref": "#/components/schemas/transaction-total-amount"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "required": [
                          "amount",
                          "currency"
                        ],
                        "type": "object"
                      }
                    },
                    "required": [
                      "id",
                      "date_create",
                      "total",
                      "payment_method",
                      "country_code"
                    ],
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーに関する情報を含むオブジェクト。",
                    "properties": {
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "action",
                  "transaction",
                  "settings",
                  "user",
                  "dispute"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "異議申立",
        "tags": [
          "anti-fraud"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'authorization: Signature 32c64a80d2527dc08906ae1891bac4489509b9f6' \\\n-d '{\n  \"notification_type\": \"dispute\",\n  \"action\": \"adding\",\n  \"transaction\": {\n    \"id\": 123456789,\n    \"date_create\": \"2023-08-24T10:21:00+04:00\",\n    \"total\": {\n      \"amount\": 1,\n      \"currency\": \"EUR\"\n    },\n    \"payment_method\": \"credit_debit_card\"\n  },\n  \"settings\": {\n    \"project_id\": 18404,\n    \"merchant_id\": 2340\n  },\n  \"user\": {\n    \"id\": \"1234567\",\n    \"email\": \"email@example.com\",\n    \"country_code\": \"US\"\n  },\n  \"dispute\": {\n    \"incoming_date\": \"2024-01-25T01:02:03+04:00\",\n    \"reason\": \"not_as_described\",\n    \"type\": \"retrieval\",\n    \"status\": \"new\"\n  }\n}'"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-Type: application/json\ncontent-Length: 578\nauthorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7\n\n{\n  \"notification_type\": \"dispute\",\n  \"action\": \"adding\",\n  \"transaction\": {\n    \"id\": 123456789,\n    \"date_create\": \"2023-08-24T10:21:00+04:00\",\n    \"total\": {\n      \"amount\": 1,\n      \"currency\": \"EUR\"\n    },\n    \"payment_method\": \"credit_debit_card\"\n  },\n  \"settings\": {\n    \"project_id\": 18404,\n    \"merchant_id\": 2340\n  },\n  \"user\": {\n    \"id\": \"1234567\",\n    \"email\": \"email@example.com\",\n    \"country_code\": \"US\"\n  },\n  \"dispute\": {\n    \"incoming_date\": \"2024-01-25T01:02:03+04:00\",\n    \"reason\": \"not_as_described\",\n    \"type\": \"retrieval\",\n    \"status\": \"new\"\n  }\n}"
          }
        ]
      }
    },
    "nonrenewing-subscription": {
      "post": {
        "description": "サブスクリプションステータスが非更新に設定されている場合、エクソーラは`non_renewal_subscription`タイプのウェブフックをウェブフックURLに送信します。このウェブフックを受信するには、カスタマーサクセスマネージャーにご連絡いただくか、<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>まで電子メールでお問い合わせください。",
        "operationId": "nonrenewing-subscription",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "required": [
                      "project_id"
                    ],
                    "type": "object"
                  },
                  "subscription": {
                    "description": "サブスクリプションの詳細（オブジェクト）。",
                    "properties": {
                      "amount": {
                        "description": "現金通貨での価格。",
                        "format": "float",
                        "type": "number"
                      },
                      "currency": {
                        "$ref": "#/components/schemas/currency"
                      },
                      "date_create": {
                        "$ref": "#/components/schemas/subscription.date_create"
                      },
                      "date_next_charge": {
                        "description": "次の請求日。これは、ユーザーのサブスクリプションが非更新に設定される前に次の支払いが予想される日付です。[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)の日付と時刻。",
                        "type": "string"
                      },
                      "plan_id": {
                        "$ref": "#/components/schemas/subscription.plan_id"
                      },
                      "subscription_id": {
                        "$ref": "#/components/schemas/subscription.subscription_id"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "非更新のサブスクリプション",
        "tags": [
          "subscriptions"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \\\n-d '{\n        \"notification_type\": \"non_renewal_subscription\",\n        \"settings\": {\n          \"project_id\": 12345,\n          \"merchant_id\": 1234\n        },\n        \"user\": {\n            \"id\": \"1234567\",\n            \"email\": \"email@example.com\"\n        },\n        \"subscription\": {\n            \"plan_id\": \"a1bcd2e3\",\n            \"subscription_id\": \"10\",\n            \"date_create\": \"2014-12-22T15:25:25+04:00\",\n            \"date_next_charge\": \"2015-01-22T19:25:25+04:00\",\n            \"currency\": \"USD\",\n            \"amount\": 0.03\n        }\n    }'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'non_renewal_subscription',\n    'settings' => array(\n      'project_id' => 12345,\n      'merchant_id' => 1234\n    ),\n    'user' => array(\n        'id' => '1234567',\n        'email' => 'email@example.com'\n    ),\n    'subscription' => array(\n        'plan_id' => 'a1bcd2e3',\n        'subscription_id' => '10',\n        'date_create' => '2014-12-22T15:25:25+04:00',\n        'date_next_charge' => '2015-01-22T19:25:25+04:00',\n        'currency' => 'USD',\n        'amount' => 0.03\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost: your.hostname\naccept: application/json\ncontent-type: application/json\ncontent-length: 240\nauthorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f\n\n{\n    \"notification_type\": \"non_renewal_subscription\",\n    \"settings\": {\n      \"project_id\": 12345,\n      \"merchant_id\": 1234\n    },\n    \"user\": {\n        \"id\": \"1234567\",\n        \"email\": \"email@example.com\"\n    },\n    \"subscription\": {\n        \"plan_id\": \"a1bcd2e3\",\n        \"subscription_id\": \"10\",\n        \"date_create\": \"2014-12-22T15:25:25+04:00\",\n        \"date_next_charge\": \"2015-01-22T19:25:25+04:00\",\n        \"currency\": \"USD\",\n        \"amount\": 0.03\n    }\n}"
          }
        ]
      }
    },
    "order-cancellation": {
      "post": {
        "description": "ユーザー、パートナー、またはシステムによって支払いがキャンセルされた場合、エクソーラは指定されたURLに<code>order_canceled</code>ウ\nェーブフックを送信します。このウェーブフックには、キャンセルされたアイテムと決済データに関する情報と、キャンセルされた注文の詳細が含まれています。\n\n支払いが成功しなかった場合、ウェブフックは送信されません。例：\n* 決済UIは開かれましたが、ユーザーが注文の支払いを行われません\n* 決済UIが開かれましたが、支払いの実行中にエラーが発生しました\n\n推奨されるウェーブフックの処理時間は3秒以内です。\n",
        "operationId": "order-cancellation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "billing": {
                    "description": "取引と支払いの詳細。",
                    "properties": {
                      "notification_type": {
                        "$ref": "#/components/schemas/notification_type"
                      },
                      "payment_details": {
                        "description": "支払明細（オブジェクト）。",
                        "properties": {
                          "country_wht": {
                            "$ref": "#/components/schemas/country_whc"
                          },
                          "direct_wht": {
                            "description": "直接源泉徴収税。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "percent": {
                                "description": "直接源泉徴収税率。",
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "payment": {
                            "description": "ユーザー（オブジェクト）によって支払われた金額。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "payment_method_fee": {
                            "description": "決済システム料金。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "payment_method_sum": {
                            "description": "決済システムから振り込まれた金額。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "payout": {
                            "description": "配当の詳細（オブジェクト）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "payout_currency_rate": {
                            "description": "決済と配当間の為替レート。",
                            "type": "string"
                          },
                          "repatriation_commission": {
                            "description": "第三者によってエクソーラに課された本国送還費用に関するデータを含むオブジェクト。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "sales_tax": {
                            "description": "売上税（オブジェクト；米国とカナダのみ）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "percent": {
                                "description": "消費税率。",
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "user_acquisition_fee": {
                            "description": "アフィリエイトネットワークやインフルエンサー経由での購入から差し引かれた顧客獲得料の総額（オブジェクト）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "percent": {
                                "description": "顧客獲得料率（%）。",
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "vat": {
                            "description": "VATの詳細（オブジェクト；EUのみ）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "percent": {
                                "description": "消費税率。",
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "xsolla_balance_sum": {
                            "description": "エクソーラ残高から引き落とされる金額。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "xsolla_fee": {
                            "description": "エクソーラ料金（オブジェクト）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "purchase": {
                        "description": "購入内容（オブジェクト）。",
                        "properties": {
                          "subscription": {
                            "description": "サブスクリプションの詳細（オブジェクト）。",
                            "properties": {
                              "amount": {
                                "$ref": "#/components/schemas/amount-float"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "date_create": {
                                "$ref": "#/components/schemas/subscription.date_create"
                              },
                              "plan_id": {
                                "$ref": "#/components/schemas/subscription.plan_id"
                              },
                              "subscription_id": {
                                "$ref": "#/components/schemas/subscription.subscription_id"
                              },
                              "tags": {
                                "$ref": "#/components/schemas/subscription.tags"
                              }
                            },
                            "type": "object"
                          },
                          "total": {
                            "description": "購入（オブジェクト）の合計価格。",
                            "properties": {
                              "amount": {
                                "description": "支払額合計。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "required": [
                          "total"
                        ],
                        "type": "object"
                      },
                      "refund_details": {
                        "description": "返金の詳細（オブジェクト）。",
                        "properties": {
                          "author": {
                            "description": "返金イニシエーター。フィールド値は、次の表に従って渡されます：\n\n<table>\n    <thead>\n    <tr>\n        <th>返金イニシエーター</th>\n        <th>フィールド値</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>ゲーム（API経由）。</td>\n        <td>API</td>\n    </tr>\n    <tr>\n        <td>パブリッシャーアカウントのユーザー（自動返金）。</td>\n        <td>ユーザーのメールアドレス</td>\n    </tr>\n    <tr>\n        <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    <tr>\n        <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    </tbody>\n</table>\n",
                            "type": "string"
                          },
                          "code": {
                            "description": "コードID。",
                            "type": "integer"
                          },
                          "reason": {
                            "description": "返金の理由。",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "settings": {
                        "description": "カスタムプロジェクト設定（オブジェクト）。",
                        "properties": {
                          "merchant_id": {
                            "$ref": "#/components/schemas/settings.merchant_id"
                          },
                          "project_id": {
                            "$ref": "#/components/schemas/settings.project_id"
                          }
                        },
                        "type": "object"
                      },
                      "transaction": {
                        "description": "トランザクションの詳細（オブジェクト）。",
                        "properties": {
                          "agreement": {
                            "description": "契約ID",
                            "type": "integer"
                          },
                          "dry_run": {
                            "description": "テストトランザクション。パラメータは、テストトランザクションの場合は1つの値を持ち、もしくはトランザクションが実際の場合は送信されません。",
                            "type": "integer"
                          },
                          "external_id": {
                            "description": "トランザクション外部ID。",
                            "type": "string"
                          },
                          "id": {
                            "description": "トランザクションID。",
                            "type": "integer"
                          },
                          "payment_method_order_id": {
                            "description": "決済システムの決済ID。",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "notification_type",
                      "transaction",
                      "payment_details"
                    ],
                    "type": "object"
                  },
                  "custom_parameters": {
                    "description": "追加情報。",
                    "type": "object"
                  },
                  "items": {
                    "description": "ユーザーが購入したアイテムのリスト。\n\n配列に含まれるパラメータのセットは、ウェブフックのバージョンによって異なります。バージョン2は、追加のパラメータが含まれています：`is_free`、`is_b\nonus`および`is_bundle_content`。バージョンを切り替えるには、[ウェブフック設定に関する情報を更新する](/ja/api/igs/operation/update-webhook/)APIコールで`version`パラメータにその番号を渡します。\n",
                    "items": {
                      "oneOf": [
                        {
                          "properties": {
                            "amount": {
                              "description": "数量に基づいたアイテムの総コスト。",
                              "type": "string"
                            },
                            "custom_attributes": {
                              "description": "アイテムの属性と値を含むJSONオブジェクト。",
                              "type": "object"
                            },
                            "is_pre_order": {
                              "description": "「`true`」の場合、アイテムは先行予約です。",
                              "type": "boolean"
                            },
                            "promotions": {
                              "$ref": "#/components/schemas/items.promotions"
                            },
                            "quantity": {
                              "description": "アイテムの数量。",
                              "type": "integer"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/items.sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/items.type"
                            }
                          },
                          "required": [
                            "sku",
                            "type",
                            "quantity",
                            "amount",
                            "promotions",
                            "is_pre_order"
                          ],
                          "title": "バージョン = 1",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "amount": {
                              "description": "数量に基づいたアイテムの総コスト。",
                              "type": "string"
                            },
                            "custom_attributes": {
                              "description": "アイテムの属性と値を含むJSONオブジェクト。",
                              "type": "object"
                            },
                            "is_bonus": {
                              "description": "「`true`」の場合、アイテムはボーナスです。",
                              "type": "boolean"
                            },
                            "is_bundle_content": {
                              "description": "「`true`」の場合、アイテムはバンドルに属しています。",
                              "type": "boolean"
                            },
                            "is_free": {
                              "description": "「`true`」の場合、アイテムは無料です。",
                              "type": "boolean"
                            },
                            "is_pre_order": {
                              "description": "「`true`」の場合、アイテムは先行予約です。",
                              "type": "boolean"
                            },
                            "promotions": {
                              "$ref": "#/components/schemas/items.promotions"
                            },
                            "quantity": {
                              "description": "アイテムの数量。",
                              "type": "integer"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/items.sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/items.type"
                            }
                          },
                          "required": [
                            "sku",
                            "type",
                            "quantity",
                            "amount",
                            "promotions",
                            "is_pre_order",
                            "is_free",
                            "is_bonus",
                            "is_bundle_content"
                          ],
                          "title": "バージョン = 2",
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "order": {
                    "description": "注文に関する情報。",
                    "properties": {
                      "amount": {
                        "description": "選択された通貨に基づくカートの合計金額です。",
                        "type": "string"
                      },
                      "comment": {
                        "description": "注文に対するユーザーのコメント。",
                        "nullable": true,
                        "type": "string"
                      },
                      "coupons": {
                        "description": "適用されたクーポン。クーポンが適用されていない場合は、配列は返されません。",
                        "items": {
                          "properties": {
                            "code": {
                              "description": "適用されたクーポンのコードです。",
                              "type": "string"
                            },
                            "external_id": {
                              "description": "External ID。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "currency": {
                        "description": "注文の通貨。仮想通貨はSKUを使用し、実際通貨は3文字の[ISO4217](https://en.wikipedia.org/wiki/ISO_4217)コードを使用します。",
                        "type": "string"
                      },
                      "currency_type": {
                        "$ref": "#/components/schemas/currency-type"
                      },
                      "id": {
                        "description": "エクソーラ側でのユーザーの注文の一意の識別子。",
                        "type": "integer"
                      },
                      "invoice_id": {
                        "description": "実際通貨による支払い請求書ID。仮想通貨の決済また無料アイテムは、`null`の値を使用します。",
                        "nullable": true,
                        "type": "string"
                      },
                      "mode": {
                        "description": "決済モード。`default`は実際の支払いに、`sandbox`はテスト支払いに使用されます。",
                        "enum": [
                          "default",
                          "sandbox"
                        ],
                        "type": "string"
                      },
                      "platform": {
                        "description": "決済プラットフォーム。`xsolla`の値は、Xsollaを介した支払いに使用されます。その他の支払いについては、ゲームパブリッシングプラットフォームの名前に対応する値が使用されます：`playstation_network`、`xbox_live`、`pc_standalone`、`nintendo_shop`、`google_play`、`app_store_ios`、`android_standalone`、`ios_standalone`、`android_other`、`ios_other`、`pc_other`。",
                        "enum": [
                          "xsolla",
                          "playstation_network",
                          "xbox_live",
                          "pc_standalone",
                          "nintendo_shop",
                          "google_play",
                          "app_store_ios",
                          "android_standalone",
                          "ios_standalone",
                          "android_other",
                          "ios_other",
                          "pc_other"
                        ],
                        "nullable": true,
                        "type": "string"
                      },
                      "promocodes": {
                        "description": "適用されたプロモーションコード。プロモーションコードが適用されていない場合、配列は返されません。",
                        "items": {
                          "properties": {
                            "code": {
                              "description": "適用されたプロモーションコードのコードです。",
                              "type": "string"
                            },
                            "external_id": {
                              "description": "External ID。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/order.promotions"
                      },
                      "status": {
                        "description": "注文状況。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "mode",
                      "currency_type",
                      "currency",
                      "amount",
                      "status",
                      "platform",
                      "comment",
                      "invoice_id",
                      "promotions"
                    ],
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザー情報。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "description": "ユーザーのメールアドレス。",
                        "type": "string"
                      },
                      "external_id": {
                        "description": "ユーザーID。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "external_id",
                      "email"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "items",
                  "order",
                  "user",
                  "transaction",
                  "payment_details"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "処理が成功したことを示すために戻ります。"
          },
          "400": {
            "description": "提供された情報（たとえば、必須なパラメータの欠落、認証の失敗など。）にエラーが発生した場合に戻ります。"
          }
        },
        "summary": "注文キャンセル（支払いと取引の詳細を含む）",
        "tags": [
          "combined-webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \\\n-d '{\n    \"notification_type\": \"order_canceled\",\n    \"items\": [\n      {\n        \"sku\": \"com.xsolla.v.item_1\",\n        \"type\": \"virtual_good\",\n        \"is_pre_order\": false,\n        \"quantity\": 3,\n        \"amount\": \"1000\",\n        \"promotions\": [\n          {\n            \"amount_without_discount\": \"6000\",\n            \"amount_with_discount\": \"5000\",\n            \"sequence\": 1\n          },\n          {\n            \"amount_without_discount\": \"5000\",\n            \"amount_with_discount\": \"4000\",\n            \"sequence\": 2\n          }\n        ],\n        \"custom_attributes\": {\n            \"purchased\": 0,\n            \"attr\": \"value\"\n          }\n      },\n      {\n        \"sku\": \"com.xsolla.v.item_new_1\",\n        \"type\": \"bundle\",\n        \"is_pre_order\": false,\n        \"quantity\": 1,\n        \"amount\": \"1000\",\n        \"promotions\": []\n      },\n      {\n        \"sku\": \"com.xsolla.gold_1\",\n        \"type\": \"virtual_currency\",\n        \"is_pre_order\": false,\n        \"quantity\": 1500,\n        \"amount\": null,\n        \"promotions\": []\n      }\n    ],\n    \"order\": {\n      \"id\": 1,\n      \"mode\": \"default\",\n      \"currency_type\": \"virtual\",\n      \"currency\": \"sku_currency\",\n      \"amount\": \"2000\",\n      \"status\": \"paid\",\n      \"platform\": \"xsolla\",\n      \"comment\": null,\n      \"invoice_id\": \"1\",\n      \"promotions\": [\n        {\n          \"amount_without_discount\": \"4000\",\n          \"amount_with_discount\": \"2000\",\n          \"sequence\": 1\n        }\n      ],\n      \"promocodes\": [\n        {\n          \"code\": \"promocode_some_code\",\n          \"external_id\": \"promocode_sku\"\n        }\n      ],\n      \"coupons\": [\n        {\n          \"code\": \"WINTER2021\",\n          \"external_id\": \"coupon_sku\"\n        }\n      ]\n    },\n    \"user\": {\n      \"external_id\": \"id_xsolla_login_1\",\n      \"email\": \"email@example.com\",\n      \"country\": \"US\"\n    },\n    \"billing\": {\n      \"notification_type\": \"refund\",\n      \"settings\": {\n        \"project_id\": 18404,\n        \"merchant_id\": 2340\n      },\n      \"purchase\": {\n              \"subscription\": {\n                  \"plan_id\": \"b5dac9c8\",\n                  \"subscription_id\": \"10\",\n                  \"date_create\": \"2014-09-22T19:25:25+04:00\",\n                  \"currency\": \"USD\",\n                  \"amount\": 9.99\n              },\n              \"total\":{\n                  \"currency\": \"USD\",\n                  \"amount\": 200\n              }\n          },\n      \"transaction\": {\n              \"id\": 1,\n              \"external_id\": 1,\n              \"dry_run\": 1,\n              \"agreement\": 1\n          },\n      \"refund_details\": {\n              \"code\": 4,\n              \"reason\": \"Potential fraud\"\n          },\n      \"payment_details\": {\n              \"sales_tax\": {\n                  \"currency\": \"USD\",\n                  \"amount\": 0\n              },\n              \"direct_wht\": {\n                  \"currency\": \"USD\",\n                  \"amount\": 0.70\n              },\n              \"xsolla_fee\": {\n                  \"currency\": \"USD\",\n                  \"amount\": \"10\"\n              },\n              \"payout\": {\n                  \"currency\": \"USD\",\n                  \"amount\": \"200\"\n              },\n              \"payment_method_fee\": {\n                  \"currency\": \"USD\",\n                  \"amount\": \"20\"\n              },\n              \"payment\": {\n                  \"currency\": \"USD\",\n                  \"amount\": \"230\"\n              },\n              \"repatriation_commission\": {\n                  \"currency\": \"USD\",\n                  \"amount\": 10\n              }\n          }\n    }\n}"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost:           your.hostname\naccept:         application/json\ncontent-length: 258\ncontent-type:   application/json\nauthorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523\n\n\n{\n    \"notification_type\": \"order_canceled\",\n    \"items\": [\n      {\n        \"sku\": \"com.xsolla.v.item_1\",\n        \"type\": \"virtual_good\",\n        \"is_pre_order\": false,\n        \"quantity\": 3,\n        \"amount\": \"1000\",\n        \"promotions\": [\n          {\n            \"amount_without_discount\": \"6000\",\n            \"amount_with_discount\": \"5000\",\n            \"sequence\": 1\n          },\n          {\n            \"amount_without_discount\": \"5000\",\n            \"amount_with_discount\": \"4000\",\n            \"sequence\": 2\n          }\n        ],\n        \"custom_attributes\": {\n            \"purchased\": 0,\n            \"attr\": \"value\"\n          }\n      },\n      {\n        \"sku\": \"com.xsolla.v.item_new_1\",\n        \"type\": \"bundle\",\n        \"is_pre_order\": false,\n        \"quantity\": 1,\n        \"amount\": \"1000\",\n        \"promotions\": []\n      },\n      {\n        \"sku\": \"com.xsolla.gold_1\",\n        \"type\": \"virtual_currency\",\n        \"is_pre_order\": false,\n        \"quantity\": 1500,\n        \"amount\": null,\n        \"promotions\": []\n      }\n    ],\n    \"order\": {\n      \"id\": 1,\n      \"mode\": \"default\",\n      \"currency_type\": \"virtual\",\n      \"currency\": \"sku_currency\",\n      \"amount\": \"2000\",\n      \"status\": \"paid\",\n      \"platform\": \"xsolla\",\n      \"comment\": null,\n      \"invoice_id\": \"1\",\n      \"promotions\": [\n        {\n          \"amount_without_discount\": \"4000\",\n          \"amount_with_discount\": \"2000\",\n          \"sequence\": 1\n        }\n      ],\n      \"promocodes\": [\n        {\n          \"code\": \"promocode_some_code\",\n          \"external_id\": \"promocode_sku\"\n        }\n      ],\n      \"coupons\": [\n        {\n          \"code\": \"WINTER2021\",\n          \"external_id\": \"coupon_sku\"\n        }\n      ]\n    },\n    \"user\": {\n      \"external_id\": \"id_xsolla_login_1\",\n      \"email\": \"email@example.com\",\n      \"country\": \"US\"\n    },\n    \"billing\": {\n      \"notification_type\": \"refund\",\n      \"settings\": {\n        \"project_id\": 18404,\n        \"merchant_id\": 2340\n      },\n      \"purchase\": {\n          \"subscription\": {\n              \"plan_id\": \"b5dac9c8\",\n              \"subscription_id\": \"10\",\n              \"date_create\": \"2014-09-22T19:25:25+04:00\",\n              \"currency\": \"USD\",\n              \"amount\": 9.99\n          },\n          \"total\": {\n              \"currency\": \"USD\",\n              \"amount\": 200\n          }\n      },\n      \"transaction\": {\n          \"id\": 1,\n          \"external_id\": 1,\n          \"dry_run\": 1,\n          \"agreement\": 1\n      },\n      \"refund_details\": {\n          \"code\": 4,\n          \"reason\": \"Potential fraud\"\n      },\n      \"payment_details\": {\n          \"sales_tax\": {\n              \"currency\": \"USD\",\n              \"amount\": 0\n          },\n          \"direct_wht\": {\n              \"currency\": \"USD\",\n              \"amount\": 0.70\n          },\n          \"xsolla_fee\": {\n              \"currency\": \"USD\",\n              \"amount\": \"10\"\n          },\n          \"payout\": {\n              \"currency\": \"USD\",\n              \"amount\": \"200\"\n          },\n          \"payment_method_fee\": {\n              \"currency\": \"USD\",\n              \"amount\": \"20\"\n          },\n          \"payment\": {\n              \"currency\": \"USD\",\n              \"amount\": \"230\"\n          },\n          \"repatriation_commission\": {\n              \"currency\": \"USD\",\n              \"amount\": 10\n          }\n        }\n      }\n    }"
          }
        ]
      }
    },
    "order-cancellation-separate": {
      "post": {
        "description": "ユーザー、パートナー、またはシステムによって支払いがキャンセルされた場合、エクソーラは指定されたURLに<code>order_canceled</code>ウ\nェーブフックを送信します。このウェーブフックには、キャンセルされたアイテムに関する情報と、キャンセルされた注文の詳細が含まれています。\n\n支払いが成功しなかった場合、ウェブフックは送信されません。例：\n* 決済UIは開かれましたが、ユーザーが注文の支払いを行われません\n* 決済UIが開かれましたが、支払いの実行中にエラーが発生しました\n\n推奨されるウェーブフックの処理時間は3秒以内です。\n",
        "operationId": "order-cancellation-separate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "custom_parameters": {
                    "description": "追加情報。",
                    "type": "object"
                  },
                  "items": {
                    "description": "ユーザーが購入したアイテムのリスト。\n\n配列に含まれるパラメータのセットは、ウェブフックのバージョンによって異なります。バージョン2は、追加のパラメータが含まれています：`is_free`、`is_b\nonus`および`is_bundle_content`。バージョンを切り替えるには、[ウェブフック設定に関する情報を更新する](/ja/api/igs/operation/update-webhook/)APIコールで`version`パラメータにその番号を渡します。\n",
                    "items": {
                      "oneOf": [
                        {
                          "properties": {
                            "amount": {
                              "description": "数量に基づいたアイテムの総コスト。",
                              "type": "string"
                            },
                            "custom_attributes": {
                              "description": "アイテムの属性と値を含むJSONオブジェクト。",
                              "type": "object"
                            },
                            "is_pre_order": {
                              "description": "「`true`」の場合、アイテムは先行予約です。",
                              "type": "boolean"
                            },
                            "promotions": {
                              "$ref": "#/components/schemas/items.promotions"
                            },
                            "quantity": {
                              "description": "アイテムの数量。",
                              "type": "integer"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/items.sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/items.type"
                            }
                          },
                          "required": [
                            "sku",
                            "type",
                            "quantity",
                            "amount",
                            "promotions",
                            "is_pre_order"
                          ],
                          "title": "バージョン = 1",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "amount": {
                              "description": "数量に基づいたアイテムの総コスト。",
                              "type": "string"
                            },
                            "custom_attributes": {
                              "description": "アイテムの属性と値を含むJSONオブジェクト。",
                              "type": "object"
                            },
                            "is_bonus": {
                              "description": "「`true`」の場合、アイテムはボーナスです。",
                              "type": "boolean"
                            },
                            "is_bundle_content": {
                              "description": "「`true`」の場合、アイテムはバンドルに属しています。",
                              "type": "boolean"
                            },
                            "is_free": {
                              "description": "「`true`」の場合、アイテムは無料です。",
                              "type": "boolean"
                            },
                            "is_pre_order": {
                              "description": "「`true`」の場合、アイテムは先行予約です。",
                              "type": "boolean"
                            },
                            "promotions": {
                              "description": "適用されたプロモーション。プロモーションが適用されていない場合は、パラメータに空の配列が渡されます。",
                              "items": {
                                "properties": {
                                  "amount_with_discount": {
                                    "description": "割引なしのアイテムの総コスト。",
                                    "type": "string"
                                  },
                                  "amount_without_discount": {
                                    "description": "割引なしのアイテムの総コスト。",
                                    "type": "string"
                                  },
                                  "sequence": {
                                    "description": "プロモーションアプリケーションの注文。",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "quantity": {
                              "description": "アイテムの数量。",
                              "type": "integer"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/items.sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/items.type"
                            }
                          },
                          "required": [
                            "sku",
                            "type",
                            "quantity",
                            "amount",
                            "promotions",
                            "is_pre_order",
                            "is_free",
                            "is_bonus",
                            "is_bundle_content"
                          ],
                          "title": "バージョン = 2",
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "order": {
                    "description": "注文に関する情報。",
                    "properties": {
                      "amount": {
                        "description": "選択された通貨に基づくカートの合計金額です。",
                        "type": "string"
                      },
                      "comment": {
                        "description": "注文に対するユーザーのコメント。",
                        "nullable": true,
                        "type": "string"
                      },
                      "coupons": {
                        "description": "適用されたクーポン。クーポンが適用されていない場合は、配列は返されません。",
                        "items": {
                          "properties": {
                            "code": {
                              "description": "適用されたクーポンのコードです。",
                              "type": "string"
                            },
                            "external_id": {
                              "description": "External ID。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "currency": {
                        "description": "注文の通貨。仮想通貨はSKUを使用し、実際通貨は3文字の[ISO4217](https://en.wikipedia.org/wiki/ISO_4217)コードを使用します。",
                        "type": "string"
                      },
                      "currency_type": {
                        "$ref": "#/components/schemas/currency-type"
                      },
                      "id": {
                        "description": "エクソーラ側でのユーザーの注文の一意の識別子。",
                        "type": "integer"
                      },
                      "invoice_id": {
                        "description": "実際通貨による支払い請求書ID。仮想通貨の決済また無料アイテムは、`null`の値を使用します。",
                        "nullable": true,
                        "type": "string"
                      },
                      "mode": {
                        "description": "決済モード。`default`は実際の支払いに、`sandbox`はテスト支払いに使用されます。",
                        "enum": [
                          "default",
                          "sandbox"
                        ],
                        "type": "string"
                      },
                      "platform": {
                        "description": "決済プラットフォーム。`xsolla`の値は、Xsollaを介した支払いに使用されます。その他の支払いについては、ゲームパブリッシングプラットフォームの名前に対応する値が使用されます：`playstation_network`、`xbox_live`、`pc_standalone`、`nintendo_shop`、`google_play`、`app_store_ios`、`android_standalone`、`ios_standalone`、`android_other`、`ios_other`、`pc_other`。",
                        "enum": [
                          "xsolla",
                          "playstation_network",
                          "xbox_live",
                          "pc_standalone",
                          "nintendo_shop",
                          "google_play",
                          "app_store_ios",
                          "android_standalone",
                          "ios_standalone",
                          "android_other",
                          "ios_other",
                          "pc_other"
                        ],
                        "nullable": true,
                        "type": "string"
                      },
                      "promocodes": {
                        "description": "適用されたプロモーションコード。プロモーションコードが適用されていない場合、配列は返されません。",
                        "items": {
                          "properties": {
                            "code": {
                              "description": "適用されたプロモーションコードのコードです。",
                              "type": "string"
                            },
                            "external_id": {
                              "description": "External ID。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/order.promotions"
                      },
                      "status": {
                        "description": "注文状況。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "mode",
                      "currency_type",
                      "currency",
                      "amount",
                      "status",
                      "platform",
                      "comment",
                      "invoice_id",
                      "promotions"
                    ],
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザー情報。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "description": "ユーザーのメールアドレス。",
                        "type": "string"
                      },
                      "external_id": {
                        "description": "ユーザーID。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "external_id",
                      "email"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "items",
                  "order",
                  "user"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "処理が成功したことを示すために戻ります。"
          },
          "400": {
            "description": "提供された情報（たとえば、必須なパラメータの欠落、認証の失敗など。）にエラーが発生した場合に戻ります。"
          }
        },
        "summary": "注文キャンセル（支払いおよび取引の詳細なし）",
        "tags": [
          "separate-webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \\\n-d '{\n    \"notification_type\": \"order_canceled\",\n    \"items\": [\n      {\n        \"sku\": \"com.xsolla.v.item_1\",\n        \"type\": \"virtual_good\",\n        \"is_pre_order\": false,\n        \"quantity\": 3,\n        \"amount\": \"1000\",\n        \"promotions\": [\n          {\n            \"amount_without_discount\": \"6000\",\n            \"amount_with_discount\": \"5000\",\n            \"sequence\": 1\n          },\n          {\n            \"amount_without_discount\": \"5000\",\n            \"amount_with_discount\": \"4000\",\n            \"sequence\": 2\n          }\n        ],\n        \"custom_attributes\": {\n            \"purchased\": 0,\n            \"attr\": \"value\"\n          }\n      },\n      {\n        \"sku\": \"com.xsolla.v.item_new_1\",\n        \"type\": \"bundle\",\n        \"is_pre_order\": false,\n        \"quantity\": 1,\n        \"amount\": \"1000\",\n        \"promotions\": []\n      },\n      {\n        \"sku\": \"com.xsolla.gold_1\",\n        \"type\": \"virtual_currency\",\n        \"is_pre_order\": false,\n        \"quantity\": 1500,\n        \"amount\": \"[null]\",\n        \"promotions\": []\n      }\n    ],\n    \"order\": {\n      \"id\": 1,\n      \"mode\": \"default\",\n      \"currency_type\": \"virtual\",\n      \"currency\": \"sku_currency\",\n      \"amount\": \"2000\",\n      \"status\": \"paid\",\n      \"platform\": \"xsolla\",\n      \"comment\": null,\n      \"invoice_id\": \"1\",\n      \"promotions\": [\n        {\n          \"amount_without_discount\": \"4000\",\n          \"amount_with_discount\": \"2000\",\n          \"sequence\": 1\n        }\n      ],\n      \"promocodes\": [\n        {\n          \"code\": \"promocode_some_code\",\n          \"external_id\": \"promocode_sku\"\n        }\n      ],\n      \"coupons\": [\n        {\n          \"code\": \"WINTER2021\",\n          \"external_id\": \"coupon_sku\"\n        }\n      ]\n    },\n    \"user\": {\n      \"external_id\": \"id_xsolla_login_1\",\n      \"email\": \"email@example.com\",\n      \"country\": \"US\"\n    }\n\n}'"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost:           your.hostname\naccept:         application/json\ncontent-length: 258\ncontent-type:   application/json\nauthorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523\n\n\n{\n    \"notification_type\": \"order_canceled\",\n    \"items\": [\n      {\n        \"sku\": \"com.xsolla.v.item_1\",\n        \"type\": \"virtual_good\",\n        \"is_pre_order\": false,\n        \"quantity\": 3,\n        \"amount\": \"1000\",\n        \"promotions\": [\n          {\n            \"amount_without_discount\": \"6000\",\n            \"amount_with_discount\": \"5000\",\n            \"sequence\": 1\n          },\n          {\n            \"amount_without_discount\": \"5000\",\n            \"amount_with_discount\": \"4000\",\n            \"sequence\": 2\n          }\n        ],\n        \"custom_attributes\": {\n            \"purchased\": 0,\n            \"attr\": \"value\"\n          }\n      },\n      {\n        \"sku\": \"com.xsolla.v.item_new_1\",\n        \"type\": \"bundle\",\n        \"is_pre_order\": false,\n        \"quantity\": 1,\n        \"amount\": \"1000\",\n        \"promotions\": []\n      },\n      {\n        \"sku\": \"com.xsolla.gold_1\",\n        \"type\": \"virtual_currency\",\n        \"is_pre_order\": false,\n        \"quantity\": 1500,\n        \"amount\": \"[null]\",\n        \"promotions\": []\n      }\n    ],\n    \"order\": {\n      \"id\": 1,\n      \"mode\": \"default\",\n      \"currency_type\": \"virtual\",\n      \"currency\": \"sku_currency\",\n      \"amount\": \"2000\",\n      \"status\": \"paid\",\n      \"platform\": \"xsolla\",\n      \"comment\": null,\n      \"invoice_id\": \"1\",\n      \"promotions\": [\n        {\n          \"amount_without_discount\": \"4000\",\n          \"amount_with_discount\": \"2000\",\n          \"sequence\": 1\n        }\n      ],\n      \"promocodes\": [\n        {\n          \"code\": \"promocode_some_code\",\n          \"external_id\": \"promocode_sku\"\n        }\n      ],\n      \"coupons\": [\n        {\n          \"code\": \"WINTER2021\",\n          \"external_id\": \"coupon_sku\"\n        }\n      ]\n    },\n    \"user\": {\n      \"external_id\": \"id_xsolla_login_1\",\n      \"email\": \"email@example.com\",\n      \"country\": \"US\"\n    }\n}"
          }
        ]
      }
    },
    "partial-refund": {
      "post": {
        "description": "一部返金が行われた場合、エクソーラは`partial_refund`タイプのウェブフックのウェブフックURLにキャンセルされたトランザクションの詳細を送信します\n。返金プロセスの一部の詳細は、これらの[説明](/ja/doc/pay-station/features/refund/#pay_station_features_refund_how_it_works_partial_refund_flow)を参照してください。\n\nパブリッシャーアカウントにウェブフックURLを保存すると、ウェブフックで詳細情報を受信する権限を与えることができます。これを行うには、パブリッシャーアカウントの\n<a \nhref=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/store\">プロジェクト設定&gt\n; ウェブフック&gt; 詳細設定</a> セクションで次のトグルを「アクティブ」に設定します。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、「<a href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments\">プロジェクト設定&gt;ウェブフック&gt;テスト&gt;決済ソリューション&gt;詳細設定</a>」セクションでトグルを見つけます。</p>\n</div>\n\n<table>\n<thead>\n    <tr>\n        <th>トグル</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>保存された決済方法による取引に関する情報を表示する</td>\n        <td><p>情報は、パラメータの以下のカスタムパラメータに渡されます：</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — 保存された決済方法は使用されませんでした</li><li><code>1</code> — 決済方法は現在の支払い時に保存されました</li><li><code>2</code> — 保存された決済方法は使用されませんでした</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — 一回払い</li><li><code>2</code> — 定期支払い</li></ul></li></ul></td>\n    </tr>\n</tbody>\n</table>\n\n返金コード：\n\n<table>\n    <thead>\n    <tr>\n        <th>コード</th>\n        <th>理由</th>\n        <th>説明</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>1</td>\n        <td>Cancellation by the user request / the game request</td>\n        <td>パブリッシャーアカウントからキャンセルが開始されました。</td>\n    </tr>\n    <tr>\n        <td>3</td>\n        <td>Integration error</td>\n        <td>エクソラとゲームの統合に関する問題<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>5</td>\n        <td>Test payment</td>\n        <td>テストトランザクション後にキャンセル処理が実行されます。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>7</td>\n        <td>Fraud notification from PS</td>\n        <td>決済システムで支払いが拒否されました。決済システムで不正の可能性が検出されました。<br /><b>推奨事項：ユーザーをブロックリストに追加してください。</b></td>\n    </tr>\n    <tr>\n        <td>9</td>\n        <td>Cancellation by the user request</td>\n        <td>ユーザは何らかの理由でゲームや購入に満足していませんでした。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>10</td>\n        <td>Cancellation by the game request</td>\n        <td>ゲームによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    </tbody>\n</table>\n",
        "operationId": "partial-refund",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "custom_parameters": {
                    "description": "カスタムパラメータ。",
                    "type": "object"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "payment_details": {
                    "description": "支払明細（オブジェクト）。",
                    "properties": {
                      "direct_wht": {
                        "description": "直接源泉徴収税。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "直接源泉徴収税率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "payment": {
                        "description": "ユーザー（オブジェクト）によって支払われた金額。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payment_method_fee": {
                        "description": "決済システム料金。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payment_method_sum": {
                        "description": "決済システムから振り込まれた金額。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payout": {
                        "description": "配当の詳細（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payout_currency_rate": {
                        "description": "決済と配当間の為替レート。",
                        "type": "string"
                      },
                      "repatriation_commission": {
                        "description": "本国送金費用のデータ付きオブジェクト。サードパーティがエクソラに課します。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "sales_tax": {
                        "description": "売上税（オブジェクト；米国とカナダのみ）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "消費税率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "vat": {
                        "description": "VATの詳細（オブジェクト；EUのみ）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "消費税率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "xsolla_balance_sum": {
                        "description": "エクソラの残高から振り込まれた金額。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "xsolla_fee": {
                        "description": "エクソラ料金（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "purchase": {
                    "description": "購入内容（オブジェクト）。",
                    "properties": {
                      "checkout": {
                        "description": "チェックアウトの詳細（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "購入金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "total": {
                        "description": "購入（オブジェクト）の合計価格。",
                        "properties": {
                          "amount": {
                            "description": "一部返金の支払い額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "total"
                    ],
                    "type": "object"
                  },
                  "refund_details": {
                    "description": "返金の詳細（オブジェクト）。",
                    "properties": {
                      "author": {
                        "description": "返金イニシエーター。フィールド値は、次の表に従って渡されます：\n\n<table>\n    <thead>\n    <tr>\n        <th>返金イニシエーター</th>\n        <th>フィールド値</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>ゲーム（API経由）。</td>\n        <td>API</td>\n    </tr>\n    <tr>\n        <td>パブリッシャーアカウントのユーザー（自動返金）。</td>\n        <td>ユーザーのメールアドレス</td>\n    </tr>\n    <tr>\n        <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    <tr>\n        <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    </tbody>\n</table>\n",
                        "type": "string"
                      },
                      "code": {
                        "description": "コードID。",
                        "type": "integer"
                      },
                      "date": {
                        "description": "返金日。",
                        "type": "string"
                      },
                      "reason": {
                        "description": "返金の理由。",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "transaction": {
                    "description": "トランザクションの詳細（オブジェクト）。",
                    "properties": {
                      "agreement": {
                        "description": "契約ID",
                        "type": "integer"
                      },
                      "date": {
                        "description": "トランザクション日。",
                        "type": "string"
                      },
                      "dry_run": {
                        "description": "テストトランザクション。パラメータは、テストトランザクションの場合は1つの値を持ち、もしくはトランザクションが実際の場合は送信されません。",
                        "type": "integer"
                      },
                      "external_id": {
                        "description": "トランザクション外部ID。",
                        "type": "string"
                      },
                      "id": {
                        "description": "トランザクションID。",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "ip": {
                        "$ref": "#/components/schemas/user.ip"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      },
                      "phone": {
                        "$ref": "#/components/schemas/user.phone"
                      },
                      "zip": {
                        "$ref": "#/components/schemas/user.zip"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "transaction",
                  "payment_details"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "一部返金",
        "tags": [
          "payments"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-d '{\n        \"notification_type\": \"partial_refund\",\n        \"settings\": {\n          \"project_id\": 18404,\n          \"merchant_id\": 2340\n        },\n        \"purchase\": {\n            \"checkout\": {\n                \"currency\": \"USD\",\n                \"amount\": 50\n            },\n            \"total\":{\n                \"currency\": \"USD\",\n                \"amount\": 200\n            }\n        },\n        \"user\": {\n            \"ip\": \"127.0.0.1\",\n            \"phone\": \"18777976552\",\n            \"email\": \"email@example.com\",\n            \"id\": \"1234567\",\n            \"name\": \"John Smith\",\n            \"country\": \"US\"\n        },\n        \"transaction\": {\n            \"id\": 1,\n            \"external_id\": 1,\n            \"dry_run\": 1,\n            \"agreement\": 1,\n            \"date\": \"2022-03-01 10:53:15\"\n        },\n        \"refund_details\": {\n            \"author\": \"email@example.com\",\n            \"date\": \"2022-03-01 10:56:48\"\n        },\n        \"payment_details\": {\n            \"sales_tax\": {\n                \"currency\": \"USD\",\n                \"amount\": 0\n            },\n            \"direct_wht\": {\n                \"currency\": \"USD\",\n                \"amount\": 0.70\n            },\n            \"xsolla_fee\": {\n                \"currency\": \"USD\",\n                \"amount\": \"10\"\n            },\n            \"payout\": {\n                \"currency\": \"USD\",\n                \"amount\": \"200\"\n            },\n            \"payment_method_fee\": {\n                \"currency\": \"USD\",\n                \"amount\": \"20\"\n            },\n            \"payment\": {\n                \"currency\": \"USD\",\n                \"amount\": \"230\"\n            },\n            \"repatriation_commission\": {\n                \"currency\": \"USD\",\n                \"amount\": 10\n            }\n        }\n    }\n}'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'partial_refund',\n    'settings' => array(\n      'project_id' => 18404,\n      'merchant_id' => 2340\n    ),\n    'purchase' => array(\n        'total' => array(\n            'currency' => 'USD',\n            'amount' => 9.99\n        )\n    ),\n    'user' => array(\n        'ip' => '127.0.0.1',\n        'phone' => '18777976552',\n        'email' => 'email@example.com',\n        'id' => '1234567',\n        'country' => 'US'\n    ),\n    'transaction' => array(\n        'id' => 87654321,\n        'payment_date' => '2014-09-23T19:25:25+04:00',\n        'payment_method' => 1380,\n        'dry_run' => 1,\n        'date' => '2022-03-31 10:53:15'\n    ),\n    'refund_details' => array(\n            'author' => 'email@example.com',\n            'date' => '2022-03-01 10:56:48'\n    ),\n    'payment_details' => array(\n        'payment' => array(\n            'currency' => 'USD',\n            'amount' => 9.99\n        ),\n        'vat' => array(\n            'currency' => 'USD',\n            'amount' => 0\n        ),\n        'sales_tax' => array(\n            'currency' => 'USD',\n            'amount' => 0\n        ),\n        'direct_wht' => array(\n            'currency' => 'USD',\n            'amount' => 70\n        ),\n        'payout_currency_rate' => 1,\n        'payout' => array(\n            'currency' => 'USD',\n            'amount' => 9.49\n        ),\n        'xsolla_fee' => array(\n            'currency' => 'USD',\n            'amount' => 0.19\n        ),\n        'payment_method_fee' => array(\n            'currency' => 'USD',\n            'amount' => 0.31\n        ),\n        'repatriation_commission' => array(\n            'currency' => 'USD',\n            'amount' => 0.2\n        )\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-type: application/json\ncontent-length: 1220\nauthorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7\n\n{\n    \"notification_type\": \"partial_refund\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"purchase\": {\n        \"checkout\": {\n            \"currency\": \"USD\",\n            \"amount\": 50\n        },\n        \"total\": {\n            \"currency\": \"USD\",\n            \"amount\": 200\n        }\n    },\n    \"user\": {\n        \"ip\": \"127.0.0.1\",\n        \"phone\": \"18777976552\",\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\",\n        \"country\": \"US\"\n    },\n    \"transaction\": {\n        \"id\": 1,\n        \"external_id\": 1,\n        \"dry_run\": 1,\n        \"agreement\": 1,\n        \"date\": \"2022-03-31 10:53:15\"\n    },\n    \"refund_details\": {\n        \"author\": \"email@example.com\",\n        \"date\": \"2022-03-31 10:56:48\"\n    },\n    \"payment_details\": {\n        \"sales_tax\": {\n            \"currency\": \"USD\",\n            \"amount\": 0\n        },\n        \"direct_wht\": {\n            \"currency\": \"USD\",\n            \"amount\": 0.70\n        },\n        \"xsolla_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": \"10\"\n        },\n        \"payout\": {\n            \"currency\": \"USD\",\n            \"amount\": \"200\"\n        },\n        \"payment_method_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": \"20\"\n        },\n        \"payment\": {\n            \"currency\": \"USD\",\n            \"amount\": \"230\"\n        },\n        \"repatriation_commission\": {\n            \"currency\": \"USD\",\n            \"amount\": 10\n        }\n    }\n}"
          }
        ]
      }
    },
    "payment": {
      "post": {
        "description": "ユーザーが支払いを完了すると、エクソーラは`payment`タイプのウェブフックで決済詳細をウェブフックURLに送信します。\n\n予想される応答コードについては、<b>Responses</b>セクションでは、他の応答コードも使用できます：\n\n<table>\n    <thead>\n    <tr>\n        <th>応答コード</th>\n        <th>説明</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td><code>200</code>、<code>201</code>、<code>204</code></td>\n        <td>成功応答。</td>\n    </tr>\n    <tr>\n        <td><code>4xx</code></td>\n        <td>エラーが発生しました。たとえば、指定されたユーザーが見つからない場合や、無効な署名が渡された場合などです。</td>\n    </tr>\n    <tr>\n        <td><code>5xx</code></td>\n        <td>一時的なサーバーエラーです。この応答を受信すると、エクソーラはウェブフックの送信を自動的に再試行し、リスナーが受信を確認するまで試行間隔を徐々に長くします。最大再試行回数は48時間で12回です。</td>\n    </tr>\n    </tbody>\n</table>\n\n<a \nhref=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/store\">パブリッシャーアカウン\nト</a>でウェブフックURLを保存すると、ウェブフックで追加情報を受信するように設定することもできます。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、プロジェクトで<a href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments\">設定 &gt; ウェブフック &gt; テスト &gt; 決済ソリューション &gt; 詳細設定</a>セクションでトグルを見つけます。</p>\n</div>\n\n<table>\n<thead>\n    <tr>\n        <th>トグル</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>保存された決済アカウントに関する情報を表示する</td>\n        <td>保存された決済方法に関する情報は、<code>payment_account</code>カスタムオブジェクト。</td>\n    </tr>\n    <tr>\n        <td>保存された決済方法による取引に関する情報を表示する</td>\n        <td><p>情報は、ウェブフックの以下のカスタムパラメータに渡されます：</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — 保存された決済方法は使用されませんでした</li><li><code>1</code> — 決済方法は現在の支払い時に保存されました</li><li><code>2</code> — 保存された決済方法は使用されませんでした</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — 一回払い</li><li><code>2</code> — 定期支払い</li></ul></li></ul></td>\n    </tr>\n    <tr>\n        <td>注文オブジェクトをウェブフックに追加する</td>\n        <td>注文に関する情報は、<a href=\"/ja/webhooks/operation/payment/\">決済</a>ウェブフックの<code>order</code>オブジェクトに渡されます。</td>\n    </tr>\n    <tr>\n        <td>機密データは含まず、必要なユーザーパラメータのみを送信する</td>\n        <td><p>ウェブフックでは、ユーザーに関する次の情報のみが渡されます：</p><ul><li>ID</li><li>国</li></ul></td>\n    </tr>\n    <tr>\n        <td>カードのBINとサフィックスを表示する</td>\n        <td><p>ウェブフックには、銀行カード番号に関する以下の情報が渡されます：</p><ul><li><code>card_bin</code>パラメータの最初の6桁</li><li><code>card_suffix</code>パラメータの最後の4桁</li></ul></td>\n    </tr>\n    <tr>\n        <td>カードブランドを表示する</td>\n        <td>決済に使用したカードのブランド。例えば、MastercardやVisaなど。</td>\n    </tr>\n</tbody>\n</table>\n\n<div class=\"notice\">\n<p><strong>お知らせ</strong></p>\n<p>ウェブフックで送信されるフィールドのセットは、以下によって異なります：<ul><li>パブリッシャーアカウントで構成された詳細設定</li><li>エクソーラ側で構成されたカスタム設定</li></ul></p><p>ご質問がある場合は、カスタマーサクセスマネージャーを連絡して、または<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>まで電子メールを送信してお問い合わせください。</p>\n</div>\n",
        "operationId": "payment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "custom_parameters": {
                    "description": "カスタムパラメータ。",
                    "type": "object"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "payment_details": {
                    "description": "支払詳細（オブジェクト）。",
                    "properties": {
                      "country_wht": {
                        "$ref": "#/components/schemas/country_whc"
                      },
                      "direct_wht": {
                        "description": "直接源泉徴収税。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "直接源泉徴収税率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "payment": {
                        "description": "ユーザーが支払った金額（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payment_method_fee": {
                        "description": "決済システム料金。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payment_method_sum": {
                        "description": "決済システムから引き落とされた金額。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payout": {
                        "description": "ペイアウトの詳細（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payout_currency_rate": {
                        "description": "決済とペイアウトの通貨間の為替レート。",
                        "type": "string"
                      },
                      "repatriation_commission": {
                        "description": "第三者によってエクソーラに課される送金コストに関するデータを含むオブジェクト",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "sales_tax": {
                        "description": "売上税（オブジェクト；米国とカナダのみ）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "売上税率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "user_acquisition_fee": {
                        "description": "アフィリエイトネットワークおよびインフルエンサー経由の購入に適用された顧客獲得料の合計額 （オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "顧客獲得料率（%）。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "vat": {
                        "description": "VATの詳細（オブジェクト；EUのみ）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "VAT率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "xsolla_balance_sum": {
                        "description": "エクソーラ残高から引き落とされた金額。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "xsolla_fee": {
                        "description": "エクソーラ手数料（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "purchase": {
                    "description": "購入詳細（オブジェクト）。",
                    "properties": {
                      "checkout": {
                        "description": "チェックアウト詳細（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "購入金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "coupon": {
                        "description": "クーポン詳細（オブジェクト; サブスクリプション作成時にクーポンが使用された場合）。",
                        "properties": {
                          "campaign_code": {
                            "description": "キャンペーンコード。",
                            "type": "string"
                          },
                          "coupon_code": {
                            "description": "クーポンコード。",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "gift": {
                        "description": "ギフト詳細（オブジェクト）。",
                        "properties": {
                          "giver_id": {
                            "description": "贈り主ID。",
                            "type": "string"
                          },
                          "hide_giver_from_receiver": {
                            "description": "受取人から贈り主の身元を非表示にするかどうか。",
                            "type": "string"
                          },
                          "message": {
                            "description": "贈り主からのメッセージ。",
                            "type": "string"
                          },
                          "receiver_email": {
                            "description": "ギフト受取人のメールアドレス。",
                            "type": "string"
                          },
                          "receiver_id": {
                            "description": "ギフト受取人ID。",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "order": {
                        "$ref": "#/components/schemas/order",
                        "properties": {
                          "id": {
                            "description": "注文ID。",
                            "type": "integer"
                          },
                          "lineitems": {
                            "description": "アイテムに関する情報を含むパラメータの配列。",
                            "items": {
                              "properties": {
                                "price": {
                                  "description": "アイテム価格に関する情報を含むオブジェクト。",
                                  "properties": {
                                    "amount": {
                                      "description": "選択した通貨でのアイテムの合計価格。",
                                      "format": "float",
                                      "type": "number"
                                    },
                                    "currency": {
                                      "description": "アイテム価格の通貨。",
                                      "type": "string"
                                    }
                                  },
                                  "type": "object"
                                },
                                "quantity": {
                                  "description": "アイテム数量。",
                                  "type": "integer"
                                },
                                "sku": {
                                  "description": "アイテムSKU。",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        }
                      },
                      "promotions": {
                        "description": "このトランザクションに適用されるプロモーション。",
                        "items": {
                          "properties": {
                            "id": {
                              "description": "プロモーションID。",
                              "type": "integer"
                            },
                            "technical_name": {
                              "description": "プロモーションの技術名称。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "subscription": {
                        "description": "サブスクリプション詳細（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "$ref": "#/components/schemas/amount-float"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "date_create": {
                            "$ref": "#/components/schemas/subscription.date_create"
                          },
                          "date_next_charge": {
                            "description": "次回の請求日。[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)に基づく日付と時刻。",
                            "type": "string"
                          },
                          "plan_id": {
                            "$ref": "#/components/schemas/subscription.plan_id"
                          },
                          "product_id": {
                            "description": "製品ID（アクセストークンで送信された場合）。",
                            "type": "string"
                          },
                          "subscription_id": {
                            "$ref": "#/components/schemas/subscription.subscription_id"
                          },
                          "tags": {
                            "$ref": "#/components/schemas/subscription.tags"
                          }
                        },
                        "type": "object"
                      },
                      "total": {
                        "description": "購入の合計価格（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "総支払額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "total"
                    ],
                    "type": "object"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "transaction": {
                    "description": "トランザクションの詳細（オブジェクト）。",
                    "properties": {
                      "agreement": {
                        "description": "契約ID。",
                        "type": "integer"
                      },
                      "dry_run": {
                        "description": "テストトランザクション。テストトランザクションの場合は値が1になり、実際の取引の場合は送信されません。",
                        "type": "integer"
                      },
                      "external_id": {
                        "$ref": "#/components/schemas/external-id"
                      },
                      "id": {
                        "description": "トランザクションID。",
                        "type": "integer"
                      },
                      "payment_date": {
                        "description": "支払日。",
                        "type": "string"
                      },
                      "payment_method": {
                        "description": "決済方法ID。",
                        "type": "integer"
                      },
                      "payment_method_name": {
                        "description": "決済方法の名称。",
                        "type": "string"
                      },
                      "payment_method_order_id": {
                        "description": "決済システムの決済ID。",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザー詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "ip": {
                        "$ref": "#/components/schemas/user.ip"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      },
                      "phone": {
                        "$ref": "#/components/schemas/user.phone"
                      },
                      "zip": {
                        "$ref": "#/components/schemas/user.zip"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "transaction",
                  "payment_details"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400-payment"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "支払い",
        "tags": [
          "payments"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-d '{\n    \"notification_type\": \"payment\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"purchase\": {\n        \"subscription\": {\n            \"plan_id\": \"b5dac9c8\",\n            \"subscription_id\": \"10\",\n            \"product_id\": \"Demo Product\",\n            \"date_create\": \"2014-09-22T19:25:25+04:00\",\n            \"date_next_charge\": \"2014-10-22T19:25:25+04:00\",\n            \"currency\": \"USD\",\n            \"amount\": 9.99\n        },\n        \"checkout\": {\n            \"currency\": \"USD\",\n            \"amount\": 50\n        },\n        \"total\": {\n            \"currency\": \"USD\",\n            \"amount\": 200\n        },\n        \"promotions\": [{\n            \"technical_name\": \"Demo Promotion\",\n            \"id\": 853\n        }],\n        \"coupon\": {\n            \"coupon_code\": \"ICvj45S4FUOyy\",\n            \"campaign_code\": \"1507\"\n        },\n        \"order\": {\n          \"id\": 1234\n          \"lineitems\": [\n          {\n            \"sku\": \"com.xsolla.item_1\",\n            \"quantity\": 1,\n            \"price\": {\n              \"currency\": \"EUR\",\n              \"amount\": 6.5\n              }\n          }\n          ]\n          }\n    },\n    \"user\": {\n        \"ip\": \"127.0.0.1\",\n        \"phone\": \"18777976552\",\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\",\n        \"country\": \"US\"\n    },\n    \"transaction\": {\n        \"id\": 1,\n        \"external_id\": 1,\n        \"payment_date\": \"2014-09-24T20:38:16+04:00\",\n        \"payment_method\": 1,\n        \"payment_method_name\": \"PayPal\",\n        \"payment_method_order_id\": 1234567890123456789,\n        \"dry_run\": 1,\n        \"agreement\": 1\n    },\n    \"payment_details\": {\n        \"payment\": {\n            \"currency\": \"USD\",\n            \"amount\": 230\n        },\n        \"vat\": {\n            \"currency\": \"USD\",\n            \"amount\": 0,\n            \"percent\": 20\n        },\n        \"sales_tax\": {\n            \"currency\": \"USD\",\n            \"amount\": 0,\n            \"percent\": 0\n        },\n        \"direct_wht\": {\n            \"currency\": \"USD\",\n            \"amount\": 0,\n            \"percent\": 0\n        },\n        \"payout_currency_rate\": \"1\",\n        \"payout\": {\n            \"currency\": \"USD\",\n            \"amount\": 200\n        },\n        \"country_wht\": {\n            \"currency\": \"USD\",\n            \"amount\": 2,\n            \"percent\": 10\n        },\n        \"user_acquisition_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": 2,\n            \"percent\": 1\n        },\n        \"xsolla_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": 10\n        },\n        \"payment_method_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": 20\n        },\n        \"repatriation_commission\": {\n            \"currency\": \"USD\",\n            \"amount\": 10\n        }\n    },\n    \"custom_parameters\": {\n        \"parameter1\": \"value1\",\n        \"parameter2\": \"value2\"\n    }\n}'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'payment',\n    'settings' => array(\n      'project_id' => 18404,\n      'merchant_id' => 2340\n    ),\n    'purchase' => array(\n        'total' => array(\n            'currency' => 'USD',\n            'amount' => 9.99\n        )\n    ),\n    'user' => array(\n        'ip' => '127.0.0.1',\n        'phone' => '18777976552',\n        'email' => 'email@example.com',\n        'id' => '1234567',\n        'country' => 'US'\n    ),\n    'transaction' => array(\n        'id' => 87654321,\n        'payment_date' => '2014-09-23T19:25:25+04:00',\n        'payment_method' => 1380,\n        'payment_method_name' => 'PayPal'\n        'payment_method_order_id' => 1234567890123456789,\n        'dry_run' => 1\n    ),\n    'payment_details' => array(\n        'payment' => array(\n            'currency' => 'USD',\n            'amount' => 9.99\n        ),\n        'vat' => array(\n            'currency' => 'USD',\n            'amount' => 0\n        ),\n        'sales_tax' => array(\n            'currency' => 'USD',\n            'amount' => 0\n        ),\n        'direct_wht' => array(\n            'currency' => 'USD',\n            'amount' => 70\n        ),\n        'payout_currency_rate' => '1',\n        'country_wht ' => array(\n            'currency' => 'USD',\n            'amount' => 2,\n            'percent' => 10\n        ),\n        'user_acquisition_fee' => array(\n            'currency' => 'USD',\n            'amount' => 2,\n            'percent' => 1\n        ),\n        'payout' => array(\n            'currency' => 'USD',\n            'amount' => 9.49\n        ),\n        'xsolla_fee' => array(\n            'currency' => 'USD',\n            'amount' => 0.19\n        ),\n        'payment_method_fee' => array(\n            'currency' => 'USD',\n            'amount' => 0.31\n        ),\n        'repatriation_commission' => array(\n            'currency' => 'USD',\n            'amount' => 0.2\n        )\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-type: application/json\ncontent-length: 1721\nauthorization: Signature 34553d151e656110c656696c919f9a10e05de542\n\n{\n    \"notification_type\": \"payment\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"purchase\":{\n        \"subscription\": {\n            \"plan_id\": \"b5dac9c8\",\n            \"subscription_id\": \"10\",\n            \"product_id\": \"Demo Product\",\n            \"date_create\": \"2014-09-22T19:25:25+04:00\",\n            \"date_next_charge\": \"2014-10-22T19:25:25+04:00\",\n            \"currency\": \"USD\",\n            \"amount\": 9.99\n        },\n        \"checkout\": {\n            \"currency\": \"USD\",\n            \"amount\": 50\n        },\n        \"total\": {\n            \"currency\": \"USD\",\n            \"amount\": 200\n        },\n        \"promotions\": [{\n            \"technical_name\": \"Demo Promotion\",\n            \"id\": 853\n        }],\n        \"coupon\": {\n            \"coupon_code\": \"ICvj45S4FUOyy\",\n            \"campaign_code\": \"1507\"\n        },\n        \"order\": {\n          \"id\": 1234\n          \"lineitems\": [\n          {\n            \"sku\": \"com.xsolla.item_1\",\n            \"quantity\": 1,\n            \"price\": {\n              \"currency\": \"EUR\",\n              \"amount\": 6.5\n              }\n          }\n          ]\n          }\n    },\n    \"user\": {\n        \"ip\": \"127.0.0.1\",\n        \"phone\": \"18777976552\",\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\",\n        \"country\": \"US\"\n    },\n    \"transaction\": {\n        \"id\": 1,\n        \"external_id\": 1,\n        \"payment_date\": \"2014-09-24T20:38:16+04:00\",\n        \"payment_method\": 1,\n        \"payment_method_name\": \"PayPal\"\n        \"payment_method_order_id\": 1234567890123456789,\n        \"dry_run\": 1,\n        \"agreement\": 1\n    },\n    \"payment_details\": {\n        \"payment\": {\n            \"currency\": \"USD\",\n            \"amount\": 230\n        },\n        \"vat\": {\n            \"currency\": \"USD\",\n            \"amount\": 0,\n            \"percent\": 20\n        },\n        \"sales_tax\": {\n            \"currency\": \"USD\",\n            \"amount\": 0,\n            \"percent\": 0\n        },\n        \"direct_wht\": {\n            \"currency\": \"USD\",\n            \"amount\": 0,\n            \"percent\": 0\n        },\n        \"payout_currency_rate\": \"1\",\n        \"country_wht\": {\n            \"currency\": \"USD\",\n            \"amount\": 2,\n            \"percent\": 10\n        },\n        \"user_acquisition_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": 2,\n            \"percent\": 1\n        },\n        \"payout\": {\n            \"currency\": \"USD\",\n            \"amount\": 200\n        },\n        \"xsolla_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": 10\n        },\n        \"payment_method_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": 20\n        },\n        \"repatriation_commission\": {\n            \"currency\": \"USD\",\n            \"amount\": 10\n        }\n    },\n    \"custom_parameters\": {\n        \"parameter1\": \"value1\",\n        \"parameter2\": \"value2\"\n    }\n}"
          }
        ]
      }
    },
    "payment-declined": {
      "post": {
        "description": "決済システムによってトランザクションが拒否された場合、エクソーラは設定されたウェブフックURLに、`ps_declined`タイプのウェブフックでトランザクショ\nンの詳細を送信します。このウェブフックは認証または支払い処理の段階で送信されます。この場合、[payment](/ja/webhooks/operation/payment/)\\ [order_paid](/ja/webhooks/operation/successful-order-payment/)ウェブフックは送信されません。\n\n決済システムで支払いが拒否される一般的な理由：\n\n* カードの認証が失敗した（例：技術的なエラーや銀行からの応答がないため、決済システムが認証プロセスを完了できなかった場合）または認証が拒否された（例：銀行からの応\n  答があったものの、残高不足やカード情報の誤りなどにより取引を拒否した場合）。\n* 3-Dセキュア認証が失敗した、完了しなかった、またはユーザーの確認がタイムアウトした場合。\n* 決済処理業者または加盟店契約銀行が一時的に利用不能である、あるいは口座閉鎖や無効なカード番号といった不可逆的なエラーによる確定的な拒否（ハードディクライン）が返\n  された場合。根本的な問題に対処せずに再試行しても、取引の成功にはつながりません。\n\n以下と混同しないでください：\n\n* 不正決済防止による拒否は、[afs_reject](https://developers.xsolla.com/ja/webhooks/operation/afs-rejected-transaction/)ウェブフックで報告されます。\n* 成功した支払い後の全額返金および一部返金（[refund](https://developers.xsolla.com/ja/webhooks/operation/refund/)および[partial_refund](https://developers.xsolla.com/ja/webhooks/operation/partial-refund/)ウェブフックで報告されます）。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p><code>ps_declined</code>ウェブフックを受け取るには、担当のカスタマーサクセスマネージャーにご連絡いただくか、<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>までメールでお問い合わせください。</p>\n</div>\n",
        "operationId": "payment-declined",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "refund_details": {
                    "description": "返金の詳細（オブジェクト）。",
                    "properties": {
                      "author": {
                        "description": "返金イニシエーター。フィールド値は、次の表に従って渡されます：\n\n<table>\n    <thead>\n    <tr>\n        <th>返金イニシエーター</th>\n        <th>フィールド値</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>ゲーム（API経由）。</td>\n        <td>API</td>\n    </tr>\n    <tr>\n        <td>パブリッシャーアカウントのユーザー（自動返金）。</td>\n        <td>ユーザーのメールアドレス</td>\n    </tr>\n    <tr>\n        <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    <tr>\n        <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    </tbody>\n</table>\n",
                        "type": "string"
                      },
                      "code": {
                        "description": "コードID。\n\n<table>\n    <thead>\n    <tr>\n        <th>コード</th>\n        <th>理由</th>\n        <th>説明</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>1</td>\n        <td>Cancellation by the user request / the game request</td>\n        <td>パブリッシャーアカウントからキャンセルが開始されました。</td>\n    </tr>\n    <tr>\n        <td>2</td>\n        <td>Chargeback</td>\n        <td>トランザクションのチャージバックが要求されました。</td>\n    </tr>\n    <tr>\n        <td>3</td>\n        <td>Integration error</td>\n        <td>エクソラとゲームの統合に関する問題<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>4</td>\n        <td>Potential fraud</td>\n        <td>不正の疑いがあります。<br /><b>推奨事項: ユーザーをブロックリストに追加してください。</b></td>\n    </tr>\n    <tr>\n        <td>5</td>\n        <td>Test payment</td>\n        <td>テストトランザクション後にキャンセル処理が実行されます。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>6</td>\n        <td>User invoice expired</td>\n        <td>請求書の期限が切れました（後払いモデルで使用）。</td>\n    </tr>\n    <tr>\n        <td>7</td>\n        <td>Fraud notification from PS</td>\n        <td>決済システムで支払いが拒否されました。決済システムで不正の可能性が検出されました。<br /><b>推奨事項：ユーザーをブロックリストに追加してください。</b></td>\n    </tr>\n    <tr>\n        <td>8</td>\n        <td>Cancellation by the PS request</td>\n        <td>決済システムによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>9</td>\n        <td>Cancellation by the user request</td>\n        <td>ユーザは何らかの理由でゲームや購入に満足していませんでした。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>10</td>\n        <td>Cancellation by the game request</td>\n        <td>ゲームによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>11</td>\n        <td>Account holder called to report fraud</td>\n        <td>アカウント所有者がトランザクションを行わなかったと述べています。</td>\n    </tr>\n    <tr>\n        <td>12</td>\n        <td>Friendly fraud</td>\n        <td>フレンドリー詐欺が報告されました。</td>\n    </tr>\n    <tr>\n        <td>13</td>\n        <td>Duplicate</td>\n        <td>同じインボイスのトランザクションが重複しています。</td>\n    </tr>\n    </tbody>\n</table>\n",
                        "type": "integer"
                      },
                      "reason": {
                        "description": "返金の理由。",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "transaction": {
                    "description": "トランザクションの詳細（オブジェクト）。",
                    "properties": {
                      "dry_run": {
                        "description": "テストトランザクション。パラメータは、テストトランザクションの場合は1つの値を持ち、もしくはトランザクションが実際の場合は送信されません。",
                        "type": "integer"
                      },
                      "external_id": {
                        "description": "トランザクション外部ID。",
                        "type": "string"
                      },
                      "id": {
                        "description": "トランザクションID。",
                        "type": "integer"
                      },
                      "payment_method": {
                        "description": "決済方法のID。",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "ip": {
                        "$ref": "#/components/schemas/user.ip"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "transaction"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400-payment"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "支払いが拒否されました",
        "tags": [
          "payments"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'Accept: application/json' \\\n-H 'Content-Type: application/json' \\\n-H 'Authorization: Signature 80543ba63e1e50cf05f15150fe75e7245da9a898' \\\n-d '{\n  \"notification_type\": \"ps_declined\",\n  \"settings\": {\n    \"project_id\": \"18404\",\n    \"merchant_id\": \"2340\"\n  },\n  \"user\": {\n    \"ip\": \"127.0.0.1\",\n    \"email\": \"email@example.com\",\n    \"id\": \"1234567\",\n    \"country\": \"US\"\n  },\n  \"transaction\": {\n    \"id\": \"1\",\n    \"dry_run\": \"1\",\n    \"payment_method\": \"1\"\n  },\n  \"refund_details\": {\n    \"author\": \"support@xsolla.com\",\n    \"code\": \"8\",\n    \"reason\": \"Cancellation by the PS request\",\n    \"reason_detail\": \"Insufficient funds\"\n  }\n}'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n  'notification_type' => 'ps_declined',\n  'settings' => array(\n    'project_id' => '18404',\n    'merchant_id' => '2340',\n  ),\n  'user' => array(\n    'ip' => '127.0.0.1',\n    'email' => 'email@example.com',\n    'id' => '1234567',\n    'country' => 'US',\n  ),\n  'transaction' => array(\n    'id' => '1',\n    'dry_run' => '1',\n    'payment_method' => '1',\n  ),\n  'refund_details' => array(\n    'author' => 'support@xsolla.com',\n    'code' => '8',\n    'reason' => 'Cancellation by the PS request',\n    'reason_detail' => 'Insufficient funds',\n  ),\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-type: application/json\ncontent-length: 338\nauthorization: Signature 80543ba63e1e50cf05f15150fe75e7245da9a898\n\n{\n  \"notification_type\": \"ps_declined\",\n  \"settings\": {\n    \"project_id\": \"18404\",\n    \"merchant_id\": \"2340\"\n  },\n  \"user\": {\n    \"ip\": \"127.0.0.1\",\n    \"email\": \"email@example.com\",\n    \"id\": \"1234567\",\n    \"country\": \"US\"\n  },\n  \"transaction\": {\n    \"id\": \"1\",\n    \"dry_run\": \"1\",\n    \"payment_method\": \"1\"\n  },\n  \"refund_details\": {\n    \"author\": \"support@xsolla.com\",\n    \"code\": \"8\",\n    \"reason\": \"Cancellation by the PS request\",\n    \"reason_detail\": \"Insufficient funds\"\n  }\n}"
          }
        ]
      }
    },
    "personalized-partner-catalog": {
      "post": {
        "description": "エクソラは、ユーザーがストアと対話するときに、ユーザーとプロジェクトのパラメータを含む \n<code>partner_side_catalog</code>ウェブフックをウェブフックURLに送信します。\n\n応答として、ユーザが利用可能な<code>item_id</code>またはアイテムSKUのリストを返します。この場合、特定のユーザーが特定の商品を指定回数購入\nできるという情報を含めることも可能です。この機能により、ユーザーがカートに追加して購入できる商品の数やタイプを制御することができます。\n\n<code>partner_side_catalog</code>ウェブフックの処理時間は3秒未満にすることをお勧めします。\n",
        "operationId": "personalized-partner-catalog",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "currency": {
                        "$ref": "#/components/schemas/currency"
                      },
                      "locale": {
                        "$ref": "#/components/schemas/locale"
                      },
                      "user_id": {
                        "description": "ユーザーID。ユーザーが認証されていない場合は、値`null`が送信されます。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "user_id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "user"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "date_from": "2024-08-11T23:59:59+08:00",
                    "date_until": "2024-08-12T23:59:59+08:00",
                    "quantity": 0,
                    "sku": "com.xsolla.boots_1"
                  },
                  {
                    "date_from": "2024-08-11T23:59:59+08:00",
                    "date_until": "2024-08-12T23:59:59+08:00",
                    "quantity": null,
                    "sku": "com.xsolla.sword_1"
                  },
                  {
                    "quantity": 1,
                    "sku": "com.xsolla.helmet_1"
                  },
                  {
                    "content": [
                      {
                        "description": "Description of custom content item",
                        "image_url": "https://example.com/content_image.png",
                        "name": "Custom content item",
                        "quantity": 5
                      }
                    ],
                    "description": "Custom description",
                    "image_url": "https://example.com/image.png",
                    "json_attributes": {
                      "purchased": 0,
                      "type": "lootbox"
                    },
                    "name": "Custom name",
                    "quantity": null,
                    "sku": "com.xsolla.custom_item_1"
                  },
                  {
                    "available": 7,
                    "sku": "com.xsolla.limited_item_1",
                    "total": 10
                  }
                ],
                "schema": {
                  "items": {
                    "anyOf": [
                      {
                        "oneOf": [
                          {
                            "properties": {
                              "quantity": {
                                "$ref": "#/components/schemas/quantity"
                              }
                            },
                            "title": "quantity"
                          },
                          {
                            "properties": {
                              "available": {
                                "$ref": "#/components/schemas/available"
                              },
                              "total": {
                                "$ref": "#/components/schemas/total"
                              }
                            },
                            "title": "available"
                          }
                        ],
                        "properties": {
                          "content": {
                            "$ref": "#/components/schemas/bundle_content"
                          },
                          "date_from": {
                            "$ref": "#/components/schemas/date_from"
                          },
                          "date_until": {
                            "$ref": "#/components/schemas/date_until"
                          },
                          "description": {
                            "$ref": "#/components/schemas/description"
                          },
                          "image_url": {
                            "$ref": "#/components/schemas/image_url"
                          },
                          "json_attributes": {
                            "$ref": "#/components/schemas/json_attributes"
                          },
                          "name": {
                            "$ref": "#/components/schemas/name"
                          },
                          "sku": {
                            "$ref": "#/components/schemas/sku"
                          }
                        },
                        "required": [
                          "sku"
                        ],
                        "title": "sku"
                      },
                      {
                        "oneOf": [
                          {
                            "properties": {
                              "quantity": {
                                "$ref": "#/components/schemas/quantity"
                              }
                            },
                            "title": "quantity"
                          },
                          {
                            "properties": {
                              "available": {
                                "$ref": "#/components/schemas/available"
                              },
                              "total": {
                                "$ref": "#/components/schemas/total"
                              }
                            },
                            "title": "available"
                          }
                        ],
                        "properties": {
                          "content": {
                            "$ref": "#/components/schemas/bundle_content"
                          },
                          "date_from": {
                            "$ref": "#/components/schemas/date_from"
                          },
                          "date_until": {
                            "$ref": "#/components/schemas/date_until"
                          },
                          "description": {
                            "$ref": "#/components/schemas/description"
                          },
                          "image_url": {
                            "$ref": "#/components/schemas/image_url"
                          },
                          "item_id": {
                            "$ref": "#/components/schemas/item_id"
                          },
                          "json_attributes": {
                            "$ref": "#/components/schemas/json_attributes"
                          },
                          "name": {
                            "$ref": "#/components/schemas/name"
                          }
                        },
                        "required": [
                          "item_id"
                        ],
                        "title": "item_id"
                      }
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "ユーザーが購入できるアイテムのリストと、特定のユーザーが特定のアイテムを購入できる回数を返します。"
          },
          "404": {
            "description": "ユーザーが見つかりません。"
          }
        },
        "summary": "パートナー側でのカタログ個人用設定",
        "tags": [
          "personalization"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature d90d319f05df7b0f86d2485f48e7079f0f752523' \\\n-d '{\n        \"notification_type\": \"partner_side_catalog\",\n        \"user\": {\n            \"user_id\": \"12345\",\n            \"country\": \"US\"\n        }\n    }'"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost:           your.hostname\naccept:         application/json\ncontent-type:   application/json\nauthorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523\n\n{\n    \"notification_type\": \"partner_side_catalog\",\n    \"user\": {\n      \"user_id\": \"12345\",\n      \"country\": \"US\"\n    }\n}"
          }
        ]
      }
    },
    "refund": {
      "post": {
        "description": "支払いがキャンセルされると、エクソーラはキャンセルされた取引の詳細を、`refund`タイプのウェブフックとしてウェブフックURLに送信します。\n\nウェブフックの再試行メカニズムは、誰が返金を開始したかによって異なります：\n* 返金がお客様側で開始された場合、ウェブフックは再送されません。ウェブフックへの応答に関係なく、支払いはユーザーに返金されます。\n* 返金がサードパーティ（例：決済システム、またはエクソーラカスタマーサポートチームなど）によって開始され、かつウェブフックへの応答として`5xx`ステータスコード\n  が返された場合、ウェブフックは間隔を空けながら再送されます。最大再試行回数は、最初の試行から48時間以内に12回です。\n\n返金プロセスに関する詳細な情報は、こちらの[説明](/ja/doc/pay-station/features/refund/).をご参照ください。\n\n<div class=\"notice\">\n<p><strong>注意</strong></p>\n<p>以下の条件がすべて満たされている場合でも、支払いはユーザーに返金されます：<ul><li>返金はエクソーラによって開始されました。</li><li>ウェーブフックに対する応答として、<code>4xx</code>ステータスコードが返された、またはすべての再試行後に応答がなかった、あるいは<code>5xx</code>ステータスコードが返された場合。</li></ul></p>\n</div>\n\n<a \nhref=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/store\">パブリッシャーアカウン\nト</a>でウェブフックURLを保存すると、ウェブフックで追加情報を受信するように設定することもできます。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、プロジェクトで<a href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments\">設定 &gt; ウェブフック &gt; テスト &gt; 決済ソリューション &gt; 詳細設定</a>セクションでトグルを見つけます。</p>\n</div>\n\n<table>\n<thead>\n    <tr>\n        <th>トグル</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>保存された決済方法による取引に関する情報を表示する</td>\n        <td><p>情報は、ウェブフックの以下のカスタムパラメータに渡されます：</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — 保存された決済方法は使用されませんでした</li><li><code>1</code> — 決済方法は現在の支払い時に保存されました</li><li><code>2</code> — 保存された決済方法は使用されませんでした</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — 一回払い</li><li><code>2</code> — 定期支払い</li></ul></li></ul></td>\n    </tr>\n</tbody>\n</table>\n\n返金コード：\n\n<table>\n    <thead>\n    <tr>\n        <th>コード</th>\n        <th>理由</th>\n        <th>説明</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>1</td>\n        <td>Cancellation by the user request / the game request</td>\n        <td>パブリッシャーアカウントからキャンセルが開始されました。</td>\n    </tr>\n    <tr>\n        <td>2</td>\n        <td>Chargeback</td>\n        <td>トランザクションのチャージバックが要求されました。</td>\n    </tr>\n    <tr>\n        <td>3</td>\n        <td>Integration error</td>\n        <td>エクソラとゲームの統合に関する問題<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>4</td>\n        <td>Potential fraud</td>\n        <td>不正の疑いがあります。<br /><b>推奨事項: ユーザーをブロックリストに追加してください。</b></td>\n    </tr>\n    <tr>\n        <td>5</td>\n        <td>Test payment</td>\n        <td>テストトランザクション後にキャンセル処理が実行されます。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>6</td>\n        <td>User invoice expired</td>\n        <td>請求書の期限が切れました（後払いモデルで使用）。</td>\n    </tr>\n    <tr>\n        <td>7</td>\n        <td>Fraud notification from PS</td>\n        <td>決済システムで支払いが拒否されました。決済システムで不正の可能性が検出されました。<br /><b>推奨事項：ユーザーをブロックリストに追加してください。</b></td>\n    </tr>\n    <tr>\n        <td>8</td>\n        <td>Cancellation by the PS request</td>\n        <td>決済システムによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>9</td>\n        <td>Cancellation by the user request</td>\n        <td>ユーザは何らかの理由でゲームや購入に満足していませんでした。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>10</td>\n        <td>Cancellation by the game request</td>\n        <td>ゲームによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>\n    </tr>\n    <tr>\n        <td>11</td>\n        <td>Account holder called to report fraud</td>\n        <td>アカウント所有者がトランザクションを行わなかったと述べています。</td>\n    </tr>\n    <tr>\n        <td>12</td>\n        <td>Friendly fraud</td>\n        <td>フレンドリー詐欺が報告されました。</td>\n    </tr>\n    <tr>\n        <td>13</td>\n        <td>Duplicate</td>\n        <td>同じインボイスのトランザクションが重複しています。</td>\n    </tr>\n    </tbody>\n</table>\n",
        "operationId": "refund",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "custom_parameters": {
                    "description": "カスタムパラメータ。",
                    "type": "object"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "payment_details": {
                    "description": "支払明細（オブジェクト）。",
                    "properties": {
                      "country_wht": {
                        "$ref": "#/components/schemas/country_whc"
                      },
                      "direct_wht": {
                        "description": "直接源泉徴収税。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "直接源泉徴収税率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "payment": {
                        "description": "ユーザー（オブジェクト）によって支払われた金額。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payment_method_fee": {
                        "description": "決済システム料金。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payment_method_sum": {
                        "description": "決済システムから振り込まれた金額。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payout": {
                        "description": "配当の詳細（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "payout_currency_rate": {
                        "description": "決済と配当間の為替レート。",
                        "type": "string"
                      },
                      "repatriation_commission": {
                        "description": "本国送金費用のデータ付きオブジェクト。サードパーティがエクソラに課します。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "sales_tax": {
                        "description": "売上税（オブジェクト；米国とカナダのみ）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "消費税率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "user_acquisition_fee": {
                        "description": "アフィリエイトネットワークやインフルエンサー経由での購入から差し引かれた顧客獲得料の総額（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "顧客獲得料率（%）。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "vat": {
                        "description": "VATの詳細（オブジェクト；EUのみ）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "percent": {
                            "description": "消費税率。",
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "xsolla_balance_sum": {
                        "description": "エクソラの残高から振り込まれた金額。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "xsolla_fee": {
                        "description": "エクソラ料金（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "purchase": {
                    "description": "購入内容（オブジェクト）。",
                    "properties": {
                      "checkout": {
                        "description": "チェックアウトの詳細（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "description": "購入金額。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      },
                      "subscription": {
                        "description": "サブスクリプションの詳細（オブジェクト）。",
                        "properties": {
                          "amount": {
                            "$ref": "#/components/schemas/amount-float"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          },
                          "date_create": {
                            "$ref": "#/components/schemas/subscription.date_create"
                          },
                          "plan_id": {
                            "$ref": "#/components/schemas/subscription.plan_id"
                          },
                          "subscription_id": {
                            "$ref": "#/components/schemas/subscription.subscription_id"
                          },
                          "tags": {
                            "$ref": "#/components/schemas/subscription.tags"
                          }
                        },
                        "type": "object"
                      },
                      "total": {
                        "description": "購入（オブジェクト）の合計価格。",
                        "properties": {
                          "amount": {
                            "description": "支払額合計。",
                            "format": "float",
                            "type": "number"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/currency"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "total"
                    ],
                    "type": "object"
                  },
                  "refund_details": {
                    "description": "返金の詳細（オブジェクト）。",
                    "properties": {
                      "author": {
                        "description": "返金イニシエーター。フィールド値は、次の表に従って渡されます：\n\n<table>\n    <thead>\n    <tr>\n        <th>返金イニシエーター</th>\n        <th>フィールド値</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td>ゲーム（API経由）。</td>\n        <td>API</td>\n    </tr>\n    <tr>\n        <td>パブリッシャーアカウントのユーザー（自動返金）。</td>\n        <td>ユーザーのメールアドレス</td>\n    </tr>\n    <tr>\n        <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    <tr>\n        <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>\n        <td>support@xsolla.com</td>\n    </tr>\n    </tbody>\n</table>\n",
                        "type": "string"
                      },
                      "code": {
                        "description": "コードID。",
                        "type": "integer"
                      },
                      "reason": {
                        "description": "返金の理由。",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "transaction": {
                    "description": "トランザクションの詳細（オブジェクト）。",
                    "properties": {
                      "agreement": {
                        "description": "契約ID",
                        "type": "integer"
                      },
                      "dry_run": {
                        "description": "テストトランザクション。パラメータは、テストトランザクションの場合は1つの値を持ち、もしくはトランザクションが実際の場合は送信されません。",
                        "type": "integer"
                      },
                      "external_id": {
                        "description": "トランザクション外部ID。",
                        "type": "string"
                      },
                      "id": {
                        "description": "トランザクションID。",
                        "type": "integer"
                      },
                      "payment_method_order_id": {
                        "description": "決済システムの決済ID。",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "ip": {
                        "$ref": "#/components/schemas/user.ip"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      },
                      "phone": {
                        "$ref": "#/components/schemas/user.phone"
                      },
                      "zip": {
                        "$ref": "#/components/schemas/user.zip"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "transaction",
                  "payment_details"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "払い戻し",
        "tags": [
          "payments"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-d '{\n        \"notification_type\": \"refund\",\n        \"settings\": {\n          \"project_id\": 18404,\n          \"merchant_id\": 2340\n        },\n        \"purchase\": {\n            \"subscription\": {\n                \"plan_id\": \"b5dac9c8\",\n                \"subscription_id\": \"10\",\n                \"date_create\": \"2014-09-22T19:25:25+04:00\",\n                \"currency\": \"USD\",\n                \"amount\": 9.99\n            },\n            \"checkout\": {\n                \"currency\": \"USD\",\n                \"amount\": 50\n            },\n            \"total\":{\n                \"currency\": \"USD\",\n                \"amount\": 200\n            }\n        },\n        \"user\": {\n            \"ip\": \"127.0.0.1\",\n            \"phone\": \"18777976552\",\n            \"email\": \"email@example.com\",\n            \"id\": \"1234567\",\n            \"name\": \"John Smith\",\n            \"country\": \"US\"\n        },\n        \"transaction\": {\n            \"id\": 1,\n            \"external_id\": 1,\n            \"dry_run\": 1,\n            \"agreement\": 1\n        },\n        \"refund_details\": {\n            \"code\": 4,\n            \"reason\": \"Potential fraud\"\n        },\n        \"payment_details\": {\n            \"sales_tax\": {\n                \"currency\": \"USD\",\n                \"amount\": 0\n            },\n            \"direct_wht\": {\n                \"currency\": \"USD\",\n                \"amount\": 0.70\n            },\n            \"xsolla_fee\": {\n                \"currency\": \"USD\",\n                \"amount\": \"10\"\n            },\n            \"payout\": {\n                \"currency\": \"USD\",\n                \"amount\": \"200\"\n            },\n            \"payment_method_fee\": {\n                \"currency\": \"USD\",\n                \"amount\": \"20\"\n            },\n            \"payment\": {\n                \"currency\": \"USD\",\n                \"amount\": \"230\"\n            },\n            \"repatriation_commission\": {\n                \"currency\": \"USD\",\n                \"amount\": 10\n            }\n        }\n    }\n}'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'refund',\n    'settings' => array(\n      'project_id' => 18404,\n      'merchant_id' => 2340\n    ),\n    'purchase' => array(\n        'total' => array(\n            'currency' => 'USD',\n            'amount' => 9.99\n        )\n    ),\n    'user' => array(\n        'ip' => '127.0.0.1',\n        'phone' => '18777976552',\n        'email' => 'email@example.com',\n        'id' => '1234567',\n        'country' => 'US'\n    ),\n    'transaction' => array(\n        'id' => 87654321,\n        'payment_date' => '2014-09-23T19:25:25+04:00',\n        'payment_method' => 1380,\n        'dry_run' => 1\n    ),\n    'refund_details' => array(\n            'code' => 4,\n            'reason' => 'Potential fraud'\n    ),\n    'payment_details' => array(\n        'payment' => array(\n            'currency' => 'USD',\n            'amount' => 9.99\n        ),\n        'vat' => array(\n            'currency' => 'USD',\n            'amount' => 0\n        ),\n        'sales_tax' => array(\n            'currency' => 'USD',\n            'amount' => 0\n        ),\n        'direct_wht' => array(\n            'currency' => 'USD',\n            'amount' => 70\n        ),\n        'payout_currency_rate' => 1,\n        'payout' => array(\n            'currency' => 'USD',\n            'amount' => 9.49\n        ),\n        'xsolla_fee' => array(\n            'currency' => 'USD',\n            'amount' => 0.19\n        ),\n        'payment_method_fee' => array(\n            'currency' => 'USD',\n            'amount' => 0.31\n        ),\n        'repatriation_commission' => array(\n            'currency' => 'USD',\n            'amount' => 0.2\n        )\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-type: application/json\ncontent-length: 1220\nauthorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7\n\n{\n    \"notification_type\": \"refund\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"purchase\": {\n        \"subscription\": {\n            \"plan_id\": \"b5dac9c8\",\n            \"subscription_id\": \"10\",\n            \"date_create\": \"2014-09-22T19:25:25+04:00\",\n            \"currency\": \"USD\",\n            \"amount\": 9.99\n        },\n        \"checkout\": {\n            \"currency\": \"USD\",\n            \"amount\": 50\n        },\n        \"total\": {\n            \"currency\": \"USD\",\n            \"amount\": 200\n        }\n    },\n    \"user\": {\n        \"ip\": \"127.0.0.1\",\n        \"phone\": \"18777976552\",\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\",\n        \"country\": \"US\"\n    },\n    \"transaction\": {\n        \"id\": 1,\n        \"external_id\": 1,\n        \"dry_run\": 1,\n        \"agreement\": 1\n    },\n    \"refund_details\": {\n        \"code\": 4,\n        \"reason\": \"Potential fraud\"\n    },\n    \"payment_details\": {\n        \"sales_tax\": {\n            \"currency\": \"USD\",\n            \"amount\": 0\n        },\n        \"direct_wht\": {\n            \"currency\": \"USD\",\n            \"amount\": 0.70\n        },\n        \"xsolla_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": \"10\"\n        },\n        \"payout\": {\n            \"currency\": \"USD\",\n            \"amount\": \"200\"\n        },\n        \"payment_method_fee\": {\n            \"currency\": \"USD\",\n            \"amount\": \"20\"\n        },\n        \"payment\": {\n            \"currency\": \"USD\",\n            \"amount\": \"230\"\n        },\n        \"repatriation_commission\": {\n            \"currency\": \"USD\",\n            \"amount\": 10\n        }\n    }\n}"
          }
        ]
      }
    },
    "remove-payment-account": {
      "post": {
        "description": "ユーザーが保存アカウントから決済アカウントを削除すると、エクソーラは `payment_account_remove`タイプのウェブフックをウェブフックURLに送信します。このウェブフックを受信するには、カスタマーサクセスマネージャーにご連絡いただくか、<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>まで電子メールでお問い合わせください。",
        "operationId": "remove-payment-account",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "payment_account": {
                    "description": "決済アカウントの詳細（オブジェクト）。",
                    "properties": {
                      "id": {
                        "$ref": "#/components/schemas/payment_account.id"
                      },
                      "name": {
                        "$ref": "#/components/schemas/payment_account.name"
                      },
                      "payment_method": {
                        "$ref": "#/components/schemas/payment_account.payment_method"
                      },
                      "type": {
                        "$ref": "#/components/schemas/payment_account.type"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "決済アカウントを削除する",
        "tags": [
          "payments"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \\\n-d '{\n    \"notification_type\": \"payment_account_remove\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\"\n    },\n    \"payment_account\": {\n        \"id\": \"12345678\",\n        \"name\": \"email@example.com\",\n        \"payment_method\": \"24\",\n        \"type\": \"paypal\"\n    }\n}'"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost:           your.hostname\naccept:         application/json\ncontent-length: 258\ncontent-type:   application/json\nauthorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523\n\n\n{\n    \"notification_type\": \"payment_account_remove\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\"\n    },\n    \"payment_account\": {\n        \"id\": \"12345678\",\n        \"name\": \"email@example.com\",\n        \"payment_method\": \"24\",\n        \"type\": \"paypal\"\n    }\n}"
          }
        ]
      }
    },
    "successful-order-payment": {
      "post": {
        "description": "エクソーラはユーザーが注文の支払いに成功すると、指定したURLに<code>order_paid</code>ウェブフックを送信します。\n\n<code>order_paid</code>ウェブフックには、購入したアイテム、支払いデータ、取引の詳細に関する情報が含まれています。\n\n支払いが成功しなかった場合、<code>order_paid</code>ウェブフックは送信されません：\n* 決済フォームは開かれましたが、ユーザーは注文の支払いをしていません\n* 決済フォームが開かれましたが、支払い中にエラーが発生しました\n\n<code>order_paid</code>ウェブフックの処理時間は3秒未満にすることをお勧めします。\n\n<div class=\"notice\">\n<p><strong>お知らせ</strong></p>\n<p>ウェブフックで送信されるフィールドのセットは、次の設定によって異なります：<ul><li>パブリッシャーアカウントの「<a href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/store\">プロジェクト設定&gt;ウェブフック&gt;詳細設定</a>」セクションで構成されたウェブフック</li><li>エクソーラ側で構成されたウェブフック</li></ul></p><p>ご不明な点がございましたら、カスタマーサクセスマネージャーに連絡して、または<a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>までお問い合わせください。</p>\n</div>\n\n予想される回答は、「<b>応答</b>」セクションに記載されています。他の応答コードを使用できます。応答コードと自動返金機能の接続に応じて、エクソーラ側のウェブ\nフック処理ロジックは以下のようになります：\n\n<table>\n    <thead>\n    <tr>\n        <th>応答コード</th>\n        <th>自動返金は無効になっています（デフォルト）</th>\n        <th>自動返金が有効になっています</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td><code>400</code>、<code>401</code>、<code>402</code>、<code>403</code>、<code>404</code>、<code>409</code>、<code>422</code>、<code>415</code></td>\n        <td>操作なし</td>\n        <td>ユーザーへの自動返金</td>\n    </tr>\n    <tr>\n        <td><code>200</code>、<code>201</code>、<code>204</code></td>\n        <td>操作なし</td>\n        <td>操作なし</td>\n    </tr>\n    <tr>\n        <td>別のコードまたはウェブフックへの応答なし</td>\n        <td>指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。</td>\n        <td>指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。すべてのウェブフックが送信されても正常な応答が受信されない場合、ユーザーに自動返金が発行されます。</td>\n    </tr>\n    </tbody>\n</table>\n\n自動返金機能を接続するには、カスタマーサクセスマネージャーにお問い合わせいただくか、csm@xsolla.comまで電子メールをお送りください。\n",
        "operationId": "successful-order-payment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "billing": {
                    "description": "取引と支払いの詳細。",
                    "properties": {
                      "notification_type": {
                        "$ref": "#/components/schemas/notification_type"
                      },
                      "payment_details": {
                        "description": "支払明細（オブジェクト）。",
                        "properties": {
                          "country_wht": {
                            "$ref": "#/components/schemas/country_whc"
                          },
                          "direct_wht": {
                            "description": "直接源泉徴収税。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "percent": {
                                "description": "直接源泉徴収税率。",
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "payment": {
                            "description": "ユーザー（オブジェクト）によって支払われた金額。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "payment_method_fee": {
                            "description": "決済システム料金。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "payment_method_sum": {
                            "description": "決済システムから振り込まれた金額。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "payout": {
                            "description": "配当の詳細（オブジェクト）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "payout_currency_rate": {
                            "description": "決済と配当間の為替レート。",
                            "type": "string"
                          },
                          "repatriation_commission": {
                            "description": "第三者によってエクソーラに課された本国送還費用に関するデータを含むオブジェクト。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "sales_tax": {
                            "description": "売上税（オブジェクト；米国とカナダのみ）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "percent": {
                                "description": "消費税率。",
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "user_acquisition_fee": {
                            "description": "アフィリエイトネットワークやインフルエンサー経由での購入から差し引かれた顧客獲得料の総額（オブジェクト）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "percent": {
                                "description": "顧客獲得料率（%）。",
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "vat": {
                            "description": "VATの詳細（オブジェクト；EUのみ）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "percent": {
                                "description": "消費税率。",
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "xsolla_balance_sum": {
                            "description": "エクソーラ残高から引き落とされる金額。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          },
                          "xsolla_fee": {
                            "description": "エクソーラ料金（オブジェクト）。",
                            "properties": {
                              "amount": {
                                "description": "金額。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "purchase": {
                        "description": "購入内容（オブジェクト）。",
                        "properties": {
                          "coupon": {
                            "description": "クーポンの詳細（オブジェクト；サブスクリプションの作成時にクーポンが使用された場合）。",
                            "properties": {
                              "campaign_code": {
                                "description": "キャンペーンコード。",
                                "type": "string"
                              },
                              "coupon_code": {
                                "description": "クーポンコードです。",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "gift": {
                            "description": "贈り物の詳細（オブジェクト）。",
                            "properties": {
                              "giver_id": {
                                "description": "贈り主のID。",
                                "type": "string"
                              },
                              "hide_giver_from_receiver": {
                                "description": "贈り主の情報を受取り側に公開するかどうか。",
                                "type": "string"
                              },
                              "message": {
                                "description": "贈り主からのメッセージ。",
                                "type": "string"
                              },
                              "receiver_email": {
                                "description": "贈り物を受け取る人のメールアドレス。",
                                "type": "string"
                              },
                              "receiver_id": {
                                "description": "贈り物の受取人のID。",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "promotions": {
                            "description": "このトランザクションに適用されるプロモーション。",
                            "items": {
                              "properties": {
                                "id": {
                                  "description": "プロモーションID。",
                                  "type": "integer"
                                },
                                "technical_name": {
                                  "description": "プロモーションの名称。",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          },
                          "subscription": {
                            "description": "サブスクリプションの詳細（オブジェクト）。",
                            "properties": {
                              "amount": {
                                "$ref": "#/components/schemas/amount-float"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              },
                              "date_create": {
                                "$ref": "#/components/schemas/subscription.date_create"
                              },
                              "date_next_charge": {
                                "description": "次の請求日。日付時刻表記は、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式。",
                                "type": "string"
                              },
                              "plan_id": {
                                "$ref": "#/components/schemas/subscription.plan_id"
                              },
                              "product_id": {
                                "description": "製品ID（アクセストークンで送信された場合）。",
                                "type": "string"
                              },
                              "subscription_id": {
                                "$ref": "#/components/schemas/subscription.subscription_id"
                              },
                              "tags": {
                                "$ref": "#/components/schemas/subscription.tags"
                              }
                            },
                            "type": "object"
                          },
                          "total": {
                            "description": "購入（オブジェクト）の合計価格。",
                            "properties": {
                              "amount": {
                                "description": "支払額合計。",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "required": [
                          "total"
                        ],
                        "type": "object"
                      },
                      "settings": {
                        "description": "カスタムプロジェクト設定（オブジェクト）。",
                        "properties": {
                          "merchant_id": {
                            "$ref": "#/components/schemas/settings.merchant_id"
                          },
                          "project_id": {
                            "$ref": "#/components/schemas/settings.project_id"
                          }
                        },
                        "type": "object"
                      },
                      "transaction": {
                        "description": "トランザクションの詳細（オブジェクト）。",
                        "properties": {
                          "agreement": {
                            "description": "契約ID",
                            "type": "integer"
                          },
                          "dry_run": {
                            "description": "テストトランザクション。パラメータは、テストトランザクションの場合は1つの値を持ち、もしくはトランザクションが実際の場合は送信されません。",
                            "type": "integer"
                          },
                          "external_id": {
                            "$ref": "#/components/schemas/external-id"
                          },
                          "id": {
                            "description": "トランザクションID。",
                            "type": "integer"
                          },
                          "payment_date": {
                            "description": "支払日。",
                            "type": "string"
                          },
                          "payment_method": {
                            "description": "決済方法のID。",
                            "type": "integer"
                          },
                          "payment_method_name": {
                            "description": "決済方法の名前。",
                            "type": "string"
                          },
                          "payment_method_order_id": {
                            "description": "決済システムの決済ID。",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "notification_type",
                      "transaction",
                      "payment_details"
                    ],
                    "type": "object"
                  },
                  "custom_parameters": {
                    "description": "追加情報。",
                    "type": "object"
                  },
                  "items": {
                    "description": "ユーザーが購入したアイテムのリスト。\n\n配列に含まれるパラメータのセットは、ウェブフックのバージョンによって異なります。バージョン2は、追加のパラメータが含まれています：`is_free`、`is_b\nonus`および`is_bundle_content`。バージョンを切り替えるには、[ウェブフック設定に関する情報を更新する](/ja/api/igs/operation/update-webhook/)APIコールで`version`パラメータにその番号を渡します。\n",
                    "items": {
                      "oneOf": [
                        {
                          "properties": {
                            "amount": {
                              "description": "数量に基づいたアイテムの総コスト。",
                              "type": "string"
                            },
                            "custom_attributes": {
                              "description": "アイテムの属性と値を含むJSONオブジェクト。",
                              "type": "object"
                            },
                            "is_pre_order": {
                              "description": "「`true`」の場合、アイテムは先行予約です。",
                              "type": "boolean"
                            },
                            "promotions": {
                              "$ref": "#/components/schemas/items.promotions"
                            },
                            "quantity": {
                              "description": "アイテムの数量。",
                              "type": "integer"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/items.sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/items.type"
                            }
                          },
                          "required": [
                            "sku",
                            "type",
                            "quantity",
                            "amount",
                            "promotions",
                            "is_pre_order"
                          ],
                          "title": "バージョン = 1",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "amount": {
                              "description": "数量に基づいたアイテムの総コスト。",
                              "type": "string"
                            },
                            "custom_attributes": {
                              "description": "アイテムの属性と値を含むJSONオブジェクト。",
                              "type": "object"
                            },
                            "is_bonus": {
                              "description": "「`true`」の場合、アイテムはボーナスです。",
                              "type": "boolean"
                            },
                            "is_bundle_content": {
                              "description": "「`true`」の場合、アイテムはバンドルに属しています。",
                              "type": "boolean"
                            },
                            "is_free": {
                              "description": "「`true`」の場合、アイテムは無料です。",
                              "type": "boolean"
                            },
                            "is_pre_order": {
                              "description": "「`true`」の場合、アイテムは先行予約です。",
                              "type": "boolean"
                            },
                            "promotions": {
                              "$ref": "#/components/schemas/items.promotions"
                            },
                            "quantity": {
                              "description": "アイテムの数量。",
                              "type": "integer"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/items.sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/items.type"
                            }
                          },
                          "required": [
                            "sku",
                            "type",
                            "quantity",
                            "amount",
                            "promotions",
                            "is_pre_order",
                            "is_free",
                            "is_bonus",
                            "is_bundle_content"
                          ],
                          "title": "バージョン = 2",
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "order": {
                    "description": "注文に関する情報。",
                    "properties": {
                      "amount": {
                        "description": "選択された通貨に基づくカートの合計金額です。",
                        "type": "string"
                      },
                      "comment": {
                        "description": "注文に対するユーザーのコメント。",
                        "nullable": true,
                        "type": "string"
                      },
                      "coupons": {
                        "description": "適用されたクーポン。クーポンが適用されていない場合は、配列は返されません。",
                        "items": {
                          "properties": {
                            "code": {
                              "description": "適用されたクーポンのコードです。",
                              "type": "string"
                            },
                            "external_id": {
                              "description": "External ID。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "currency": {
                        "description": "注文の通貨。仮想通貨はSKUを使用し、実際通貨は3文字の[ISO4217](https://en.wikipedia.org/wiki/ISO_4217)コードを使用します。",
                        "type": "string"
                      },
                      "currency_type": {
                        "$ref": "#/components/schemas/currency-type"
                      },
                      "id": {
                        "description": "エクソーラ側でのユーザーの注文の一意の識別子。",
                        "type": "integer"
                      },
                      "invoice_id": {
                        "description": "実際通貨による支払い請求書ID。仮想通貨の決済また無料アイテムは、`null`の値を使用します。",
                        "nullable": true,
                        "type": "string"
                      },
                      "mode": {
                        "description": "決済モード。`default`は実際の支払いに、`sandbox`はテスト支払いに使用されます。",
                        "enum": [
                          "default",
                          "sandbox"
                        ],
                        "type": "string"
                      },
                      "platform": {
                        "description": "決済プラットフォーム。`xsolla`値は、エクソーラを介した決済ソリューションに使用されます。その他の決済ソリューションについては、ゲームパブリッシングプラットフォームの名前に対応する値が使用されます。",
                        "enum": [
                          "xsolla",
                          "playstation_network",
                          "xbox_live",
                          "pc_standalone",
                          "nintendo_shop",
                          "google_play",
                          "app_store_ios",
                          "android_standalone",
                          "ios_standalone",
                          "android_other",
                          "ios_other",
                          "pc_other"
                        ],
                        "nullable": true,
                        "type": "string"
                      },
                      "promocodes": {
                        "description": "適用されたプロモーションコード。プロモーションコードが適用されていない場合、配列は返されません。",
                        "items": {
                          "properties": {
                            "code": {
                              "description": "適用されたプロモーションコードのコードです。",
                              "type": "string"
                            },
                            "external_id": {
                              "description": "External ID。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/order.promotions"
                      },
                      "status": {
                        "description": "注文状況。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "mode",
                      "currency_type",
                      "currency",
                      "amount",
                      "status",
                      "platform",
                      "comment",
                      "invoice_id",
                      "promotions"
                    ],
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザー情報。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "description": "ユーザーのメールアドレス。",
                        "type": "string"
                      },
                      "external_id": {
                        "description": "ユーザーID。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "external_id",
                      "email"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "items",
                  "order",
                  "user",
                  "transaction",
                  "payment_details"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "処理が成功したことを示すために戻ります。"
          },
          "400": {
            "description": "提供された情報（たとえば、必須なパラメータの欠落、認証の失敗など。）にエラーが発生した場合に戻ります。"
          }
        },
        "summary": "注文支払い完了（支払いおよび取引の詳細を含む）",
        "tags": [
          "combined-webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \\\n-d '{\n    \"notification_type\": \"order_paid\",\n    \"items\": [\n      {\n        \"sku\": \"com.xsolla.item_1\",\n        \"type\": \"virtual_good\",\n        \"is_pre_order\": false,\n        \"quantity\": 3,\n        \"amount\": \"1000\",\n        \"promotions\": [\n          {\n            \"amount_without_discount\": \"6000\",\n            \"amount_with_discount\": \"5000\",\n            \"sequence\": 1\n          },\n          {\n            \"amount_without_discount\": \"5000\",\n            \"amount_with_discount\": \"4000\",\n            \"sequence\": 2\n          }\n        ],\n        \"custom_attributes\":\n          {\n            \"purchased\": 0,\n            \"attr\": \"value\"\n          }\n      },\n      {\n        \"sku\": \"com.xsolla.item_new_1\",\n        \"type\": \"bundle\",\n        \"is_pre_order\": false,\n        \"quantity\": 1,\n        \"amount\": \"1000\",\n        \"promotions\": []\n      },\n      {\n        \"sku\": \"com.xsolla.gold_1\",\n        \"type\": \"virtual_currency\",\n        \"is_pre_order\": false,\n        \"quantity\": 1500,\n        \"amount\": null,\n        \"promotions\": []\n      }\n    ],\n    \"order\": {\n      \"id\": 1,\n      \"mode\": \"default\",\n      \"currency_type\": \"virtual\",\n      \"currency\": \"sku_currency\",\n      \"amount\": \"2000\",\n      \"status\": \"paid\",\n      \"platform\": \"xsolla\",\n      \"comment\": null,\n      \"invoice_id\": \"1\",\n      \"promotions\": [\n        {\n          \"amount_without_discount\": \"4000\",\n          \"amount_with_discount\": \"2000\",\n          \"sequence\": 1\n        }\n      ],\n      \"promocodes\": [\n        {\n          \"code\": \"promocode_some_code\",\n          \"external_id\": \"promocode_sku\"\n        }\n      ],\n      \"coupons\": [\n        {\n          \"code\": \"WINTER2021\",\n          \"external_id\": \"coupon_sku\"\n        }\n      ]\n    },\n    \"user\": {\n      \"external_id\": \"id_xsolla_login_1\",\n      \"email\": \"gc_user@xsolla.com\",\n      \"country\": \"US\"\n    },\n    \"billing\": {\n      \"notification_type\": \"payment\",\n      \"settings\": {\n        \"project_id\": 18404,\n        \"merchant_id\": 2340\n      },\n      \"purchase\": {\n          \"subscription\": {\n              \"plan_id\": \"b5dac9c8\",\n              \"subscription_id\": \"10\",\n              \"product_id\": \"Demo Product\",\n              \"date_create\": \"2014-09-22T19:25:25+04:00\",\n              \"date_next_charge\": \"2014-10-22T19:25:25+04:00\",\n              \"currency\": \"USD\",\n              \"amount\": 9.99\n          },\n          \"total\": {\n              \"currency\": \"USD\",\n              \"amount\": 200\n          },\n          \"promotions\": [{\n              \"technical_name\": \"Demo Promotion\",\n              \"id\": 853\n          }],\n          \"coupon\": {\n              \"coupon_code\": \"ICvj45S4FUOyy\",\n              \"campaign_code\": \"1507\"\n          }\n        },\n      \"transaction\": {\n          \"id\": 1,\n          \"external_id\": 1,\n          \"payment_date\": \"2014-09-24T20:38:16+04:00\",\n          \"payment_method\": 1,\n          \"payment_method_name\": \"PayPal\",\n          \"payment_method_order_id\": 1234567890123456789,\n          \"dry_run\": 1,\n          \"agreement\": 1\n      },\n      \"payment_details\": {\n          \"payment\": {\n              \"currency\": \"USD\",\n              \"amount\": 230\n          },\n          \"vat\": {\n              \"currency\": \"USD\",\n              \"amount\": 0,\n              \"percent\": 20\n          },\n          \"sales_tax\": {\n              \"currency\": \"USD\",\n              \"amount\": 0,\n              \"percent\": 0\n          },\n          \"direct_wht\": {\n              \"currency\": \"USD\",\n              \"amount\": 0,\n              \"percent\": 0\n          },\n          \"payout_currency_rate\": \"1\",\n          \"payout\": {\n              \"currency\": \"USD\",\n              \"amount\": 200\n          },\n          \"country_wht\": {\n              \"currency\": \"USD\",\n              \"amount\": 2,\n              \"percent\": 10\n          },\n          \"user_acquisition_fee\": {\n              \"currency\": \"USD\",\n              \"amount\": 2,\n              \"percent\": 1\n          },\n          \"xsolla_fee\": {\n              \"currency\": \"USD\",\n              \"amount\": 10\n          },\n          \"payment_method_fee\": {\n              \"currency\": \"USD\",\n              \"amount\": 20\n          },\n          \"repatriation_commission\": {\n              \"currency\": \"USD\",\n              \"amount\": 10\n          }\n      }\n    }\n ,\n  \"custom_parameters\": {\n    \"parameter1\": \"value1\",\n    \"parameter2\": \"value2\"\n  }\n}"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost:           your.hostname\naccept:         application/json\ncontent-length: 258\ncontent-type:   application/json\nauthorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523\n\n\n{\n    \"notification_type\": \"order_paid\",\n    \"items\": [\n      {\n        \"sku\": \"com.xsolla.item_1\",\n        \"type\": \"virtual_good\",\n        \"is_pre_order\": false,\n        \"quantity\": 3,\n        \"amount\": \"1000\",\n        \"promotions\": [\n          {\n            \"amount_without_discount\": \"6000\",\n            \"amount_with_discount\": \"5000\",\n            \"sequence\": 1\n          },\n          {\n            \"amount_without_discount\": \"5000\",\n            \"amount_with_discount\": \"4000\",\n            \"sequence\": 2\n          }\n        ],\n        \"custom_attributes\":\n          {\n            \"purchased\": 0,\n            \"attr\": \"value\"\n          }\n      },\n      {\n        \"sku\": \"com.xsolla.item_new_1\",\n        \"type\": \"bundle\",\n        \"is_pre_order\": false,\n        \"quantity\": 1,\n        \"amount\": \"1000\",\n        \"promotions\": []\n      },\n      {\n        \"sku\": \"com.xsolla.gold_1\",\n        \"type\": \"virtual_currency\",\n        \"is_pre_order\": false,\n        \"quantity\": 1500,\n        \"amount\": null,\n        \"promotions\": []\n      }\n    ],\n    \"order\": {\n      \"id\": 1,\n      \"mode\": \"default\",\n      \"currency_type\": \"virtual\",\n      \"currency\": \"sku_currency\",\n      \"amount\": \"2000\",\n      \"status\": \"paid\",\n      \"platform\": \"xsolla\",\n      \"comment\": null,\n      \"invoice_id\": \"1\",\n      \"promotions\": [\n        {\n          \"amount_without_discount\": \"4000\",\n          \"amount_with_discount\": \"2000\",\n          \"sequence\": 1\n        }\n      ],\n      \"promocodes\": [\n        {\n          \"code\": \"promocode_some_code\",\n          \"external_id\": \"promocode_sku\"\n        }\n      ],\n      \"coupons\": [\n        {\n          \"code\": \"WINTER2021\",\n          \"external_id\": \"coupon_sku\"\n        }\n      ]\n    },\n    \"user\": {\n      \"external_id\": \"id_xsolla_login_1\",\n      \"email\": \"gc_user@xsolla.com\",\n      \"country\": \"US\"\n    },\n    \"billing\": {\n      \"notification_type\": \"payment\",\n      \"settings\": {\n        \"project_id\": 18404,\n        \"merchant_id\": 2340\n      },\n      \"purchase\":{\n          \"subscription\": {\n              \"plan_id\": \"b5dac9c8\",\n              \"subscription_id\": \"10\",\n              \"product_id\": \"Demo Product\",\n              \"date_create\": \"2014-09-22T19:25:25+04:00\",\n              \"date_next_charge\": \"2014-10-22T19:25:25+04:00\",\n              \"currency\": \"USD\",\n              \"amount\": 9.99\n          },\n          \"total\": {\n              \"currency\": \"USD\",\n              \"amount\": 200\n          },\n          \"promotions\": [{\n              \"technical_name\": \"Demo Promotion\",\n              \"id\": 853\n          }],\n          \"coupon\": {\n              \"coupon_code\": \"ICvj45S4FUOyy\",\n              \"campaign_code\": \"1507\"\n          }\n      },\n      \"transaction\": {\n          \"id\": 1,\n          \"external_id\": 1,\n          \"payment_date\": \"2014-09-24T20:38:16+04:00\",\n          \"payment_method\": 1,\n          \"payment_method_name\": \"PayPal\",\n          \"payment_method_order_id\": 1234567890123456789,\n          \"dry_run\": 1,\n          \"agreement\": 1\n      },\n      \"payment_details\": {\n          \"payment\": {\n              \"currency\": \"USD\",\n              \"amount\": 230\n          },\n          \"vat\": {\n              \"currency\": \"USD\",\n              \"amount\": 0,\n              \"percent\": 20\n          },\n          \"sales_tax\": {\n              \"currency\": \"USD\",\n              \"amount\": 0,\n              \"percent\": 0\n          },\n          \"direct_wht\": {\n              \"currency\": \"USD\",\n              \"amount\": 0,\n              \"percent\": 0\n          },\n          \"payout_currency_rate\": \"1\",\n          \"country_wht\": {\n              \"currency\": \"USD\",\n              \"amount\": 2,\n              \"percent\": 10\n          },\n          \"user_acquisition_fee\": {\n              \"currency\": \"USD\",\n              \"amount\": 2,\n              \"percent\": 1\n          },\n          \"payout\": {\n              \"currency\": \"USD\",\n              \"amount\": 200\n          },\n          \"xsolla_fee\": {\n              \"currency\": \"USD\",\n              \"amount\": 10\n          },\n          \"payment_method_fee\": {\n              \"currency\": \"USD\",\n              \"amount\": 20\n          },\n          \"repatriation_commission\": {\n              \"currency\": \"USD\",\n              \"amount\": 10\n          }\n      }\n    },\n    \"custom_parameters\": {\n        \"parameter1\": \"value1\",\n        \"parameter2\": \"value2\"\n        }\n    }"
          }
        ]
      }
    },
    "successful-order-payment-separate": {
      "post": {
        "description": "エクソーラは、次の条件が満たされると、指定されたURLに<code>order_paid</code>ウェブフックを送信します：\n1. ユーザーは注文の支払いに成功しました。\n2. エクソーラは、[決済](/ja/webhooks/operation/payment/)ウェブフックの正常な処理に関する応答を受け取りました。\n\n<code>order_paid</code>ウェブフックには、購入したアイテムとトランザクションの詳細に関する情報が含まれています。\n\n次の場合、<code>order_paid</code>ウェブフックは送信されません：\n* 決済が失敗しました。例：\n  * 決済フォームは開かれましたが、ユーザーは注文の支払いをしていません\n  * 決済フォームが開かれましたが、支払い中にエラーが発生しました\n* [決済](/ja/webhooks/operation/payment/)ウェブフックの正常な処理に関する応答が受信されていません。\n\n<code>order_paid</code>ウェブフックの処理時間は3秒未満にすることをお勧めします。\n\n予想される回答は、「<b>応答</b>」セクションに記載されています。他の応答コードを使用できます。応答コードと自動返金機能の接続に応じて、エクソーラ側のウェブ\nフック処理ロジックは以下のようになります：\n\n<table>\n    <thead>\n    <tr>\n        <th>応答コード</th>\n        <th>自動返金は無効になっています（デフォルト）</th>\n        <th>自動返金が有効になっています</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr>\n        <td><code>400</code>、<code>401</code>、<code>402</code>、<code>403</code>、<code>404</code>、<code>409</code>、<code>422</code>、<code>415</code></td>\n        <td>操作なし</td>\n        <td>ユーザーへの自動返金</td>\n    </tr>\n    <tr>\n        <td><code>200</code>、<code>201</code>、<code>204</code></td>\n        <td>操作なし</td>\n        <td>操作なし</td>\n    </tr>\n    <tr>\n        <td>別のコードまたはウェブフックへの応答なし</td>\n        <td>指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。</td>\n        <td>指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。すべてのウェブフックが送信されても正常な応答が受信されない場合、ユーザーに自動返金が発行されます。</td>\n    </tr>\n    </tbody>\n</table>\n\n自動返金機能を接続するには、カスタマーサクセスマネージャーにお問い合わせいただくか、csm@xsolla.comまで電子メールをお送りください。\n",
        "operationId": "successful-order-payment-separate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "custom_parameters": {
                    "description": "追加情報。",
                    "type": "object"
                  },
                  "items": {
                    "description": "ユーザーが購入したアイテムのリスト。\n\n配列に含まれるパラメータのセットは、ウェブフックのバージョンによって異なります。バージョン2は、追加のパラメータが含まれています：`is_free`、`is_b\nonus`および`is_bundle_content`。バージョンを切り替えるには、[ウェブフック設定に関する情報を更新する](/ja/api/igs/operation/update-webhook/)APIコールで`version`パラメータにその番号を渡します。\n",
                    "items": {
                      "oneOf": [
                        {
                          "properties": {
                            "amount": {
                              "description": "数量に基づいたアイテムの総コスト。",
                              "type": "string"
                            },
                            "custom_attributes": {
                              "description": "アイテムの属性と値を含むJSONオブジェクト。",
                              "type": "object"
                            },
                            "is_pre_order": {
                              "description": "「`true`」の場合、アイテムは先行予約です。",
                              "type": "boolean"
                            },
                            "promotions": {
                              "$ref": "#/components/schemas/items.promotions"
                            },
                            "quantity": {
                              "description": "アイテムの数量。",
                              "type": "integer"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/items.sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/items.type"
                            }
                          },
                          "required": [
                            "sku",
                            "type",
                            "quantity",
                            "amount",
                            "promotions",
                            "is_pre_order"
                          ],
                          "title": "バージョン = 1",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "amount": {
                              "description": "数量に基づいたアイテムの総コスト。",
                              "type": "string"
                            },
                            "custom_attributes": {
                              "description": "アイテムの属性と値を含むJSONオブジェクト。",
                              "type": "object"
                            },
                            "is_bonus": {
                              "description": "「`true`」の場合、アイテムはボーナスです。",
                              "type": "boolean"
                            },
                            "is_bundle_content": {
                              "description": "「`true`」の場合、アイテムはバンドルに属しています。",
                              "type": "boolean"
                            },
                            "is_free": {
                              "description": "「`true`」の場合、アイテムは無料です。",
                              "type": "boolean"
                            },
                            "is_pre_order": {
                              "description": "「`true`」の場合、アイテムは先行予約です。",
                              "type": "boolean"
                            },
                            "promotions": {
                              "$ref": "#/components/schemas/items.promotions"
                            },
                            "quantity": {
                              "description": "アイテムの数量。",
                              "type": "integer"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/items.sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/items.type"
                            }
                          },
                          "required": [
                            "sku",
                            "type",
                            "quantity",
                            "amount",
                            "promotions",
                            "is_pre_order",
                            "is_free",
                            "is_bonus",
                            "is_bundle_content"
                          ],
                          "title": "バージョン = 2",
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "order": {
                    "description": "注文に関する情報。",
                    "properties": {
                      "amount": {
                        "description": "選択された通貨に基づくカートの合計金額です。",
                        "type": "string"
                      },
                      "comment": {
                        "description": "注文に対するユーザーのコメント。",
                        "nullable": true,
                        "type": "string"
                      },
                      "coupons": {
                        "description": "適用されたクーポン。クーポンが適用されていない場合は、配列は返されません。",
                        "items": {
                          "properties": {
                            "code": {
                              "description": "適用されたクーポンのコードです。",
                              "type": "string"
                            },
                            "external_id": {
                              "description": "External ID。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "currency": {
                        "description": "注文の通貨。仮想通貨はSKUを使用し、実際通貨は3文字の[ISO4217](https://en.wikipedia.org/wiki/ISO_4217)コードを使用します。",
                        "type": "string"
                      },
                      "currency_type": {
                        "$ref": "#/components/schemas/currency-type"
                      },
                      "id": {
                        "description": "エクソーラ側でのユーザーの注文の一意の識別子。",
                        "type": "integer"
                      },
                      "invoice_id": {
                        "description": "実際通貨による支払い請求書ID。仮想通貨の決済また無料アイテムは、`null`の値を使用します。",
                        "nullable": true,
                        "type": "string"
                      },
                      "mode": {
                        "description": "決済モード。`default`は実際の支払いに、`sandbox`はテスト支払いに使用されます。",
                        "enum": [
                          "default",
                          "sandbox"
                        ],
                        "type": "string"
                      },
                      "platform": {
                        "description": "決済プラットフォーム。`xsolla`値は、エクソーラを介した決済ソリューションに使用されます。その他の決済ソリューションについては、ゲームパブリッシングプラットフォームの名前に対応する値が使用されます。",
                        "enum": [
                          "xsolla",
                          "playstation_network",
                          "xbox_live",
                          "pc_standalone",
                          "nintendo_shop",
                          "google_play",
                          "app_store_ios",
                          "android_standalone",
                          "ios_standalone",
                          "android_other",
                          "ios_other",
                          "pc_other"
                        ],
                        "nullable": true,
                        "type": "string"
                      },
                      "promocodes": {
                        "description": "適用されたプロモーションコード。プロモーションコードが適用されていない場合、配列は返されません。",
                        "items": {
                          "properties": {
                            "code": {
                              "description": "適用されたプロモーションコードのコードです。",
                              "type": "string"
                            },
                            "external_id": {
                              "description": "External ID。",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/order.promotions"
                      },
                      "status": {
                        "description": "注文状況。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "mode",
                      "currency_type",
                      "currency",
                      "amount",
                      "status",
                      "platform",
                      "comment",
                      "invoice_id",
                      "promotions"
                    ],
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザー情報。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "description": "ユーザーのメールアドレス。",
                        "type": "string"
                      },
                      "external_id": {
                        "description": "ユーザーID。",
                        "type": "string"
                      }
                    },
                    "required": [
                      "external_id",
                      "email"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "items",
                  "order",
                  "user"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "処理が成功したことを示すために戻ります。"
          },
          "400": {
            "description": "提供された情報（たとえば、必須なパラメータの欠落、認証の失敗など。）にエラーが発生した場合に戻ります。"
          }
        },
        "summary": "注文支払い完了（支払いおよび取引の詳細なし）",
        "tags": [
          "separate-webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \\\n-d '{\n    \"notification_type\": \"order_paid\",\n    \"items\": [\n      {\n        \"sku\": \"com.xsolla.v.item_1\",\n        \"type\": \"virtual_good\",\n        \"is_pre_order\": false,\n        \"quantity\": 3,\n        \"amount\": \"1000\",\n        \"promotions\": [\n          {\n            \"amount_without_discount\": \"6000\",\n            \"amount_with_discount\": \"5000\",\n            \"sequence\": 1\n          },\n          {\n            \"amount_without_discount\": \"5000\",\n            \"amount_with_discount\": \"4000\",\n            \"sequence\": 2\n          }\n        ],\n        \"custom_attributes\":\n          {\n            \"purchased\": 0,\n            \"attr\": \"value\"\n          }\n      },\n      {\n        \"sku\": \"com.xsolla.v.item_new_1\",\n        \"type\": \"bundle\",\n        \"is_pre_order\": false,\n        \"quantity\": 1,\n        \"amount\": \"1000\",\n        \"promotions\": []\n      },\n      {\n        \"sku\": \"com.xsolla.gold_1\",\n        \"type\": \"virtual_currency\",\n        \"is_pre_order\": false,\n        \"quantity\": 1500,\n        \"amount\": \"[null]\",\n        \"promotions\": []\n      }\n    ],\n    \"order\": {\n      \"id\": 1,\n      \"mode\": \"default\",\n      \"currency_type\": \"virtual\",\n      \"currency\": \"sku_currency\",\n      \"amount\": \"2000\",\n      \"status\": \"paid\",\n      \"platform\": \"xsolla\",\n      \"comment\": null,\n      \"invoice_id\": \"1\",\n      \"promotions\": [\n        {\n          \"amount_without_discount\": \"4000\",\n          \"amount_with_discount\": \"2000\",\n          \"sequence\": 1\n        }\n      ],\n      \"promocodes\": [\n        {\n          \"code\": \"promocode_some_code\",\n          \"external_id\": \"promocode_sku\"\n        }\n      ],\n      \"coupons\": [\n        {\n          \"code\": \"WINTER2021\",\n          \"external_id\": \"coupon_sku\"\n        }\n      ]\n    },\n    \"user\": {\n      \"external_id\": \"id_xsolla_login_1\",\n      \"email\": \"gc_user@xsolla.com\",\n      \"country\": \"US\"\n    }\n\n}'"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost:           your.hostname\naccept:         application/json\ncontent-length: 258\ncontent-type:   application/json\nauthorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523\n\n\n{\n    \"notification_type\": \"order_paid\",\n    \"items\": [\n      {\n        \"sku\": \"com.xsolla.v.item_1\",\n        \"type\": \"virtual_good\",\n        \"is_pre_order\": false,\n        \"quantity\": 3,\n        \"amount\": \"1000\",\n        \"promotions\": [\n          {\n            \"amount_without_discount\": \"6000\",\n            \"amount_with_discount\": \"5000\",\n            \"sequence\": 1\n          },\n          {\n            \"amount_without_discount\": \"5000\",\n            \"amount_with_discount\": \"4000\",\n            \"sequence\": 2\n          }\n        ],\n        \"custom_attributes\":\n          {\n            \"purchased\": 0,\n            \"attr\": \"value\"\n          }\n      },\n      {\n        \"sku\": \"com.xsolla.v.item_new_1\",\n        \"type\": \"bundle\",\n        \"is_pre_order\": false,\n        \"quantity\": 1,\n        \"amount\": \"1000\",\n        \"promotions\": []\n      },\n      {\n        \"sku\": \"com.xsolla.gold_1\",\n        \"type\": \"virtual_currency\",\n        \"is_pre_order\": false,\n        \"quantity\": 1500,\n        \"amount\": \"[null]\",\n        \"promotions\": []\n      }\n    ],\n    \"order\": {\n      \"id\": 1,\n      \"mode\": \"default\",\n      \"currency_type\": \"virtual\",\n      \"currency\": \"sku_currency\",\n      \"amount\": \"2000\",\n      \"status\": \"paid\",\n      \"platform\": \"xsolla\",\n      \"comment\": null,\n      \"invoice_id\": \"1\",\n      \"promotions\": [\n        {\n          \"amount_without_discount\": \"4000\",\n          \"amount_with_discount\": \"2000\",\n          \"sequence\": 1\n        }\n      ],\n      \"promocodes\": [\n        {\n          \"code\": \"promocode_some_code\",\n          \"external_id\": \"promocode_sku\"\n        }\n      ],\n      \"coupons\": [\n        {\n          \"code\": \"WINTER2021\",\n          \"external_id\": \"coupon_sku\"\n        }\n      ]\n    },\n    \"user\": {\n      \"external_id\": \"id_xsolla_login_1\",\n      \"email\": \"gc_user@xsolla.com\",\n      \"country\": \"US\"\n    }\n}"
          }
        ]
      }
    },
    "updated-subscription": {
      "post": {
        "description": "サブスクリプションのパラメータ（`plan_id`、`date_next_charge`）が変更された場合、そしてサブスクリプションが更新される時に、エクソーラは`update_subscription`タイプのウェブフックをウェブフックURLに送信します。",
        "operationId": "updated-subscription",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "subscription": {
                    "description": "サブスクリプションの詳細（オブジェクト）。",
                    "properties": {
                      "date_next_charge": {
                        "$ref": "#/components/schemas/subscription.date_next_charge"
                      },
                      "plan_id": {
                        "$ref": "#/components/schemas/subscription.plan_id"
                      },
                      "product_id": {
                        "$ref": "#/components/schemas/subscription.product_id"
                      },
                      "subscription_id": {
                        "$ref": "#/components/schemas/subscription.subscription_id"
                      },
                      "tags": {
                        "$ref": "#/components/schemas/subscription.tags"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "更新されたサブスクリプション",
        "tags": [
          "subscriptions"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \\\n-d '{\n        \"notification_type\": \"update_subscription\",\n        \"settings\": {\n          \"project_id\": 18404,\n          \"merchant_id\": 2340\n        },\n        \"user\": {\n            \"id\": \"1234567\",\n            \"name\": \"John Smith\"\n        },\n        \"subscription\": {\n            \"plan_id\": \"b5dac9c8\",\n            \"subscription_id\": \"10\",\n            \"product_id\": \"Demo Product\",\n            \"date_next_charge\": \"2015-01-22T19:25:25+04:00\"\n        }\n    }'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'update_subscription',\n    'settings' => array(\n      'project_id' => 18404,\n      'merchant_id' => 2340\n    ),\n    'user' => array(\n        'id' => '1234567',\n        'name' => 'John Smith'\n    ),\n    'subscription' => array(\n        'plan_id' => 'b5dac9c8',\n        'subscription_id' => '10',\n        'product_id' => 'Demo Product',\n        'date_next_charge' => '2015-01-22T19:25:25+04:00'\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost: your.hostname\naccept: application/json\ncontent-type: application/json\ncontent-length: 240\nauthorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f\n\n{\n    \"notification_type\": \"update_subscription\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\"\n    },\n    \"subscription\": {\n        \"plan_id\": \"b5dac9c8\",\n        \"subscription_id\": \"10\",\n        \"product_id\": \"Demo Product\",\n        \"date_next_charge\": \"2015-01-22T19:25:25+04:00\"\n    }\n}"
          }
        ]
      }
    },
    "user-search": {
      "post": {
        "description": "<nt>Public User ID</nt>は、<nt>User ID</nt>（<nt>Public User ID</nt>はメールアドレス、画面名など）とは異なり、ユーザを一意に識別し、ユーザーに知られているパラメータです。エクソーラは、ゲームストアの外（例えば現金キオスクなど）で購入する場合、`user_search`タイプのウェブフックを送信します。",
        "operationId": "user-search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "public_id": {
                        "$ref": "#/components/schemas/user.public_id"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type",
                  "user"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "ユーザーの検索",
        "tags": [
          "user-validation"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \\\n-d '{\n    \"notification_type\": \"user_search\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"public_id\": \"email@example.com\"\n    }\n}'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'user_search',\n    'settings' => array(\n      'project_id' => 18404,\n      'merchant_id' => 2340\n    ),\n    'user' => array(\n        'public_id' => 'email@example.com'\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost: your.hostname\naccept: application/json\ncontent-type: application/json\ncontent-length: 240\nauthorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f\n\n{\n    \"notification_type\": \"user_search\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"public_id\": \"email@example.com\"\n    }\n}"
          }
        ]
      }
    },
    "user-validation": {
      "post": {
        "description": "エクソーラはユーザーがゲームに登録されていることを確認するために、`user_validation`タイプのウェブフックをウェブフックURLに送信します。このリ\nクエストは支払いプロセスの一部として複数回送信されます：\n\n* ユーザーが決済UIで決済方法を選択する場合\n* ユーザーが決済フォームにデータを入力する場合（例: 銀行カードのデータやPayPal経由で支払う場合の郵便番号）\n* ユーザーが**今すぐ支払う**をクリックして決済を続行する場合\n* 支払処理が完了し、取引状況が`done`に変更された場合\n\nこのリクエストは、任意の決済方法で支払いを行う際に送信されます。\n\nパブリッシャーアカウントにウェブフックURLを保存すると、ウェブフックで詳細情報を受信する権限を与えることができます。これを行うには、パブリッシャーアカウントの\n「<a \nhref=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/store\">プロジェクト設定&gt\n; ウェブフック&gt; 詳細設定</a>」セクションで必要なトグルを「アクティブ」に設定します。\n\n<div class=\"note\">\n<p><strong>注意</strong></p>\n<p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、「<a href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments\">プロジェクト設定&gt;ウェブフック&gt;テスト&gt;決済ソリューション&gt;詳細設定</a>」セクションでトグルを見つけます。</p>\n</div>\n\n<table>\n<thead>\n    <tr>\n        <th>トグル</th>\n        <th>説明</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>機密データは含まず、必要なユーザーパラメータのみを送信する</td>\n        <td><p>ウェブフックでは、ユーザーに関する次の情報のみが渡されます：</p><ul><li>ID</li><li>国</li></ul></td>\n    </tr>\n    <tr>\n        <td>カスタムパラメータを送信する</td>\n        <td><a href=\"/ja/api/pay-station/operation/create-token/\">カスタムトークンパラメータ</a>に関する情報は、ウェブフックで渡されます。</td>\n    </tr>\n</tbody>\n</table>\n",
        "operationId": "user-validation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "notification_type": {
                    "$ref": "#/components/schemas/notification_type"
                  },
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "email": {
                        "$ref": "#/components/schemas/user.email"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      },
                      "ip": {
                        "$ref": "#/components/schemas/user.ip"
                      },
                      "name": {
                        "$ref": "#/components/schemas/user.name"
                      },
                      "phone": {
                        "$ref": "#/components/schemas/user.phone"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "notification_type"
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "ユーザー検証",
        "tags": [
          "user-validation"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-H 'authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \\\n-d '{\n    \"notification_type\":\"user_validation\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"ip\": \"127.0.0.1\",\n        \"phone\": \"18777976552\",\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\",\n        \"country\": \"US\"\n    }\n}'"
          },
          {
            "label": "PHP",
            "lang": "PHP",
            "source": "<?php\n\n$request = array(\n    'notification_type' => 'user_validation',\n    'settings' => array(\n      'project_id' => 18404,\n      'merchant_id' => 2340\n    ),\n    'user' => array(\n        'ip' => '127.0.0.1',\n        'phone' => '18777976552',\n        'email'=> 'email@example.com',\n        'id'=> '1234567',\n        'country' => 'US'\n    )\n);"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost: your.hostname\naccept: application/json\ncontent-type: application/json\ncontent-length: 240\nauthorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f\n\n{\n    \"notification_type\": \"user_validation\",\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"ip\": \"127.0.0.1\",\n        \"phone\": \"18777976552\",\n        \"email\": \"email@example.com\",\n        \"id\": \"1234567\",\n        \"name\": \"John Smith\",\n        \"country\": \"US\"\n    }\n}"
          }
        ]
      }
    },
    "user-validation-in-webshop": {
      "post": {
        "description": "ユーザーがゲームに存在するかどうかを確認するために、エクソーラはウェブショップサイトからウェブフックを送信します。ウェブフックは以下のIPアドレスからに送信されます： `34.102.38.178`。\n<div class=\"note\"><strong>注意</strong><br><br>\nウェブフックはウェブショップ内でユーザーの検証にのみ使用されます。サイトビルダーでウェブフックを構成する詳細については、こちらの<a target=\"_blank\" href=\"https://developers.xsolla.com/ja/solutions/web-shop/authentication-and-analytics/set-up-authentication/\">説明</a>を参照してください。</div>",
        "operationId": "user-validation-in-webshop",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "settings": {
                    "description": "カスタムプロジェクト設定（オブジェクト）。",
                    "properties": {
                      "merchant_id": {
                        "$ref": "#/components/schemas/settings.merchant_id"
                      },
                      "project_id": {
                        "$ref": "#/components/schemas/settings.project_id"
                      }
                    },
                    "type": "object"
                  },
                  "user": {
                    "description": "ユーザーの詳細（オブジェクト）。",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/user.country"
                      },
                      "id": {
                        "$ref": "#/components/schemas/user.id"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "user"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "attributes": [
                    {
                      "key": "level",
                      "value": "2"
                    },
                    {
                      "key": "register_country",
                      "value": "AE"
                    }
                  ],
                  "removingKeys": [
                    "company"
                  ],
                  "user": {
                    "appPlayerId": "cuid12345",
                    "id": "1234567890",
                    "name": "test-name",
                    "picture": "https://example.com"
                  }
                },
                "schema": {
                  "properties": {
                    "attributes": {
                      "description": "パーソナライズに使用されるユーザー属性。詳細については、<a target=\"_blank\" href=\"https://developers.xsolla.com/ja/doc/login/features/user-attributes/#login_features_user_attributes\">ドキュメンテーション</a>を参照してください。",
                      "items": {
                        "properties": {
                          "key": {
                            "description": "属性名。",
                            "type": "string"
                          },
                          "value": {
                            "description": "属性値。"
                          }
                        },
                        "required": [
                          "key",
                          "value"
                        ]
                      },
                      "type": "array"
                    },
                    "removingKeys": {
                      "description": "削除したい属性のリスト。`attributes`パラメータで同じ属性を指定しても、削除されません。",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "user": {
                      "description": "ユーザーの詳細（オブジェクト）。",
                      "properties": {
                        "appPlayerId": {
                          "$ref": "#/components/schemas/appPlayerId"
                        },
                        "id": {
                          "description": "ユーザーID。",
                          "type": "string"
                        },
                        "name": {
                          "description": "ユーザー名。",
                          "type": "string"
                        },
                        "picture": {
                          "description": "ユーザーアバターへのリンク。",
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "user"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "ユーザーに関する情報を返します。"
          },
          "404": {
            "description": "ユーザーが見つかりません。"
          }
        },
        "summary": "ウェブショップでのユーザー検証",
        "tags": [
          "user-validation"
        ],
        "x-codeSamples": [
          {
            "label": "CURL",
            "lang": "cURL",
            "source": "curl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'accept: application/json' \\\n-H 'content-type: application/json' \\\n-d '{\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"id\": \"1234567\",\n        \"country\": \"US\"\n    }\n}'"
          },
          {
            "label": "HTTP",
            "lang": "HTTP",
            "source": "POST /your/uri HTTP/1.1\nhost: your.hostname\naccept: application/json\ncontent-type: application/json\ncontent-length: 240\n\n{\n    \"settings\": {\n      \"project_id\": 18404,\n      \"merchant_id\": 2340\n    },\n    \"user\": {\n        \"id\": \"1234567\",\n        \"country\": \"US\"\n    }\n}"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "notification_type": {
        "description": "通知タイプ。",
        "type": "string"
      },
      "payment_account.country": {
        "description": "決済アカウントの国。例えば、カードを発行する銀行の国や、PayPalのアカウント作成時に指定した国などです。2文字の大文字の[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)の国名コード。",
        "type": "string"
      },
      "payment_account.id": {
        "description": "決済アカウントID。",
        "type": "string"
      },
      "payment_account.name": {
        "description": "決済システムにおける決済口座名（例：決済カード番号、電子メール）。",
        "type": "string"
      },
      "payment_account.payment_method": {
        "description": "決済方法のID。",
        "type": "integer"
      },
      "payment_account.type": {
        "description": "支払い口座の種類（例：カード、PayPal）。",
        "type": "string"
      },
      "settings.merchant_id": {
        "description": "マーチャントID。",
        "type": "integer"
      },
      "settings.project_id": {
        "description": "プロジェクトID。このパラメータは、[ドメインページ](https://publisher.xsolla.com/)のプロジェクト名の横にあります。",
        "type": "integer"
      },
      "user.country": {
        "description": "ユーザーの国。2文字の国コード（大文字）は、[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)に従って使用されます。",
        "type": "string"
      },
      "user.email": {
        "description": "ユーザーのEメール。",
        "type": "string"
      },
      "user.id": {
        "description": "ユーザーID。",
        "type": "string"
      },
      "user.ip": {
        "description": "ユーザーIP。",
        "type": "string"
      },
      "user.name": {
        "description": "ユーザー名。",
        "type": "string"
      },
      "user.zip": {
        "description": "Zipまたは郵便番号。",
        "type": "string"
      },
      "subscription.date_create": {
        "description": "サブスクリプション作成日。日付時刻表記は、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式。",
        "type": "string"
      },
      "subscription.date_end": {
        "description": "サブスクリプション終了日。日付時刻表記は、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式。",
        "type": "string"
      },
      "subscription.plan_id": {
        "description": "プランID（プランがAPIを使用して作成された場合は外部）。",
        "type": "string"
      },
      "subscription.product_id": {
        "description": "製品ID（アクセストークンで送信された場合）。",
        "type": "string"
      },
      "subscription.subscription_id": {
        "description": "エクソラデータベースのサブスクリプションID。",
        "type": "integer"
      },
      "subscription.tags": {
        "description": "プランのタグ。",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "subscription.date_next_charge": {
        "description": "次の請求日。日付時刻表記は、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式。",
        "type": "string"
      },
      "subscription.is_gift": {
        "description": "サブスクリプションが贈られたかどうか。パラメータは、値が`true`の場合にのみ渡されます。",
        "type": "boolean"
      },
      "dispute-date": {
        "description": "[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339)標準に基づく紛争の開始日。",
        "type": "string"
      },
      "dispute-reason": {
        "description": "紛争手続きを開始する理由。理由のグループの説明については、[ドキュメンテーション](/ja/payment-ui-and-flow/anti-fraud/chargeback/#payments_chargeback_reasons) を参照してください。",
        "enum": [
          "non_receipt",
          "not_as_described",
          "duplicate_processing",
          "paid_by_other_means",
          "incorrect_amount",
          "credit_not_processed",
          "general",
          "fraud",
          "cancelled_recurring",
          "cancelled_merchandise",
          "late_presentment",
          "no_authorization",
          "problem_with_remittance",
          "other"
        ],
        "type": "string"
      },
      "dispute-status": {
        "description": "紛争の状況。",
        "enum": [
          "new",
          "accepted",
          "no_actions_required",
          "won",
          "lost"
        ],
        "type": "string",
        "x-enumDescriptions": {
          "accepted": "<b>承認済み</b>",
          "lost": "<b>負ける</b>",
          "new": "<b>新規</b>",
          "no_actions_required": "<b>進行中</b>",
          "won": "<b>勝つ</b>"
        }
      },
      "dispute-type": {
        "description": "紛争のタイプ。",
        "enum": [
          "1st_time_chargeback",
          "2nd_time_chargeback",
          "arbitration",
          "retrieval",
          "representment",
          "chargeback_reversal",
          "representment_reversal",
          "reimbursement",
          "dispute",
          "chargeback",
          "claim",
          "reimbursement_reversal",
          "inquiry",
          "other"
        ],
        "type": "string",
        "x-enumDescriptions": {
          "1st_time_chargeback": "1回目のチャージバック。",
          "2nd_time_chargeback": "2 回目のチャージバック（事前仲裁）。",
          "arbitration": "1 回目のチャージバックと 2 回目のチャージバックが拒否された場合の発行銀行とマーチャントの間の紛争を解決します。",
          "chargeback": "1回目のチャージバック。",
          "chargeback_reversal": "チャージバックは取り消されました。",
          "claim": "PayPal における顧客とマーチャント間の紛争。",
          "dispute": "カード所有者が銀行に支払いの詳細を要求しました。",
          "inquiry": "カード所有者が銀行に支払いの詳細を要求しました。",
          "other": "他のタイプでカバーされていないチャージバックタイプに使用されます。",
          "reimbursement": "返金が行われました。",
          "reimbursement_reversal": "チャージバックは取り消されました。",
          "representment": "チャージバック管理チームは証拠を決済システムに送信しました。",
          "representment_reversal": "チャージバックは取り消されました。",
          "retrieval": "カード所有者が銀行に支払いの詳細を要求しました。"
        }
      },
      "date-create": {
        "description": "支払日。",
        "type": "string"
      },
      "external-id": {
        "description": "取引external ID。詳細について[よくある質問](/ja/doc/pay-station/references/faq/#faq_payments_q_new_transaction_external_id)を参照してください。",
        "type": "string"
      },
      "transaction-id": {
        "description": "トランザクションID。",
        "type": "integer"
      },
      "dispute-payment-method": {
        "description": "決済方法。",
        "enum": [
          "credit_debit_card",
          "paypal"
        ],
        "type": "string",
        "x-enumDescriptions": {
          "credit_debit_card": "クレジットカードまたはデビットカード",
          "paypal": "PayPal"
        }
      },
      "transaction-total-amount": {
        "description": "支払金額。",
        "format": "float",
        "type": "number"
      },
      "currency": {
        "description": "通貨。[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)に基づく3文字の通貨コード。",
        "type": "string"
      },
      "country_whc": {
        "description": "Object with data on withholding costs applied in specific countries due to cross-border transactions.",
        "properties": {
          "amount": {
            "description": "金額。",
            "format": "float",
            "type": "number"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "percent": {
            "description": "Percent of the withholding cost rate.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "amount-float": {
        "description": "現金通貨での価格。",
        "format": "float",
        "type": "number"
      },
      "items.promotions": {
        "description": "注文内の特定のアイテムに適用されたプロモーションです。\nこの配列は以下のいずれかのケースで返されます：\n  - 特定のアイテムに対して割引プロモーションが設定されている場合。\n  - **選択されたアイテムの割引**設定がされたプロモーションコードが適用されている場合。\n\nアイテムレベルのプロモーションが適用されていない場合は、空の配列が返されます。",
        "items": {
          "properties": {
            "amount_with_discount": {
              "description": "割引なしのアイテムの総コスト。",
              "type": "string"
            },
            "amount_without_discount": {
              "description": "割引なしのアイテムの総コスト。",
              "type": "string"
            },
            "sequence": {
              "description": "プロモーションアプリケーションの注文。",
              "type": "integer"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "items.sku": {
        "description": "アイテムの一意のID。「`game_key`」タイプのアイテムの場合、「`sku_drm`」形式の値が使用されます。",
        "type": "string"
      },
      "items.type": {
        "description": "アイテムタイプ。\n仮想通貨パッケージを含む`bundle`タイプアイテムの場合は、`items`配列には以下が表示されます：\n  - バンドルまたは仮想通貨パッケージのパラメータ\n  - バンドルに含まれるアイテムまたはパッケージに含まれる通貨\n  \n`value_point`タイプは、[ロイヤルティポイント](/ja/solutions/loyalty-as-service/)の操作、つまりポイントが使用または付与される際に使用されます。",
        "enum": [
          "virtual_good",
          "virtual_currency",
          "game_key",
          "bundle",
          "value_point"
        ],
        "type": "string"
      },
      "currency-type": {
        "description": "決済通貨タイプ。無料注文の場合は`unknown`の値が指定されています。",
        "enum": [
          "real",
          "virtual",
          "unknown",
          "loyalty_point"
        ],
        "type": "string",
        "x-enumDescriptions": {
          "loyalty_point": "ロイヤルティポイント",
          "real": "実際通貨",
          "unknown": "無料注文",
          "virtual": "仮想通貨"
        }
      },
      "order.promotions": {
        "description": "注文全体に適用されたプロモーションです。\nこの配列は、次のいずれかのケースで返されます。：\n  - **購入割引** 設定のプロモーションコードなど、購入合計金額に影響するプロモーションが設定されている場合。\n  - 購入に割引は適用されませんが、ボーナスアイテムが注文に追加される場合。この場合、割引ありのコスト（[amount_with_discount](/ja/webhooks/#operation/order-cancellation!path=order/promotions/amount_with_discount&t=request)）と割引なしのコスト（[amount_without_discount](/ja/webhooks/#operation/order-cancellation!path=order/promotions/amount_without_discount&t=request)）の値が返され、割引が適用されていないため両者は同じ値になります。\n\n注文レベルのプロモーションが適用されていない場合は、空の配列が返されます。",
        "items": {
          "properties": {
            "amount_with_discount": {
              "description": "割引なしのアイテムの総コスト。",
              "type": "string"
            },
            "amount_without_discount": {
              "description": "割引なしのアイテムの総コスト。",
              "type": "string"
            },
            "sequence": {
              "description": "プロモーションアプリケーションの注文。",
              "type": "integer"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "user.phone": {
        "description": "ユーザーの電話。",
        "type": "string"
      },
      "order": {
        "description": "注文に関する情報を含むオブジェクト。この情報を受け取るには、**プロジェクト設定 &gt; ウェブフック &gt; 高度な設定**セクションでの[アドミンページ](https://publisher.xsolla.com/)で**注文オブジェクトをウェブフックに追加する**トグルを**オン**に設定します。",
        "type": "object"
      },
      "locale": {
        "description": "ユーザー言語。2文字の小文字[言語コード](https://developers.xsolla.com/ja/doc/pay-station/features/localization/)。",
        "type": "string"
      },
      "quantity": {
        "deprecated": true,
        "description": "1人のユーザーが購入できるアイテムの数。無制限に設定するには、`null`を渡します。アイテムを購入不可にしてカタログに表示するには、`0`を渡します。\n\nこのパラメータを使用すると、カタログに購入制限情報が表示されません。カタログに購入制限情報（例：`7/10`）を表示するには、`quantity`の代わりに`available`と`total`を渡します。",
        "type": "integer"
      },
      "available": {
        "description": "ユーザーが購入可能な残りアイテム数。\n\nカタログに購入制限情報（例：`7/10`）を表示するには、`available`と`total`ペアを渡します。",
        "type": "integer"
      },
      "total": {
        "description": "1人のユーザーが購入できるアイテムの最大数。\n\nカタログに購入制限情報（例：`7/10`）を表示するには、`available`と`total`ペアを渡します。",
        "exclusiveMinimum": 0,
        "type": "integer"
      },
      "bundle_content": {
        "description": "カタログに表示されるバンドルコンテンツを含むオブジェクトの配列。これはバンドルタイプ[partner_side_content](https://developers.xsolla.com/ja/api/shop-builder/operation/admin-create-bundle/)でのみ使用できます。",
        "items": {
          "properties": {
            "description": {
              "description": "バンドルの一部としてカタログに表示されるアイテムの説明。提供されない場合、`null`が渡されます。",
              "maxLength": 255,
              "type": "string"
            },
            "image_url": {
              "description": "バンドルの一部としてカタログに表示されるアイテム画像のURLです。HTTPSプロトコルのみがサポートされています。提供されない場合、`null`が渡されます。",
              "format": "uri",
              "maxLength": 255,
              "type": "string"
            },
            "name": {
              "description": "バンドルの一部としてカタログに表示されるアイテム名です。提供されない場合、空の文字列が渡されます。",
              "maxLength": 255,
              "type": "string"
            },
            "quantity": {
              "default": 1,
              "description": "バンドル内のアイテムの数量。",
              "minimum": 1,
              "type": "integer"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "date_from": {
        "description": "アイテムが販売可能になる日付。[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339)標準に従ってフォーマットされています。",
        "type": "string"
      },
      "date_until": {
        "description": "アイテムが販売不可能になる日付。[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339)標準に従ってフォーマットされています。",
        "type": "string"
      },
      "description": {
        "description": "カタログに表示されるアイテムの説明。アイテムに保存されている説明を上書きします。",
        "maxLength": 255,
        "type": "string"
      },
      "image_url": {
        "description": "カタログに表示される画像URLです。アイテムに保存されている画像URLを上書きします。HTTPSプロトコルのみがサポートされています。もしURLが要件を満たさない場合、無視されます。",
        "format": "uri",
        "maxLength": 255,
        "type": "string"
      },
      "json_attributes": {
        "description": "アイテムの属性と値を含むJSONオブジェクト。アイテムに保存されている[custom_attributes](https://developers.xsolla.com/ja/webhooks/operation/successful-order-payment/#!path=items/0/custom_attributes&t=request)を上書きします。JSONが要件を満たさない場合や、最大長を超える場合は無視されます。",
        "format": "json",
        "maxLength": 500,
        "type": "object"
      },
      "name": {
        "description": "カタログに表示されるアイテム名。これはアイテムに保存されている名前を上書きします。",
        "maxLength": 255,
        "type": "string"
      },
      "sku": {
        "description": "パブリッシャーアカウントで指定したアイテムの一意のID。 `sku`または`item_id`のいずれかを渡す必要があります。",
        "type": "string"
      },
      "item_id": {
        "description": "エクソラ側の一意のアイテムID。`sku`または`item_id`のいずれかを渡す必要があります。",
        "type": "integer"
      },
      "user.public_id": {
        "description": "Public User ID。",
        "type": "string"
      },
      "appPlayerId": {
        "description": "ユーザー登録時にアプリ所有者によって割り当てられるユーザーID（顧客ユーザーID）。\n<div lang=\"en\" class=\"note\"><strong>注意</strong><br><br>エクソーラは決済トークンを取得するためのコール内にある<code>custom_parameters</code>オブジェクトにて、このデータを渡します。</div>",
        "type": "string"
      }
    },
    "responses": {
      "204": {
        "description": "処理の成功を示すために戻ります。"
      },
      "400": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "error": {
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "提供された情報（たとえば、必要なパラメーターの欠落、認可の失敗など。）にエラーが発生した場合に戻ります。",
        "x-examples": {
          "application/json": {
            "INCORRECT_AMOUNT": {
              "summary": "Incorrect amount",
              "value": {
                "error": {
                  "code": "INCORRECT_AMOUNT",
                  "message": "Incorrect amount"
                }
              }
            },
            "INCORRECT_INVOICE": {
              "summary": "Incorrect invoice",
              "value": {
                "error": {
                  "code": "INCORRECT_INVOICE",
                  "message": "Incorrect invoice"
                }
              }
            },
            "INVALID_PARAMETER": {
              "summary": "Invalid parameter",
              "value": {
                "error": {
                  "code": "INVALID_PARAMETER",
                  "message": "Invalid parameter"
                }
              }
            },
            "INVALID_SIGNATURE": {
              "summary": "Invalid signature",
              "value": {
                "error": {
                  "code": "INVALID_SIGNATURE",
                  "message": "Invalid signature"
                }
              }
            },
            "INVALID_USER": {
              "summary": "Invalid user",
              "value": {
                "error": {
                  "code": "INVALID_USER",
                  "message": "Invalid user"
                }
              }
            }
          }
        }
      },
      "500": {
        "description": "リターンはサーバーに一時的なエラーが発生したことを示します。"
      },
      "400-payment": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "error": {
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "提供された情報にエラーがある場合に返されます（例: 必須パラメータの欠落、認証の失敗など）。この場合、ユーザーのお金は引き落とされますが、購入は失敗します。返金を行うには、エクソーラカスタマーサポートsupport@xsolla.comにお問い合わせください。",
        "x-examples": {
          "application/json": {
            "INCORRECT_AMOUNT": {
              "summary": "Incorrect amount",
              "value": {
                "error": {
                  "code": "INCORRECT_AMOUNT",
                  "message": "Incorrect amount"
                }
              }
            },
            "INCORRECT_INVOICE": {
              "summary": "Incorrect invoice",
              "value": {
                "error": {
                  "code": "INCORRECT_INVOICE",
                  "message": "Incorrect invoice"
                }
              }
            },
            "INVALID_PARAMETER": {
              "summary": "Invalid parameter",
              "value": {
                "error": {
                  "code": "INVALID_PARAMETER",
                  "message": "Invalid parameter"
                }
              }
            },
            "INVALID_SIGNATURE": {
              "summary": "Invalid signature",
              "value": {
                "error": {
                  "code": "INVALID_SIGNATURE",
                  "message": "Invalid signature"
                }
              }
            },
            "INVALID_USER": {
              "summary": "Invalid user",
              "value": {
                "error": {
                  "code": "INVALID_USER",
                  "message": "Invalid user"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "ユーザー検証",
      "tags": [
        "user-validation"
      ]
    },
    {
      "name": "決済ソリューション",
      "tags": [
        "payments"
      ]
    },
    {
      "name": "ゲームサービス",
      "tags": [
        "combined-webhooks",
        "separate-webhooks",
        "personalization"
      ]
    },
    {
      "name": "不正決済防止",
      "tags": [
        "anti-fraud"
      ]
    },
    {
      "name": "サブスクリプション",
      "tags": [
        "subscriptions"
      ]
    }
  ]
}