Pay Station API v1.0

概要

このセクションでは、決済ステーションの操作方法について説明します。基本認証を利用して、メソッドを呼び出します。ストアUIを開いて安全な支払いを有効にするには、まずtokenを取得する必要があります。

エンドポイントのパス:https://api.xsolla.com

決済ステーションを開く

決済ステーションは、ユーザーがウェブサイト上でゲームやアイテムを購入できるようにする完全な決済UIです。ウェブサイトに決済UIを簡単に実装するには、当社のCDNからスクリプトをダウンロードしてください。このURLを使用して、あなたのウェブサイトにスクリプトを統合します。詳細については、GitHub リポジトリをご覧ください。

スクリプト初期化パラメータ:

パラメータ種類説明文
access_token
stringAPIから受信したトークン。 必須。
sandbox
boolean決済処理をテストするには、trueに設定します:sandbox-secure.xsolla.comsecure.xsolla.com用されます。
lightbox
objectライトボックスパラメータ(オブジェクト、デスクトップバージョンのみ)。
lightbox.width
stringライトボックスのフレーム幅。nullの場合、決済ステーションの幅に依存します。既定はnullです。
lightbox.height
stringライトボックスのフレームの高さ。nullの場合、決済ステーションの高さに依存します。既定は100%です。
lightbox.zIndex
integer配置順序を定義します。既定は1000です。
lightbox.overlayOpacity
integerオーバーレイ不透明度(0〜1)。既定は.6です。
lightbox.overlayBackground
stringオーバーレイの背景色。既定は#000000
lightbox.modal
booleanTrueの場合、ライトボックスフレームを閉じることはできません。既定はfalseです。
lightbox.closeByClick
booleanTrueの場合、オーバーレイをクリックするとライトボックスが閉じます。既定は trueです。
lightbox.closeByKeyboard
booleanTrueの場合、ESCを押すとライトボックスが閉じます。既定は trueです。
lightbox.contentBackground
stringフレームの背景色。デフォルトは#ffffff。これらの色の変更は、決済ステーション iframe自体には影響を与えず、それを保持するライトボックスの設定のみに影響を与えることに注意してください。
lightbox.contentMargin
stringフレームマージン。既定は10pxです。
lightbox.spinner
stringローディングアニメーションのインジケータの種類。xsollaまたはroundに指定できます。既定はxsollaです。
lightbox.spinnerColor
stringスピナーの色。既定値はありません。
childWindow
object決済ステーションUIを含む子ウィンドウのオプション。モバイル版でサポートされています。
childWindow.target
string決済ステーションウィンドウを開く場所。_blank_self_parentに指定できます。既定は_blankです。

このスクリプトでは、決済インターフェースのイベントを追跡することができます。イベントの種類に応じて、Webページでさまざまな操作を実行できます。

イベントの一覧:

パラメータ説明文
initウィジェットが初期化されました。
openウィジェットが開かれました。
load決済インターフェース(決済ステーション)が読み込まれました。
close決済インターフェース(決済ステーション)が閉じられています。
statusユーザーはステータスページにいます。
status-invoiceユーザーはステータスページにいます。支払いが進行中です。
status-deliveringユーザーはステータスページにいます。支払いが完了しました。支払い通知が送信されました。
status-doneユーザーはステータスページにいます。支払いはユーザーのアカウントに振り込まれます。
status-troubledユーザーはステータスページにいます。支払いに失敗しました。

自分で決済UIのオープニングを初期化したい場合は、こちらのリンクを利用してください:https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN

Note: 決済UIを開く場合にのみ、https://プレフィックス付きのリンクを使用する必要があります。

テストを試したいときは次のURLをご使用くださいhttps://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN

Notice: パラメータaccess_tokenには、プライベートなユーザーデータが含まれています。このパラメータを取得する際には、必ずサーバ間通信を使用するようにしてください。

トークン

