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<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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type":"payment_account_add",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "ip": "127.0.0.1",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US",
                    "zip": "12345"
                },
                "payment_account": {
                    "id": "12345678",
                    "name": "email@example.com",
                    "payment_method": "24",
                    "country": "US",
                    "type": "paypal"
                }
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 255
            content-type:   application/json
            authorization:  Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843

            {
                "notification_type": "payment_account_add",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "ip": "127.0.0.1",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US",
                    "zip": "12345"
                },
                "payment_account": {
                    "id": "12345678",
                    "name": "email@example.com",
                    "payment_method": "24",
                    "country": "US",
                    "type": "paypal"
                }
            }
  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' \

            -X POST \

            -H 'authorization: Signature
            32c64a80d2527dc08906ae1891bac4489509b9f6' \

            -d '{
              "event": {
                "action": "adding",
                "date_of_last_action": "2020-11-27T10:09:05+03:00",
                "parameter": "email",
                "parameter_value": "email@example.com",
                "reason": "ps_reported_fraud",
                "transaction_id": "111111111",
                "project_id": "123456"
              },
              "notification_type": "afs_black_list"
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 233
            authorization: Signature 32c64a80d2527dc08906ae1891bac4489509b9f6

            {
              "event": {
                "action": "adding",
                "date_of_last_action": "2020-11-27T10:09:05+03:00",
                "parameter": "email",
                "parameter_value": "email@example.com",
                "reason": "ps_reported_fraud",
                "transaction_id": "111111111",
                "project_id": "123456"
              },
              "notification_type": "afs_black_list"
            }
  afs-rejected-transaction:
    post:
      description: >
        不正決済防止システムのチェック中にトランザクションが拒否された場合、エクソーラはウェブフックのトランザクションの詳細を「`afs_reject`」タイプでウェブ

        フックURLに送信します。このウェブフックを受信するには、カスタマーサクセスマネージャーにご連絡いただくか、<a 

        href="mailto:csm@xsolla.com">csm@xsolla.com</a>まで電子メールでお問い合わせください。


        パブリッシャーアカウントにウェブフックURLを保存すると、ウェブフックで詳細情報を受信する権限を与えることができます。これを行うには、パブリッシャーアカウントの

        <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">プロジェクト設定&gt

        ; ウェブフック&gt; 詳細設定</a> セクションで次のトグルを「アクティブ」に設定します。


        <div class="note">

        <p><strong>注意</strong></p>

        <p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、「<a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">プロジェクト設定&gt;ウェブフック&gt;テスト&gt;決済ソリューション&gt;詳細設定</a>」セクションでトグルを見つけます。</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>トグル</th>
                <th>説明</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>保存された決済方法による取引に関する情報を表示する</td>
                <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>
            </tr>
        </tbody>

        </table>
      operationId: afs-rejected-transaction
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                refund_details:
                  description: 返金の詳細（オブジェクト）。
                  properties:
                    author:
                      description: 返金要求者。
                      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
                  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' \
            -X POST \
            -d '{
              "notification_type": "afs_reject",
              "settings": {
                "project_id": 18404,
                "merchant_id": 2340
              },
              "user": {
                "ip": "127.0.0.1",
                "phone": "18777976552",
                "email": "email@example.com",
                "id": "1234567",
                "name": "John Smith",
                "country": "US"
              },
              "transaction": {
                "id": 1,
                "external_id": 1,
                "dry_run": 1,
                "agreement": 1
              },
              "refund_details": {
                "code": 4,
                "reason": "Potential fraud"
              }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
              'notification_type' => 'afs_reject',
              'settings' => array(
                'project_id' => 18404,
                'merchant_id' => 2340
              ),
              'user' => array(
                'ip' => '127.0.0.1',
                'phone' => '18777976552',
                'email' => 'email@example.com',
                'id' => '1234567',
                'country' => 'US'
              ),
              'transaction' => array(
                'id' => 87654321,
                'payment_method' => 1380,
                'dry_run' => 1
              ),
              'refund_details' => array(
                'code' => 4,
                'reason' => 'Potential fraud'
              )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 1220
            authorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7

            {
              "notification_type": "afs_reject",
              "settings": {
                "project_id": 18404,
                "merchant_id": 2340
              },
              "user": {
                "ip": "127.0.0.1",
                "phone": "18777976552",
                "email": "email@example.com",
                "id": "1234567",
                "name": "John Smith",
                "country": "US"
              },
              "transaction": {
                "id": 1,
                "external_id": 1,
                "dry_run": 1,
                "agreement": 1
              },
              "refund_details": {
                "code": 4,
                "reason": "Potential fraud"
              }
            }
  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                    "notification_type": "cancel_subscription",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "user": {
                        "id": "1234567",
                        "name": "John Smith"
                    },
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "date_end": "2015-01-22T19:25:25+04:00"
                    }
                }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'cancel_subscription',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'id' => '1234567',
                    'name' => 'John Smith'
                ),
                'subscription' => array(
                    'plan_id' => 'b5dac9c8',
                    'subscription_id' => '10',
                    'product_id' => 'Demo Product',
                    'date_create' => '2014-09-22T19:25:25+04:00',
                    'date_end' => '2015-01-22T19:25:25+04:00',
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "cancel_subscription",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user":{
                    "id": "1234567",
                    "name": "John Smith"
                },
                "subscription": {
                    "plan_id": "b5dac9c8",
                    "subscription_id": "10",
                    "product_id": "Demo Product",
                    "date_create": "2014-09-22T19:25:25+04:00",
                    "date_end": "2015-01-22T19:25:25+04:00"
                }
            }
  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                    "notification_type": "create_subscription",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "user": {
                        "id": "1234567",
                        "name": "John Smith"
                    },
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "date_next_charge": "2015-01-22T19:25:25+04:00",
                        "trial": {
                                "value": 90,
                                "type": "day"
                            },
                        "is_gift": true
                    }
                }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'create_subscription',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'id' => '1234567',
                    'name' => 'John Smith'
                ),
                'subscription' => array(
                    'plan_id' => 'b5dac9c8',
                    'subscription_id' => '10',
                    'product_id' => 'Demo Product',
                    'date_create' => '2014-09-22T19:25:25+04:00',
                    'date_next_charge' => '2015-01-22T19:25:25+04:00',
                    'trial' =>  array(
                            'value' =>  90,
                            'type' =>  'day'
                        ),
                    'is_gift' => true,
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            Host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "create_subscription",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "id": "1234567",
                    "name": "John Smith"
                },
                "subscription": {
                    "plan_id": "b5dac9c8",
                    "subscription_id": "10",
                    "product_id": "Demo Product",
                    "date_create": "2014-09-22T19:25:25+04:00",
                    "date_next_charge": "2015-01-22T19:25:25+04:00",
                    "trial": {
                            "value": 90,
                            "type": "day"
                        },
                    "is_gift": true
                }
            }
  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' \

            -X POST \

            -H 'authorization: Signature
            32c64a80d2527dc08906ae1891bac4489509b9f6' \

            -d '{
              "notification_type": "dispute",
              "action": "adding",
              "transaction": {
                "id": 123456789,
                "date_create": "2023-08-24T10:21:00+04:00",
                "total": {
                  "amount": 1,
                  "currency": "EUR"
                },
                "payment_method": "credit_debit_card"
              },
              "settings": {
                "project_id": 18404,
                "merchant_id": 2340
              },
              "user": {
                "id": "1234567",
                "email": "email@example.com",
                "country_code": "US"
              },
              "dispute": {
                "incoming_date": "2024-01-25T01:02:03+04:00",
                "reason": "not_as_described",
                "type": "retrieval",
                "status": "new"
              }
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-Type: application/json
            content-Length: 578
            authorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7

            {
              "notification_type": "dispute",
              "action": "adding",
              "transaction": {
                "id": 123456789,
                "date_create": "2023-08-24T10:21:00+04:00",
                "total": {
                  "amount": 1,
                  "currency": "EUR"
                },
                "payment_method": "credit_debit_card"
              },
              "settings": {
                "project_id": 18404,
                "merchant_id": 2340
              },
              "user": {
                "id": "1234567",
                "email": "email@example.com",
                "country_code": "US"
              },
              "dispute": {
                "incoming_date": "2024-01-25T01:02:03+04:00",
                "reason": "not_as_described",
                "type": "retrieval",
                "status": "new"
              }
            }
  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                    "notification_type": "non_renewal_subscription",
                    "settings": {
                      "project_id": 12345,
                      "merchant_id": 1234
                    },
                    "user": {
                        "id": "1234567",
                        "email": "email@example.com"
                    },
                    "subscription": {
                        "plan_id": "a1bcd2e3",
                        "subscription_id": "10",
                        "date_create": "2014-12-22T15:25:25+04:00",
                        "date_next_charge": "2015-01-22T19:25:25+04:00",
                        "currency": "USD",
                        "amount": 0.03
                    }
                }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'non_renewal_subscription',
                'settings' => array(
                  'project_id' => 12345,
                  'merchant_id' => 1234
                ),
                'user' => array(
                    'id' => '1234567',
                    'email' => 'email@example.com'
                ),
                'subscription' => array(
                    'plan_id' => 'a1bcd2e3',
                    'subscription_id' => '10',
                    'date_create' => '2014-12-22T15:25:25+04:00',
                    'date_next_charge' => '2015-01-22T19:25:25+04:00',
                    'currency' => 'USD',
                    'amount' => 0.03
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "non_renewal_subscription",
                "settings": {
                  "project_id": 12345,
                  "merchant_id": 1234
                },
                "user": {
                    "id": "1234567",
                    "email": "email@example.com"
                },
                "subscription": {
                    "plan_id": "a1bcd2e3",
                    "subscription_id": "10",
                    "date_create": "2014-12-22T15:25:25+04:00",
                    "date_next_charge": "2015-01-22T19:25:25+04:00",
                    "currency": "USD",
                    "amount": 0.03
                }
            }
  order-cancellation:
    post:
      description: >
        ユーザー、パートナー、またはシステムによって支払いがキャンセルされた場合、エクソーラは指定されたURLに<code>order_canceled</code>ウ

        ェーブフックを送信します。このウェーブフックには、キャンセルされたアイテムと決済データに関する情報と、キャンセルされた注文の詳細が含まれています。


        支払いが成功しなかった場合、ウェブフックは送信されません。例：

        * 決済UIは開かれましたが、ユーザーが注文の支払いを行われません

        * 決済UIが開かれましたが、支払いの実行中にエラーが発生しました


        推奨されるウェーブフックの処理時間は3秒以内です。
      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:
                          description: 国境を越えた取引により特定の国に課せられる源泉徴収税（オブジェクト）。
                          properties:
                            amount:
                              description: 金額。
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: 直接源泉徴収税率（%）。
                              format: float
                              type: number
                          type: object
                        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: |
                            返金イニシエーター。フィールド値は、次の表に従って渡されます：

                            <table>
                                <thead>
                                <tr>
                                    <th>返金イニシエーター</th>
                                    <th>フィールド値</th>
                                </tr>
                                </thead>
                                <tbody>
                                <tr>
                                    <td>ゲーム（API経由）。</td>
                                    <td>API</td>
                                </tr>
                                <tr>
                                    <td>パブリッシャーアカウントのユーザー（自動返金）。</td>
                                    <td>ユーザーのメールアドレス</td>
                                </tr>
                                <tr>
                                    <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>
                                    <td>support@xsolla.com</td>
                                </tr>
                                <tr>
                                    <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>
                                    <td>support@xsolla.com</td>
                                </tr>
                                </tbody>
                            </table>
                          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: >
                    ユーザーが購入したアイテムのリスト。


                    配列に含まれるパラメータのセットは、ウェブフックのバージョンによって異なります。バージョン2は、追加のパラメータが含まれています：`is_free`、`is_b

                    onus`および`is_bundle_content`。バージョンを切り替えるには、[ウェブフック設定に関する情報を更新する](/ja/api/igs/operation/update-webhook/)APIコールで`version`パラメータにその番号を渡します。
                  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "order_canceled",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": null,
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "email@example.com",
                  "country": "US"
                },
                "billing": {
                  "notification_type": "refund",
                  "settings": {
                    "project_id": 18404,
                    "merchant_id": 2340
                  },
                  "purchase": {
                          "subscription": {
                              "plan_id": "b5dac9c8",
                              "subscription_id": "10",
                              "date_create": "2014-09-22T19:25:25+04:00",
                              "currency": "USD",
                              "amount": 9.99
                          },
                          "total":{
                              "currency": "USD",
                              "amount": 200
                          }
                      },
                  "transaction": {
                          "id": 1,
                          "external_id": 1,
                          "dry_run": 1,
                          "agreement": 1
                      },
                  "refund_details": {
                          "code": 4,
                          "reason": "Potential fraud"
                      },
                  "payment_details": {
                          "sales_tax": {
                              "currency": "USD",
                              "amount": 0
                          },
                          "direct_wht": {
                              "currency": "USD",
                              "amount": 0.70
                          },
                          "xsolla_fee": {
                              "currency": "USD",
                              "amount": "10"
                          },
                          "payout": {
                              "currency": "USD",
                              "amount": "200"
                          },
                          "payment_method_fee": {
                              "currency": "USD",
                              "amount": "20"
                          },
                          "payment": {
                              "currency": "USD",
                              "amount": "230"
                          },
                          "repatriation_commission": {
                              "currency": "USD",
                              "amount": 10
                          }
                      }
                }
            }
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "order_canceled",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": null,
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "email@example.com",
                  "country": "US"
                },
                "billing": {
                  "notification_type": "refund",
                  "settings": {
                    "project_id": 18404,
                    "merchant_id": 2340
                  },
                  "purchase": {
                      "subscription": {
                          "plan_id": "b5dac9c8",
                          "subscription_id": "10",
                          "date_create": "2014-09-22T19:25:25+04:00",
                          "currency": "USD",
                          "amount": 9.99
                      },
                      "total": {
                          "currency": "USD",
                          "amount": 200
                      }
                  },
                  "transaction": {
                      "id": 1,
                      "external_id": 1,
                      "dry_run": 1,
                      "agreement": 1
                  },
                  "refund_details": {
                      "code": 4,
                      "reason": "Potential fraud"
                  },
                  "payment_details": {
                      "sales_tax": {
                          "currency": "USD",
                          "amount": 0
                      },
                      "direct_wht": {
                          "currency": "USD",
                          "amount": 0.70
                      },
                      "xsolla_fee": {
                          "currency": "USD",
                          "amount": "10"
                      },
                      "payout": {
                          "currency": "USD",
                          "amount": "200"
                      },
                      "payment_method_fee": {
                          "currency": "USD",
                          "amount": "20"
                      },
                      "payment": {
                          "currency": "USD",
                          "amount": "230"
                      },
                      "repatriation_commission": {
                          "currency": "USD",
                          "amount": 10
                      }
                    }
                  }
                }
  order-cancellation-separate:
    post:
      description: >
        ユーザー、パートナー、またはシステムによって支払いがキャンセルされた場合、エクソーラは指定されたURLに<code>order_canceled</code>ウ

        ェーブフックを送信します。このウェーブフックには、キャンセルされたアイテムに関する情報と、キャンセルされた注文の詳細が含まれています。


        支払いが成功しなかった場合、ウェブフックは送信されません。例：

        * 決済UIは開かれましたが、ユーザーが注文の支払いを行われません

        * 決済UIが開かれましたが、支払いの実行中にエラーが発生しました


        推奨されるウェーブフックの処理時間は3秒以内です。
      operationId: order-cancellation-separate
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  description: 追加情報。
                  type: object
                items:
                  description: >
                    ユーザーが購入したアイテムのリスト。


                    配列に含まれるパラメータのセットは、ウェブフックのバージョンによって異なります。バージョン2は、追加のパラメータが含まれています：`is_free`、`is_b

                    onus`および`is_bundle_content`。バージョンを切り替えるには、[ウェブフック設定に関する情報を更新する](/ja/api/igs/operation/update-webhook/)APIコールで`version`パラメータにその番号を渡します。
                  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "order_canceled",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": "[null]",
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "email@example.com",
                  "country": "US"
                }

            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "order_canceled",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": "[null]",
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "email@example.com",
                  "country": "US"
                }
            }
  partial-refund:
    post:
      description: >
        一部返金が行われた場合、エクソーラは`partial_refund`タイプのウェブフックのウェブフックURLにキャンセルされたトランザクションの詳細を送信します

        。返金プロセスの一部の詳細は、これらの[説明](/ja/doc/pay-station/features/refund/#pay_station_features_refund_how_it_works_partial_refund_flow)を参照してください。


        パブリッシャーアカウントにウェブフックURLを保存すると、ウェブフックで詳細情報を受信する権限を与えることができます。これを行うには、パブリッシャーアカウントの

        <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">プロジェクト設定&gt

        ; ウェブフック&gt; 詳細設定</a> セクションで次のトグルを「アクティブ」に設定します。


        <div class="note">

        <p><strong>注意</strong></p>

        <p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、「<a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">プロジェクト設定&gt;ウェブフック&gt;テスト&gt;決済ソリューション&gt;詳細設定</a>」セクションでトグルを見つけます。</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>トグル</th>
                <th>説明</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>保存された決済方法による取引に関する情報を表示する</td>
                <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>
            </tr>
        </tbody>

        </table>


        返金コード：


        <table>
            <thead>
            <tr>
                <th>コード</th>
                <th>理由</th>
                <th>説明</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td>1</td>
                <td>Cancellation by the user request / the game request</td>
                <td>パブリッシャーアカウントからキャンセルが開始されました。</td>
            </tr>
            <tr>
                <td>3</td>
                <td>Integration error</td>
                <td>エクソラとゲームの統合に関する問題<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            <tr>
                <td>5</td>
                <td>Test payment</td>
                <td>テストトランザクション後にキャンセル処理が実行されます。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            <tr>
                <td>7</td>
                <td>Fraud notification from PS</td>
                <td>決済システムで支払いが拒否されました。決済システムで不正の可能性が検出されました。<br /><b>推奨事項：ユーザーをブロックリストに追加してください。</b></td>
            </tr>
            <tr>
                <td>9</td>
                <td>Cancellation by the user request</td>
                <td>ユーザは何らかの理由でゲームや購入に満足していませんでした。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            <tr>
                <td>10</td>
                <td>Cancellation by the game request</td>
                <td>ゲームによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            </tbody>
        </table>
      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: |
                        返金イニシエーター。フィールド値は、次の表に従って渡されます：

                        <table>
                            <thead>
                            <tr>
                                <th>返金イニシエーター</th>
                                <th>フィールド値</th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr>
                                <td>ゲーム（API経由）。</td>
                                <td>API</td>
                            </tr>
                            <tr>
                                <td>パブリッシャーアカウントのユーザー（自動返金）。</td>
                                <td>ユーザーのメールアドレス</td>
                            </tr>
                            <tr>
                                <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            <tr>
                                <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            </tbody>
                        </table>
                      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' \
            -X POST \
            -d '{
                    "notification_type": "partial_refund",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "purchase": {
                        "checkout": {
                            "currency": "USD",
                            "amount": 50
                        },
                        "total":{
                            "currency": "USD",
                            "amount": 200
                        }
                    },
                    "user": {
                        "ip": "127.0.0.1",
                        "phone": "18777976552",
                        "email": "email@example.com",
                        "id": "1234567",
                        "name": "John Smith",
                        "country": "US"
                    },
                    "transaction": {
                        "id": 1,
                        "external_id": 1,
                        "dry_run": 1,
                        "agreement": 1,
                        "date": "2022-03-01 10:53:15"
                    },
                    "refund_details": {
                        "author": "email@example.com",
                        "date": "2022-03-01 10:56:48"
                    },
                    "payment_details": {
                        "sales_tax": {
                            "currency": "USD",
                            "amount": 0
                        },
                        "direct_wht": {
                            "currency": "USD",
                            "amount": 0.70
                        },
                        "xsolla_fee": {
                            "currency": "USD",
                            "amount": "10"
                        },
                        "payout": {
                            "currency": "USD",
                            "amount": "200"
                        },
                        "payment_method_fee": {
                            "currency": "USD",
                            "amount": "20"
                        },
                        "payment": {
                            "currency": "USD",
                            "amount": "230"
                        },
                        "repatriation_commission": {
                            "currency": "USD",
                            "amount": 10
                        }
                    }
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'partial_refund',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'purchase' => array(
                    'total' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    )
                ),
                'user' => array(
                    'ip' => '127.0.0.1',
                    'phone' => '18777976552',
                    'email' => 'email@example.com',
                    'id' => '1234567',
                    'country' => 'US'
                ),
                'transaction' => array(
                    'id' => 87654321,
                    'payment_date' => '2014-09-23T19:25:25+04:00',
                    'payment_method' => 1380,
                    'dry_run' => 1,
                    'date' => '2022-03-31 10:53:15'
                ),
                'refund_details' => array(
                        'author' => 'email@example.com',
                        'date' => '2022-03-01 10:56:48'
                ),
                'payment_details' => array(
                    'payment' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    ),
                    'vat' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'sales_tax' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'direct_wht' => array(
                        'currency' => 'USD',
                        'amount' => 70
                    ),
                    'payout_currency_rate' => 1,
                    'payout' => array(
                        'currency' => 'USD',
                        'amount' => 9.49
                    ),
                    'xsolla_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.19
                    ),
                    'payment_method_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.31
                    ),
                    'repatriation_commission' => array(
                        'currency' => 'USD',
                        'amount' => 0.2
                    )
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 1220
            authorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7

            {
                "notification_type": "partial_refund",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "purchase": {
                    "checkout": {
                        "currency": "USD",
                        "amount": 50
                    },
                    "total": {
                        "currency": "USD",
                        "amount": 200
                    }
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                },
                "transaction": {
                    "id": 1,
                    "external_id": 1,
                    "dry_run": 1,
                    "agreement": 1,
                    "date": "2022-03-31 10:53:15"
                },
                "refund_details": {
                    "author": "email@example.com",
                    "date": "2022-03-31 10:56:48"
                },
                "payment_details": {
                    "sales_tax": {
                        "currency": "USD",
                        "amount": 0
                    },
                    "direct_wht": {
                        "currency": "USD",
                        "amount": 0.70
                    },
                    "xsolla_fee": {
                        "currency": "USD",
                        "amount": "10"
                    },
                    "payout": {
                        "currency": "USD",
                        "amount": "200"
                    },
                    "payment_method_fee": {
                        "currency": "USD",
                        "amount": "20"
                    },
                    "payment": {
                        "currency": "USD",
                        "amount": "230"
                    },
                    "repatriation_commission": {
                        "currency": "USD",
                        "amount": 10
                    }
                }
            }
  payment:
    post:
      description: >
        ユーザーが支払いを完了すると、エクソーラは`payment`タイプのウェブフックで決済詳細をウェブフックURLに送信します。


        予想される応答コードについては、<b>Responses</b>セクションでは、他の応答コードも使用できます：


        <table>
            <thead>
            <tr>
                <th>応答コード</th>
                <th>説明</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td><code>200</code>、<code>201</code>、<code>204</code></td>
                <td>成功応答。</td>
            </tr>
            <tr>
                <td><code>4xx</code></td>
                <td>エラーが発生しました。たとえば、指定されたユーザーが見つからない場合や、無効な署名が渡された場合などです。</td>
            </tr>
            <tr>
                <td><code>5xx</code></td>
                <td>一時的なサーバーエラーです。この応答を受信すると、エクソーラはウェブフックの送信を自動的に再試行し、リスナーが受信を確認するまで試行間隔を徐々に長くします。最大再試行回数は48時間で12回です。</td>
            </tr>
            </tbody>
        </table>


        <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">パブリッシャーアカウン

        ト</a>でウェブフックURLを保存すると、ウェブフックで追加情報を受信するように設定することもできます。


        <div class="note">

        <p><strong>注意</strong></p>

        <p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、プロジェクトで<a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">設定
        &gt; ウェブフック &gt; テスト &gt; 決済ソリューション &gt; 詳細設定</a>セクションでトグルを見つけます。</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>トグル</th>
                <th>説明</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>保存された決済アカウントに関する情報を表示する</td>
                <td>保存された決済方法に関する情報は、<code>payment_account</code>カスタムオブジェクト。</td>
            </tr>
            <tr>
                <td>保存された決済方法による取引に関する情報を表示する</td>
                <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>
            </tr>
            <tr>
                <td>注文オブジェクトをウェブフックに追加する</td>
                <td>注文に関する情報は、<a href="/ja/webhooks/operation/payment/">決済</a>ウェブフックの<code>order</code>オブジェクトに渡されます。</td>
            </tr>
            <tr>
                <td>機密データは含まず、必要なユーザーパラメータのみを送信する</td>
                <td><p>ウェブフックでは、ユーザーに関する次の情報のみが渡されます：</p><ul><li>ID</li><li>国</li></ul></td>
            </tr>
            <tr>
                <td>カードのBINとサフィックスを表示する</td>
                <td><p>ウェブフックには、銀行カード番号に関する以下の情報が渡されます：</p><ul><li><code>card_bin</code>パラメータの最初の6桁</li><li><code>card_suffix</code>パラメータの最後の4桁</li></ul></td>
            </tr>
            <tr>
                <td>カードブランドを表示する</td>
                <td>決済に使用したカードのブランド。例えば、MastercardやVisaなど。</td>
            </tr>
        </tbody>

        </table>


        <div class="notice">

        <p><strong>お知らせ</strong></p>

        <p>ウェブフックで送信されるフィールドのセットは、以下によって異なります：<ul><li>パブリッシャーアカウントで構成された詳細設定</li><li>エクソーラ側で構成されたカスタム設定</li></ul></p><p>ご質問がある場合は、カスタマーサクセスマネージャーを連絡して、または<a
        href="mailto:csm@xsolla.com">csm@xsolla.com</a>まで電子メールを送信してお問い合わせください。</p>

        </div>
      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:
                      description: 国境を越えた取引により特定の国で適用される源泉徴収税（オブジェクト）。
                      properties:
                        amount:
                          description: 金額。
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: 国別源泉徴収税率（%）。
                          format: float
                          type: number
                      type: object
                    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' \
            -X POST \
            -d '{
                "notification_type": "payment",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "purchase": {
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "date_next_charge": "2014-10-22T19:25:25+04:00",
                        "currency": "USD",
                        "amount": 9.99
                    },
                    "checkout": {
                        "currency": "USD",
                        "amount": 50
                    },
                    "total": {
                        "currency": "USD",
                        "amount": 200
                    },
                    "promotions": [{
                        "technical_name": "Demo Promotion",
                        "id": 853
                    }],
                    "coupon": {
                        "coupon_code": "ICvj45S4FUOyy",
                        "campaign_code": "1507"
                    },
                    "order": {
                      "id": 1234
                      "lineitems": [
                      {
                        "sku": "com.xsolla.item_1",
                        "quantity": 1,
                        "price": {
                          "currency": "EUR",
                          "amount": 6.5
                          }
                      }
                      ]
                      }
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                },
                "transaction": {
                    "id": 1,
                    "external_id": 1,
                    "payment_date": "2014-09-24T20:38:16+04:00",
                    "payment_method": 1,
                    "payment_method_name": "PayPal",
                    "payment_method_order_id": 1234567890123456789,
                    "dry_run": 1,
                    "agreement": 1
                },
                "payment_details": {
                    "payment": {
                        "currency": "USD",
                        "amount": 230
                    },
                    "vat": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 20
                    },
                    "sales_tax": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 0
                    },
                    "direct_wht": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 0
                    },
                    "payout_currency_rate": "1",
                    "payout": {
                        "currency": "USD",
                        "amount": 200
                    },
                    "country_wht": {
                        "currency": "USD",
                        "amount": 2,
                        "percent": 10
                    },
                    "user_acquisition_fee": {
                        "currency": "USD",
                        "amount": 2,
                        "percent": 1
                    },
                    "xsolla_fee": {
                        "currency": "USD",
                        "amount": 10
                    },
                    "payment_method_fee": {
                        "currency": "USD",
                        "amount": 20
                    },
                    "repatriation_commission": {
                        "currency": "USD",
                        "amount": 10
                    }
                },
                "custom_parameters": {
                    "parameter1": "value1",
                    "parameter2": "value2"
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'payment',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'purchase' => array(
                    'total' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    )
                ),
                'user' => array(
                    'ip' => '127.0.0.1',
                    'phone' => '18777976552',
                    'email' => 'email@example.com',
                    'id' => '1234567',
                    'country' => 'US'
                ),
                'transaction' => array(
                    'id' => 87654321,
                    'payment_date' => '2014-09-23T19:25:25+04:00',
                    'payment_method' => 1380,
                    'payment_method_name' => 'PayPal'
                    'payment_method_order_id' => 1234567890123456789,
                    'dry_run' => 1
                ),
                'payment_details' => array(
                    'payment' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    ),
                    'vat' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'sales_tax' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'direct_wht' => array(
                        'currency' => 'USD',
                        'amount' => 70
                    ),
                    'payout_currency_rate' => '1',
                    'country_wht ' => array(
                        'currency' => 'USD',
                        'amount' => 2,
                        'percent' => 10
                    ),
                    'user_acquisition_fee' => array(
                        'currency' => 'USD',
                        'amount' => 2,
                        'percent' => 1
                    ),
                    'payout' => array(
                        'currency' => 'USD',
                        'amount' => 9.49
                    ),
                    'xsolla_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.19
                    ),
                    'payment_method_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.31
                    ),
                    'repatriation_commission' => array(
                        'currency' => 'USD',
                        'amount' => 0.2
                    )
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 1721
            authorization: Signature 34553d151e656110c656696c919f9a10e05de542

            {
                "notification_type": "payment",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "purchase":{
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "date_next_charge": "2014-10-22T19:25:25+04:00",
                        "currency": "USD",
                        "amount": 9.99
                    },
                    "checkout": {
                        "currency": "USD",
                        "amount": 50
                    },
                    "total": {
                        "currency": "USD",
                        "amount": 200
                    },
                    "promotions": [{
                        "technical_name": "Demo Promotion",
                        "id": 853
                    }],
                    "coupon": {
                        "coupon_code": "ICvj45S4FUOyy",
                        "campaign_code": "1507"
                    },
                    "order": {
                      "id": 1234
                      "lineitems": [
                      {
                        "sku": "com.xsolla.item_1",
                        "quantity": 1,
                        "price": {
                          "currency": "EUR",
                          "amount": 6.5
                          }
                      }
                      ]
                      }
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                },
                "transaction": {
                    "id": 1,
                    "external_id": 1,
                    "payment_date": "2014-09-24T20:38:16+04:00",
                    "payment_method": 1,
                    "payment_method_name": "PayPal"
                    "payment_method_order_id": 1234567890123456789,
                    "dry_run": 1,
                    "agreement": 1
                },
                "payment_details": {
                    "payment": {
                        "currency": "USD",
                        "amount": 230
                    },
                    "vat": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 20
                    },
                    "sales_tax": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 0
                    },
                    "direct_wht": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 0
                    },
                    "payout_currency_rate": "1",
                    "country_wht": {
                        "currency": "USD",
                        "amount": 2,
                        "percent": 10
                    },
                    "user_acquisition_fee": {
                        "currency": "USD",
                        "amount": 2,
                        "percent": 1
                    },
                    "payout": {
                        "currency": "USD",
                        "amount": 200
                    },
                    "xsolla_fee": {
                        "currency": "USD",
                        "amount": 10
                    },
                    "payment_method_fee": {
                        "currency": "USD",
                        "amount": 20
                    },
                    "repatriation_commission": {
                        "currency": "USD",
                        "amount": 10
                    }
                },
                "custom_parameters": {
                    "parameter1": "value1",
                    "parameter2": "value2"
                }
            }
  payment-declined:
    post:
      description: >
        決済システムによってトランザクションが拒否された場合、エクソーラは設定されたウェブフックURLに、`ps_declined`タイプのウェブフックでトランザクショ

        ンの詳細を送信します。このウェブフックは認証または支払い処理の段階で送信されます。この場合、[payment](/ja/webhooks/operation/payment/)\
        [order_paid](/ja/webhooks/operation/successful-order-payment/)ウェブフックは送信されません。


        決済システムで支払いが拒否される一般的な理由：


        *
        カードの認証が失敗した（例：技術的なエラーや銀行からの応答がないため、決済システムが認証プロセスを完了できなかった場合）または認証が拒否された（例：銀行からの応
          答があったものの、残高不足やカード情報の誤りなどにより取引を拒否した場合）。
        * 3-Dセキュア認証が失敗した、完了しなかった、またはユーザーの確認がタイムアウトした場合。

        *
        決済処理業者または加盟店契約銀行が一時的に利用不能である、あるいは口座閉鎖や無効なカード番号といった不可逆的なエラーによる確定的な拒否（ハードディクライン）が返
          された場合。根本的な問題に対処せずに再試行しても、取引の成功にはつながりません。

        以下と混同しないでください：


        *
        不正決済防止による拒否は、[afs_reject](https://developers.xsolla.com/ja/webhooks/operation/afs-rejected-transaction/)ウェブフックで報告されます。

        *
        成功した支払い後の全額返金および一部返金（[refund](https://developers.xsolla.com/ja/webhooks/operation/refund/)および[partial_refund](https://developers.xsolla.com/ja/webhooks/operation/partial-refund/)ウェブフックで報告されます）。


        <div class="note">

        <p><strong>注意</strong></p>

        <p><code>ps_declined</code>ウェブフックを受け取るには、担当のカスタマーサクセスマネージャーにご連絡いただくか、<a
        href="mailto:csm@xsolla.com">csm@xsolla.com</a>までメールでお問い合わせください。</p>

        </div>
      operationId: payment-declined
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                refund_details:
                  description: 返金の詳細（オブジェクト）。
                  properties:
                    author:
                      description: |
                        返金イニシエーター。フィールド値は、次の表に従って渡されます：

                        <table>
                            <thead>
                            <tr>
                                <th>返金イニシエーター</th>
                                <th>フィールド値</th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr>
                                <td>ゲーム（API経由）。</td>
                                <td>API</td>
                            </tr>
                            <tr>
                                <td>パブリッシャーアカウントのユーザー（自動返金）。</td>
                                <td>ユーザーのメールアドレス</td>
                            </tr>
                            <tr>
                                <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            <tr>
                                <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            </tbody>
                        </table>
                      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:
                    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' \

            -X POST \

            -H 'Accept: application/json' \

            -H 'Content-Type: application/json' \

            -H 'Authorization: Signature
            80543ba63e1e50cf05f15150fe75e7245da9a898' \

            -d '{
              "notification_type": "ps_declined",
              "settings": {
                "project_id": "18404",
                "merchant_id": "2340"
              },
              "user": {
                "ip": "127.0.0.1",
                "email": "email@example.com",
                "id": "1234567",
                "country": "US"
              },
              "transaction": {
                "id": "1",
                "dry_run": "1",
                "payment_method": "1"
              },
              "refund_details": {
                "author": "support@xsolla.com",
                "code": "8",
                "reason": "Cancellation by the PS request",
                "reason_detail": "Insufficient funds"
              }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
              'notification_type' => 'ps_declined',
              'settings' => array(
                'project_id' => '18404',
                'merchant_id' => '2340',
              ),
              'user' => array(
                'ip' => '127.0.0.1',
                'email' => 'email@example.com',
                'id' => '1234567',
                'country' => 'US',
              ),
              'transaction' => array(
                'id' => '1',
                'dry_run' => '1',
                'payment_method' => '1',
              ),
              'refund_details' => array(
                'author' => 'support@xsolla.com',
                'code' => '8',
                'reason' => 'Cancellation by the PS request',
                'reason_detail' => 'Insufficient funds',
              ),
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 338
            authorization: Signature 80543ba63e1e50cf05f15150fe75e7245da9a898

            {
              "notification_type": "ps_declined",
              "settings": {
                "project_id": "18404",
                "merchant_id": "2340"
              },
              "user": {
                "ip": "127.0.0.1",
                "email": "email@example.com",
                "id": "1234567",
                "country": "US"
              },
              "transaction": {
                "id": "1",
                "dry_run": "1",
                "payment_method": "1"
              },
              "refund_details": {
                "author": "support@xsolla.com",
                "code": "8",
                "reason": "Cancellation by the PS request",
                "reason_detail": "Insufficient funds"
              }
            }
  personalized-partner-catalog:
    post:
      description: >
        エクソラは、ユーザーがストアと対話するときに、ユーザーとプロジェクトのパラメータを含む 

        <code>partner_side_catalog</code>ウェブフックをウェブフックURLに送信します。


        応答として、ユーザが利用可能な<code>item_id</code>またはアイテムSKUのリストを返します。この場合、特定のユーザーが特定の商品を指定回数購入

        できるという情報を含めることも可能です。この機能により、ユーザーがカートに追加して購入できる商品の数やタイプを制御することができます。


        <code>partner_side_catalog</code>ウェブフックの処理時間は3秒未満にすることをお勧めします。
      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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d90d319f05df7b0f86d2485f48e7079f0f752523' \

            -d '{
                    "notification_type": "partner_side_catalog",
                    "user": {
                        "user_id": "12345",
                        "country": "US"
                    }
                }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523

            {
                "notification_type": "partner_side_catalog",
                "user": {
                  "user_id": "12345",
                  "country": "US"
                }
            }
  refund:
    post:
      description: >
        支払いがキャンセルされると、エクソーラはキャンセルされた取引の詳細を、`refund`タイプのウェブフックとしてウェブフックURLに送信します。


        ウェブフックの再試行メカニズムは、誰が返金を開始したかによって異なります：

        * 返金がお客様側で開始された場合、ウェブフックは再送されません。ウェブフックへの応答に関係なく、支払いはユーザーに返金されます。

        *
        返金がサードパーティ（例：決済システム、またはエクソーラカスタマーサポートチームなど）によって開始され、かつウェブフックへの応答として`5xx`ステータスコード
          が返された場合、ウェブフックは間隔を空けながら再送されます。最大再試行回数は、最初の試行から48時間以内に12回です。

        返金プロセスに関する詳細な情報は、こちらの[説明](/ja/doc/pay-station/features/refund/).をご参照ください。


        <div class="notice">

        <p><strong>注意</strong></p>

        <p>以下の条件がすべて満たされている場合でも、支払いはユーザーに返金されます：<ul><li>返金はエクソーラによって開始されました。</li><li>ウェーブフックに対する応答として、<code>4xx</code>ステータスコードが返された、またはすべての再試行後に応答がなかった、あるいは<code>5xx</code>ステータスコードが返された場合。</li></ul></p>

        </div>


        <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">パブリッシャーアカウン

        ト</a>でウェブフックURLを保存すると、ウェブフックで追加情報を受信するように設定することもできます。


        <div class="note">

        <p><strong>注意</strong></p>

        <p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、プロジェクトで<a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">設定
        &gt; ウェブフック &gt; テスト &gt; 決済ソリューション &gt; 詳細設定</a>セクションでトグルを見つけます。</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>トグル</th>
                <th>説明</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>保存された決済方法による取引に関する情報を表示する</td>
                <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>
            </tr>
        </tbody>

        </table>


        返金コード：


        <table>
            <thead>
            <tr>
                <th>コード</th>
                <th>理由</th>
                <th>説明</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td>1</td>
                <td>Cancellation by the user request / the game request</td>
                <td>パブリッシャーアカウントからキャンセルが開始されました。</td>
            </tr>
            <tr>
                <td>2</td>
                <td>Chargeback</td>
                <td>トランザクションのチャージバックが要求されました。</td>
            </tr>
            <tr>
                <td>3</td>
                <td>Integration error</td>
                <td>エクソラとゲームの統合に関する問題<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            <tr>
                <td>4</td>
                <td>Potential fraud</td>
                <td>不正の疑いがあります。<br /><b>推奨事項: ユーザーをブロックリストに追加してください。</b></td>
            </tr>
            <tr>
                <td>5</td>
                <td>Test payment</td>
                <td>テストトランザクション後にキャンセル処理が実行されます。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            <tr>
                <td>6</td>
                <td>User invoice expired</td>
                <td>請求書の期限が切れました（後払いモデルで使用）。</td>
            </tr>
            <tr>
                <td>7</td>
                <td>Fraud notification from PS</td>
                <td>決済システムで支払いが拒否されました。決済システムで不正の可能性が検出されました。<br /><b>推奨事項：ユーザーをブロックリストに追加してください。</b></td>
            </tr>
            <tr>
                <td>8</td>
                <td>Cancellation by the PS request</td>
                <td>決済システムによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            <tr>
                <td>9</td>
                <td>Cancellation by the user request</td>
                <td>ユーザは何らかの理由でゲームや購入に満足していませんでした。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            <tr>
                <td>10</td>
                <td>Cancellation by the game request</td>
                <td>ゲームによってキャンセルが要求されました。<br /><b>推奨事項：ブロックリストにユーザーを追加しません。</b></td>
            </tr>
            <tr>
                <td>11</td>
                <td>Account holder called to report fraud</td>
                <td>アカウント所有者がトランザクションを行わなかったと述べています。</td>
            </tr>
            <tr>
                <td>12</td>
                <td>Friendly fraud</td>
                <td>フレンドリー詐欺が報告されました。</td>
            </tr>
            <tr>
                <td>13</td>
                <td>Duplicate</td>
                <td>同じインボイスのトランザクションが重複しています。</td>
            </tr>
            </tbody>
        </table>
      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:
                      description: 国境を越えた取引により特定の国に課せられる源泉徴収税（オブジェクト）。
                      properties:
                        amount:
                          description: 金額。
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: 直接源泉徴収税率（%）。
                          format: float
                          type: number
                      type: object
                    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: |
                        返金イニシエーター。フィールド値は、次の表に従って渡されます：

                        <table>
                            <thead>
                            <tr>
                                <th>返金イニシエーター</th>
                                <th>フィールド値</th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr>
                                <td>ゲーム（API経由）。</td>
                                <td>API</td>
                            </tr>
                            <tr>
                                <td>パブリッシャーアカウントのユーザー（自動返金）。</td>
                                <td>ユーザーのメールアドレス</td>
                            </tr>
                            <tr>
                                <td>パブリッシャー アカウント ユーザー（エクソラカスタマーサポートの支援を受けて)。</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            <tr>
                                <td>エクソラ（エクソラカスタマーサポートの支援を受けて）。</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            </tbody>
                        </table>
                      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' \
            -X POST \
            -d '{
                    "notification_type": "refund",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "purchase": {
                        "subscription": {
                            "plan_id": "b5dac9c8",
                            "subscription_id": "10",
                            "date_create": "2014-09-22T19:25:25+04:00",
                            "currency": "USD",
                            "amount": 9.99
                        },
                        "checkout": {
                            "currency": "USD",
                            "amount": 50
                        },
                        "total":{
                            "currency": "USD",
                            "amount": 200
                        }
                    },
                    "user": {
                        "ip": "127.0.0.1",
                        "phone": "18777976552",
                        "email": "email@example.com",
                        "id": "1234567",
                        "name": "John Smith",
                        "country": "US"
                    },
                    "transaction": {
                        "id": 1,
                        "external_id": 1,
                        "dry_run": 1,
                        "agreement": 1
                    },
                    "refund_details": {
                        "code": 4,
                        "reason": "Potential fraud"
                    },
                    "payment_details": {
                        "sales_tax": {
                            "currency": "USD",
                            "amount": 0
                        },
                        "direct_wht": {
                            "currency": "USD",
                            "amount": 0.70
                        },
                        "xsolla_fee": {
                            "currency": "USD",
                            "amount": "10"
                        },
                        "payout": {
                            "currency": "USD",
                            "amount": "200"
                        },
                        "payment_method_fee": {
                            "currency": "USD",
                            "amount": "20"
                        },
                        "payment": {
                            "currency": "USD",
                            "amount": "230"
                        },
                        "repatriation_commission": {
                            "currency": "USD",
                            "amount": 10
                        }
                    }
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'refund',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'purchase' => array(
                    'total' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    )
                ),
                'user' => array(
                    'ip' => '127.0.0.1',
                    'phone' => '18777976552',
                    'email' => 'email@example.com',
                    'id' => '1234567',
                    'country' => 'US'
                ),
                'transaction' => array(
                    'id' => 87654321,
                    'payment_date' => '2014-09-23T19:25:25+04:00',
                    'payment_method' => 1380,
                    'dry_run' => 1
                ),
                'refund_details' => array(
                        'code' => 4,
                        'reason' => 'Potential fraud'
                ),
                'payment_details' => array(
                    'payment' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    ),
                    'vat' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'sales_tax' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'direct_wht' => array(
                        'currency' => 'USD',
                        'amount' => 70
                    ),
                    'payout_currency_rate' => 1,
                    'payout' => array(
                        'currency' => 'USD',
                        'amount' => 9.49
                    ),
                    'xsolla_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.19
                    ),
                    'payment_method_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.31
                    ),
                    'repatriation_commission' => array(
                        'currency' => 'USD',
                        'amount' => 0.2
                    )
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 1220
            authorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7

            {
                "notification_type": "refund",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "purchase": {
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "currency": "USD",
                        "amount": 9.99
                    },
                    "checkout": {
                        "currency": "USD",
                        "amount": 50
                    },
                    "total": {
                        "currency": "USD",
                        "amount": 200
                    }
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                },
                "transaction": {
                    "id": 1,
                    "external_id": 1,
                    "dry_run": 1,
                    "agreement": 1
                },
                "refund_details": {
                    "code": 4,
                    "reason": "Potential fraud"
                },
                "payment_details": {
                    "sales_tax": {
                        "currency": "USD",
                        "amount": 0
                    },
                    "direct_wht": {
                        "currency": "USD",
                        "amount": 0.70
                    },
                    "xsolla_fee": {
                        "currency": "USD",
                        "amount": "10"
                    },
                    "payout": {
                        "currency": "USD",
                        "amount": "200"
                    },
                    "payment_method_fee": {
                        "currency": "USD",
                        "amount": "20"
                    },
                    "payment": {
                        "currency": "USD",
                        "amount": "230"
                    },
                    "repatriation_commission": {
                        "currency": "USD",
                        "amount": 10
                    }
                }
            }
  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "payment_account_remove",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith"
                },
                "payment_account": {
                    "id": "12345678",
                    "name": "email@example.com",
                    "payment_method": "24",
                    "type": "paypal"
                }
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "payment_account_remove",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith"
                },
                "payment_account": {
                    "id": "12345678",
                    "name": "email@example.com",
                    "payment_method": "24",
                    "type": "paypal"
                }
            }
  successful-order-payment:
    post:
      description: >
        エクソーラはユーザーが注文の支払いに成功すると、指定したURLに<code>order_paid</code>ウェブフックを送信します。


        <code>order_paid</code>ウェブフックには、購入したアイテム、支払いデータ、取引の詳細に関する情報が含まれています。


        支払いが成功しなかった場合、<code>order_paid</code>ウェブフックは送信されません：

        * 決済フォームは開かれましたが、ユーザーは注文の支払いをしていません

        * 決済フォームが開かれましたが、支払い中にエラーが発生しました


        <code>order_paid</code>ウェブフックの処理時間は3秒未満にすることをお勧めします。


        <div class="notice">

        <p><strong>お知らせ</strong></p>

        <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>

        </div>


        予想される回答は、「<b>応答</b>」セクションに記載されています。他の応答コードを使用できます。応答コードと自動返金機能の接続に応じて、エクソーラ側のウェブ

        フック処理ロジックは以下のようになります：


        <table>
            <thead>
            <tr>
                <th>応答コード</th>
                <th>自動返金は無効になっています（デフォルト）</th>
                <th>自動返金が有効になっています</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <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>
                <td>操作なし</td>
                <td>ユーザーへの自動返金</td>
            </tr>
            <tr>
                <td><code>200</code>、<code>201</code>、<code>204</code></td>
                <td>操作なし</td>
                <td>操作なし</td>
            </tr>
            <tr>
                <td>別のコードまたはウェブフックへの応答なし</td>
                <td>指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。</td>
                <td>指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。すべてのウェブフックが送信されても正常な応答が受信されない場合、ユーザーに自動返金が発行されます。</td>
            </tr>
            </tbody>
        </table>


        自動返金機能を接続するには、カスタマーサクセスマネージャーにお問い合わせいただくか、csm@xsolla.comまで電子メールをお送りください。
      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:
                          description: 国境を越えた取引により特定の国に課せられる源泉徴収税（オブジェクト）。
                          properties:
                            amount:
                              description: 金額。
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: 直接源泉徴収税率（%）。
                              format: float
                              type: number
                          type: object
                        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: >
                    ユーザーが購入したアイテムのリスト。


                    配列に含まれるパラメータのセットは、ウェブフックのバージョンによって異なります。バージョン2は、追加のパラメータが含まれています：`is_free`、`is_b

                    onus`および`is_bundle_content`。バージョンを切り替えるには、[ウェブフック設定に関する情報を更新する](/ja/api/igs/operation/update-webhook/)APIコールで`version`パラメータにその番号を渡します。
                  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "order_paid",
                "items": [
                  {
                    "sku": "com.xsolla.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes":
                      {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": null,
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "gc_user@xsolla.com",
                  "country": "US"
                },
                "billing": {
                  "notification_type": "payment",
                  "settings": {
                    "project_id": 18404,
                    "merchant_id": 2340
                  },
                  "purchase": {
                      "subscription": {
                          "plan_id": "b5dac9c8",
                          "subscription_id": "10",
                          "product_id": "Demo Product",
                          "date_create": "2014-09-22T19:25:25+04:00",
                          "date_next_charge": "2014-10-22T19:25:25+04:00",
                          "currency": "USD",
                          "amount": 9.99
                      },
                      "total": {
                          "currency": "USD",
                          "amount": 200
                      },
                      "promotions": [{
                          "technical_name": "Demo Promotion",
                          "id": 853
                      }],
                      "coupon": {
                          "coupon_code": "ICvj45S4FUOyy",
                          "campaign_code": "1507"
                      }
                    },
                  "transaction": {
                      "id": 1,
                      "external_id": 1,
                      "payment_date": "2014-09-24T20:38:16+04:00",
                      "payment_method": 1,
                      "payment_method_name": "PayPal",
                      "payment_method_order_id": 1234567890123456789,
                      "dry_run": 1,
                      "agreement": 1
                  },
                  "payment_details": {
                      "payment": {
                          "currency": "USD",
                          "amount": 230
                      },
                      "vat": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 20
                      },
                      "sales_tax": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 0
                      },
                      "direct_wht": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 0
                      },
                      "payout_currency_rate": "1",
                      "payout": {
                          "currency": "USD",
                          "amount": 200
                      },
                      "country_wht": {
                          "currency": "USD",
                          "amount": 2,
                          "percent": 10
                      },
                      "user_acquisition_fee": {
                          "currency": "USD",
                          "amount": 2,
                          "percent": 1
                      },
                      "xsolla_fee": {
                          "currency": "USD",
                          "amount": 10
                      },
                      "payment_method_fee": {
                          "currency": "USD",
                          "amount": 20
                      },
                      "repatriation_commission": {
                          "currency": "USD",
                          "amount": 10
                      }
                  }
                }
             ,
              "custom_parameters": {
                "parameter1": "value1",
                "parameter2": "value2"
              }
            }
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "order_paid",
                "items": [
                  {
                    "sku": "com.xsolla.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes":
                      {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": null,
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "gc_user@xsolla.com",
                  "country": "US"
                },
                "billing": {
                  "notification_type": "payment",
                  "settings": {
                    "project_id": 18404,
                    "merchant_id": 2340
                  },
                  "purchase":{
                      "subscription": {
                          "plan_id": "b5dac9c8",
                          "subscription_id": "10",
                          "product_id": "Demo Product",
                          "date_create": "2014-09-22T19:25:25+04:00",
                          "date_next_charge": "2014-10-22T19:25:25+04:00",
                          "currency": "USD",
                          "amount": 9.99
                      },
                      "total": {
                          "currency": "USD",
                          "amount": 200
                      },
                      "promotions": [{
                          "technical_name": "Demo Promotion",
                          "id": 853
                      }],
                      "coupon": {
                          "coupon_code": "ICvj45S4FUOyy",
                          "campaign_code": "1507"
                      }
                  },
                  "transaction": {
                      "id": 1,
                      "external_id": 1,
                      "payment_date": "2014-09-24T20:38:16+04:00",
                      "payment_method": 1,
                      "payment_method_name": "PayPal",
                      "payment_method_order_id": 1234567890123456789,
                      "dry_run": 1,
                      "agreement": 1
                  },
                  "payment_details": {
                      "payment": {
                          "currency": "USD",
                          "amount": 230
                      },
                      "vat": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 20
                      },
                      "sales_tax": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 0
                      },
                      "direct_wht": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 0
                      },
                      "payout_currency_rate": "1",
                      "country_wht": {
                          "currency": "USD",
                          "amount": 2,
                          "percent": 10
                      },
                      "user_acquisition_fee": {
                          "currency": "USD",
                          "amount": 2,
                          "percent": 1
                      },
                      "payout": {
                          "currency": "USD",
                          "amount": 200
                      },
                      "xsolla_fee": {
                          "currency": "USD",
                          "amount": 10
                      },
                      "payment_method_fee": {
                          "currency": "USD",
                          "amount": 20
                      },
                      "repatriation_commission": {
                          "currency": "USD",
                          "amount": 10
                      }
                  }
                },
                "custom_parameters": {
                    "parameter1": "value1",
                    "parameter2": "value2"
                    }
                }
  successful-order-payment-separate:
    post:
      description: >
        エクソーラは、次の条件が満たされると、指定されたURLに<code>order_paid</code>ウェブフックを送信します：

        1. ユーザーは注文の支払いに成功しました。

        2.
        エクソーラは、[決済](/ja/webhooks/operation/payment/)ウェブフックの正常な処理に関する応答を受け取りました。


        <code>order_paid</code>ウェブフックには、購入したアイテムとトランザクションの詳細に関する情報が含まれています。


        次の場合、<code>order_paid</code>ウェブフックは送信されません：

        * 決済が失敗しました。例：
          * 決済フォームは開かれましたが、ユーザーは注文の支払いをしていません
          * 決済フォームが開かれましたが、支払い中にエラーが発生しました
        * [決済](/ja/webhooks/operation/payment/)ウェブフックの正常な処理に関する応答が受信されていません。


        <code>order_paid</code>ウェブフックの処理時間は3秒未満にすることをお勧めします。


        予想される回答は、「<b>応答</b>」セクションに記載されています。他の応答コードを使用できます。応答コードと自動返金機能の接続に応じて、エクソーラ側のウェブ

        フック処理ロジックは以下のようになります：


        <table>
            <thead>
            <tr>
                <th>応答コード</th>
                <th>自動返金は無効になっています（デフォルト）</th>
                <th>自動返金が有効になっています</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <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>
                <td>操作なし</td>
                <td>ユーザーへの自動返金</td>
            </tr>
            <tr>
                <td><code>200</code>、<code>201</code>、<code>204</code></td>
                <td>操作なし</td>
                <td>操作なし</td>
            </tr>
            <tr>
                <td>別のコードまたはウェブフックへの応答なし</td>
                <td>指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。</td>
                <td>指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。すべてのウェブフックが送信されても正常な応答が受信されない場合、ユーザーに自動返金が発行されます。</td>
            </tr>
            </tbody>
        </table>


        自動返金機能を接続するには、カスタマーサクセスマネージャーにお問い合わせいただくか、csm@xsolla.comまで電子メールをお送りください。
      operationId: successful-order-payment-separate
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  description: 追加情報。
                  type: object
                items:
                  description: >
                    ユーザーが購入したアイテムのリスト。


                    配列に含まれるパラメータのセットは、ウェブフックのバージョンによって異なります。バージョン2は、追加のパラメータが含まれています：`is_free`、`is_b

                    onus`および`is_bundle_content`。バージョンを切り替えるには、[ウェブフック設定に関する情報を更新する](/ja/api/igs/operation/update-webhook/)APIコールで`version`パラメータにその番号を渡します。
                  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "order_paid",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes":
                      {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": "[null]",
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "gc_user@xsolla.com",
                  "country": "US"
                }

            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "order_paid",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes":
                      {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": "[null]",
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "gc_user@xsolla.com",
                  "country": "US"
                }
            }
  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                    "notification_type": "update_subscription",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "user": {
                        "id": "1234567",
                        "name": "John Smith"
                    },
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_next_charge": "2015-01-22T19:25:25+04:00"
                    }
                }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'update_subscription',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'id' => '1234567',
                    'name' => 'John Smith'
                ),
                'subscription' => array(
                    'plan_id' => 'b5dac9c8',
                    'subscription_id' => '10',
                    'product_id' => 'Demo Product',
                    'date_next_charge' => '2015-01-22T19:25:25+04:00'
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "update_subscription",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "id": "1234567",
                    "name": "John Smith"
                },
                "subscription": {
                    "plan_id": "b5dac9c8",
                    "subscription_id": "10",
                    "product_id": "Demo Product",
                    "date_next_charge": "2015-01-22T19:25:25+04:00"
                }
            }
  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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                "notification_type": "user_search",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "public_id": "email@example.com"
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'user_search',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'public_id' => 'email@example.com'
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "user_search",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "public_id": "email@example.com"
                }
            }
  user-validation:
    post:
      description: >
        エクソーラはユーザーがゲームに登録されていることを確認するために、`user_validation`タイプのウェブフックをウェブフックURLに送信します。このリ

        クエストは支払いプロセスの一部として複数回送信されます：


        * ユーザーが決済UIで決済方法を選択する場合

        * ユーザーが決済フォームにデータを入力する場合（例: 銀行カードのデータやPayPal経由で支払う場合の郵便番号）

        * ユーザーが**今すぐ支払う**をクリックして決済を続行する場合

        * 支払処理が完了し、取引状況が`done`に変更された場合


        このリクエストは、任意の決済方法で支払いを行う際に送信されます。


        パブリッシャーアカウントにウェブフックURLを保存すると、ウェブフックで詳細情報を受信する権限を与えることができます。これを行うには、パブリッシャーアカウントの

        「<a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">プロジェクト設定&gt

        ; ウェブフック&gt; 詳細設定</a>」セクションで必要なトグルを「アクティブ」に設定します。


        <div class="note">

        <p><strong>注意</strong></p>

        <p>2025年1月22日以前にパブリッシャーアカウントに登録した場合は、「<a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">プロジェクト設定&gt;ウェブフック&gt;テスト&gt;決済ソリューション&gt;詳細設定</a>」セクションでトグルを見つけます。</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>トグル</th>
                <th>説明</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>機密データは含まず、必要なユーザーパラメータのみを送信する</td>
                <td><p>ウェブフックでは、ユーザーに関する次の情報のみが渡されます：</p><ul><li>ID</li><li>国</li></ul></td>
            </tr>
            <tr>
                <td>カスタムパラメータを送信する</td>
                <td><a href="/ja/api/pay-station/operation/create-token/">カスタムトークンパラメータ</a>に関する情報は、ウェブフックで渡されます。</td>
            </tr>
        </tbody>

        </table>
      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' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                "notification_type":"user_validation",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'user_validation',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'ip' => '127.0.0.1',
                    'phone' => '18777976552',
                    'email'=> 'email@example.com',
                    'id'=> '1234567',
                    'country' => 'US'
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "user_validation",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                }
            }
  user-validation-in-webshop:
    post:
      description: >-
        ユーザーがゲームに存在するかどうかを確認するために、エクソーラはウェブショップサイトからウェブフックを送信します。ウェブフックは以下のIPアドレスからに送信されます：
        `34.102.38.178`。

        <div class="note"><strong>注意</strong><br><br>

        ウェブフックはウェブショップ内でユーザーの検証にのみ使用されます。サイトビルダーでウェブフックを構成する詳細については、こちらの<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:
                  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:
                      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' \
            -X POST \
            -H 'accept: application/json' \
            -H 'content-type: application/json' \
            -d '{
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "id": "1234567",
                    "country": "US"
                }
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240

            {
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "id": "1234567",
                    "country": "US"
                }
            }
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/solutions/payments/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
    amount-float:
      description: 現金通貨での価格。
      format: float
      type: number
    items.promotions:
      description: |-
        注文内の特定のアイテムに適用されたプロモーションです。
        この配列は以下のいずれかのケースで返されます：
          - 特定のアイテムに対して割引プロモーションが設定されている場合。
          - **選択されたアイテムの割引**設定がされたプロモーションコードが適用されている場合。

        アイテムレベルのプロモーションが適用されていない場合は、空の配列が返されます。
      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: >-
        アイテムタイプ。

        仮想通貨パッケージを含む`bundle`タイプアイテムの場合は、`items`配列には以下が表示されます：
          - バンドルまたは仮想通貨パッケージのパラメータ
          - バンドルに含まれるアイテムまたはパッケージに含まれる通貨
          
        `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: |-
        注文全体に適用されたプロモーションです。
        この配列は、次のいずれかのケースで返されます。：
          - **購入割引** 設定のプロモーションコードなど、購入合計金額に影響するプロモーションが設定されている場合。
          - 購入に割引は適用されませんが、ボーナスアイテムが注文に追加される場合。この場合、割引ありのコスト（[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)）の値が返され、割引が適用されていないため両者は同じ値になります。

        注文レベルのプロモーションが適用されていない場合は、空の配列が返されます。
      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`を渡します。


        このパラメータを使用すると、カタログに購入制限情報が表示されません。カタログに購入制限情報（例：`7/10`）を表示するには、`quantity`の代わりに`available`と`total`を渡します。
      type: integer
    available:
      description: |-
        ユーザーが購入可能な残りアイテム数。

        カタログに購入制限情報（例：`7/10`）を表示するには、`available`と`total`ペアを渡します。
      type: integer
    total:
      description: |-
        1人のユーザーが購入できるアイテムの最大数。

        カタログに購入制限情報（例：`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
  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
