Возврат одной позиции без повторной выплаты
  1. Позиция

    Количество и оплаченная цена

  2. Операция

    Уникальный запрос провайдеру

  3. Товар

    Приёмка и доступный остаток

  4. Сверка

    Платёж, заказ и учётная система

При частичном возврате нужно согласовать четыре записи: возвращаемую позицию заказа, денежную операцию, движение товара и данные 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. Подготовьте учебный оплаченный заказ в тестовом контуре провайдера.
  2. Верните одну позицию и дождитесь результата существующей операции.
  3. Повторно передайте то же событие интеграции: сумма возвращённых денег не должна увеличиться.
  4. Проверьте отложенную приёмку товара, отказ операции и второй согласованный возврат другой позиции.
  5. Сопоставьте сайт, кабинет провайдера, документы 1С и CRM по одним ID.

Сумма оплаты и возврата — только часть экономики заказа. Комиссии, отмены и рекламные расходы отдельно разобраны в материале об окупаемости с учётом возвратов.

Частые вопросы

Можно автоматически вернуть товар в доступный остаток?

Только по согласованному событию учёта. Денежный возврат сам по себе не подтверждает приёмку и пригодность товара к продаже.

В CRM сделка закрыта успешно. Где показывать возврат?

Сохраните исходную продажу и связанную операцию возврата согласно принятой модели учёта. Менеджеру нужны сумма, причина и этап. Удаление продажи лишает команду истории.

Для настройки обмена сайта с 1С подготовьте обезличенный заказ, сценарии частичных операций и список систем. Если проблема в приёме уведомлений эквайера, начните с платёжной интеграции.