# トークンを作成する

任意のユーザーパラメータを持つトークンを作成することができます。トークンを取得する際にこれらのパラメータを送信し、決済が成功した後にパラメータを受信します。トー
クンには、このドキュメントで説明されているか、ユーザーが事前定義したパラメータのみを含めることができます。

パラメータが間違った形式で送信された場合、またはタイプが間違っている場合、トークンは発行されません。JSON本文にエラーの説明が含まれる 422 HTTP 
コードを受け取ります。extended_messageでは、どのようなパラメータが不正に送信されたかという情報が表示されます。

デフォルトでは、トークンの有効期間は24時間です。この値を変更したい場合は、カスタマー・サクセス・マネージャーに連絡するか、csm@xsolla.comにメールを送信してください。アドミンページで作成された会社のすべてのプロジェクトに対して、新しい値が有効に
なります。


通知このAPIメソッドを呼び出した後に取得したトークンは、他のリクエストの認証にのみ使用することができます。サブスクリプション製品を統合した場合にのみ、このトークンを使用して決済UIを開くことができます。決済UIを新しいウィンドウで開くには、以下のリンクをご利用ください：https://secure.xsolla.com/paystation4/?token={token}で{token} 受信したトークン。テスト目的には、以下のリンクを使用してください：https://sandbox-secure.xsolla.com/paystation4/?token={token}。





通知APIコールにproject_idパスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。

Endpoint: POST /merchants/{merchant_id}/token
Version: 2.0
Security: basicAuth

## Path parameters:

  - `merchant_id` (integer, required)
    マーチャントID。

