Open payment UI

Depending on project authentication settings, you can open the payment UI as follows:

Via Create token API call

  1. Implement getting a token to open the payment UI in one of the following ways:
  2. Implement the way of opening the payment UI:

With the display of the payment method selection page

To make the payment UI display the payment method selection page when opened, pass the purchase.subscription.plan_id parameter with the ID of the selected plan to the Create token API call. Pass the additional customization parameters if needed.

Copy
Full screen
Small screen
    Request Example:
    curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
    -X POST \
    -u your_merchant_id:merchant_api_key \
    -H 'Content-Type:application/json' \
    -H 'Accept: application/json' \
    -d '
    {
      "user":{
        "id":{
          "value": "1234567",
          "hidden": true
        },
        "email": {
          "value": "user1234@game1234.com"
        },
        "name": {
          "value": "UserName",
          "hidden": false
        }
      },
      "settings": {
        "project_id": 12345,
        "currency": "USD"
      },
      "purchase": {
        "subscription": {
          "plan_id": "54321"
        }
      }
    }'

    Example of payment method selection page:

    With the display of payment data entry page

    To make the payment UI display the payment data entry page when opened, pass the following parameters to the Create token API call:

    • purchase.subscription.plan_id with the ID of the selected plan.
    • settings.payment_method with payment method ID. To find the list of identifiers, in your project in Publisher Account, go to the Pay Station > Payment methods section, or request it from your Account Manager.

    Pass the additional parameters for customization if needed.

    Copy
    Full screen
    Small screen
    Request Example:
    curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
    -X POST \
    -u your_merchant_id:merchant_api_key \
    -H 'Content-Type:application/json' \
    -H 'Accept: application/json' \
    -d '
    {
      "user":{
        "id":{
          "value": "1234567",
          "hidden": true
        },
        "email": {
          "value": "user1234@game1234.com"
        },
        "name": {
          "value": "UserName",
          "hidden": false
        }
      },
      "settings": {
        "project_id": 12345,
        "payment_method": 1380,
        "currency": "USD"
      },
      "purchase": {
        "subscription": {
          "plan_id": "54321"
        }
      }
    }'

    Example of payment data entry page:

    With the display of subscription management and billing account page

    To make the payment UI display the page for managing subscriptions and payment accounts when opened, pass the settings.ui.mode = user_account parameter to the Create token API call.

    Copy
    Full screen
    Small screen
      Request Example:
      curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
      -X POST \
      -u your_merchant_id:merchant_api_key \
      -H 'Content-Type:application/json' \
      -H 'Accept: application/json' \
      -d '
      
      {
      
      
          "user": {
              "id": {
                  "value": "1234567",
                  "hidden": true
              }
          },
          "settings": {
            "project_id": 146026,
            "language": "en",
            "currency": "USD",
            "ui": {
                "mode": "user_account",
                "theme": "default_dark",
                "desktop": {
                   "subscription_list": {
                     "layout": "grid"
                   }
                 }
               }
          }
        }

      Example of subscription management page and billing account:

      Via client API methods

      1. Implement client methods to open the payment UI in one of the following ways:
      2. Implement opening the payment UI in one of the following ways:

      With the display of the payment method selection page or entering payment data

      On the client side of your application, use an HTTP POST request to implement opening the payment UI: https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/subscriptions/buy.

      The request must contain an Authorization: Bearer <client_user_jwt> header, where <client_user_jwt> is user’s JSON Web Token (JWT) — a unique, Base64-encoded token encoded according to the Base64 standard. To get the token:

      Specify the project ID as the projectId path parameter. You can find this parameter in your Publisher Account next to the name of the project.

      Specify country as the query parameter — the two-letter designation of the user’s country according to the ISO 3166-1 alpha-2 standard. Affects the choice of locale and currency. If this parameter is not passed, the country is determined by the user’s IP address.

      Pass the following parameters in the request:

      • plan_external_id to open the payment interface on the payment method selection page.

      An example of a payment UI:

      An example of a payment UI:

      Request body parameters:

      ParameterTypeDescription
      plan_external_id
      stringRequired. The external ID of the subscription plan. You can find it in Publisher Account > Subscriptions > Subscription Plans section.
      settings
      objectCustom project settings (object).
      settings.ui
      objectInterface settings (object).
      settings.ui.size
      stringPayment UI size. Can be:
      • small: the least possible size of the payment UI. Use this value when the window size is strictly limited (dimensions: 620 x 630 px)
      • medium: recommended size. Use this value to display the payment UI in a lightbox (dimensions: 740 x 760 px)
      • large: the optimal size for displaying the payment UI in a new window or tab (dimensions: 820 x 840 px)
      settings.ui.theme
      stringPayment UI theme. Can be default or default_dark.
      settings.ui.version
      stringDevice type. Can be desktop (default) or mobile.
      settings.ui.desktop
      objectInterface settings for the desktop version (object).
      settings.ui.desktop.header
      objectHeader settings (object).
      settings.ui.desktop.header.close_button
      booleanWhether to show a Close button in Pay Station desktop. The button closes Pay Station and redirects the user to the URL specified in the settings.return_url parameter. false by default.
      settings.ui.desktop.header.is_visible
      booleanWhether to show the header in the payment UI.
      settings.ui.desktop.header.is_visible.type
      stringHeader appearance. Can be compact (in which case the game name and user ID will not be shown in the header) or normal.
      booleanIf true, the header will show your logo (first provide the image to your account manager).
      settings.ui.desktop.header.visible_name
      booleanWhether to show the project name in the header.
      settings.ui.desktop.header.type
      stringHow to show the header. Can be compact (hides project name and user ID) or normal (default).
      settings.ui.mobile.mode
      stringA user can only pay using their saved payment methods. Can be saved_accounts.
      booleanWhether to hide the footer in the mobile version of the payment UI.
      settings.ui.mobile.header.close_button
      booleanWhether to show a Close button in Pay Station mobile. The button closes Pay Station and redirects the user to the URL specified in the settings.return_url parameter. false by default.
      settings.ui.license_url
      stringLink to the EULA.
      settings.ui.mode
      stringInterface mode in Pay Station. Can be user_account only: The header contains only the account navigation menu, and the user cannot select a product or make a payment. This mode is only available on the desktop.
      settings.ui.user_account
      objectUser account details (object).
      settings.ui.user_account.history
      objectHistory submenu.
      settings.ui.user_account.history.enable
      integerWhether the section should be displayed in the drop-down menu in the payment UI. Can be true or false. If the parameter is not passed, the section is not displayed.
      settings.ui.user_account.history.order
      integerThe location of the section in the drop-down menu in the payment interface.
      settings.ui.user_account.info
      objectPage My account.
      settings.ui.user_account.info.order
      integerThe location of the section in the drop-down menu in the payment UI.
      settings.ui.user_account.info.enable
      booleanWhether the section should be displayed in the drop-down menu in the payment UI. Can be true or false. If the parameter is not passed, the section is not displayed.
      settings.ui.user_account.payment_accounts
      objectMy payment accounts submenu.
      settings.ui.user_account.payment_accounts.order
      integerThe location of the section in the drop-down menu in the payment UI.
      settings.ui.user_account.payment_accounts.enable
      booleanWhether to show the submenu. Can be true or false. If the parameter is not passed, the section will be displayed.
      settings.ui.user_account.subscriptions
      objectManage subscriptions submenu.
      settings.ui.user_account.subscriptions.enable
      booleanWhether to show the submenu. Can be true or false. If the parameter is not passed, the section will be displayed.
      settings.ui.user_account.subscriptions.order
      integerThe location of the section in the drop-down menu in the payment UI.
      settings.currency
      stringPreferred payment currency. Three-letter currency code per ISO 4217.
      settings.external_id
      stringTransaction ID in the game. Has to be unique for each user payment.
      settings.payment_method
      integerPayment method ID. You can get the list of payment method IDs in Publisher Account or using the Get payment methods API call.
      settings.return_url
      stringPage to redirect the user to after payment. Parameters user_id, foreigninvoice, invoice_id and status will be automatically added to the link.
      settings.redirect_policy
      objectRedirect policy settings (object).
      settings.redirect_policy.redirect_conditions
      stringA payment status that redirects the user to a return URL after making a payment. Can be none, successful, successful_or_canceled, or any.
      settings.redirect_policy.delay
      integerDelay (in seconds) after which a user is automatically redirected to the return URL.
      settings.redirect_policy.status_for_manual_redirection
      stringA payment status that redirects the user to a return URL after making a payment. Can be none, successful, successful_or_canceled, or any.
      settings.redirect_policy.redirect_button_caption
      stringText on the button for manual redirection.

      Pass the additional parameters for customization if needed.

      Copy
      Full screen
      Small screen
        Request Example:
        curl -X 'POST' \
        'https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/subscriptions/buy?country=RU  ' \
          -H 'accept: application/json' \
          -H 'Authorization: Bearer client_user_jwt'
        
        {
          "plan_external_id": "PlanExternalId",
          "settings": {
            "ui": {
              "size": "large",
              "theme": "string",
              "version": "desktop",
              "desktop": {
                "header": {
                  "is_visible": true,
                  "visible_logo": true,
                  "visible_name": true,
                  "type": "compact",
                  "close_button": true
                }
              },
              "mobile": {
                "mode": "saved_accounts",
                "footer": {
                  "is_visible": true
                },
                "header": {
                  "close_button": true
                }
              },
              "license_url": "string",
              "mode": "user_account",
              "user_account": {
                "history": {
                  "enable": true,
                  "order": 1
                },
                "payment_accounts": {
                  "enable": true,
                  "order": 1
                },
                "info": {
                  "enable": true,
                  "order": 1
                },
                "subscriptions": {
                  "enable": true,
                  "order": 1
                }
              }
            },
            "currency": "string",
            "locale": "string",
            "external_id": "string",
            "payment_method": 1,
            "return_url": "string",
            "redirect_policy": {
              "redirect_conditions": "none",
              "delay": 0,
              "status_for_manual_redirection": "none",
              "redirect_button_caption": "string"
            }
          }
        }

        Copy
        Full screen
        Small screen
          Response Example:
          {
            "link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
          }

          With the display subscription management page and billing account

          On the client side of your application, use an HTTP POST request to implement opening the payment UI: https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/subscriptions/manage.

          The request must contain an Authorization: Bearer <client_user_jwt> header, where <client_user_jwt> is user’s JSON Web Token (JWT) — a unique, Base64-encoded token encoded according to the Base64 standard. To get the token:

          Specify the project ID as the projectId path parameter. You can find this parameter in your Publisher Account next to the name of the project.

          Specify country as the query parameter — the two-letter designation of the user’s country according to the ISO 3166-1 alpha-2 standard. Affects the choice of locale and currency. If this parameter is not passed, the country is determined by the user’s IP address.

          Pass the additional parameters for customization if needed.

          Request body parameters:

          ParameterTypeDescription
          plan_external_id
          stringRequired. The external ID of the subscription plan. You can find it in Publisher Account > Subscriptions > Subscription Plans section.
          settings
          objectCustom project settings (object).
          settings.ui
          objectInterface settings (object).
          settings.ui.size
          stringPayment UI size. Can be:
          • small: the least possible size of the payment UI. Use this value when the window size is strictly limited (dimensions: 620 x 630 px)
          • medium: recommended size. Use this value to display the payment UI in a lightbox (dimensions: 740 x 760 px)
          • large: the optimal size for displaying the payment UI in a new window or tab (dimensions: 820 x 840 px)
          settings.ui.theme
          stringPayment UI theme. Can be default or default_dark.
          settings.ui.version
          stringDevice type. Can be desktop (default) or mobile.
          settings.ui.desktop
          objectInterface settings for the desktop version (object).
          settings.ui.desktop.header
          objectHeader settings (object).
          settings.ui.desktop.header.close_button
          booleanWhether to show a Close button in Pay Station desktop. The button closes Pay Station and redirects the user to the URL specified in the settings.return_url parameter. false by default.
          settings.ui.desktop.header.is_visible
          booleanWhether to show the header in the payment UI.
          settings.ui.desktop.header.is_visible.type
          stringHeader appearance. Can be compact (in which case the game name and user ID will not be shown in the header) or normal.
          booleanIf true, the header will show your logo (first provide the image to your account manager).
          settings.ui.desktop.header.visible_name
          booleanWhether to show the project name in the header.
          settings.ui.desktop.header.type
          stringHow to show the header. Can be compact (hides project name and user ID) or normal (default).
          settings.ui.mobile.mode
          stringA user can only pay using their saved payment methods. Can be saved_accounts.
          booleanWhether to hide the footer in the mobile version of the payment UI.
          settings.ui.mobile.header.close_button
          booleanWhether to show a Close button in Pay Station mobile. The button closes Pay Station and redirects the user to the URL specified in the settings.return_url parameter. false by default.
          settings.ui.license_url
          stringLink to the EULA.
          settings.ui.mode
          stringInterface mode in Pay Station. Can be user_account only: The header contains only the account navigation menu, and the user cannot select a product or make a payment. This mode is only available on the desktop.
          settings.ui.user_account
          objectUser account details (object).
          settings.ui.user_account.history
          objectHistory submenu.
          settings.ui.user_account.history.enable
          integerWhether the section should be displayed in the drop-down menu in the payment UI. Can be true or false. If the parameter is not passed, the section is not displayed.
          settings.ui.user_account.history.order
          integerThe location of the section in the drop-down menu in the payment interface.
          settings.ui.user_account.info
          objectPage My account.
          settings.ui.user_account.info.order
          integerThe location of the section in the drop-down menu in the payment UI.
          settings.ui.user_account.info.enable
          booleanWhether the section should be displayed in the drop-down menu in the payment UI. Can be true or false. If the parameter is not passed, the section is not displayed.
          settings.ui.user_account.payment_accounts
          objectMy payment accounts submenu.
          settings.ui.user_account.payment_accounts.order
          integerThe location of the section in the drop-down menu in the payment UI.
          settings.ui.user_account.payment_accounts.enable
          booleanWhether to show the submenu. Can be true or false. If the parameter is not passed, the section will be displayed.
          settings.ui.user_account.subscriptions
          objectManage subscriptions submenu.
          settings.ui.user_account.subscriptions.enable
          booleanWhether to show the submenu. Can be true or false. If the parameter is not passed, the section will be displayed.
          settings.ui.user_account.subscriptions.order
          integerThe location of the section in the drop-down menu in the payment UI.
          settings.currency
          stringPreferred payment currency. Three-letter currency code per ISO 4217.
          settings.external_id
          stringTransaction ID in the game. Has to be unique for each user payment.
          settings.payment_method
          integerPayment method ID. You can get the list of payment method IDs in Publisher Account or using the Get payment methods API call.
          settings.return_url
          stringPage to redirect the user to after payment. Parameters user_id, foreigninvoice, invoice_id and status will be automatically added to the link.
          settings.redirect_policy
          objectRedirect policy settings (object).
          settings.redirect_policy.redirect_conditions
          stringA payment status that redirects the user to a return URL after making a payment. Can be none, successful, successful_or_canceled, or any.
          settings.redirect_policy.delay
          integerDelay (in seconds) after which a user is automatically redirected to the return URL.
          settings.redirect_policy.status_for_manual_redirection
          stringA payment status that redirects the user to a return URL after making a payment. Can be none, successful, successful_or_canceled, or any.
          settings.redirect_policy.redirect_button_caption
          stringText on the button for manual redirection.

          Pass the additional parameters for customization if needed.

          Copy
          Full screen
          Small screen
            Request Example:
            curl -X 'POST' \
            'https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/subscriptions/manage?country=RU  ' \
              -H 'accept: application/json' \
              -H 'Authorization: Bearer client_user_jwt'
            {
              "settings": {
                "ui": {
                  "size": "large",
                  "theme": "string",
                  "version": "desktop",
                  "desktop": {
                    "header": {
                      "is_visible": true,
                      "visible_logo": true,
                      "visible_name": true,
                      "type": "compact",
                      "close_button": true
                    }
                  },
                  "mobile": {
                    "mode": "saved_accounts",
                    "footer": {
                      "is_visible": true
                    },
                    "header": {
                      "close_button": true
                    }
                  },
                  "license_url": "string",
                  "mode": "user_account",
                  "user_account": {
                    "history": {
                      "enable": true,
                      "order": 1
                    },
                    "payment_accounts": {
                      "enable": true,
                      "order": 1
                    },
                    "info": {
                      "enable": true,
                      "order": 1
                    },
                    "subscriptions": {
                      "enable": true,
                      "order": 1
                    }
                  }
                },
                "currency": "str",
                "locale": "st",
                "external_id": "string",
                "payment_method": 1,
                "return_url": "string",
                "redirect_policy": {
                  "redirect_conditions": "none",
                  "delay": 0,
                  "status_for_manual_redirection": "none",
                  "redirect_button_caption": "string"
                }
              }
            }

            Copy
            Full screen
            Small screen
              Response Example:
              {
                "link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
              }

              An example of a payment UI:

              Customization

              In the payment UI, you can use the following customization options:

              An example of a payment UI in a dark theme:

              An example of a token request for a dark theme:

              Copy
              Full screen
              Small screen
              Request Example:
              curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
              -X POST \
              -u your_merchant_id:merchant_api_key \
              -H 'Content-Type:application/json' \
              -H 'Accept: application/json' \
              -d '
              {
                "user":{
                  "id":{
                    "value": "1234567",
                    "hidden": true
                  },
                  "email": {
                    "value": "user1234@game1234.com"
                  },
                  "name": {
                    "value": "UserName",
                    "hidden": false
                  }
                },
                "settings": {
                  "project_id": 12345,
                  "currency": "USD"
                  "ui": {
                     "theme": "default_dark"
                  }
                }
              }
              '

              • Place your own description of the plans section. To do this, pass the description text to the Create Token API call in the ui.desktop.subscription_list.description parameter.
              Notice
              This type of customization is not available when implementing client methods.

              An example of a payment UI:

              An example of token request for a light theme with a subscription management section and description of the plans section:

              Copy
              Full screen
              Small screen
              Request Example:
              curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
              -X POST \
              -u your_merchant_id:merchant_api_key \
              -H 'Content-Type:application/json' \
              -H 'Accept: application/json' \
              -d '
              {
                "user":{
                  "id":{
                    "value": "1234567",
                    "hidden": true
                  },
                  "email": {
                    "value": "user1234@game1234.com"
                  },
                  "name": {
                    "value": "UserName",
                    "hidden": false
                  }
                },
                "settings": {
                  "project_id": 12345,
                  "currency": "USD",
                  "ui": {
                     "desktop": {
                       "subscription_list": {
                         "description": "Your Description"
                       }
                     },
                      "user_account": {
                        "subscriptions": {
                            "order": 1,
                            "enable": true
                        }
                      }
                    }
                  }
              }
              '

              • Change the standard subscriptions list view to an alternative one in the blocks form. To do this, pass the settings.ui.desktop.subscription_list.layout = grid parameter to the Create Token API call. The parameter takes the list value by default.
              Notice
              This type of customization is not available when implementing client methods.

              An example of a payment UI:

              An example of token request for an alternative subscriptions list view:

              Copy
              Full screen
              Small screen
                Request Example:
                curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
                -X POST \
                -u your_merchant_id:merchant_api_key \
                -H 'Content-Type:application/json' \
                -H 'Accept: application/json' \
                -d '
                {
                  "user":{
                    "id":{
                      "value": "1234567",
                      "hidden": true
                    },
                    "email": {
                      "value": "user1234@game1234.com"
                    },
                    "name": {
                      "value": "UserName",
                      "hidden": false
                    }
                  },
                  "settings": {
                    "project_id": 111111,
                    "currency": "USD",
                    "ui": {
                       "desktop": {
                         "subscription_list": {
                           "layout": "grid"
                         }
                       }
                    }
                  }
                }
                '

                You can get more information about customization and the parameters used for this in the How to customize Pay Station guide.

                With Pay Station Embed

                EXAMPLE: ASYNCHRONOUS SCRIPT LOADING

                Copy
                Full screen
                Small screen
                <script>
                   var options = {
                       access_token: 'ACCESS_TOKEN', //TODO use access token, received on previous step
                       sandbox: true //TODO please do not forget to remove this setting when going live
                   };
                   var s = document.createElement('script');
                   s.type = "text/javascript";
                   s.async = true;
                   s.src = "https://static.xsolla.com/embed/paystation/1.0.7/widget.min.js";
                   s.addEventListener('load', function (e) {
                       XPayStationWidget.init(options);
                   }, false);
                   var head = document.getElementsByTagName('head')[0];
                   head.appendChild(s);
                </script>
                
                <button data-xpaystation-widget-open>Buy Credits</button>

                Pay Station Embed allows getting events from the payment UI via postMessage. You can send these events to analytics systems. To set up events processing in your analytics system, contact your Account Manager or send email to am@xsolla.com.

                The Xsolla team created a widget that simplifies the integration of the payment UI into your website. The widget script is available in our GitHub repository.

                Script initialization parameters:

                ParameterTypeDescription
                access_token
                stringToken, received via API. Required.
                sandbox
                booleanSet to true to test the payment process: sandbox-secure.xsolla.com will be used instead of secure.xsolla.com.
                lightbox
                objectLightbox parameters (object; desktop version only).
                lightbox.width
                stringLightbox frame width. If null, depends on Pay Station width. Default is null.
                lightbox.height
                stringLightbox frame height. If null, depends on Pay Station height. Default is 100%.
                lightbox.zIndex
                integerDefines arrangement order. Default is 1000.
                lightbox.overlayOpacity
                integerOverlay opacity (0 to 1). Default is .6.
                lightbox.overlayBackground
                stringOverlay background color. Default is #000000.
                lightbox.modal
                booleanIf true, the lightbox frame cannot be closed. Default is false.
                lightbox.closeByClick
                booleanIf true, clicking the overlay will close the lightbox. Default is true.
                lightbox.closeByKeyboard
                booleanIf true, pressing ESC will close the lightbox. Default is true.
                lightbox.contentBackground
                stringFrame background color. Default is #ffffff. Note that these color changes do not affect the Pay Station iframe itself, only the settings of the lightbox that hold it.
                lightbox.contentMargin
                stringFrame margin. Default is 10px.
                lightbox.spinner
                stringType of animated loading indicator. Can be xsolla or round. Default is xsolla.
                lightbox.spinnerColor
                stringSpinner color. No default value.
                childWindow
                objectOptions for the child window containing the Pay Station UI. Supported in the mobile version.
                childWindow.target
                stringWhere to open the Pay Station window. Can be _blank, _self, _parent. Default is _blank.

                The script allows you to track payment UI events. Depending on the event type, you can perform various actions on the web page.

                List of events:

                ParameterDescription
                initWidget initialized.
                openWidget opened.
                loadPayment UI (Pay Station) loaded.
                closePayment UI (Pay Station) closed.
                statusUser is on the status page.
                status-invoiceUser is on the status page; payment in progress.
                status-deliveringEvent when the user was moved on the status page, payment was completed, and we’re sending payment notification.
                status-doneUser is on the status page; payment credited to the user’s account.
                status-troubledEvent when the user was moved on the status page, but the payment failed.

                If you want to initialize the opening of the payment UI, use this link: https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN, where ACCESS_TOKEN is the token obtained with the Create token method. You can also get a ready-made link with a token when implementing the client method for opening the payment interface.

                Note
                It is necessary to use the link with the https:// prefix only for the payment UI opening.

                Use the following URL for testing purposes: https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN.

                Notice
                Parameter access_token contains private user data. Make sure that you use server-to-server communication when getting this parameter.

                In an Iframe

                You need to implement the following mechanisms on your side:

                • Check the device type (desktop vs. mobile) and send it within the token’s settings.ui.version parameter
                • Get events from the payment UI via postMessage. You can send these events to analytics systems. To set up events processing in your analytics system, contact your Account Manager or send email to am@xsolla.com.

                To open the payment UI in an iframe, use the following link: https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN, where ACCESS_TOKEN is the token obtained with the Create token method. You can also get a ready-made link with a token when implementing the client method for opening the payment interface.

                For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN.

                In a new window

                To open the payment UI in the new window, use the following link: https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN, where ACCESS_TOKEN is the token obtained with the Create token method. You can also get a ready-made link with a token when implementing the client method for opening the payment interface.

                For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN.

                Your progress
                Thank you for your feedback!
                Last updated: October 13, 2022

                Found a typo or other text error? Select the text and press Ctrl+Enter.

                Report a problem
                We always review our content. Your feedback helps us improve it.
                Provide an email so we can follow up
                Thank you for your feedback!