コンテンツへスキップ

Pay Station API (2.0)

概要

  • バージョン: 2.0.0
  • サーバー:
    • https://api.xsolla.com/api

ペイステションは、ゲームストアでのゲーム内課金に便利なUIをユーザーに提供することで、パートナー様の商品を収益化することができます。決済UIを開くための設定は、 以下の説明書を参照してください。

Pay Station APIは以下のコールグループを提供します:

  • トークン — 決済UIを介したさらなる支払い処理のために、任意のユーザーパラメータを使用してトークンを生成するAPIコールが含まれています。
  • トークン化 決済UIを開いたりユーザーの関与を必要とせずに、支払いを安全に処理するためのAPIコールが含まれています。
  • レポート — ユーザーのトランザクションに関するデータを返し、レポートを生成し、通貨別の決済内訳を取得するためのAPIコールが含まれています。
  • 返金 — 全額および一部返金をリクエストするためのAPIコールが含まれています。
  • テスト — チャージバック処理をテストするためのAPIコールが含まれています。

決済UIの設定に関する詳細情報は、支払ソリューション連携ガイドを参照してください。

メモ

ポストマンコレクションXsolla Base APIセクションを参照して、連携に使われるAPIコールをテストすることもできます。

OpenAPI記述をダウンロード
言語
サーバー
https://api.xsolla.com/merchant/v2/
Mock server
https://xsolla.redocly.app/_mock/ja/api/pay-station/
操作

トークンを作成する

リクエスト

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

パラメータが間違った形式で送信された場合、またはタイプが間違っている場合、トークンは発行されません。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キーを使用して認可を設定する必要があります。

セキュリティ
basicAuth
パス
merchant_idinteger必須

マーチャントID。

ボディapplication/json必須
custom_parametersobject(custom_parameters)

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

custom_parameters.​active_datestring

ISO 8601形式の最終閲覧日。

custom_parameters.​additional_verificationboolean

プレイヤーがアカウント承認手続きを使用するかどうかを示します。

custom_parameters.​character_customizedboolean

プレイヤーがキャラクターをカスタマイズしたかどうかを示します。

custom_parameters.​chat_activityboolean

プレイヤーがチャット機能を使用するかどうかを示します。

custom_parameters.​completed_tasksinteger

完了したタスクや目標の数。

custom_parameters.​forum_activityboolean

プレイヤーがフォーラム機能を使用するかどうかを示す。

custom_parameters.​items_usedboolean

プレイヤーが購入したゲームアイテムを使用するかどうかを示します。

custom_parameters.​karma_pointsinteger

プレイヤーのカルマ値。

custom_parameters.​last_change_password_datestring

ISO 8601に沿ったパスワード最終更新日。

custom_parameters.​non_premium_currencynumber(float)

非プレミアム通貨の金額。

custom_parameters.​notifications_enabledboolean

プレイヤーが通知を有効化したかどうかを示します。

custom_parameters.​profile_completedboolean

プレイヤーがプロフィールに追加情報を入力したかどうかを示します。

custom_parameters.​profile_image_addedboolean

プレイヤーがプロフィール画像をアップロードしたかどうかを示します。

custom_parameters.​pvp_activityboolean

PvP(プレイヤー対プレイヤー)のバトルに参加するかどうか。

custom_parameters.​registration_datestring

ISO 8601形式のアカウント作成日。

custom_parameters.​session_timestring

ISO 8601に沿った平均セッション時間。

custom_parameters.​social_networks_addedboolean

プレイヤーがソーシャルメディアプロファイルを接続しているかを示します。

custom_parameters.​total_bansinteger

チャットやフォーラムでプレイヤーが禁止された回数。

custom_parameters.​total_charactersinteger

ゲーム内のキャラクターの数。

custom_parameters.​total_clansinteger

プレイヤーがメンバーになっているクランの数。

custom_parameters.​total_friendsinteger

友達の数。

custom_parameters.​total_game_eventsinteger

プレイヤーが参加したゲーム内イベントの数。

custom_parameters.​total_giftsinteger

プレイヤーが送受信したゲーム内の贈り物の数。

custom_parameters.​total_hoursinteger

合計ゲーム時間数。

custom_parameters.​total_inventory_valuenumber(float)

インベントリ総額(ゲーム内通貨)。

custom_parameters.​total_sumnumber(float)

総支払額。

custom_parameters.​tutorial_completedboolean

プレイヤーがゲームのチュートリアルを完了したかどうかを示します。

custom_parameters.​unlocked_achievementsinteger

達成した実績の数。

custom_parameters.​user_levelinteger

プレイヤーのレベル、評判、またはランク。

