Xsolla-logo

Успешный платежWebhook POST

Когда пользователь успешно совершает оплату, Xsolla отправляет детали платежа в вебхуке с типом payment на URL-адрес вебхука.

Если получен ответ с кодом 5xx, Xsolla отправляет вебхук повторно с увеличенным интервалом, пока ваш обработчик не подтвердит их получение. Максимальное количество попыток — 12.

Вы можете настроить получение дополнительной информации в вебхуке. Для этого в Личном кабинете в разделе Настройки проекта > Вебхуки > Расширенные настройки вы можете установить следующие переключатели в положение Вкл:

Переключатель Описание
Показывать информацию о сохраненном платежном аккаунте Информация о сохраненном способе оплаты передается в кастомном объекте payment_account.
Показывать информацию о транзакциях сохраненными способами оплаты

В вебхуке будет передаваться информация в кастомных параметрах:

  • saved_payment_method:
    • 0 — сохраненный способ оплаты не используется;
    • 1 — способ оплаты был сохранен при совершении текущей транзакции;
    • 2 — используется ранее сохраненный способ оплаты.
  • payment_type:
    • 1 — единоразовый платеж;
    • 2 — рекуррентный платеж.
Добавить объект order в вебхук В вебхуке Успешный платеж будет передаваться информация о заказе в объекте order.
Показывать только необходимую информацию о пользователе без чувствительных данных

В вебхуке о пользователе будет передаваться только следующая информация:

  • ID;
  • страна.
Показывать БИН карты и последние 4 цифры ее номера

В вебхуке будет передаваться следующая информация о номере карты:

  • первые 6 цифр в параметре card_bin;
  • последние 4 цифры в параметре card_suffix.
Показывать бренд карты Бренд карты, с которой была совершена оплата. Например, Mastercard или Visa.
Request
Request Body schema: application/json
notification_type
required
string

Тип оповещения.

required
object

Объект с информацией о транзакции, связанной с этой операцией.

agreement
integer

ID соглашения.

dry_run
integer

Признак тестовой транзакции. Значение параметра равно 1 для тестового платежа, для реального платежа параметр не передается.

external_id
string

Внешний ID транзакции. Изучите подробную информацию в Частых вопросах.

id
integer

ID транзакции.

payment_date
string

Дата платежа.

payment_method
integer

ID способа оплаты.

payment_method_name
string

Название способа оплаты.

payment_method_order_id
string

ID платежа в платежной системе.

required
object

Объект с финансовыми данными платежа.

object

Налог, удерживаемый у источника выплаты.

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

percent
integer <float>

Процент налога, удерживаемого у источника выплаты.

object

Объект с данными о сумме, которую оплатил пользователь.

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

object

Размер комиссии платежной системы.

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

object

Объект с данными о сумме, которая была оплачена из платежной системы.

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

object

Объект с данными о сумме выплаты.

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

payout_currency_rate
string <float>

Курс валюты платежа к валюте выплаты.

object

Объект с информацией о затратах на репатриацию, возлагаемых на Xsolla третьими сторонами.

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

object

Размер налога (только для США и Канады).

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

percent
integer <float>

Процент налога.

object

Размер VAT (только для Евросоюза).

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

percent
integer <float>

Процент VAT.

object

Объект с данными о сумме, которая была оплачена с Xsolla-баланса.

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

object

Размер комиссии Xsolla.

amount
integer <float>

Сумма.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

custom_parameters
object

Ваши дополнительные параметры.

object

Объект с информацией о заказе.

required
object

Объект с данными об общей стоимости покупки.

amount
integer <float>

Общая сумма покупки.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

object

Объект с информацией о заказе.

amount
integer <float>

Сумма заказа.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

object

Объект с информацией о купоне (если при создании подписки был использован купон).

campaign_code
string

Код кампании купонов.

coupon_code
string

Код купона.

object

Объект с информацией о подарке.

giver_id
string

ID дарителя.

hide_giver_from_receiver
string

Флаг, показывать ли дарителя получателю подарка.

message
string

Сообщение от дарителя.

receiver_email
string

Email получателя подарка.

receiver_id
string

ID получателя подарка.

object

Объект с информацией о заказе. Чтобы получать эту информацию, в Личном кабинете в разделе Настройки проекта > Вебхуки > Расширенные настройки установите переключатель Добавить объект order в вебхук в положение Вкл.

id
integer

