Если в процессе покупатель и продавец захотят расторгнуть сделку, вы можете вернуть оплату покупателю. Комиссии за проведение возврата нет.
Вернуть платежи можно только в статусе
succeeded
. Сделать возврат платежа в составе сделки можно только до выплаты или до закрытия сделки. Порядок возврата платежа зависит от момента перечисления вам вознаграждения (fee_moment
в сделке):Если при создании сделки вы указали, что ваше вознаграждение нужно перечислять после успешного платежа (
fee_moment=payment_succeeded
), вернуть покупателю вы сможете только ту сумму, которая предназначалась продавцу. Возврат можно сделать всей суммы или только ее части. Частичных возвратов может быть несколько.Чтобы вернуть всё вознаграждение продавца, в запросе на создание возврата передайте в параметре
payment_id
уникальный идентификатор платежа, в объектах amount
и deal
— всю сумму вознаграждения продавца.Пример запроса на полный возврат вознаграждения продавца
curl https://api.yookassa.ru/v3/refunds \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "800.00", "currency": "RUB" }, "deal": { "refund_settlements": [ { "type": "payout", "amount": { "value": "800.00", "currency": "RUB" } } ] }, "payment_id": "2855940e-000f-5000-9000-1ef78d597562", "description": "Возврат заказа №37" }'
В ответ ЮKassa вернет созданный объект возврата . В нём также будет указан идентификатор сделки, в рамках которой возвращали платеж.
Пример тела ответа
{ "id": "28618525-0015-5000-9000-1e336d42672e", "status": "succeeded", "amount": { "value": "800.00", "currency": "RUB" }, "created_at": "2021-06-21T16:48:36.804Z", "deal": { "id": "dl-285e5ee7-0022-5000-8000-01516a44b147", "refund_settlements": [{ "type": "payout", "amount": { "value": "800.00", "currency": "RUB" } }] }, "description": "Возврат заказа №37", "payment_id": "2855940e-000f-5000-9000-1ef78d597562" }
ЮKassa вернет покупателю всю сумму, которая предназначалась продавцу, и закроет сделку. Баланс сделки после возврата станет нулевым.
Чтобы вернуть часть вознаграждения продавца, в запросе на создание возврата передайте параметр
payment_id
с уникальным идентификатором платежа, в объектах amount
и deal
— часть вознаграждения продавца, которую хотите вернуть.Важно учесть:
- Сумма в объекте
deal
должна совпадать с суммой в объектеamount
. - После возврата на балансе сделки должна остаться сумма, достаточная для выплаты вознаграждения продавцу, иначе выплату сделать не получится. Подробнее о лимитах выплат
Пример запроса на частичный возврат вознаграждения продавца
curl https://api.yookassa.ru/v3/refunds \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "200.00", "currency": "RUB" }, "deal": { "refund_settlements": [ { "type": "payout", "amount": { "value": "200.00", "currency": "RUB" } } ] }, "payment_id": "2855940e-000f-5000-9000-1ef78d597562", "description": "Возврат заказа №37" }'
В ответ ЮKassa вернет созданный объект возврата .
Пример тела ответа
{ "id": "28618525-0015-5000-9000-1e336d42672e", "status": "succeeded", "amount": { "value": "200.00", "currency": "RUB" }, "created_at": "2021-06-21T16:48:36.804Z", "deal": { "id": "dl-285e5ee7-0022-5000-8000-01516a44b147", "refund_settlements": [{ "type": "payout", "amount": { "value": "200.00", "currency": "RUB" } }] }, "description": "Возврат заказа №37", "payment_id": "2855940e-000f-5000-9000-1ef78d597562" }
ЮKassa вернет покупателю указанную часть оплаты и уменьшит баланс сделки и сумму выплаты продавцу на сумму возврата.
Если вознаграждение вы собираетесь получить при закрытии сделки (
fee_moment=deal_closed
), то вернуть покупателю вы сможете весь платеж, включая ваше вознаграждение.
Вернуть можно всю сумму или только ее часть. Частичных возвратов может быть несколько.Чтобы вернуть всю сумму платежа, в запросе на создание возврата передайте параметр
payment_id
с уникальным идентификатором платежа и объект amount
с суммой возвращаемого платежа.Пример запроса на полный возврат платежа
curl https://api.yookassa.ru/v3/refunds \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "1000.00", "currency": "RUB" }, "payment_id": "2855940e-000f-5000-9000-1ef78d597562", "description": "Возврат заказа №37" }'
В ответ ЮKassa вернет созданный объект возврата .
Пример объекта возврата
{ "id": "28618906-0015-5000-a000-1555d6d94c48", "status": "succeeded", "amount": { "value": "1000.00", "currency": "RUB" }, "created_at": "2021-06-21T17:05:10.506Z", "deal": { "id": "dl-285e5ee7-0022-5000-8000-01516a44b147", "refund_settlements": [{ "type": "payout", "amount": { "value": "800.00", "currency": "RUB" } }] }, "description": "Возврат заказа №37", "payment_id": "2855940e-000f-5000-9000-1ef78d597562" }
Если возврат прошел успешно, ЮKassa вернет покупателю всю оплату, включая эквайринговую комиссию — ее ЮKassa спишет с баланса вашего магазина, баланс сделки при этом станет отрицательным. После этого ЮKassa закроет сделку.
Пример объекта сделки после полного возврата платежа
{ "id": "dl-285e5ee7-0022-5000-8000-01516a44b147", "status": "closed", "balance": { "value": "-45.00", "currency": "RUB" }, "payout_balance": { "value": "0.00", "currency": "RUB" }, "created_at": "2021-06-18T07:28:39.390497Z", "type": "safe_deal", "fee_moment": "deal_closed", "metadata": { "order_id": "37" }, "description": "SAFE_DEAL 123554642-2432FF344R" }
Чтобы вернуть только часть платежа, в запросе на создание возврата передайте параметр
payment_id
с уникальным идентификатором платежа, объект amount
с той частью общей суммы, которую хотите вернуть, и объект deal
с информацией о том, как уменьшить вознаграждение продавца.Важно учесть:
- После возврата на балансе сделки должна остаться сумма, достаточная для выплаты вознаграждения продавцу, иначе выплату сделать не получится. Подробнее о лимитах выплат
- Если используете решение ЮKassa для работы по 54-ФЗ и возвращаете часть вашего вознаграждения, запрос на создание возврата нужно передавать без объекта
receipt
. Чтобы сформировать чек возврата прихода, отправьте ЮKassa отдельный запрос.
Пример запроса на частичный возврат платежа
curl https://api.yookassa.ru/v3/refunds \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "200.00", "currency": "RUB" }, "deal": { "refund_settlements": [ { "type": "payout", "amount": { "value": "160.00", "currency": "RUB" } } ] }, "payment_id": "2855940e-000f-5000-9000-1ef78d597562", "description": "Возврат заказа №37" }'
В ответ ЮKassa вернет созданный объект возврата .
Пример тела ответа
{ "id": "27dd7a4f-0015-5000-8000-1e8caf204668", "status": "succeeded", "amount": { "value": "200.00", "currency": "RUB" }, "created_at": "2020-02-12T13:03:11.398Z", "description": "Возврат заказа №37", "deal": { "id": "dl-285e5ee7-0022-5000-8000-01516a44b147", "refund_settlements": [ { "type": "payout", "amount": { "value": "160.00", "currency": "RUB" } } ] }, "payment_id": "2855940e-000f-5000-9000-1ef78d597562" }
ЮKassa вернет покупателю указанную часть оплаты и уменьшит баланс сделки и сумму выплаты продавцу на сумму возврата.
Основы работы с APIТестирование Безопасной сделкиОтправка чеков в Безопасной сделкеРеестры возвратов