custom_parameters.​win_rateinteger

勝率。

purchaseobject(purchase)

購入の詳細を含むオブジェクト。

purchase.​is_lootboxboolean(is_lootbox)

アイテムがルートボックスであるかどうか。

デフォルト false
purchase.​subscriptionobject(subscription)

サブスクリプションデータ(オブジェクト)。

purchase.​subscription.​available_plansArray of strings

決済インターフェイスに表示するサブスクリプションプラン(配列)。

purchase.​subscription.​currencystring

すべての計算で使用するサブスクリプションプランの通貨。

purchase.​subscription.​operationstring

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

purchase.​subscription.​plan_idstring

サブスクリプションプランの外部ID。これは、パブリッシャーアカウントのサブスクリプション > サブスクリプションプランセクションで確認できます。

purchase.​subscription.​product_idstring

製品ID。

purchase.​subscription.​trial_daysinteger

試用期間(日)。

settingsobject(settings)

ユーザーの決済プロセスと決済UIを構成するための設定。

settings.​currencystring(currency)

標準の決済通貨。ISO 42173文字通貨コード。

settings.​external_idstring(external_id)

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

settings.​languagestring(language)

インターフェース言語。2文字の小文字言語コード

settings.​modestring(mode.settings)

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

settings.​payment_methodinteger(payment_method)

決済方法のID。

settings.​payment_widgetstring(payment_widget)

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

列挙型"paybycash""giftcard"
settings.​project_idinteger(project_id)必須

ゲームのエクソラID。パブリッシャ―アカウントにあります。

settings.​redirect_policyobject(redirect_policy)

リダイレクトポリシーの設定(オブジェクト)。

settings.​redirect_policy.​delayinteger

ユーザーがリターンURLに自動的にリダイレクトされるまでの遅延時間(秒)。

settings.​redirect_policy.​manual_redirection_actionstring

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

列挙型"redirect""postmessage"
settings.​redirect_policy.​redirect_button_captionstring

手動リダイレクト用のボタンのテキスト。

settings.​redirect_policy.​redirect_conditionsstring

ユーザーがリターンURLにリダイレクトされる決済状態。nonesuccessfulsuccessful_or_canсeled、またはanyのいずれかとなります。

列挙型"none""successful""successful_or_canceled""any"
settings.​redirect_policy.​show_redirect_countdownboolean

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

デフォルト false
settings.​redirect_policy.​status_for_manual_redirectionstring

リターンURLへのリダイレクトボタンが表示される決済状態。nonesuccessfulsuccessful_or_canсeled、またはanyのいずれかとなります。

列挙型"none""successful""successful_or_canceled""any"
settings.​return_urlstring(return_url)

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

settings.​uiobject(ui)

インタフェース設定(オブジェクト)。

settings.​ui.​alternative_first_screenstring(alternative_first_screen)

決済UI起動時の代替ビュー設定。例えば、優先順位の高い決済方法を前面に表示させることができます。

apple-payに設定すると、ユーザーには主要な決済オプションとしてApple Payボタンが表示され、あわせて他の決済方法リストへのリンクが表示されます。このロジックはAndroidデバイスには適用されません。

"apple-pay"
settings.​ui.​apple_pay_quick_payment_buttonboolean(ap_quick_payment_button)

サポートされているデバイスで、決済UIの上部にApple Payでのクイック支払いボタンを表示するかどうか。デフォルトはtrueです。falseに設定した場合、Apple Payは PayRankのアルゴリズムに従って、決済方法のリストに表示されます。

注意

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

settings.​ui.​componentsobject(components)

メニュー設定(オブジェクト)。

settings.​ui.​components.​subscriptionsobject

サブスクリプションプランのサブメニュー(オブジェクト)。

settings.​ui.​components.​subscriptions.​hiddenboolean

サブメニューを表示するかどうかを示します。

settings.​ui.​components.​subscriptions.​orderinteger

メニュー内のサブメニューの位置。

settings.​ui.​components.​virtual_currencyobject

仮想通貨サブメニュー。

settings.​ui.​components.​virtual_currency.​custom_amountboolean

ユーザーが任意の数の仮想通貨を決済インターフェースに入力できるかどうかを示します。

settings.​ui.​components.​virtual_currency.​hiddenboolean

サブメニューを表示するかどうかを示します。

settings.​ui.​components.​virtual_currency.​orderinteger

メニュー内のサブメニューの位置。

settings.​ui.​components.​virtual_itemsobject

仮想アイテムサブメニュー。

settings.​ui.​components.​virtual_items.​hiddenboolean

サブメニューを表示するかどうかを示します。

settings.​ui.​components.​virtual_items.​orderinteger

