Как использовать API-методы Login Widget SDK

Вы можете работать с API-методами Login Widget SDK отдельно от виджета, если хотите:

  • использовать собственный дизайн виджета;
  • реализовать только часть сценария работы виджета.

Примечание
Список методов для этой возможности ограничен.

Инициализация кода

Чтобы использовать API-методы Login Widget SDK без виджета, подключите указанный ниже код инициализации в тег <body>:

Copy
Full screen
Small screen
1<script>
2const api = new XsollaLogin.Api({
3  projectId: 'someProjectId'
4});
5</script>

Код инициализации при использовании npm-пакета:

Copy
Full screen
Small screen
1import XsollaLogin from '@xsolla/login-sdk';
2const api = new XsollaLogin.Api({
3  projectId: 'someProjectId'
4});

В коде инициализации передаются следующие параметры:

ПараметрТипОписание
projectId
stringID варианта авторизации из Личного кабинета. Обязательный.
fullLocale
stringЯзык интерфейса и регион в формате <language code>_<country code>, где:
  • language code — код языка в формате ISO 639-1;
  • country code — код страны в формате ISO 3166-1 alpha-2.
Поддерживаются следующие языки: арабский (ar_AE), болгарский (bg_BG), чешский (cz_CZ), филиппинский (fil_PH), английский (en_XX), немецкий (de_DE), испанский (es_ES), французский (fr_FR), индонезийский (id_ID), иврит (he_IL), итальянский (it_IT), японский (ja_JP), кхмерский (km-KH), корейский (ko_KR), лаосский (lo_LA), бирманский (my_MM), непальский (ne_NP), польский (pl_PL), португальский (pt_BR), румынский (ro_RO), русский (ru_RU), тайский (th_TH), турецкий (tr_TR), вьетнамский (vi_VN), китайский упрощенный (zh_CN), китайский традиционный (zh_TW).
Параметр влияет на сортировку социальных сетей по частоте использования в указанном регионе, а также на выбор языка для писем, отправляемых пользователям.
callbackUrl
stringURL-адрес, с которым работает сервер Xsolla Login при успешной авторизации или регистрации.
emailTemplate
stringНазвание проекта, от имени которого отправляются письма пользователям при авторизации.
payload
stringДополнительные данные, которые могут передаваться в коде. Добавляются в JWT пользователя при успешной авторизации.
with_logout
booleanОтзывать ли предыдущие токены при новой авторизации. Значение по умолчанию — false.
clientId
stringID клиентского приложения. Передается, если в приложении используется авторизация по протоколу OAuth 2.0.
scope
stringДополнительная информация, которую приложение запрашивает об аккаунте пользователя. Передается, если в приложении используется авторизация по протоколу OAuth 2.0. Возможные значения:
  • email — дополнительный запрос email-адреса пользователя при авторизации через социальные сети;
  • offline — автоматическое обновление JWT после истечения срока действия;
  • playfab — дополнительная передача параметра SessionTicket в JWT, если данные о пользователях хранятся в PlayFab.
Вы также можете задавать свои параметры. Сервер Xsolla Login их не обрабатывает, но возвращает в JWT.
state
stringДополнительная верификация пользователя, например, для предотвращения CSRF-атак. Должен содержать не менее 8 символов.
redirectUrl
stringURL-адрес, на который перенаправляется пользователь после подтверждения аккаунта, успешной аутентификации или подтверждения сброса пароля.
booleanОтключать ли подтверждение беспарольной авторизации по email-адресу или номеру телефона по ссылке в письме. Значение по умолчанию — false.
is_oauth2
booleanИспользовать ли способ аутентификации пользователя по протоколу OAuth 2.0. Значение по умолчанию — false.

Методы API

Вы можете использовать без виджета следующие API-методы Login Widget SDK:

Регистрация пользователя по паролю