決済をより安全に行うために、エクソラAPIは、決済ページで直接HTTP GETリクエストを使用してデータを受け取る代わりに、決済パラメータの一覧を含むトークンを使用します。決済ページを呼び出す前に、新しいトークンを取得する必要があります。トークンの有効期間は24時間です。

トークンの取得

エクソラは任意のユーザーパラメータでトークンを作成しますこれらのパラメータを送信すると、決済後に当社がこれらのパラメータを受信します。トークンにはすべてのユーザーパラメータが含まれます。

Notice: このAPIメソッドは高負荷時には使用できません。リクエストの数が多い場合、レート制限が適用される場合があります。 このAPIメソッドのレート制限については、アカウントマネージャーにお問い合わせください。

HTTPリクエスト

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token

パラメータ種類説明文
user
objectユーザーの詳細(オブジェクト)。
user.id
objectユーザーID。 必須。
user.id.value
stringユーザーID。
user.name
objectユーザーのニックネームに関するデータを含むオブジェクト。
user.name.value
stringユーザーのスクリーン名。
user.email
objectユーザーのメール(オブジェクト)。このuser.emailオブジェクトは、不正対策モデルの構築と支払処理に不可欠な部分です。これは、エクソラと決済システムの両方の要件です。このパラメーターがないと、受入率が低下する可能性があります。 必須。
user.email.value
stringユーザーのメールアドレス。RFC 822 で規定された書式を厳密に守らなければなりません。 必須。
user.phone
objectユーザーの電話番号(オブジェクト)。
user.phone.value
stringユーザーの電話番号。
user.country
objectユーザーの国(オブジェクト)。
user.country.value
stringユーザーの国。2文字の国コード(大文字)は、ISO 3166-1 alpha-2 standardに従って使用されます。
user.country.allow_modify
booleanユーザーが決済インターフェースで国を変更できるかどうか示します。既定ではfalseです。
user.attributes
objectキー値ペアの有効なJSONセットとして表される、アイテムリストをフィルタリングするためのユーザー属性。
user.steam_id
objectユーザーのSteam ID(オブジェクト)。
user.steam_id.value
stringSteam ID。
user.tracking_id
objectユーザー追跡ID(オブジェクト)。
user.tracking_id.value
string固有の追跡ID(マーケティングキャンペーンで使用)。
user.public_id.value
stringユーザーを一意に識別し、ユーザーに知られているパラメーター(電子メール、スクリーン名など)。ユーザーがゲームストア外で購入することを可能にします(例えば、電子キオスクを介して)。
user.utm
objectトラフィック属性(オブジェクト)。
user.utm.utm_source
stringトラフィックソース。
user.utm.utm_medium
stringトラフィックチャネル(コンテンツ広告、メディア広告、Eメールリストなど)。
user.utm.utm_campaign
stringカタカナ表記、または英語に翻訳されたキャンペーンのタイトル。
user.utm.utm_term
stringキャンペーンキーワード。設定すると、統計は特定の検索クエリではなく広告ターゲティングに使用されるキーワードに基づきます。Googleアナリティクスでは、指定されたutm_termは一般検索語句レポートの一部です。
user.utm.utm_content
stringキャンペーンのコンテンツ。
booleanユーザーが法人かを示します。
object法人情報を含むオブジェクトです。user.is_legalが「true」の場合は、オブジェクトとその全パラメーターが必要です。
string法人のフルネームです。
string最後まで記載した法的住所です。
string納税者個別のID。
string法人の国。ISO 3166-1 alpha-2に従って大文字2文字の国コードを使用します。
settings
objectカスタムプロジェクト設定(オブジェクト)。
settings.external_id
stringトランザクションの外部ID。
settings.project_id
integerゲームのエクソラID。パブリッシャ―アカウントにあります。 必須。
settings.language
stringインターフェース言語。2文字の小文字言語コード
settings.return_url
stringページを使用して決済後にユーザーをリダイレクトします。パラメータuser_idforeigninvoiceinvoice_idstatusは、自動的にリンクに追加されます。
settings.currency
string標準の決済通貨。ISO 42173文字通貨コード。
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ウィジェットにリダイレクトされます。
settings.ui
objectインタフェース設定(オブジェクト)。
settings.ui.theme
string決済インターフェースのテーマ。default(既定)またはdefault_darkに指定できます。
settings.ui.size
string決済インターフェースのサイズ。に指定できます:
  • small:決済インターフェースの最小サイズです。ウィンドウサイズが厳密に制限されている場合は、この値を使用します(寸法:620 x 630)
  • medium:推奨サイズ。この値を使用して、ライトボックスに決済インターフェイスを表示します(寸法:740 x 760)
  • large:決済インターフェイスを新しいウィンドウまたはタブに表示するのに最適なサイズ(寸法:820 x 840)