メニュー内のサブメニューの位置。

settings.​ui.​components.​virtual_items.​selected_groupstring

仮想アイテムタブを開いた後に表示するグループ。

settings.​ui.​components.​virtual_items.​selected_itemstring

仮想アイテムタブを開いた後に表示されるアイテム(アイテムSKU)。

settings.​ui.​currency_formatstring(currency_format)

codeに設定すると、決済UIに3 文字のISO 4217通貨コードが表示されます。 デフォルトでは、3文字の通貨コードの代わりに通貨記号が表示されます。

settings.​ui.​desktopobject(desktop.ui)

デスクトップバージョン(オブジェクト)のインターフェース設定。

settings.​ui.​desktop.​headerobject(header.desktop)

ヘッダー設定。

settings.​ui.​desktop.​header.​close_buttonboolean

決済UIに閉じるボタンを表示するかどうか。このボタンは決済UIを閉じて、settings.return_urlパラメータで指定したURLにリダイレクトします。デフォルトはfalseです。

settings.​ui.​desktop.​header.​close_button_iconstring(close_button_icon)

決済UIの「閉じる」ボタンのアイコン。

列挙型 値説明
arrow

決済UIヘッダーの左側にある「」アイコン。

cross

決済UIヘッダーの右側にある「×」アイコン。

settings.​ui.​desktop.​header.​is_visibleboolean

決済インターフェースにヘッダーを表示するかどうかを示します。

settings.​ui.​desktop.​header.​typestring

ヘッダーを表示する方法。compact(プロジェクト名とユーザーIDを隠す)またはnormal(既定)に指定できます。

列挙型"compact""normal"
settings.​ui.​desktop.​header.​visible_logoboolean

trueの場合、ロゴはヘッダーに表示されます。画像をアップロードするには、アドミンページでプロジェクトを開き、ペイステション > 設定セクションに移動してください。

settings.​ui.​desktop.​header.​visible_nameboolean

ヘッダーにプロジェクト名を表示するかどうかを示します。

settings.​ui.​desktop.​header.​visible_purchaseboolean

ヘッダーに購入説明(purchase.description.value)を表示するか示します。デフォルトはtrueです。

settings.​ui.​desktop.​subscription_listobject(subscription_list.desktop)

サブスクリプションプラン(オブジェクト)の一覧の設定。

settings.​ui.​desktop.​subscription_list.​descriptionstring

決済インターフェースの利用可能なサブスクリプションプランの一覧上に表示されるテキスト。

settings.​ui.​desktop.​subscription_list.​display_local_priceboolean

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

settings.​ui.​gp_quick_payment_buttonboolean(gp_quick_payment_button)

Google Payの決済方法の表示方法。trueの場合、Google Payによるクイック決済ボタンは、ユーザーのデバイスやブラウザに関係なく、決済UIの最上部に表示されます。falseの場合、Google PayはPayRankアルゴリズムに従って決済方法リスト内に表示されます。このパラメータが渡されない場合、Google PayはSafariを除くすべてのユーザーのデバイスやブラウザの決済UIの最上部に表示されます。Safariでは、決済方法リスト内に表示されます。

settings.​ui.​headerobject(header.ui)
settings.​ui.​header.​visible_virtual_currency_balanceboolean

この要素を決済インターフェースで非示にできるかどうかを示します。既定ではtrueです。

settings.​ui.​is_cart_open_by_defaultboolean(is_cart_open_by_default)

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

settings.​ui.​is_independent_windowsboolean(is_independent_windows)

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

settings.​ui.​is_language_selector_hiddenboolean(is_language_selector_hidden)

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

settings.​ui.​is_payment_methods_list_modeboolean(is_payment_methods_list_mode)

決済UIを開く際に、ユーザーの国で利用可能な決済方法のリストを表示するかどうか。falseの場合(デフォルト)、settings.payment_methodパラメータで渡された決済方法、またはPayRankアルゴリズムで選択された方法が表示されます。

settings.​ui.​is_prevent_external_link_openboolean(is_prevent_external_link_open)

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

settings.​ui.​is_search_field_hiddenboolean(is_search_field_hidden)

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

settings.​ui.​is_show_close_widget_warningboolean(is_show_close_widget_warning)

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

settings.​ui.​is_three_ds_independent_windowsboolean(is_three_ds_independent_windows)

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

デフォルト false
settings.​ui.​layoutstring(layout)

決済UIの主要要素の位置。ゲーム内で決済UIを開いたり、注文や決済方法に関する情報の列を入れ替えたりすることができます。詳細については、カスタマイズに関する説明を参照してください。