МетодОписаниеПараметры
api.signup(userInfo);Регистрация нового пользователя. В объекте userInfo передаются данные о пользователе при регистрации. В ответе возвращается токен зарегистрированного пользователя.
  • email (string) — email-адрес пользователя. Обязательный.
  • username (string) — имя пользователя. Обязательный.
  • password (string) — пароль пользователя. Обязательный.
  • nickname (string) — никнейм пользователя.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.signup({
 4  userInfo: {
 5    email: 'email@address.com',
 6    fields: {
 7      nickname: 'Johny'
 8    },
 9    password: 'password123',
10    username: 'John'
11  }
12}).then((res) => {
13  result = res;
14})
15
16// Response
17result === {
18  login_url: 'https://someurl.com?token=XXXXXXX'
19}

Авторизация по паролю

МетодОписаниеПараметры
api.login(credentials);Авторизация пользователя с паролем. В объекте credentials передаются данные о пользователе, необходимые для авторизации. В ответе возвращается токен авторизованного пользователя.
  • username (string) — имя пользователя, например, John или email-адрес, например, email@address.com. Обязательный.
  • password (string) — пароль пользователя. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.login({
 4  credentials: {
 5    password: 'password123',
 6    username: 'email@address.com'
 7  }
 8}).then((res) => {
 9  result = res;
10})
11
12// Response
13result === {
14  login_url: 'https://someurl.com?token=XXXXXXX'
15}
16
17// Response with additional fields
18result === {
19  ask_fields: [{
20    confirmation_type: 'code' || 'link'
21    name: 'phone_number'
22    required: false
23    step: 0 // Displays the position of the field in the data retrieval queue.
24    type: 'phone'
25    validation: {} // Custom validation
26  }]
27  login_url: 'https://someurl.com?token=XXXXXXX',
28  token: 'sometoken'
29}

Подтверждение учетной записи

МетодОписаниеПараметры
api.resendEmail(username);Повторная отправка пользователю письма с подтверждением учетной записи. Чтобы подтвердить учетную запись, пользователь должен перейти по ссылке в письме. В объекте username передается email-адрес пользователя. В ответе возвращается код 204.
  • username (string) — email-адрес пользователя, например, email@address.com. Обязательный.
Пример:
Copy
Full screen
Small screen
1// Request
2api.resendEmail({
3  username: "email@address.com"
4}).then((res) => {
5  if (res.code === 204) {
6    console.log("Email resend success");
7  }
8});

Беспарольная авторизация

Сценарий пользователя:

  1. Пользователь вводит телефон или email-адрес. В зависимости от введенных данных вызывается метод api.phoneGetCode или api.emailGetCode.
  2. Сервер получает данные и отправляет на номер телефона или email-адрес сообщение с кодом. Если при инициализации кода был передан параметр disableConfirmByLink=true, который отключает подтверждение авторизации по ссылке в письме, для автоматического перенаправления пользователя после перехода по ссылке используется метод api.getConfirmCode.
  3. Метод api.phoneGetCode или api.emailGetCode возвращает параметр operation_id, который используется для подтверждения номера телефона или email-адреса с помощью методов api.loginWithPhoneCode или api.loginWithEmailCode. При успешном подтверждении номера телефона или email-адреса возвращается URL-адрес с параметром token, который используется в запросах дополнительных данных о пользователе.

МетодОписаниеПараметры
api.phoneGetCode({ phone_number, link_url, isOauth2 });Отправка кода подтверждения на номер телефона. В ответе возвращается параметр operation_id, который используется для подтверждения номера телефона.
  • phone_number (string) — номер телефона для авторизации без пароля.
  • link_url (string) — URL-адрес для подтверждения по ссылке.
  • isOauth2 (boolean) — использовать ли способ аутентификации пользователя по протоколу OAuth 2.0. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.phoneGetCode({
 4  phone_number: '+somenumber',
 5  link_url: 'https://someurl.com',
 6  isOauth2: true
 7}).then((res) => {
 8  result = res;
 9})
