{
"id": "aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee",
"paymentLinkId": "11111111-2222-4333-8444-555555555555",
"amount": 1500,
"currency": "RUB",
"status": "CONFIRMED",
"paymentMethod": 2,
"payload": "ORDER-1001"
}| Поле | Как использовать |
|---|---|
id | Идентификатор отдельного платежа. По нему храните платёж и исключайте повторную выдачу товара или зачисление. |
paymentLinkId | Идентификатор ссылки из ответа на создание. У всех платежей одной многоразовой ссылки он одинаковый, а id разные. Приходит для обоих режимов ссылки. У платежа, не связанного со ссылкой, поля нет. |
amount, currency | Сумма исходного платежа числом и его валюта. После возврата amount не уменьшается. |
status | Статус платежа, не ссылки. Может измениться уже после подтверждения. |
payload | Ваши данные из ссылки. Если их не передавали — пустая строка. |
Не используйте paymentLinkIdкак единственный ключ дедупликации. Иначе второй платёж по многоразовой ссылке будет принят за повтор первого. Ключ дедупликации —id.
usageMode, orderId и адрес ссылки в уведомление не входят.X-MerchantId и X-Secret с настройками магазина на своей стороне, секрет сравнивайте за постоянное время. Заголовок User-Agent сам по себе отправителя не подтверждает. API-ключ в логи не пишите.id, paymentLinkId, статус, сумму и валюту. Если платёж вашей системе ещё неизвестен, сопоставьте его со ссылкой через API.200 OK. Тело ответа не требуется. Подтверждайте и те уведомления, которые уже сохраняли раньше. Если сохранить не удалось — верните ошибку, тогда уведомление будет доставлено повторно. Долгую обработку выполняйте после сохранения: таймаут отправки 30 секунд.CONFIRMED должны выполниться ровно один раз для этого платежа, в том числе при одновременных запросах. Повторный CONFIRMED не означает новую оплату.| Статус | Действие |
|---|---|
CONFIRMED | Оплата подтверждена. Выдать товар или зачислить сумму один раз для этого платежа. |
CANCELED | Оплата отменена. Успешным платежом не считать. |
DISPUTED | Платёж на проверке. Применить свои правила работы со спорными платежами. После снятия проверки возможен повторный CONFIRMED. |
PARTIALLY_REFUNDED | Частичный возврат. Обрабатывать каждую операцию по refundId с учётом refundStatus. |
CHARGEBACKED | Полный возврат. Учесть отмену зачисления; если есть refundId — обработать конкретную операцию. |
refundStatus: Succeeded — выполнен, Declined — отклонён. Разные refundId при одинаковом статусе — разные операции. Поэтому нельзя отбрасывать все последующие события по одному id или по паре id + status.return или failedUrl оплату не подтверждает. Финансовое решение принимайте по проверенному уведомлению и актуальным данным API.