settings.ui.version
stringデバイスの種類。desktop(既定)またはmobileに指定できます。
settings.ui.desktop
objectデスクトップバージョン(オブジェクト)のインターフェース設定。
settings.ui.desktop.header
objectヘッダー設定(オブジェクト)。
settings.ui.desktop.header.is_visible
boolean決済インターフェースにヘッダーを表示するかどうかを示します。
booleantrueの場合、ヘッダーにはあなたのロゴが表示されます(最初にあなたのアカウントマネージャーに画像を提供してください)。
settings.ui.desktop.header.visible_name
booleanヘッダーにプロジェクト名を表示するかどうかを示します。
settings.ui.desktop.header.visible_purchase
booleanヘッダーに購入説明(purchase.description.value)を表示するか示します。デフォルトはtrueです。
settings.ui.desktop.header.type
stringヘッダーを表示する方法。compact(プロジェクト名とユーザーIDを隠す)またはnormal(既定)に指定できます。
settings.ui.desktop.header.close_button
booleanデスクトップ版決済ステーションに閉じるボタンを表示する設定。このボタンは決済ステーションを閉じて、settings.return_urlパラメーターで指定されたURLにユーザーをリダイレクトします。デフォルトはfalseです。
settings.ui.desktop.subscription_list
objectサブスクリプションプラン(オブジェクト)の一覧の設定。
settings.ui.desktop.subscription_list.layout
stringテンプレートの一覧。list(既定)またはgridに指定できます。
settings.ui.desktop.subscription_list.description
string決済インターフェースの利用可能なサブスクリプションプランの一覧上に表示されるテキスト。
settings.ui.desktop.subscription_list.display_local_price
booleantrueの場合、ユーザーの現地通貨が購読プランに設定されている通貨と異なる場合、ユーザーは両方の価格を見ることができます。1つは現地通貨で、もう1つは基本通貨で表示されます。
settings.ui.desktop.virtual_item_list
object仮想アイテム(オブジェクト)の一覧の設定。
settings.ui.desktop.virtual_item_list.layout
stringテンプレートの一覧。list(既定)またはgridに指定できます。
settings.ui.desktop.virtual_item_list.button_with_price
booleantrueの場合は、価格がボタンに表示されます。falseの場合は、価格はボタンの左側に表示されます。既定ではfalseです。
settings.ui.desktop.virtual_item_list.view
string縦方向または横方向のメニューに仮想アイテムのグループを表示しましょう。horizontal_navigationあるいはvertical(既定)にできます。
settings.ui.desktop.virtual_currency_list
object仮想通貨(オブジェクト)の一覧の設定。
settings.ui.desktop.virtual_currency_list.description
string決済インターフェースの一覧の上に表示するテキスト。
settings.ui.desktop.virtual_currency_list.button_with_price
booleantrueの場合は、価格がボタンに表示されます。falseの場合は、価格はボタンの左側に表示されます。既定ではfalseです。
settings.ui.header.visible_virtual_currency_balance
booleanこの要素を決済インターフェースで非示にできるかどうかを示します。既定ではtrueです。
settings.ui.mobile.mode
stringユーザーは、保存された決済方法を使用してのみ決済を行うことができます。saved_accountsに指定できます。
settings.ui.mobile.header.close_button
booleanモバイル版決済ステーションに閉じるボタンを表示する設定。このボタンは決済ステーションを閉じて、settings.return_urlパラメーターで指定されたURLにユーザーをリダイレクトします。デフォルトはfalseです。
booleanモバイル版の決済インターフェースでフッターを非表示にするかどうかを示します。
settings.ui.license_url
stringEULAへのリンク。
settings.ui.components
objectメニュー設定(オブジェクト)。
settings.ui.components.virtual_items
object仮想アイテムサブメニュー。
settings.ui.components.virtual_items.order
integerメニュー内のサブメニューの位置。
settings.ui.components.virtual_items.hidden
booleanサブメニューを表示するかどうかを示します。
settings.ui.components.virtual_items.selected_group
string仮想アイテムタブを開いた後に表示するグループ。
settings.ui.components.virtual_items.selected_item
string仮想アイテムタブを開いた後に表示されるアイテム(アイテムSKU)。
settings.ui.components.virtual_currency
object仮想通貨サブメニュー。
settings.ui.components.virtual_currency.custom_amount
booleanユーザーが任意の数の仮想通貨を決済インターフェースに入力できるかどうかを示します。
settings.ui.components.virtual_currency.order
integerメニュー内のサブメニューの位置。
settings.ui.components.virtual_currency.hidden
booleanサブメニューを表示するかどうかを示します。
settings.ui.components.subscriptions
objectサブスクリプションプランのサブメニュー(オブジェクト)。
settings.ui.components.subscriptions.order
integerメニュー内のサブメニューの位置。
settings.ui.components.subscriptions.hidden
booleanサブメニューを表示するかどうかを示します。
settings.ui.mode
stringユーザーアカウントの決済インターフェース。user_accountのみに指定できます:ヘッダーにはユーザーアカウントのナビゲーションメニューのみが含まれています。ユーザーは商品を選択したり、決済を行うことはできません。このモードは、デスクトップ上でのみ使用できます。
settings.ui.user_account
objectユーザーアカウントの詳細(オブジェクト)。
settings.ui.user_account.info
objectマイアカウントページ。
settings.ui.user_account.info.order
integerメニュー内のサブメニューの位置。
settings.ui.user_account.info.enable
booleanサブメニューを表示するかどうかを示します。既定ではfalseです。
settings.ui.user_account.history
object履歴サブメニュー。
settings.ui.user_account.history.order
integerメニュー内のサブメニューの位置。
settings.ui.user_account.history.enable
booleanサブメニューを表示するかどうかを示します。既定ではfalseです。
settings.ui.user_account.payment_accounts
objectマイ決済アカウントサブメニュー。
settings.ui.user_account.payment_accounts.order
integerメニュー内のサブメニューの位置。
settings.ui.user_account.payment_accounts.enable
booleanサブメニューを表示するかどうかを示します。既定ではfalseです。
settings.ui.user_account.subscriptions
objectサブスクリプション管理サブメニュー。
settings.ui.user_account.subscriptions.order
integerメニュー内のサブメニューの位置。
settings.ui.user_account.subscriptions.enable
booleanサブメニューを表示するかどうかを示します。既定ではfalseです。
purchase
object購入の詳細を含むオブジェクト。
purchase.virtual_currency
object仮想通貨の詳細を含むオブジェクト。
purchase.virtual_currency.quantity
float仮想通貨での購入金額。
purchase.virtual_currency.currency
stringすべての計算で使用する仮想通貨パッケージの通貨。
purchase.virtual_items
object購入時の仮想アイテムに関するデータを持つオブジェクト。
purchase.virtual_items.currency
stringすべての計算で使用する注文アイテムの通貨。
purchase.virtual_items.items
arrayアイテムデータ(配列)。
purchase.virtual_items.items.sku
stringアイテムID。
purchase.virtual_items.items.amount
integerアイテム数量。
purchase.virtual_items.available_groups
arrayアイテムグループのID(配列)。決済インターフェースには、指定したグループ内のアイテムのみが含まれます。
purchase.subscription
objectサブスクリプションデータ(オブジェクト)。
purchase.subscription.plan_id
stringプランID。
purchase.subscription.operation
stringユーザーのサブスクリプションプランに適用される操作の種類。サブスクリプションプランを変更する場合は、値change_planを渡します。purchase.subscription.plan_idパラメーターに新しいプランIDを指定してください。
purchase.subscription.product_id
string製品ID。
purchase.subscription.currency
stringすべての計算で使用するサブスクリプションプランの通貨。
purchase.subscription.available_plans
array決済インターフェイスに表示するサブスクリプションプラン(配列)。
purchase.subscription.trial_days
integer試用期間(日)。
purchase.pin_codes
objectゲームキー(オブジェクト)。
purchase.pin_codes.currency
stringすべての計算で使用する注文内のゲームキーの通貨。
purchase.pin_codes.codes
arrayゲームキー(配列)。
purchase.pin_codes.codes.digital_content
stringパブリッシャ―アカウントに設定されたゲームのSKU。
purchase.pin_codes.codes.drm
stringDRMプラットフォームはゲームの配布に使用できます。steamplaystationxboxuplayorigindrmfreegogepicgamesnintendo_eshopdiscord_game_storeoculusのいずれかを指定できます。パブリッシャーアカウントで必要なDRMを設定していることをご確認ください。トークンに渡されなかった場合は、決済インターフェースでユーザーが選択します。
purchase.pin_codes.upgrade
objectアップグレードデータを持つオブジェクト。
purchase.pin_codes.upgrade.id_user_history
integerエントリのIDで、ユーザーとパッケージのデータを含みます。
purchase.pin_codes.upgrade.id
integerアップグレードID。
purchase.gift
object贈り物の詳細(オブジェクト)。
purchase.gift.giver_id
string贈り主のID。
purchase.gift.message
string贈り主からのメッセージ。
purchase.gift.hide_giver_from_receiver
string贈り主の情報を受取り側に公開するかどうか。デフォルトはtrueです。
purchase.gift.friends
arrayフレンドのデータを配列。
purchase.gift.friends.id
string贈り物の受取人のID。
purchase.gift.friends.name
string贈り物の受取人のニックネーム。
purchase.gift.friends.email
string贈り物を受け取る人のメールアドレス。
purchase.coupon_code
object割引プロモーションコードまたは購入時のボーナスに関する情報(オブジェクト)。
purchase.coupon_code.value
stringプロモーションコードの値。
purchase.coupon_code.hidden
boolean決済インタフェースでプロモーションコードが入力されているフィールドを非表示にします。デフォルト設定ではfalse
custom_parameters
objectカスタムパラメータ、アイテムリストをフィルタリングするためのユーザー属性。