10
11// Response
12result === {
13  operation_id: '2334j255fdf13d515fgd1'
14}
МетодОписаниеПараметры
api.phoneGetCode({ phone_number, link_url, isOauth2 });Отправка кода подтверждения на email-адрес. В ответе возвращается параметр operation_id, который используется для подтверждения email-адреса.
  • email (string) — email-адрес для авторизации без пароля.
  • link_url (string) — URL-адрес для подтверждения по ссылке.
  • isOauth2 (boolean) — использовать ли способ аутентификации пользователя по протоколу OAuth 2.0. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.emailGetCode({
 4  email: 'email@address.com',
 5  link_url: 'https://someurl.com',
 6  isOauth2: true
 7}).then((res) => {
 8  result = res;
 9})
10
11// Response
12result === {
13  operation_id: '2334j255fdf13d515fgd1'
14}
МетодОписаниеПараметры
api.getConfirmCode({ cancelToken, login, operation_id });Ожидание кода подтверждения для автоматического перенаправления пользователя после перехода по ссылке.
  • cancelToken (string) — специальный токен для закрытия сессии. Обязательный.
  • login (string) — номер телефона или email-адрес пользователя. Обязательный.
  • operation_id (string) — уникальный ID, который используется для подтверждения номера телефона или email-адреса в данной сессии. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3const axiosCancelToken = Axios.CancelToken.source();
 4
 5api.getConfirmCode({
 6  cancelToken: axiosCancelToken,
 7  login: '+somenumber' || 'email@address.com',
 8  operation_id: '334j255fdf13d515fgd1'
 9}).then((res) => {
10  result = res;
11})
12
13// Response
14result === {
15  code: 'string'
16}
17
18// If the waiting time has elapsed, returns:
19result === {
20  error: {
21    code: '010-050',
22    description: 'Deadline exceeded.'
23  }
24}
25
26// If you no longer need to wait for verification through the link you can close the request waiting period:
27axiosCancelToken.cancel();
МетодОписаниеПараметры
api.loginWithPhoneCode({ phone_number, code, operation_id, isOauth2 });Подтверждение номера телефона. В ответе возвращается URL-адрес с параметром token, который используется в запросах дополнительных данных о пользователе.
  • phone_number (string) — номер телефона для авторизации без пароля.
  • code (string) — код, который приходит по SMS для подтверждения номера телефона.
  • operation_id (string) — уникальный ID, который используется для подтверждения номера телефона в данной сессии.
  • isOauth2 (boolean) — использовать ли способ аутентификации пользователя по протоколу OAuth 2.0. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.loginWithPhoneCode({
 4  phone_number: 'email@address.com',
 5  code: '3423',
 6  operation_id: '334j255fdf13d515fgd1',
 7  isOauth2: true
 8}).then((res) => {
 9  result = res;
10})
11
12// Response
13result === {
14  login_url: 'https://someurl.com?token=XXXXXXX'
15}
16
17
18// Response with additional fields
19result === {
20  ask_fields: [{
21    confirmation_type: 'code' || 'link'
22    name: 'email'
23    required: false
24    step: 0 // Displays the position of the field in the data retrieval queue.
25    type: 'email'
26    validation: {} // Custom validation
27  }]
28  login_url: 'https://someurl.com?token=XXXXXXX',
29  token: 'sometoken'
30}
МетодОписаниеПараметры
api.loginWithEmailCode({ email, code, operation_id, isOauth2 });Подтверждение email-адреса. В ответе возвращается URL-адрес с параметром token, который используется в запросах дополнительных данных о пользователе.
  • email (string) — email-адрес для авторизации без пароля.
  • code (string) — код, который приходит на email-адрес.
  • operation_id (string) — уникальный ID, который используется для подтверждения email-адреса в данной сессии.
  • isOauth2 (boolean) — использовать ли способ аутентификации пользователя по протоколу OAuth 2.0. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.loginWithEmailCode({
 4  email: 'email@address.com',
 5  code: '3423',
 6  operation_id: '334j255fdf13d515fgd1',
 7  isOauth2: true
 8}).then((res) => {
 9  result = res;
10})
11
12// Response
13result === {
14  login_url: 'https://someurl.com?token=XXXXXXX'
15}
16
17// Response with additional fields
18result === {
19  ask_fields: [{
20    confirmation_type: 'code' || 'link'
21    name: 'phone_number'
22    required: false
23    step: 0 // Displays the position of the field in the data retrieval queue.
24    type: 'phone'
25    validation: {} // Custom validation
26  }]
27  login_url: 'https://someurl.com?token=XXXXXXX',
28  token: 'sometoken'
29}