列挙型"embed""column_reverse""embed_column_reverse"
settings.​ui.​mobileobject(mobile.ui)
settings.​ui.​mobile.​headerobject
settings.​ui.​mobile.​header.​close_buttonboolean

モバイル版決済ステーションに「閉じる」ボタンを表示する設定。このボタンは決済ステーションを閉じて、settings.return_urlパラメーターで指定されたURLにユーザーをリダイレクトします。デフォルトはfalseです。

settings.​ui.​mobile.​header.​close_button_iconstring(close_button_icon)

決済UIの「閉じる」ボタンのアイコン。

列挙型 値説明
arrow

決済UIヘッダーの左側にある「」アイコン。

cross

決済UIヘッダーの右側にある「×」アイコン。

settings.​ui.​modestring(mode.ui)

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

注意

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

settings.​ui.​themestring(theme.ui)

決済UIのテーマ。ライトテーマ(デフォルト)の場合は63295a9a2e47fab76f7708e1、ダークテーマの場合は63295aab2e47fab76f7708e3を指定できます。カスタムテーマを作成して、そのIDをこのパラメータに渡すこともできます。

列挙型"63295a9a2e47fab76f7708e1""63295aab2e47fab76f7708e3"
settings.​ui.​user_accountobject(user_account)

ユーザーアカウントの詳細(オブジェクト)。

settings.​ui.​user_account.​payment_accountsobject

保存したメソッドセクション。

settings.​ui.​user_account.​payment_accounts.​enableboolean

決済方法の編集ページに移動する決済UIに鉛筆アイコンを表示するかどうかを指定します。デフォルトはtrueです。

settings.​ui.​user_account.​payment_accounts.​orderinteger>= 1

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

userobject(user)

ユーザー詳細。

user.​ageinteger(age.user)

ユーザーの年齢。

user.​attributesobject(attributes.user)

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

user.​countryobject(country.user)
user.​country.​allow_modifyboolean

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

user.​country.​valuestring

ユーザーの国。2文字の国コード(大文字)は、ISO 3166-1 alpha-2 standardに従って使用されます。

user.​emailobject(email.user)

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

user.​email.​allow_modifyboolean

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

user.​email.​valuestring<= 100 characters必須

ユーザーのメールアドレス。RFC 822で規定された書式を厳密に守らなければなりません。

user.​idobject(id.user)必須
user.​id.​valuestring必須

プレイヤー側に保存されているゲーム内の一意のユーザーID。必ず既存のユーザーIDを渡してください。エラーが発生した場合は、よくある質問への回答を参照してください。

user.​is_legalboolean(is_legal.user)

ユーザーが法人かを示します。

user.​legalobject(legal.user)

法人情報を含むオブジェクトです。

user.​legal.​addressstring

最後まで記載した法的住所です。

user.​legal.​countrystring

設立国。ISO 3166-1 alpha-2に従って大文字2文字の国コードを使用します。

user.​legal.​namestring

法人のフルネームです。

user.​legal.​vat_idstring

納税者個別のID。

user.​nameobject(name.user)
user.​name.​allow_modifyboolean

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

user.​name.​valuestring

ユーザーのスクリーン名。

user.​phoneobject or null(phone.user)
user.​phone.​valuestring

ユーザーの電話番号。

user.​public_idobject(public_id.user)
user.​public_id.​valuestring

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

user.​steam_idobject(steam_id.user)
user.​steam_id.​valuestring

Steam ID。

user.​tracking_idobject(tracking_id.user)
user.​tracking_id.​valuestring= 32 characters

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

user.​utmobject(utm.user)

トラフィック属性(オブジェクト)。

user.​utm.​utm_campaignstring

カタカナ表記、または英語に翻訳されたキャンペーンのタイトル。

user.​utm.​utm_contentstring

キャンペーンのコンテンツ。

user.​utm.​utm_mediumstring

トラフィックチャネル(コンテンツ広告、メディア広告、Eメールリストなど)。

user.​utm.​utm_sourcestring

トラフィックソース。

user.​utm.​utm_termstring

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

curl -i -X POST \
  -u <username>:<password> \
  'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token' \
  -H 'Content-Type: application/json' \
  -d '{
    "settings": {
      "currency": "USD",
      "language": "en",
      "project_id": 16184,
      "ui": {
        "size": "medium"
      }
    },
    "user": {
      "email": {
        "value": "email@example.com"
      },
      "id": {
        "value": "user_2"
      },
      "name": {
        "value": "John Smith"
      }
    }
  }'

レスポンス

作成済み。

ボディapplication/json
tokenstring
レスポンス
application/json
{ "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT" }
操作
操作
操作
操作