Идентификатор заказа.

object

Объект с информацией о товаре.

object

Объект с информацией о цене товара.

amount
float

Общая стоимость товара в валюте.

currency
string

Валюта, в которой указана цена товара.

quantity
integer

Количество этого предмета в заказе.

sku
string

Артикул предмета.

Array of objects

Массив с данными акций, которые действуют на данную покупку.

Array
id
integer

ID акции.

technical_name
string

Техническое название акции.

object

Объект с данными о подписке.

amount
integer <float>

Сумма покупки.

currency
string

Валюта. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

date_create
string

Дата создания подписки. Дата и время согласно стандарту ISO 8601.

date_next_charge
string

Дата следующего списания. Дата и время согласно стандарту ISO 8601.

plan_id
string

ID плана (внешний id, если план был создан через API).

product_id
string

ID продукта (если был отправлен в токене).

subscription_id
integer

ID подписки в базе данных Xsolla.

tags
Array of strings

Теги плана.

object

Объект, содержащий настройки проекта.

merchant_id
integer

ID продавца.

project_id
integer

ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта.

object

Объект с информацией о пользователе.

id
required
string

ID пользователя.

country
string

Страна пользователя. Используется двухбуквенное обозначение страны согласно стандарту ISO 3166-1 alpha-2.

email
string

Email пользователя.

ip
string

IP адрес пользователя.

name
string

Имя пользователя.

phone
string

Номер телефона пользователя (в международном формате).

zip
string

Почтовый индекс.

Responses
204

Верните, чтобы сообщить об успешной обработке вехбука.

400

Верните в случае ошибки в предоставленной информации (например, обязательный параметр не передан, или авторизация не прошла). В этом случае денежные средства пользователя списываются, но покупка не осуществляется. Чтобы оформить возврат платежа, необходимо обратиться в службу поддержки Xsolla на support@xsolla.com.

500

Верните, чтобы сообщить о временных ошибках на ваших серверах.

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-d '{
    "notification_type": "payment",
    "settings": {
      "project_id": 18404,
      "merchant_id": 2340
    },
    "purchase": {
        "subscription": {
            "plan_id": "b5dac9c8",
            "subscription_id": "10",
            "product_id": "Demo Product",
            "date_create": "2014-09-22T19:25:25+04:00",
            "date_next_charge": "2014-10-22T19:25:25+04:00",
            "currency": "USD",
            "amount": 9.99
        },
        "checkout": {
            "currency": "USD",
            "amount": 50
        },
        "total": {
            "currency": "USD",
            "amount": 200
        },
        "promotions": [{
            "technical_name": "Demo Promotion",
            "id": 853
        }],
        "coupon": {
            "coupon_code": "ICvj45S4FUOyy",
            "campaign_code": "1507"
        },
        "order": {
          "id": 1234
          "lineitems": [
          {
            "sku": "test_1",
            "quantity": 1,
            "price": {
              "currency": "EUR",
              "amount": 6.5
              }
          }
          ]
          }
    },
    "user": {
        "ip": "127.0.0.1",
        "phone": "18777976552",
        "email": "email@example.com",
        "id": "1234567",
        "name": "John Smith",
        "country": "US"
    },
    "transaction": {
        "id": 1,
        "external_id": 1,
        "payment_date": "2014-09-24T20:38:16+04:00",
        "payment_method": 1,
        "payment_method_name": "PayPal",
        "payment_method_order_id": 1234567890123456789,
        "dry_run": 1,
        "agreement": 1
    },
    "payment_details": {
        "payment": {
            "currency": "USD",
            "amount": 230
        },
        "vat": {
            "currency": "USD",
            "amount": 0,
            "percent": 20
        },
        "sales_tax": {
            "currency": "USD",
            "amount": 0,
            "percent": 0
        },
        "direct_wht": {
            "currency": "USD",
            "amount": 0,
            "percent": 0
        },
        "payout_currency_rate": "1",
        "payout": {
            "currency": "USD",
            "amount": 200
        },
        "xsolla_fee": {
            "currency": "USD",
            "amount": 10
        },
        "payment_method_fee": {
            "currency": "USD",
            "amount": 20
        },
        "repatriation_commission": {
            "currency": "USD",
            "amount": 10
        }
    },
    "custom_parameters": {
        "parameter1": "value1",
        "parameter2": "value2"
    }
}'
Response samples
application/json
{
  • "error": {
    }
}