いずれかのパラメータが間違った形式で送信されたか、タイプが間違っている場合、トークンは発行されません。JSON本体にエラー記述とともに422HTTPコードが送られます。このextended_messageは、どのパラメータが間違っていたかを示します。

Copy
Full screen
Small screen
{
    "extended_message": {
        "global_errors": [],
        "property_errors": {
            "settings.project_id": [
                "string value found, but an integer is required"
            ]
        }
    }
}

Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
リクエスト
POST https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token

Headers:
  Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json

Body:
  {
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "virtual_items": {
      "items": [
        {
          "amount": 1,
          "sku": "SKU01"
        }
      ]
    }
  },
  "settings": {
    "currency": "USD",
    "language": "en",
    "project_id": 16184,
    "ui": {
      "components": {
        "virtual_currency": {
          "custom_amount": true
        }
      },
      "desktop": {
        "virtual_item_list": {
          "button_with_price": true,
          "layout": "list"
        }
      },
      "size": "medium"
    }
  },
  "user": {
    "country": {
      "allow_modify": true,
      "value": "US"
    },
    "email": {
      "value": "john.smith@mail.com"
    },
    "id": {
      "value": "user_2"
    },
    "name": {
      "value": "John Smith"
    }
  }
}
curl --request POST \
  --url https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token \
  --header 'authorization: Basic <your_authorization_basic_key>' \
  --header 'content-type: application/json' \
  --data '{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}');