## Request fields (application/json):

  - `custom_parameters` (object)
    このオブジェクトには、不正対策フィルターを設定するためのパラメータが含まれています。パラメータのリストを以下に示します。カスタムパラメータを追加するには、カスタマーサクセスマネージャーにご連絡いただくか、[csm@xsolla.com](mailto:csm@xsolla.com)まで電子メールをお送りください。

  - `custom_parameters.active_date` (string)
    [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式の最終閲覧日。

  - `custom_parameters.additional_verification` (boolean)
    プレイヤーがアカウント承認手続きを使用するかどうかを示します。

  - `custom_parameters.character_customized` (boolean)
    プレイヤーがキャラクターをカスタマイズしたかどうかを示します。

  - `custom_parameters.chat_activity` (boolean)
    プレイヤーがチャット機能を使用するかどうかを示します。

  - `custom_parameters.completed_tasks` (integer)
    完了したタスクや目標の数。

  - `custom_parameters.forum_activity` (boolean)
    プレイヤーがフォーラム機能を使用するかどうかを示す。

  - `custom_parameters.items_used` (boolean)
    プレイヤーが購入したゲームアイテムを使用するかどうかを示します。

  - `custom_parameters.karma_points` (integer)
    プレイヤーのカルマ値。

  - `custom_parameters.last_change_password_date` (string)
    [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)に沿ったパスワード最終更新日。

  - `custom_parameters.non_premium_currency` (number)
    非プレミアム通貨の金額。

  - `custom_parameters.notifications_enabled` (boolean)
    プレイヤーが通知を有効化したかどうかを示します。

  - `custom_parameters.profile_completed` (boolean)
    プレイヤーがプロフィールに追加情報を入力したかどうかを示します。

  - `custom_parameters.profile_image_added` (boolean)
    プレイヤーがプロフィール画像をアップロードしたかどうかを示します。

  - `custom_parameters.pvp_activity` (boolean)
    PvP（プレイヤー対プレイヤー）のバトルに参加するかどうか。

  - `custom_parameters.registration_date` (string)
    [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式のアカウント作成日。

  - `custom_parameters.session_time` (string)
    [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)に沿った平均セッション時間。

  - `custom_parameters.social_networks_added` (boolean)
    プレイヤーがソーシャルメディアプロファイルを接続しているかを示します。

  - `custom_parameters.total_bans` (integer)
    チャットやフォーラムでプレイヤーが禁止された回数。

  - `custom_parameters.total_characters` (integer)
    ゲーム内のキャラクターの数。

  - `custom_parameters.total_clans` (integer)
    プレイヤーがメンバーになっているクランの数。

  - `custom_parameters.total_friends` (integer)
    友達の数。

  - `custom_parameters.total_game_events` (integer)
    プレイヤーが参加したゲーム内イベントの数。

  - `custom_parameters.total_gifts` (integer)
    プレイヤーが送受信したゲーム内の贈り物の数。

  - `custom_parameters.total_hours` (integer)
    合計ゲーム時間数。

  - `custom_parameters.total_inventory_value` (number)
    インベントリ総額（ゲーム内通貨）。

  - `custom_parameters.total_sum` (number)
    総支払額。

  - `custom_parameters.tutorial_completed` (boolean)
    プレイヤーがゲームのチュートリアルを完了したかどうかを示します。

  - `custom_parameters.unlocked_achievements` (integer)
    達成した実績の数。

  - `custom_parameters.user_level` (integer)
    プレイヤーのレベル、評判、またはランク。

  - `custom_parameters.win_rate` (integer)
    勝率。

  - `purchase` (object)
    購入の詳細を含むオブジェクト。

  - `purchase.is_lootbox` (boolean)
    アイテムがルートボックスであるかどうか。

  - `purchase.subscription` (object)
    サブスクリプションデータ（オブジェクト）。

  - `purchase.subscription.available_plans` (array)
    決済インターフェイスに表示するサブスクリプションプラン（配列）。

  - `purchase.subscription.currency` (string)
    すべての計算で使用するサブスクリプションプランの通貨。

  - `purchase.subscription.operation` (string)
    ユーザーのサブスクリプションプランに適用される操作の種類。サブスクリプションプランを変更する場合は、値change_planを渡します。purchase.subscription.plan_idパラメーターに新しいプランIDを指定してください。

  - `purchase.subscription.plan_id` (string)
    サブスクリプションプランの外部ID。これは、パブリッシャーアカウントのサブスクリプション > サブスクリプションプランセクションで確認できます。

  - `purchase.subscription.product_id` (string)
    製品ID。

  - `purchase.subscription.trial_days` (integer)
    試用期間（日）。

  - `settings` (object)
    ユーザーの決済プロセスと決済UIを構成するための設定。

  - `settings.cancel_url` (string)
    決済を完了する前にユーザーが決済UIを閉じた際にリダイレクトされるページのURLです。このパラメータは、settings.​ui.​desktop.​headerまたはsettings.​ui.​mobileオブジェクトを使用して決済UIを閉じるボタンを設定している場合にのみ機能します。ボタンは設定されているものの、このパラメータでURLが渡されない場合は、settings.return_urlパラメータで渡されたURLが使用されます。

  - `settings.currency` (string)
    標準の決済通貨。[ISO 4217](https://developers.xsolla.com/ja/doc/pay-station/references/supported-currencies/)3文字通貨コード。

  - `settings.external_id` (string)
    ゲーム内のトランザクションID。ユーザーの支払いごとに一意である必要があります。 詳細については、説明文書を参照してください。

  - `settings.language` (string)
    インターフェース言語。2文字の小文字[言語コード](https://developers.xsolla.com/ja/doc/pay-station/features/localization/)。

  - `settings.mode` (string)
    決済処理をテストするには、sandboxに設定します。この場合、https://sandbox-secure.xsolla.comを使用してテスト決済インターフェースにアクセスしてください。

  - `settings.payment_method` (integer)
    決済方法のID。

  - `settings.payment_widget` (string)
    支払いウィジェットです。paybycashまたはgiftcardが選択できます。このパラメータが設定されている場合、ユーザーはPay by CashまたはGift Cardsウィジェットにそれぞれリダイレクトされます。
    Enum: "paybycash", "giftcard"

  - `settings.project_id` (integer, required)
    ゲームのエクソラID。パブリッシャ―アカウントにあります。

  - `settings.redirect_policy` (object)
    リダイレクトポリシーの設定（オブジェクト）。

  - `settings.redirect_policy.delay` (integer)
    ユーザーがリターンURLに自動的にリダイレクトされるまでの遅延時間（秒）。

  - `settings.redirect_policy.manual_redirection_action` (string)
    決済ステーション動作はユーザーが「閉じる」ボタンや「ゲームに戻る」ボタンをクリックすること​によって引き起こされます。redirect（デフォルト）とpostmessageにすることができます。redirectに設定すると、ユーザーはトークンで渡された、またはパブリッシャーアカウントで指定されたURLにリダイレクトされます。postmessageに設定すると、ユーザーは他のページにリダイレクトされません。「閉じる」アイコンをクリックすると、closeイベントが開始され、「ゲームに戻る」をクリックすると、returnイベントが開始されます。
    Enum: "redirect", "postmessage"

  - `settings.redirect_policy.redirect_button_caption` (string)
    手動リダイレクト用のボタンのテキスト。

  - `settings.redirect_policy.redirect_conditions` (string)
    ユーザーがリターンURLにリダイレクトされる決済状態。none、successful、successful_or_canсeled、またはanyのいずれかとなります。
    Enum: "none", "successful", "successful_or_canceled", "any"

  - `settings.redirect_policy.show_redirect_countdown` (boolean)
    決済ステータスページにリダイレクトのカウントダウンタイマーを表示するかどうか。カウントダウンの長さは、settings.redirect_policy.delayパラメータで渡された値によって決定されます。

  - `settings.redirect_policy.status_for_manual_redirection` (string)
    リターンURLへのリダイレクトボタンが表示される決済状態。none、successful、successful_or_canсeled、またはanyのいずれかとなります。
    Enum: "none", "successful", "successful_or_canceled", "any"

  - `settings.return_url` (string)
    決済後にユーザーがリダイレクトされるページのURL。リダイレクトの構成の詳細については、説明文書を参照してください。

  - `settings.ui` (object)
    インタフェース設定（オブジェクト）。

  - `settings.ui.alternative_first_screen` (string)
    決済UI画面を開いたときの代替ビューです。たとえば、優先度の高い決済方法を表示することができます。
    Enum: "apple-pay", "compact_list"

  - `settings.ui.apple_pay_quick_payment_button` (boolean)
    サポートされているデバイスで、決済UIの上部にApple 
Payでのクイック支払いボタンを表示するかどうか。デフォルトはtrueです。falseに設定した場合、Apple Payは [PayRank](/ja/doc/pay-station/how-to/how-to-manage-top-payment-methods/)のアルゴリズムに従って、決済方法のリストに表示されます。


注意Androidデバイスや、Apple Payでの支払いをサポートしていないその他のデバイスでは、このパラメータの値に関わらず、決済方法のリストから非表示になります。

  - `settings.ui.components` (object)
    メニュー設定（オブジェクト）。

  - `settings.ui.components.subscriptions` (object)
    サブスクリプションプランのサブメニュー（オブジェクト）。

  - `settings.ui.components.subscriptions.hidden` (boolean)
    サブメニューを表示するかどうかを示します。

  - `settings.ui.components.subscriptions.order` (integer)
    メニュー内のサブメニューの位置。

  - `settings.ui.components.virtual_currency` (object)
    仮想通貨サブメニュー。

  - `settings.ui.components.virtual_currency.custom_amount` (boolean)
    ユーザーが任意の数の仮想通貨を決済インターフェースに入力できるかどうかを示します。

  - `settings.ui.components.virtual_currency.hidden` (boolean)
    サブメニューを表示するかどうかを示します。

  - `settings.ui.components.virtual_currency.order` (integer)
    メニュー内のサブメニューの位置。

  - `settings.ui.components.virtual_items` (object)
    仮想アイテムサブメニュー。

  - `settings.ui.components.virtual_items.hidden` (boolean)
    サブメニューを表示するかどうかを示します。

  - `settings.ui.components.virtual_items.order` (integer)
    メニュー内のサブメニューの位置。

  - `settings.ui.components.virtual_items.selected_group` (string)
    仮想アイテムタブを開いた後に表示するグループ。

  - `settings.ui.components.virtual_items.selected_item` (string)
    仮想アイテムタブを開いた後に表示されるアイテム（アイテムSKU）。

  - `settings.ui.currency_format` (string)
    codeに設定すると、決済UIに3 文字の[ISO 4217](https://developers.xsolla.com/ja/doc/pay-station/references/supported-currencies/)通貨コードが表示されます。 デフォルトでは、3文字の通貨コードの代わりに通貨記号が表示されます。

  - `settings.ui.desktop` (object)
    デスクトップバージョン（オブジェクト）のインターフェース設定。

  - `settings.ui.desktop.header` (object)
    ヘッダー設定。

  - `settings.ui.desktop.header.close_button` (boolean)
    決済UIを閉じるボタンを表示するかどうかを指定します。ユーザーがこのボタンをクリックすると、決済UIが閉じられ、settings.cancel_urlパラメータで渡されたURLにリダイレクトされます。このパラメータでURLが渡されない場合は、代わりにsettings.return_urlパラメータで渡されたURLが使用されます。

  - `settings.ui.desktop.header.close_button_icon` (string)
    決済UIの「閉じる」ボタンのアイコン。
    Enum: "arrow", "cross"

  - `settings.ui.desktop.header.is_visible` (boolean)
    決済インターフェースにヘッダーを表示するかどうかを示します。

  - `settings.ui.desktop.header.type` (string)
    ヘッダーを表示する方法。compact（プロジェクト名とユーザーIDを隠す）またはnormal（既定）に指定できます。
    Enum: "compact", "normal"

  - `settings.ui.desktop.header.visible_logo` (boolean)
    trueの場合、ロゴはヘッダーに表示されます。画像をアップロードするには、[アドミンページ](https://publisher.xsolla.com/)でプロジェクトを開き、ペイステション > 設定セクションに移動してください。

  - `settings.ui.desktop.header.visible_name` (boolean)
    ヘッダーにプロジェクト名を表示するかどうかを示します。

  - `settings.ui.desktop.header.visible_purchase` (boolean)
    ヘッダーに購入説明（purchase.description.value）を表示するか示します。デフォルトはtrueです。

  - `settings.ui.desktop.subscription_list` (object)
    サブスクリプションプラン（オブジェクト）の一覧の設定。

  - `settings.ui.desktop.subscription_list.description` (string)
    決済インターフェースの利用可能なサブスクリプションプランの一覧上に表示されるテキスト。

  - `settings.ui.desktop.subscription_list.display_local_price` (boolean)
    trueの場合、ユーザーの現地通貨が購読プランに設定されている通貨と異なる場合、ユーザーは両方の価格を見ることができます。1つは現地通貨で、もう1つは基本通貨で表示されます。

  - `settings.ui.gp_quick_payment_button` (boolean)
    Google Payの決済方法の表示方法。trueの場合、Google Payによるクイック決済ボタンは、ユーザーのデバイスやブラウザに関係なく、決済UIの最上部に表示されます。falseの場合、Google Payは[PayRank](/ja/doc/pay-station/how-to/how-to-manage-top-payment-methods/)アルゴリズムに従って決済方法リスト内に表示されます。このパラメータが渡されない場合、Google PayはSafariを除くすべてのユーザーのデバイスやブラウザの決済UIの最上部に表示されます。Safariでは、決済方法リスト内に表示されます。

  - `settings.ui.header` (object)

  - `settings.ui.header.visible_virtual_currency_balance` (boolean)
    この要素を決済インターフェースで非示にできるかどうかを示します。既定ではtrueです。

  - `settings.ui.is_cart_open_by_default` (boolean)
    決済UIにおける、カート内のアイテムリストと金額詳細の表示についてです。trueの場合、情報が展開されたビューで表示されます。false（デフォルト）またはパラメータが渡されない場合、情報は折りたたまれたビューで表示されます。

  - `settings.ui.is_independent_windows` (boolean)
    埋め込みランチャーのブラウザ（WebView）から、ユーザーのデフォルトのブラウザにリダイレクトして購入させるかどうか。デフォルトではfalseです。

  - `settings.ui.is_language_selector_hidden` (boolean)
    決済ページで言語セレクターが非表示になっているかどうか。デフォルトではfalseに設定されており、セレクターは表示されます。

  - `settings.ui.is_payment_methods_list_mode` (boolean)
    決済UIを開く際に、ユーザーの国で利用可能な決済方法のリストを表示するかどうか。falseの場合（デフォルト）、settings.payment_methodパラメータで渡された決済方法、または[PayRankアルゴリズム](https://developers.xsolla.com/ja/solutions/payments/payment-ui-management/top-payment-methods-management/)で選択された方法が表示されます。

  - `settings.ui.is_prevent_external_link_open` (boolean)
    リンクを外部リソースにリダイレクトするかどうかを無効にします。デフォルトはfalseです。外部リンクをクリックすると、external-link-openイベントがpostMessageメカニズムを介して送信されます。urlパラメータには、リダイレクト先のリンクのアドレスが渡されます。

  - `settings.ui.is_search_field_hidden` (boolean)
    決済UIに決済方法検索バーを表示するかどうか。trueの場合、検索バーは隠されます。デフォルトではfalseです。

  - `settings.ui.is_show_close_widget_warning` (boolean)
    支払いページを閉じる前に、×アイコンの上にカーソルを置いたときに取引処理に関する警告を表示するかどうか。falseが渡された場合、またはパラメータが渡されなかった場合、警告は表示されません。デフォルトではtrueです。

  - `settings.ui.is_three_ds_independent_windows` (boolean)
    3-Dセキュア検証が新しいブラウザウィンドウで開くかどうか。セットアップでコンテンツセキュリティポリシー（CSP）が適用される場合は、trueに設定します。

  - `settings.ui.layout` (string)
    決済UIの主要要素の位置。ゲーム内で決済UIを開いたり、注文や決済方法に関する情報の列を入れ替えたりすることができます。詳細については、[カスタマイズに関する説明](https://developers.xsolla.com/ja/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_layout)を参照してください。
    Enum: "embed", "column_reverse", "embed_column_reverse"

  - `settings.ui.mobile` (object)

  - `settings.ui.mobile.header` (object)

  - `settings.ui.mobile.header.close_button` (boolean)
    モバイル版の決済UIを閉じるボタンを表示するかどうかを指定します。ユーザーがこのボタンをクリックすると、決済UIが閉じられ、settings.cancel_urlパラメータで渡されたURLにリダイレクトされます。このパラメータでURLが渡されない場合は、代わりにsettings.return_urlパラメータで渡されたURLが使用されます。

  - `settings.ui.mobile.header.close_button_icon` (string)
    決済UIの「閉じる」ボタンのアイコン。
    Enum: "arrow", "cross"

  - `settings.ui.mode` (string)
    保存された決済方法を管理するための決済UIの表示モード。user_accountに設定するか、省略できます。このモードでは、ユーザーは言語の変更、新しい決済
方法の追加、および既存の決済方法の削除のみを行うことができます。


注意このパラメータが渡された場合、リダイレクトボタンは表示されません。決済方法を保存した後にユーザーをリダイレクトするには、自動リダイレクトを設定してください。

  - `settings.ui.theme` (string)
    決済UIのテーマ。ライトテーマ（デフォルト）の場合は63295a9a2e47fab76f7708e1、ダークテーマの場合は63295aab2e47fab76f7708e3を指定できます。[カスタムテーマを作成](https://developers.xsolla.com/ja/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_in_token)して、そのIDをこのパラメータに渡すこともできます。
    Enum: "63295a9a2e47fab76f7708e1", "63295aab2e47fab76f7708e3"

  - `settings.ui.user_account` (object)
    ユーザーアカウントの詳細（オブジェクト）。

  - `settings.ui.user_account.payment_accounts` (object)
    保存したメソッドセクション。

  - `settings.ui.user_account.payment_accounts.enable` (boolean)
    決済方法の編集ページに移動する決済UIに鉛筆アイコンを表示するかどうかを指定します。デフォルトはtrueです。

  - `settings.ui.user_account.payment_accounts.order` (integer)
    決済UIのドロップダウンリストにおけるセクションの位置。settings.ui.user_account.payment_accounts.enableが渡された場合に必須です。

  - `user` (object)
    ユーザー詳細。

  - `user.age` (integer)
    ユーザーの年齢。

  - `user.attributes` (object)
    キー値ペアの有効なJSONセットとして表される、アイテムリストをフィルタリングするためのユーザー属性。

  - `user.country` (object)

  - `user.country.allow_modify` (boolean)
    ユーザーが決済UIで国を変更できるかどうか。トークンにcountry.valueが渡された場合、デフォルトではfalseとなります。

  - `user.country.value` (string)
    ユーザーの国。2文字の国コード（大文字）は、[ISO 3166-1 alpha-2 standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)に従って使用されます。

  - `user.email` (object)
    user.emailオブジェクトは、不正対策モデルの構築に不可欠な要素であり、受け入れ率の向上に貢献します。それは、エクソラと決済システムの両方の要件です。パラメータが渡されない場合は、決済ページにメール入力の必須項目が表示されます。ユーザーは、パラメータに渡された、または決済ページで入力された電子メールに購入領収書を受け取ります。

  - `user.email.allow_modify` (boolean)
    決済UIでユーザーが自分のメールアドレスを入力できるかどうか。user.email.valueパラメータがトークンで渡される場合、値はデフォルトでfalseです。

  - `user.email.value` (string, required)
    ユーザーのメールアドレス。[RFC 822](https://www.w3.org/Protocols/rfc822/#z8)で規定された書式を厳密に守らなければなりません。

  - `user.id` (object, required)

  - `user.id.value` (string, required)
    プレイヤー側に保存されているゲーム内の一意のユーザーID。必ず既存のユーザーIDを渡してください。エラーが発生した場合は、[よくある質問への回答](/ja/doc/pay-station/references/faq/#faq_validation)を参照してください。

  - `user.is_legal` (boolean)
    ユーザーが法人かを示します。

  - `user.legal` (object)
    法人情報を含むオブジェクトです。user.is_legalがtrueの場合は、オブジェクトとその全パラメーターが必要です。

  - `user.legal.address` (string)
    最後まで記載した法的住所です。

  - `user.legal.country` (string)
    設立国。[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)に従って大文字2文字の国コードを使用します。

  - `user.legal.name` (string)
    法人のフルネームです。

  - `user.legal.vat_id` (string)
    納税者個別のID。

  - `user.name` (object)

  - `user.name.allow_modify` (boolean)
    決済UIでユーザーが自分の名前を入力できるかどうか。user.name.valueパラメータがトークンで渡される場合、値はデフォルトでfalseです。

  - `user.name.value` (string)
    ユーザーのスクリーン名。

  - `user.phone` (object,null)

  - `user.phone.value` (string)
    ユーザーの電話番号。

  - `user.public_id` (object)

  - `user.public_id.value` (string)
    ユーザーを一意に識別し、ユーザーに知られているパラメーター（電子メール、スクリーン名など）。ユーザーがゲームストア外で購入することを可能にします（例えば、電子キオスクを介して）。

  - `user.steam_id` (object)

  - `user.steam_id.value` (string)
    Steam ID。

  - `user.tracking_id` (object)

  - `user.tracking_id.value` (string)
    一意のユーザーID — マーケティングキャンペーンで使用されます。数字とラテン文字を含めることができます。

  - `user.utm` (object)
    トラフィック属性（オブジェクト）。

  - `user.utm.utm_campaign` (string)
    カタカナ表記、または英語に翻訳されたキャンペーンのタイトル。

  - `user.utm.utm_content` (string)
    キャンペーンのコンテンツ。

  - `user.utm.utm_medium` (string)
    トラフィックチャネル（コンテンツ広告、メディア広告、Eメールリストなど）。

  - `user.utm.utm_source` (string)
    トラフィックソース。

  - `user.utm.utm_term` (string)
    キャンペーンキーワード。設定すると、統計は特定の検索クエリではなく広告ターゲティングに使用されるキーワードに基づきます。Googleアナリティクスでは、指定されたutm_termは一般検索語句レポートの一部です。

## Response 200 fields (application/json):

  - `token` (string)

## Response 422 fields (application/json):

  - `extended_message` (object)

  - `extended_message.global_errors` (array)

  - `extended_message.property_errors` (object)
    オブジェクトには、パラメータ名とエラー説明が含まれています。

  - `http_status_code` (integer)

  - `message` (string)

  - `request_id` (string)


