-
Позиция
Количество и оплаченная цена
-
Операция
Уникальный запрос провайдеру
-
Товар
Приёмка и доступный остаток
-
Сверка
Платёж, заказ и учётная система
При частичном возврате нужно согласовать четыре записи: возвращаемую позицию заказа, денежную операцию, движение товара и данные 1С. Успешная отправка запроса в платёжный сервис ещё не подтверждает возврат денег. Поступление товара на склад и возврат платежа также могут происходить в разное время.
Сохраните исходные суммы заказа
До операции зафиксируйте ID заказа и платежа, состав строк, количество, распределённые скидки, доставку и уже выполненные возвраты. Используйте согласованные цены оформленного заказа. Пересчёт старой покупки по сегодняшней цене каталога даст другую сумму и затруднит сверку.
ЮKassa разделяет полный и частичный возврат; поддержка конкретного варианта зависит от способа оплаты. У другого эквайера условия и статусы могут отличаться. Нужны документация вашего провайдера и версия модуля интеграции, а не инструкция только по кнопке в административной панели.
Учебный заказ: возвращаем одну позицию
Условный заказ U-026 оплачен полностью. Цены в таблице уже учитывают согласованные скидки. Покупатель возвращает одну из двух единиц первого товара; доставку в этом учебном сценарии не возвращают. Это пример расчёта для настройки обмена, а не универсальное правило возврата доставки.
| Состав | Оплачено | Остаётся после возврата |
|---|---|---|
| Товар А: 2 × 3 000 ₽ | 6 000 ₽ | 3 000 ₽ |
| Товар Б: 1 × 1 200 ₽ | 1 200 ₽ | 1 200 ₽ |
| Доставка | 500 ₽ | 500 ₽ |
| Итого | 7 700 ₽ | 4 700 ₽ |
Сумма одной операции возврата — 3 000 ₽. В учёте заказа должны остаться товар А в количестве одной единицы, товар Б и согласованная доставка. Удаление всего заказа или пометка всей покупки как неоплаченной исказят остатки и отчёты.
Разведите статусы операции и товара
Заведите отдельные состояния: запрос зарегистрирован, операция ожидает результата, деньги возвращены или операция отменена. Факт приёма товара храните отдельно. Если возврат согласован до получения посылки, сумма может быть уже возвращена, а товар ещё не принят на склад.
| Система | Запись | Проверка |
|---|---|---|
| Сайт | Позиция, количество, причина, сумма и ID операции | Не изменился ли состав остальных строк |
| Платёжный сервис | Исходный платёж и состояние возврата | Подтверждён ли результат провайдером |
| 1С и склад | Документ и фактическое движение товара | Не восстановлен ли остаток раньше приёмки |
| CRM | Обращение и связь с заказом | Виден ли менеджеру текущий этап без создания новой продажи |
Кассовые документы и их состав проверяйте в используемой схеме оплаты с ответственным за учёт. Изменение статуса в CRM не означает автоматического формирования нужного документа.
Исключите повторный возврат денег
Сохраните устойчивый внутренний ID операции и полученный ID возврата провайдера. Если API поддерживает идемпотентность, используйте её по правилам провайдера. Повтор одного события очереди должен обновить прежнюю запись, а не создать ещё один возврат.
При сетевом таймауте сначала запросите состояние существующей операции. Не создавайте новую, пока результат первой не выяснен. В справке ЮKassa о возвратах отдельно разобран риск повторной заявки: при доступных средствах деньги могут уйти ещё раз.
Операции учитывайте в журнале с временем, суммой и связями идентификаторов. Не записывайте в открытые логи секретные ключи и полные платёжные данные. Изменение финансовой суммы сотрудником должно оставлять след в истории.
Проверьте обмен на стенде
- Подготовьте учебный оплаченный заказ в тестовом контуре провайдера.
- Верните одну позицию и дождитесь результата существующей операции.
- Повторно передайте то же событие интеграции: сумма возвращённых денег не должна увеличиться.
- Проверьте отложенную приёмку товара, отказ операции и второй согласованный возврат другой позиции.
- Сопоставьте сайт, кабинет провайдера, документы 1С и CRM по одним ID.
Сумма оплаты и возврата — только часть экономики заказа. Комиссии, отмены и рекламные расходы отдельно разобраны в материале об окупаемости с учётом возвратов.
Частые вопросы
Можно автоматически вернуть товар в доступный остаток?
Только по согласованному событию учёта. Денежный возврат сам по себе не подтверждает приёмку и пригодность товара к продаже.
В CRM сделка закрыта успешно. Где показывать возврат?
Сохраните исходную продажу и связанную операцию возврата согласно принятой модели учёта. Менеджеру нужны сумма, причина и этап. Удаление продажи лишает команду истории.
Для настройки обмена сайта с 1С подготовьте обезличенный заказ, сценарии частичных операций и список систем. Если проблема в приёме уведомлений эквайера, начните с платёжной интеграции.