$request->setRequestUrl('https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>',
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

payload = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"

headers = {
    'content-type': "application/json",
    'authorization': "Basic <your_authorization_basic_key>"
    }

conn.request("POST", "/merchant/v1/merchants/{merchant_id}/token", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}");
Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "user": {
    "id": {
      "value": "user_2"
    },
    "name": {
      "value": "John Smith"
    },
    "email": {
      "value": "john.smith@mail.com"
    },
    "country": {
      "value": "US",
      "allow_modify": true
    }
  },
  "settings": {
    "project_id": 16184,
    "currency": "USD",
    "language": "en",
    "ui": {
      "size": "medium",
      "desktop": {
        "virtual_item_list": {
          "layout": "list",
          "button_with_price": true
        }
      },
      "components": {
        "virtual_currency": {
          "custom_amount": true
        }
      }
    }
  },
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "virtual_items": {
      "items": [
        {
          "sku": "SKU01",
          "amount": 1
        }
      ]
    }
  }
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
レスポンス
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}

その他のパラメータ一覧

custom_parametersオブジェクトのトークンに追加パラメータを渡して、不正対策フィルタを設定できます。推奨のパラメータを以下の表で確認してください。必要に応じて一覧を全文表示できます。

レシピをご覧ください

パラメータ種類説明文
registration_date
stringISO 8601形式のアカウント作成日。
total_hours
integer合計ゲーム時間数。
total_characters
integerゲーム内のキャラクターの数。
social_networks_added
booleanプレイヤーがソーシャルメディアプロファイルを接続しているかを示します。
profile_image_added
booleanプレイヤーがプロフィール画像をアップロードしたかどうかを示します。
active_date
stringISO 8601形式の最終閲覧日。
total_friends
integer友達の数。
additional_verification
booleanプレイヤーがアカウント承認手続きを使用するかどうかを示します。
win_rate
integer勝率。
last_change_password_date
stringISO 8601に沿ったパスワード最終更新日。
chat_activity
booleanプレイヤーがチャット機能を使用するかどうかを示します。
forum_activity
booleanプレイヤーがフォーラム機能を使用するかどうかを示す。
total_bans
integerチャットやフォーラムでプレイヤーが禁止された回数。
profile_completed
booleanプレイヤーがプロフィールに追加情報を入力したかどうかを示します。
notifications_enabled
booleanプレイヤーが通知を有効化したかどうかを示します。
user_level
integerプレイヤーのレベル、評判、またはランク。
karma_points
integerプレイヤーのカルマ値。
total_sum
float総支払額。
non_premium_currency
float非プレミアム通貨の金額。
total_game_events
integerプレイヤーが参加したゲーム内イベントの数。
total_gifts
integerプレイヤーが送受信したゲーム内の贈り物の数。
tutorial_completed
booleanプレイヤーがゲームのチュートリアルを完了したかどうかを示します。
completed_tasks
integer完了したタスクや目標の数。
items_used
booleanプレイヤーが購入したゲームアイテムを使用するかどうかを示します。
pvp_activity
booleanプレイヤーが対人戦に参加するかどうかを示します。
total_clans
integerプレイヤーがメンバーになっているクランの数。
unlocked_achievements
integer達成した実績の数。
total_inventory_value
floatインベントリ総額(ゲーム内通貨)。
character_customized
booleanプレイヤーがキャラクターをカスタマイズしたかどうかを示します。
session_time
stringISO 8601に沿った平均セッション時間。

