С помощью API ЮKassa можно возвращать успешные платежи. Комиссии за проведение возврата нет. Комиссия ЮKassa за проведение платежа не возвращается.
Вернуть деньги через ЮKassa можно только на то платежное средство, которое использовалось для оплаты. Например, если при платеже деньги списали с карты
5555
5555
5555
4477
, то сделать возврат можно только на нее.Возврат платежа может быть полным или частичным. В первом случае вы возвращаете принятый платеж целиком. Во втором — часть от суммы платежа, например если хотите сделать возврат одного товара, а не всей покупки. Частичный возврат доступен не для всех способов оплаты.
Перед возвратом платежа проверьте, что:
- платеж со способом оплаты
sberbank
создан менее одного года назад, любым другим способом — менее трех лет назад; - платеж успешно завершен и находится в статусе
succeeded
; - способ оплаты поддерживает нужный вам тип возврата (полный, частичный).
Чтобы сделать полный возврат, в запросе на создание возврата передайте уникальный идентификатор (
payment_id
) и сумму (amount
) возвращаемого платежа.Пример запроса на создание возврата
curl https://api.yookassa.ru/v3/refunds \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "2.00", "currency": "RUB" }, "payment_id": "21740069-000f-50be-b000-0486ffbf45b0" }'
Пример тела ответа
{ "id": "216749f7-0016-50be-b000-078d43a63ae4", "status": "succeeded", "amount": { "value": "2.00", "currency": "RUB" }, "created_at": "2017-10-04T19:27:51.407Z", "payment_id": "21740069-000f-50be-b000-0486ffbf45b0" }
Частичный возврат создается аналогично полному, только в параметре
amount
нужно передать ту часть от суммы принятого платежа, которую вы хотите вернуть. Вы можете сделать сколько угодно частичных возвратов, если:- сумма всех частичных возвратов не превышает размер платежа;
- сумма возврата больше 1 рубля;
- сумма остатка больше 1 рубля.
В процессе возврата что-то может пойти не так. Например, может не хватать денег для возврата. В этом случае возврат будет отменен и перейдет в статус
canceled
.Чтобы вы могли лучше понимать, что произошло и что с этим делать, ЮKassa пришлет в объекте возврата комментарий к отмене возврата (
cancellation_details
). В нём будут указаны инициатор и причина отмены возврата. Вы можете использовать эти данные для анализа и решения проблем, вывода сообщений пользователю и любых других целей.Пример объекта возврата в статусе canceled
{ "id": "216749f7-0016-50be-b000-078d43a63ae4", "status": "canceled", "amount": { "value": "2.00", "currency": "RUB" }, "created_at": "2017-10-04T19:27:51.407Z", "payment_id": "21740069-000f-50be-b000-0486ffbf45b0", "cancellation_details": { "party": "yoo_money", "reason": "insufficient_funds" } }
Инициатор отмены возвращается в параметре
party
объекта cancellation_details
.Значение | Описание |
yoo_money | ЮKassa |
refund_network | Любые участники процесса возврата, кроме ЮKassa и вас (например, эмитент банковской карты) |
Причина отмены возвращается в параметре
reason
объекта cancellation_details
.Значение | Описание |
insufficient_funds | Не хватает денег, чтобы сделать возврат: сумма платежей, которые вы получили в день возврата, меньше, чем сам возврат, или есть задолженность.
Что делать в этом случае |
general_decline | Причина не детализирована.
Для уточнения подробностей обратитесь в техническую поддержку. |
rejected_by_payee | Эмитент платежного средства отклонил возврат по неизвестным причинам.
Предложите пользователю обратиться к эмитенту для уточнения подробностей или договоритесь с пользователем о том, чтобы вернуть ему деньги напрямую, не через ЮKassa. |
yoo_money_account_closed | Пользователь закрыл кошелек ЮMoney, на который вы пытаетесь вернуть платеж.
Сделать возврат через ЮKassa нельзя.
Договоритесь с пользователем напрямую, каким способом вы вернете ему деньги. |
Ежесуточные реестрыПроведение платежейОтправка чеков в налоговуюСпособы оплаты