Дозапрос полей без пароля

Сценарий пользователя:

  1. При успешной авторизации пользователя метод api.loginWithEmailCode или api.loginWithPhoneCode возвращает массив с полями, которые можно отображать в приложении в отдельной форме и дополнительно собирать номер телефона или email-адрес пользователя. Список полей также можно получить с помощью вызова отдельного метода api.getAskFields.
  2. Пользователь вводит номер телефона или email-адрес. Вызывается метод api.ask.
  3. Сервер получает данные и отправляет на номер телефона или email-адрес сообщение с кодом. Если при инициализации кода был передан параметр disableConfirmByLink=true, который отключает подтверждение авторизации по ссылке в письме, для автоматического перенаправления пользователя после перехода по ссылке используется метод api.getConfirmCode.
  4. Метод api.ask возвращает параметр operation_id, который используется для подтверждения данных с помощью методов api.loginWithPhoneCode или api.loginWithEmailCode. При успешном подтверждении данных возвращается URL-адрес, который используется для редиректа на авторизованного пользователя.

МетодОписаниеПараметры
api.getAskFields(token);Получение списка полей для дозапроса.
  • token (string) — JWT пользователя. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.getAskFields({
 4  token: 'sometoken'
 5}).then((res) => {
 6  result = res;
 7})
 8
 9// Response
10result === [
11  {
12    confirmation_type: 'code' || 'link'
13    name: 'phone_number' || 'email'
14    required: false
15    step: 0 // Displays the position of the field in the data retrieval queue.
16    type: 'phone' || 'email'
17    validation: {} // Custom validation
18  }
19]
МетодОписаниеПараметры
api.ask({ fields, token, link_url });Отправка дополнительных данных о пользователе — номера телефона или email-адреса. В ответе возвращается параметр operation_id, который используется для подтверждения указанного номера телефона или email-адреса. Если подтверждение не требуется, в ответе возвращается URL-адрес с параметром token, который используется для редиректа на авторизованного пользователя.
  • fields (object) — объект, в котором передаются данные о пользователе: номер телефона или email-адрес. Обязательный.
  • token (string) — JWT пользователя. Обязательный.
  • link_url (string) — URL-адрес для подтверждения по ссылке.
Пример с отправкой номера телефона:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.ask({
 4  fields: {  
 5    phone_number: '+somenumber'
 6  },
 7  link_url: 'https://someurl.com',
 8  token: 'sometoken'
 9}).then((res) => {
10  result = res;
11})
12
13// Response
14result === {
15  error: {
16    code: '003-014'
17    description: 'Confirm phone number.'
18    details: { operation_id: 'BPaBScLM44GesoOYSxT5I8QfgIrTSURd' }
19  }
20}
21
22// Response without confirmation
23result === {
24  redirect_url: '<login_url>?token=<token>'
25}

Пример с отправкой email-адреса:

Copy
Full screen
Small screen
 1let result
 2// request
 3api.ask({
 4  fields: {  
 5    email: 'email@address.com'
 6  },
 7  link_url: 'https://someurl.com',
 8  token: 'sometoken'
 9}).then((res) => {
10  result = res;
11})
12
13// Response
14result === {
15  error: {
16    code: '003-011'
17    description: 'Confirm email.'
18    details: { operation_id: 'BPaBScLM44GesoOYSxT5I8QfgIrTSURd' }
19  }
20}
21
22// Response without confirmation
23result === {
24  redirect_url: '<login_url>?token=<token>'
25}
МетодОписаниеПараметры
api.getConfirmCode({ cancelToken, login, operation_id });Ожидание кода подтверждения для автоматического перенаправления пользователя после перехода по ссылке.
  • cancelToken (string) — специальный токен для закрытия сессии. Обязательный.
  • login (string) — номер телефона или email-адрес пользователя. Обязательный.
  • operation_id (string) — уникальный ID, который используется для подтверждения номера телефона или email-адреса в данной сессии. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3const axiosCancelToken = Axios.CancelToken.source();
 4
 5api.getConfirmCode({
 6  cancelToken: axiosCancelToken,
 7  login: '+somenumber' || 'email@address.com',
 8  operation_id: '334j255fdf13d515fgd1'
 9}).then((res) => {
10  result = res;
11})
12
13// Response
14result === {
15  code: 'string'
16}
17
18// If the waiting time has elapsed, returns:
19result === {
20  error: {
21    code: '010-050',
22    description: 'Deadline exceeded.'
23  }
24}
25
26// If you no longer need to wait for verification through the link you can close the request waiting period:
27axiosCancelToken.cancel();
МетодОписаниеПараметры
api.loginWithPhoneCode({ phone_number, code, operation_id, isOauth2 });Подтверждение номера телефона. В ответе возвращается URL-адрес с параметром token, который используется в запросах дополнительных данных о пользователе.
  • phone_number (string) — номер телефона для авторизации без пароля.
  • code (string) — код, который приходит по SMS для подтверждения номера телефона.
  • operation_id (string) — уникальный ID, который используется для подтверждения номера телефона в данной сессии.
  • isOauth2 (boolean) — использовать ли способ аутентификации пользователя по протоколу OAuth 2.0. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.loginWithPhoneCode({
 4  phone_number: 'email@address.com',
 5  code: '3423',
 6  operation_id: '334j255fdf13d515fgd1',
 7  isOauth2: true
 8}).then((res) => {
 9  result = res;
10})
11
12// Response
13result === {
14  login_url: 'https://someurl.com?token=XXXXXXX'
15}
16
17
18// Response with additional fields
19result === {
20  ask_fields: [{
21    confirmation_type: 'code' || 'link'
22    name: 'email'
23    required: false
24    step: 0 // Displays the position of the field in the data retrieval queue.
25    type: 'email'
26    validation: {} // Custom validation
27  }]
28  login_url: 'https://someurl.com?token=XXXXXXX',
29  token: 'sometoken'
30}
МетодОписаниеПараметры
api.loginWithEmailCode({ email, code, operation_id, isOauth2 });Подтверждение email-адреса. В ответе возвращается URL-адрес с параметром token, который используется в запросах дополнительных данных о пользователе.
  • email (string) — email-адрес для авторизации без пароля.
  • code (string) — код, который приходит на email-адрес.
  • operation_id (string) — уникальный ID, который используется для подтверждения email-адреса в данной сессии.
  • isOauth2 (boolean) — использовать ли способ аутентификации пользователя по протоколу OAuth 2.0. Обязательный.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api.loginWithEmailCode({
 4  email: 'email@address.com',
 5  code: '3423',
 6  operation_id: '334j255fdf13d515fgd1',
 7  isOauth2: true
 8}).then((res) => {
 9  result = res;
10})
11
12// Response
13result === {
14  login_url: 'https://someurl.com?token=XXXXXXX'
15}
16
17// Response with additional fields
18result === {
19  ask_fields: [{
20    confirmation_type: 'code' || 'link'
21    name: 'phone_number'
22    required: false
23    step: 0 // Displays the position of the field in the data retrieval queue.
24    type: 'phone'
25    validation: {} // Custom validation
26  }]
27  login_url: 'https://someurl.com?token=XXXXXXX',
28  token: 'sometoken'
29}

Сброс пароля

Сценарий пользователя:

  1. Приложение открывает форму, в которой пользователь вводит email-адрес или имя пользователя. Вызывается метод api.reset.
  2. Сервер отправляет пользователю письмо с подтверждением.
  3. Пользователь переходит по ссылке в письме и открывает форму для ввода нового пароля.
  4. Пользователь вводит новый пароль. Вызывает метод api.set.