トークン化

アプリのトークン化設定の詳細については、決済ステーション説明書を参照してください。

保存された決済アカウントの一覧

特定のユーザーの保存された決済アカウントを一覧表示します。

HTTPリクエスト

Copy
Full screen
Small screen
GET https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts

パラメータ種類説明文
project_id
integerプロジェクトID。
user_id
stringユーザーID。
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
リクエスト
GET https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts

Headers:
  Authorization: Basic <your_authorization_basic_key>
curl --request GET \
  --url https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts \
  --header 'authorization: Basic <your_authorization_basic_key> '
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key> '
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Basic <your_authorization_basic_key> ");
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

headers = { 'authorization': "Basic <your_authorization_basic_key> " }

conn.request("GET", "/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic <your_authorization_basic_key> '

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts")
  .get()
  .addHeader("authorization", "Basic <your_authorization_basic_key> ")
  .build();

Response response = client.newCall(request).execute();
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key> ");

xhr.send(data);
レスポンス
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]

保存されたアカウントで課金する

保存された決済アカウントを介してユーザーに請求する。

Notice: このAPIメソッドは高負荷時には使用できません。リクエストの数が多い場合、レート制限が適用される場合があります。 このAPIメソッドのレート制限については、アカウントマネージャーにお問い合わせください。

