Xsolla-logoXsolla Developers
или
Личный кабинет

Отмена платежаWebhook POST

Если транзакция была отклонена платежной системой, Xsolla присылает детали транзакции в вебхуке с типом ps_declined на URL-адрес вебхука. Вебхук отправляется на этапе авторизации или обработки платежа. Вебхук payment\ order_paid при этом отправлен не будет.

Типичные причины отклонения транзакции платежной системой:

  • Авторизация карты не удалась (пример: платежная система не смогла завершить процесс авторизации из-за технического сбоя или отсутствия ответа от банка) или была отклонена (пример: банк ответил, но отказал в операции из-за недостатка средств или неверных данных карты).
  • Проверка 3-D Secure не удалась, не была завершена или истекло время ожидания подтверждения пользователем.
  • Процессор или банк-эквайер временно недоступен или возвращает жесткий отказ (hard decline) из-за необратимой ошибки: например, закрытого счета или недействительного номера карты. Повторная попытка без устранения причины ошибки не приведет к успешному результату.

Следует отличать:

  • От отклонений транзакции со стороны антифрод-системы, информация о которых передается в вебхуке afs_reject.
  • Возврата и частичного возврата платежа после успешной оплаты, информация о котором передается в вебхуках refund и partial_refund.

Примечание

Чтобы получать вебхук ps_declined, обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.

Request
Request Body schema: application/json
notification_type
required
string

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

required
object

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

dry_run
integer

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

external_id
string

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

id
integer

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

payment_method
integer

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

object

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

author
string

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

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

ID кода.

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

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

Responses
204

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

400

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

500

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

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature 80543ba63e1e50cf05f15150fe75e7245da9a898' \
-d '{
  "notification_type": "ps_declined",
  "settings": {
    "project_id": "18404",
    "merchant_id": "2340"
  },
  "user": {
    "ip": "127.0.0.1",
    "email": "email@example.com",
    "id": "1234567",
    "country": "US"
  },
  "transaction": {
    "id": "1",
    "dry_run": "1",
    "payment_method": "1"
  },
  "refund_details": {
    "author": "support@xsolla.com",
    "code": "8",
    "reason": "Cancellation by the PS request",
    "reason_detail": "Insufficient funds"
  }
}'
Response samples
application/json
{
  • "error": {
    }
}