МетодОписаниеПараметры
api.reset(username);Сброс пароля с подтверждением действия. Чтобы подтвердить сброс пароля, пользователь должен перейти по ссылке в письме. В объекте username передается имя или email-адрес пользователя. В ответе возвращается код 204.
  • username (string) — имя пользователя, например, John или email-адрес, например, email@address.com. Обязательный.
Пример:
Copy
Full screen
Small screen
1let result
2// Request
3api.reset({
4  username: 'John'
5}).then((res) => {
6  res.code === 204;
7})
МетодОписаниеПараметры
api.set({ new_password, reset_code, user_id });Установка нового пароля с подтверждением действия. Чтобы подтвердить установку нового пароля, пользователь должен перейти по ссылке в письме. В ответе возвращается код 204.
  • new_password (string) — новый пароль, указанный пользователем. Обязательный.
  • reset_code (string) — код для проверки пользователя, который отправил запрос на сброс пароля. Генерируется на стороне сервера и передается в URL-адресе, на который перенаправляется пользователь после перехода по ссылке в письме. Обязательный.
  • user_id (string) — ID пользователя. Генерируется на стороне сервера и передается в URL-адресе, на который перенаправляется пользователь после перехода по ссылке в письме. Обязательный.
Пример:
Copy
Full screen
Small screen
1let result
2// Request
3api.set({
4  new_password: 'newpass',
5  reset_code: '3423',
6  user_id: '324324234'
7}).then((res) => {
8  res.code === 204;
9})

Сквозная аутентификация (Single Sign-On)

Примечание
Подробная информация о сквозной аутентификации представлена в инструкции.
ПараметрТипОписание
api.checkUserAuthSSO();
Проверка входа пользователя в систему через сервис. В случае успеха возвращается одноразовый код авторизации code.
Пример:
Copy
Full screen
Small screen
 1let result
 2// Request
 3api
 4  .checkUserAuthSSO()
 5  .then(res => {
 6    result === res;
 7  });
 8
 9result === {
10  code: "examplecode"
11}
МетодОписаниеПараметры
api.userAuthSSOWithRedirect(loginUrl);Проверка входа пользователя в систему через сервис. В случае успеха происходит перенаправление на URL-адрес — сгенерированный loginUrl с кодом авторизации.
  • loginUrl (string) — URL-адрес для перенаправления пользователя после проверки аутентификации пользователя (SSO). Должен быть идентичен Callback URL, указанному в блоке URL в Личном кабинете в разделе проект авторизации > Общие настройки. Обязательный, если существует несколько URL-адресов обратного вызова.
Пример:
Copy
Full screen
Small screen
1// Request
2api
3  .userAuthSSOWithRedirect(
4    loginUrl: 'some-redirect-url.com'
5  )
6  .then(res => {
7    res.code === 302;
8  });
МетодОписаниеПараметры
api.logout(token, session);Вывод пользователя из системы и удаление пользовательской сессии в соответствии со значением параметра session.
  • token (string) — JWT пользователя. Обязательный.
  • session (string) — показывает, как пользователь выходит из системы и как удаляется его сессия. Обязательный. Может принимать следующие значения:
    • sso — удаление только сеанса пользователя SSO.
    • all — удаление сеанса пользователя SSO и аннулирование всех маркеров доступа и обновлений.
Пример:
Copy
Full screen
Small screen
1// Request
2api
3  .logout(
4    token: 'exampleToken',
5    session: 'sso' | 'all'
6  )
7  .then(res => {
8    res.code === 204;
9  });
ПараметрТипОписание
api.clearSSO();
Удаление файлов cookie сквозной аутентификации с текущего устройства пользователя. В случае успеха возвращается код 204.
Пример:
Copy
Full screen
Small screen
1// Request
2api
3  .clearSSO()
4  .then(() => {
5    // Success
6  });
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Последнее обновление: 19 сентября 2025

Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

Сообщите о проблеме
Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
Укажите email-адрес, чтобы мы могли связаться с вами
Спасибо за обратную связь!
Не получилось отправить ваш комментарий
Попробуйте еще раз позже или напишите нам на doc_feedback@xsolla.com.