HTTPリクエスト

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}

パラメータ種類説明文
project_id
integerプロジェクトID。 必須。
user_id
stringユーザーID。 必須。
type
string決済アカウントの種類。 必須。 可能な数値:card — 銀行カード、amazon — Amazon Pay、skrill — Skrill Digital Wallet、yandex — Yandex.Money、paymasterwebmoney — WebMoney、paypal — PayPal、qiwi — QIWIウォレット。

HTTP 200 成功ステータスコードを受信した場合、リクエストはトランザクション ID とそのステータスを返します。可能なステータス:
  • processing — 取引が処理中する
  • done — 取引が正常に処理されました
  • error — 取引処理でエラーが発生しました
  • canceled — 取引がキャンセルしました
  • held — ユーザーのアカウントの資金が保留されている場合
HTTP 422エラーステータスコードを受信した場合、リクエストはその詳細な説明とともにエラーコードを返します。
account_id
integerエクソラデータベースに保存されたアカウントのID。 必須。
user
objectユーザーの詳細(オブジェクト)。
user.ip
stringユーザーのIPアドレス。 必須。
user.name
stringユーザー名。
object法人情報を含むオブジェクトです。
string法人のフルネームです。
string最後まで記載した法的住所です。
string納税者個別のID。
string法人の国。ISO 3166-1 alpha-2に従って大文字2文字の国コードを使用します。
purchase
object購入の詳細を含むオブジェクト。
purchase.virtual_currency
object仮想通貨の詳細を含むオブジェクト。
purchase.virtual_currency.quantity
float仮想通貨での購入金額。
purchase.checkout
objectチェックアウトの詳細(オブジェクト)。
purchase.checkout.currency
string購入通貨。ISO 4217に準拠した3文字の通貨コード。
purchase.checkout.amount
float購入金額。
settings
object購入設定(オブジェクト)。
settings.mode
string決済処理をテストするには、sandboxに設定します。実際の決済用にパラメータを削除します。
custom_parameters
stringカスタムパラメータ、アイテムリストをフィルタリングするためのユーザー属性。
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
リクエスト
POST https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}

Headers:
  Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json

