В этой статье описано, как проводить возвраты при использовании решения ЮKassa по автоматической регистрации чеков в сервисе Мой налог.
При полном возврате платежа ЮKassa аннулирует чек прихода в сервисе Мой налог.
При частичном возврате ЮKassa аннулирует старый чек и зарегистрирует новый чек для той части заказа, которая осталась после возврата.
Данные для чека нужно передавать в объекте
receipt
в том же запросе, что и данные для возврата.Если вы делаете полный возврат, данные для чека передавать не нужно.
Для возврата отправьте стандартный запрос на создание возврата .
Объект
receipt
не передавайте.Пример запроса полный возврат с данными для чека
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": "<Идентификатор возвращаемого платежа>" }'
При возврате ЮKassa автоматически аннулирует чек прихода.
Если вы делаете частичный возврат, в запросе на создание возврата нужно передать объект
receipt
с данными для чека.
Необходимо указать контактные данные пользователя (электронную почту или номер телефона) и данные о тех товарах и услугах, которые пользователь возвращает.Пример запроса на частичный возврат с данными для чека
curl https://api.yookassa.ru/v3/refunds \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "payment_id": "<Идентификатор возвращаемого платежа>", "amount": { "value": "750.00", "currency": "RUB" }, "receipt": { "customer": { "email": "user@example.com" }, "items": [ { "description": "Ложка", "quantity": "10", "amount": { "value": "50.00", "currency": "RUB" }, "vat_code": "1" }, { "description": "Чашка чайная", "quantity": "1", "amount": { "value": "150.00", "currency": "RUB" }, "vat_code": "1" }, { "description": "Блюдце", "quantity": "1", "amount": { "value": "100.00", "currency": "RUB" }, "vat_code": "1" } ] } }'
Как только возврат будет создан, ЮKassa отменит старый чек прихода и создаст новый — с данными о товарах, оставшимися после возврата.
Вы можете узнать, сформировался ли чек, по значению параметра
receipt_registration
в объекте возврата и в личном кабинете ЮKassa в истории платежей.
Если что-то пойдет не так, сформируйте чек вручную в сервисе Мой налог и самостоятельно пришлите пользователю ссылку на чек.В запросе на создание возврата вы передаете данные о возвращаемых товарах.
Чтобы сформировать новый чек для оставшихся товаров, ЮKassa возьмет данные, которые вы указали при возврате, и сравнит их с теми данные, которые есть в зарегистрированном чеке.
Если данные товаров совпадут, ЮKassa сформирует детальный чек: исключит возвращаемые товары и сформирует новый чек с детальным описанием каждой товарной позиции.
Если ЮKassa не найдет в исходном чеке какие-то возвращаемые товары, например из-за опечатки в названии, она сформирует общий чек с одной фиксированной позицией —
Заказ после возврата
и скорректированной суммой.При проведении платежа вы передали такие данные:
Название (description) | Стоимость (amount) | Количество (quantity) |
---|---|---|
Ложка | 50.00 | 10 |
Чашка чайная | 150.00 | 2 |
Блюдце | 100.00 | 2 |
Общая сумма заказа — 1000 рублей.
Вы хотите вернуть чашку и блюдце. Общая сумма возврата — 250 рублей, общая сумма оставшейся части заказа — 750 рублей.
Пример корректных данных при возврате
Название (description) | Стоимость (amount) | Количество (quantity) |
---|---|---|
Чашка чайная | 150.00 | 1 |
Блюдце | 100.00 | 1 |
Названия товаров есть в том чеке, который зарегистрирован в сервисе Мой налог. В этом случае ЮKassa сформирует детальный чек:
Название (description) | Стоимость (amount) | Количество (quantity) |
---|---|---|
Ложка | 50.00 | 10 |
Чашка чайная | 150.00 | 1 |
Блюдце | 100.00 | 1 |
Пример некорректных данных при возврате
Название (description) | Стоимость (amount) | Количество (quantity) |
---|---|---|
Чашка чайн. | 150.00 | 1 |
Блюдце | 100.00 | 1 |
Названия некоторых товаров отличаются. В этом случае ЮKassa сформирует общий чек:
Название (description) | Стоимость (amount) | Количество (quantity) |
---|---|---|
Заказ после возврата | 750.00 | 1 |
Проверьте, что вы корректно передаете данные для чеков в объекте
receipt
:- объект
receipt
есть только в запросах на частичный возврат платежа; - указаны электронная почта или номер телефона пользователя (данные переданы в объекте
customer
); - для каждого товара в
items
указаны только эти параметры —description
,amount
,quantity
,vat_code
; других параметров нет; - названия товаров, сумма за единицу товара полностью совпадают с данными в зарегистрированном чеке прихода;
- количество товара не превышает количество, указанное в зарегистрированном чеке;
quantity
— только целые числа (без точки и дробной части);vat_code
везде 1;- сумма возврата в
amount
совпадает с общей суммой возвращаемых товаров в объектеreceipt
(чтобы определить сумму возвращаемых товаров, для каждого товара умножьтеquantity
наamount
и просуммируйте получившиеся значения по всем товарам); - все суммы в чеке положительные.
Если что-то будет не так, ЮKassa вернет ошибку.
Возвраты платежейПолучение информации о возвратеКоды ответа (состояния) HTTP