Сценарий 3. Возврат оплаты
Кошелёк Pay API
Документация перемещена
Информация на этой странице не обновляется и может быть устаревшей.
Наиболее полная и актуальная версия документации для разработчиков доступна по новому адресу:
Сценарий возврата описывает действия, которые необходимо выполнить, чтобы вернуть покупателю оплаченную сумму. Сценарий может быть выполнен только при наличии уже завершенной операции оплаты.
Приложение «Кошелёк» не участвует в процессе возврата — т.е. сканировать карту лояльности для оформления возврата не нужно.

(для просмотра в полном разрешении откройте изображение в новой вкладке)
Для полного возврата необходимо указать:
- товары (
items
), которые были были указаны в запросе оплаты. - количество товара (
quantity
), равное количеству, переданному в запросе оплаты; - сумму возврата (
refundAmount
), равную итоговой сумме оплаты (totalAmount
);
Для частичного возврата необходимо указать:
- только те товары (
items
), которые необходимо вернуть; - только то количество товара (
quantity
), которое необходимо вернуть; - сумму возврата (
refundAmount
) меньше итоговой суммы оплаты (totalAmount
);
Для нештучного товара (т.е. товара, у которого единица измерения
measure
отличается от PIECE
— например, весового товара) доступен только полный возврат нештучных позиций.Для запуска сценария воз врата на кассе необходимо инициировать отправку запроса возврата (
/refund
) на узел Кошелька. Если запрос дошел до узла Кошелька, то инициируется процесс возврата. Отменить его будет невозможно.- 1.Если касса по каким-то причинам не получила ответ от Кошелька на этот запрос, то можно отправить повторный запрос с тем же значением параметра
requestId
— это обязательно, так как если первый запрос дошел до узла Кошелька, но ответ на него был потерян, то хост Кошелька поймет, что это повторный вызов первого запроса — касса получит ответ на первый запрос (действует правило идемпотентности). - 2.Если первый запрос не дошёл до узла Кошелька, а второй дошёл, то он будет обработан, как первый.
- 3.Если касса получила ответ от узла Кошелька, то в нем будет содержаться поле
refTransactionId
. Для получения информации по статусу этой операции возврата кассе нужно использовать запрос статуса по операции (/status
), содержащий полученное значение параметраrefTransactionId
.
Если касса не получила ответ на первый запрос возврата (
/refund
) и инициирует новый запрос с измененным значением параметра requestId
, узел Кошелька обработает его как новый запрос на возврат, и в таком случае возможен двойной возврат средств на счёт пользователя.На диаграмме состояний приведены переходы между различными статусами транзакции в процессе выполнения сценариев отмены или возврата платежа через Кошелёк Pay API.
- Зелёным цветом отмечены успешные статусы.
- Красным отмечены неуспешные статусы.
- Жёлтым отмечены промежуточные статусы.

Статусы транзакции отмены / возврата
Last modified 4mo ago