Body:
  {
  "card": {
    "cvn": "123"
  },
  "purchase": {
    "description": {
      "value": "currency purchase"
    },
    "virtual_currency": {
      "quantity": 100
    }
  },
  "settings": {
    "currency": "USD",
    "external_id": "ext123",
    "save": true
  },
  "user": {
    "id": "user123",
    "ip": "111.11.11.11",
    "name": "John Smith",
    "legal" : {
      "name": "My Awesome Company",
      "address": "17 Crown Street London SW2 0JW United Kingdom",
      "vat_id": "GB111111111",
      "country": "GB"
  }
}
curl --request POST \
  --url https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id} \
  --header 'authorization: Basic <your_authorization_basic_key>' \
  --header 'content-type: application/json' \
  --data '{"user":{"id":"user123","ip":"111.11.11.11","name":"John Smith","legal":{"name":"My Awesome Company","address":"17 Crown Street London SW2 0JW United Kingdom","vat_id":"GB111111111","country":" GB"}},"card":{"cvn":"123"},"purchase":{"virtual_currency":{"quantity":100},"description":{"value":"currency purchase"}},"settings":{"save":true,"currency":"USD","external_id":"ext123"}}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"user":{"id":"user123","ip":"111.11.11.11","name":"John Smith","legal":{"name":"My Awesome Company","address":"17 Crown Street London SW2 0JW United Kingdom","vat_id":"GB111111111","country":" GB"}},"card":{"cvn":"123"},"purchase":{"virtual_currency":{"quantity":100},"description":{"value":"currency purchase"}},"settings":{"save":true,"currency":"USD","external_id":"ext123"}}');

$request->setRequestUrl('https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>',
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

payload = "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}"

headers = {
    'content-type': "application/json",
    'authorization': "Basic <your_authorization_basic_key>"
    }

conn.request("POST", "/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}");
Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "user": {
    "id": "user123",
    "ip": "111.11.11.11",
    "name": "John Smith",
    "legal" : {
      "name": "My Awesome Company",
      "address": "17 Crown Street London SW2 0JW United Kingdom",
      "vat_id": "GB111111111",
      "country": "GB"
    },
  },
  "card": {
    "cvn": "123"
  },
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "description": {
      "value": "currency purchase"
    }
  },
  "settings": {
    "save": true,
    "currency": "USD",
    "external_id": "ext123"
  }
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
レスポンス
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}

保存された決済アカウントの削除

保存済みの決済アカウントを削除します。

HTTPリクエスト

Copy
Full screen
Small screen
DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}

パラメータ種類説明文
project_id
integerプロジェクトID。
user_id
stringユーザーID。
type
string決済アカウントの種類。 可能な数値:card — 銀行カード、amazon — Amazon Pay、skrill — Skrill Digital Wallet、yandex — Yandex.Money、paymasterwebmoney — WebMoney、paypal — PayPal、qiwi — QIWIウォレット。

HTTP 200 成功ステータスコードを受信した場合、リクエストはトランザクション ID とそのステータスを返します。可能なステータス:
  • processing — 取引が処理中する
  • done — 取引が正常に処理されました
  • error — 取引処理でエラーが発生しました
  • canceled — 取引がキャンセルしました
  • held — ユーザーのアカウントの資金が保留されている場合
HTTP 422エラーステータスコードを受信した場合、リクエストはその詳細な説明とともにエラーコードを返します。
account_id
integerエクソラデータベースに保存されたアカウントのID。
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
リクエスト
DELETE https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}

Headers:
  Authorization: Basic <your_authorization_basic_key>
curl --request DELETE \
  --url https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id} \
  --header 'authorization: Basic <your_authorization_basic_key>'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}');
$request->setRequestMethod('DELETE');
$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}");
var request = new RestRequest(Method.DELETE);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

headers = { 'authorization': "Basic <your_authorization_basic_key>" }

conn.request("DELETE", "/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Basic <your_authorization_basic_key>'

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}")
  .delete(null)
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
レスポンス