Возврат денег покупателю в 1С-Битрикс — это не ручной перевод в личном кабинете банка, а операция прямо из карточки заказа, которую платёжная система выполняет через API эквайринга. Разберём, какие эквайринги это поддерживают, как включить возврат в настройках и как корректно оформить полный и частичный возврат с фискальным чеком.
Как устроен возврат в модуле «Интернет-магазин»
Возврат платежа в Битрикс — это отдельная операция над объектом Payment (оплата заказа), а не над самим заказом. Когда покупатель оплатил картой, у оплаты выставлен признак «оплачено» (PAID = Y), и модуль sale хранит идентификатор транзакции в поле PS_INVOICE_ID. Именно этот идентификатор нужен, чтобы попросить эквайринг вернуть списанные средства на ту же карту.
Возврат инициируется из административной части: Магазин → Заказы → карточка заказа → блок «Оплата». Битрикс вызывает метод refund() обработчика платёжной системы, тот формирует запрос к API банка, а после успешного ответа помечает оплату как возвращённую и делает запись в журнале транзакций.
Какие эквайринги поддерживают возврат из коробки
Автоматический возврат работает только с теми платёжными системами, чей обработчик реализует интерфейс возврата. В стандартной поставке обработчики лежат в /bitrix/modules/sale/handlers/paysystem/. Поддержка возврата определяется методом isRefundableExtended() сервиса платёжной системы — если он возвращает true, в карточке оплаты появится кнопка возврата.
| Эквайринг | Полный возврат | Частичный возврат |
|---|---|---|
| ЮKassa | Да | Да |
| Тинькофф Касса | Да | Да |
| Сбербанк (эквайринг) | Да | Да |
| CloudPayments | Да | Да |
| Robokassa | Да | Частично (по условиям договора) |
Если нужного банка нет в списке или используется самописный обработчик, возврат придётся либо доработать в методе refund(), либо выполнять вручную в личном кабинете банка, а в Битрикс отражать статус отдельно.
Настройка платёжной системы для возврата
Сама возможность вернуть деньги через API часто требует отдельных прав и ключей, отличных от приёма платежей. Проверьте несколько моментов до первого возврата.
- Права на возврат в кабинете банка. В ЮKassa за возвраты отвечает роль, а операция списывается с баланса магазина — если баланс пуст, API вернёт ошибку недостатка средств.
- Секретный ключ / токен. В настройках платёжной системы (
Магазин → Настройки → Платёжные системы) должны быть заполнены боевыеShop IDи секретный ключ, у Тинькофф —Terminal KeyиPassword. По тестовым ключам возврат не пройдёт для реальной транзакции. - Актуальный обработчик. Обновляйте модуль
sale: методы возврата у банков меняются, а старые обработчики могут не знать о новых полях API.
Как оформить возврат в админке
Порядок действий для стандартного полного возврата выглядит так.
- Откройте Магазин → Заказы и перейдите в нужный заказ.
- В блоке «Оплата» найдите оплаченную транзакцию и нажмите действие возврата (в разных версиях — «Вернуть деньги» или «Возврат оплаты»).
- Укажите сумму: по умолчанию подставляется полная сумма оплаты, для частичного возврата её можно уменьшить.
- Подтвердите операцию. Битрикс отправит запрос эквайрингу и дождётся ответа.
- При успехе оплата получит признак возврата, а в журнале транзакций заказа появится запись с суммой и датой.
Отдельно обратите внимание на статус самого заказа. Возврат оплаты не отменяет заказ автоматически — при необходимости переведите заказ в статус отмены и снимите резерв товара, иначе позиции останутся «зарезервированными» на складе.
Частичный возврат и фискализация
Частичный возврат нужен, когда покупатель отказался не от всего заказа: вернули одну позицию из трёх или сделали перерасчёт доставки. В поле суммы указывается только возвращаемая часть, остаток остаётся оплаченным. Учтите, что некоторые эквайринги допускают несколько частичных возвратов подряд, но суммарно не больше исходного платежа.
Если магазин работает по 54-ФЗ и пробивает чеки, на каждый возврат нужен отдельный фискальный документ — чек «Возврат прихода». В Битрикс за это отвечает модуль кассы: при подключённой онлайн-кассе (АТОЛ Онлайн, Orange Data, ОФД-провайдер) возврат оплаты автоматически ставит в очередь чек коррекции. Проверьте, что в настройках кассы включена фискализация возвратов.
Обмен с 1С синхронизирует статус оплаты с сайтом. Так вы избегаете расхождений между складским учётом и данными магазина.Типичные ошибки и как их читать
Большинство сбоев при возврате связано не с самим Битриксом, а с ответом банка, который модуль показывает в журнале транзакций. Что встречается чаще всего:
- Недостаточно средств на балансе. Возврат списывается с текущего баланса магазина в эквайринге — пополните его и повторите операцию.
- Транзакция не найдена. Пустой или неверный
PS_INVOICE_ID: оплата не была проведена онлайн либо помечена оплаченной вручную. - Истёк срок возврата. Прошло больше допустимого по договору периода — возврат только офлайн.
- Неверные ключи или права. Секретный ключ не соответствует боевому магазину, либо у учётной записи нет права на операцию возврата.
Полезно временно включить логирование платёжной системы — тело запроса и ответа API сохранится в файле лога, и причина отказа станет очевидна.
Итог
Возврат через эквайринг в 1С-Битрикс — это операция над оплатой в карточке заказа, которую платёжная система выполняет по API банка. Для корректной работы нужны три вещи: обработчик с поддержкой возврата, боевые ключи с правом на возврат и достаточный баланс в эквайринге. Отдельно продумайте фискализацию по 54-ФЗ и синхронизацию статусов с 1С, чтобы деньги, склад и учёт сходились.
Если возвраты идут потоком, нужен нестандартный эквайринг или возврат по инициативе из 1С — мы поможем доработать обработчик платёжной системы, настроить чеки коррекции и обмен статусами. Обращайтесь: наши интеграторы отладят весь цикл оплаты и возврата в вашем магазине.
Частые вопросы
Можно ли вернуть деньги, если заказ был помечен оплаченным вручную?
Нет. Ручная отметка не создаёт онлайн-транзакцию, поэтому у эквайринга нет платежа для возврата. Такие суммы возвращают банковским переводом по заявлению.
Поддерживает ли ЮKassa частичный возврат через Битрикс?
Да, ЮKassa допускает как полный, так и частичный возврат. В карточке оплаты достаточно указать возвращаемую сумму меньше исходной.
Почему кнопка возврата не появляется в карточке оплаты?
Значит, обработчик платёжной системы не поддерживает возврат либо оплата не проведена онлайн. Проверьте, что метод isRefundableExtended у сервиса возвращает true и заполнен PS_INVOICE_ID.
Отменяется ли заказ автоматически после возврата оплаты?
Нет, возврат касается только оплаты. Статус заказа и резерв товара нужно менять отдельно, иначе позиции останутся зарезервированными.
Нужен ли фискальный чек при возврате?
Если магазин работает по 54-ФЗ, на каждый возврат формируется чек «Возврат прихода». При подключённой онлайн-кассе Битрикс ставит его в очередь автоматически.
Что делать при ошибке «недостаточно средств» при возврате?
Возврат списывается с баланса магазина в эквайринге. Пополните баланс в кабинете банка и повторите операцию из карточки заказа.
Есть ли ограничение по сроку возврата?
Да, у большинства эквайрингов возврат через API возможен ограниченное время после оплаты. По истечении срока остаётся только офлайн-возврат по заявлению.
Можно ли инициировать возврат из 1С?
Да, при настроенном обмене 1С формирует документ возврата, а синхронизация через модуль обмена отражает статус оплаты на сайте. Это удобно, когда учёт ведётся в 1С.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.