Xsolla-logo

Частичный возврат платежаWebhook POST

При частичном возврате платежа Xsolla отправляет детали отмененной транзакции в вебхуке с типом partial_refund на URL-адрес вебхука. Подробная информация о процессе частичного возврата платежа приведена в инструкции.

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

Переключатель Описание
Показывать информацию о транзакциях сохраненными способами оплаты

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

  • saved_payment_method:
    • 0 — сохраненный способ оплаты не используется;
    • 1 — способ оплаты был сохранен при совершении текущей транзакции;
    • 2 — используется ранее сохраненный способ оплаты.
  • payment_type:
    • 1 — единоразовый платеж;
    • 2 — рекуррентный платеж.

Коды отмены:

Код Причина отмены Описание
1 Cancellation by the user request / the game request Используется, если отмена произошла из Личного кабинета.
3 Integration error Используется в случае проблем с интеграцией между Xsolla и игрой.
В этом случае мы не рекомендуем заносить пользователя в черный список.
5 Test payment Используется в случае совершения тестового платежа с последующей отменой.
В этом случае мы не рекомендуем заносить пользователя в черный список.
7 Fraud notification from PS Используется, если платежная система не произвела выплату по транзакции из-за потенциального фрода.
В этом случае мы рекомендуем добавить пользователя в черный список.
9 Cancellation by the user request Используется, если игра или заказ не удовлетворяют требованиям пользователя по каким-либо причинам.
В этом случае мы не рекомендуем заносить пользователя в черный список.
10 Cancellation by the game request Используется, когда игра просит отменить транзакцию.
В этом случае мы не рекомендуем заносить пользователя в черный список.
Request
Request Body schema: application/json
notification_type
required
string

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

required
object

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

agreement
integer

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

date
string

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

dry_run
integer

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

external_id
string

Внешний ID транзакции.

id
integer

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
integer <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

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

author
string

Инициатор возврата платежа. Значение поля передается согласно таблице:

Инициатор возврата Значение поля
Игра (через API). API
Пользователь Личного кабинета (автоматический возврат). Email-адрес пользователя
Пользователь Личного кабинета (при участии службы поддержки Xsolla). support@xsolla.com
Xsolla (при участии службы поддержки Xsolla). support@xsolla.com
code
integer

ID кода.

date
string

Дата возврата платежа.

reason
string

Причина отмены.

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

Верните в случае ошибки в предоставленной информации (например, обязательный параметр не передан, или авторизация не прошла).

500

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

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-d '{
        "notification_type": "partial_refund",
        "settings": {
          "project_id": 18404,
          "merchant_id": 2340
        },
        "purchase": {
            "checkout": {
                "currency": "USD",
                "amount": 50
            },
            "total":{
                "currency": "USD",
                "amount": 200
            }
        },
        "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,
            "dry_run": 1,
            "agreement": 1,
            "date": "2022-03-01 10:53:15"
        },
        "refund_details": {
            "author": "email@example.com",
            "date": "2022-03-01 10:56:48"
        },
        "payment_details": {
            "sales_tax": {
                "currency": "USD",
                "amount": 0
            },
            "direct_wht": {
                "currency": "USD",
                "amount": 0.70
            },
            "xsolla_fee": {
                "currency": "USD",
                "amount": "10"
            },
            "payout": {
                "currency": "USD",
                "amount": "200"
            },
            "payment_method_fee": {
                "currency": "USD",
                "amount": "20"
            },
            "payment": {
                "currency": "USD",
                "amount": "230"
            },
            "repatriation_commission": {
                "currency": "USD",
                "amount": 10
            }
        }
    }
}'
Response samples
application/json
{
  • "error": {
    }
}