Отменить оплаченный заказ или его часть (вернуть деньги)
После оплаты заказа магазин может вернуть уплаченные средства пользователю. Осуществляются как полные, так и частичные возвраты. Частичные возвраты могут выполняться, пока клиенту не будет возвращена вся сумма.
Если к моменту возврата не было досрочного подтверждения исполнения заказа, либо не произошло автоматическое подтверждение исполнения заказа, то средства возвращаются на карту клиента. После подтверждения исполнения заказа средства возвращаются на баланс клинта в PayQR
Для полного возврата или возврата оставшейся суммы по заказу (если до этого были частичные возвраты), необходимо выполнить следующую команду.
Пример:
HEADER PQRSecretKey = "..."
POST https://payqr.ru/shop/api/1.0/invoices/{id}/revert
В заголовке PQRSecretKey указывается секретный ключ из личного кабинета магазина (SecretKeyOut).
id
идентификатор счёта (invoiceId)
amount
сумма к возврату
Если сумма возврата превышает сумму счета на оплату за вычетом уже проведенных остатков, то команда вернет статус 409 (Conflict).
После того, как возврат был проведен успешно, на сервер приходит уведомление revert.succeeded.
Команда на возврат выполняется асинхронно, поэтому, если какие-то ошибки возникнут в процессе выполнения (было запущено несколько возвратов одновременно), то придут уведомления revert.failed о невыполненных возвратах.
Когда счет был отменен полностью, дополнительно присылается уведомление invoice.reverted. Это уведомление было реализовано для более удобной обработки случая, когда заказ не нужно отсылать.
Мы рекомендуем логику обработки отмены заказа в учетной системе реализовывать именно в обработчиках событий, а не в момент вызова операции отмены. Т.к. система состоит из многих составляющих и интеграций с внешними системами - банками, эквайерами, другими источниками денежных средств, возможны ошибки во время исполнения заявки на возврат.
Сервер PayQR отправляет уведомления revert.succeeded и revert.failed. В данных приходят объекты возвратов следующего вида.