Возвраты и отмены: частичные, полные, чек возврата
Зачем нужен возврат платежа в API и чем он отличается от отмены
Возвраты и отмены — ключевые операции жизненного цикла платежа в интернет-эквайринге. Через возврат платежа API вы можете вернуть средства клиенту после списания, а через отмену — прервать авторизованный, но ещё не списанный платеж. Правильное различие терминов помогает выстроить корректную логику, бухгалтерию и фискализацию.
- Отмена платежа (cancel/void): применяется, когда платёж авторизован, но ещё не захвачен (не списан). Деньги не уходят со счёта клиента окончательно, удержание снимается.
- Возврат (refund): применяется после списания (capture). Возможен полный или частичный возврат на карту/кошелёк/счёт клиента.
Если вы только планируете подключение приёма платежей, начните с маршрута Приём платежей API и общей Документации API. Для быстрой проверки логики отмен и рефандов используйте раздел Песочница и тестирование.
Коротко о терминах
- Authorize — блокировка суммы на карте.
- Capture — окончательное списание. Возможен полный или частичный capture.
- Refund — возврат списанной суммы. Возможен полный или частичный refund.
- Void (cancel) — отмена авторизации до списания.
![Схема потоков отмены и возврата]()
Сценарии: полный, частичный refund и частичный capture
Разные бизнес-сценарии требуют гибких операций. Ниже — базовые варианты работы refund API платежи.
- Полный возврат: клиент отменил заказ целиком — возвращаете 100% суммы.
- Частичный возврат: отгружена часть заказа, клиент возвратил один из товаров, предоставили скидку постфактум и т. п.
- Частичный capture и refund: сценарий «сплит-отгрузки». Сначала делаете частичный capture на фактически отгруженную часть, позже — дополнительный capture, либо отменяете остаток авторизации. Если захватили больше — делаете частичный возврат на разницу.
- Отмена до списания (void): клиент отказался до подтверждения, товар отсутствует, проверка antifraud не пройдена и т. д.
Сравнение операций:
| Действие |
Когда применяется |
Банковская логика |
Денежный поток |
Фискализация |
| Отмена (void) |
До capture |
Снимается холд |
Денег «туда‑обратно» нет |
Чек не выбивается |
| Полный refund |
После capture |
Полный возврат |
−100% к обороту |
Чек возврата обязателен |
| Частичный refund |
После capture |
Возврат части |
−X% к обороту |
Чек возврата на позицию/сумму |
| Частичный capture |
После authorize |
Списывается часть |
Денег удерживается ровно на списание |
Чек на фактическую отгрузку |
Подробнее о поддерживаемых платёжных сценариях смотрите в разделе Методы оплат и гайд по двухстадийным операциям в Документации API.
Потоки в API, статусы и ограничения
Ниже — типичный жизненный цикл с точки зрения API. Нотация описательная, детали — в Документации API.
- Инициация платежа: создаёте payment с amount и capture=false (двухстадийный) или capture=true (одностадийный).
- Захват (capture): списываете полностью или частично.
- Отмена (cancel/void): возможна только если capture не выполнялся (или на неиспользованный остаток авторизации при частичном capture).
- Возврат (refund): создаёте refund на весь или на часть ранее списанной суммы.
Ключевые статусы:
- payment: pending → authorized → captured → canceled/expired/failed
- refund: pending → succeeded/failed
Ограничения и правила:
- Сумма refund не может превышать суммарно захваченную сумму по платежу.
- Допускается несколько частичных refund до исчерпания исходной суммы.
- Валюта refund совпадает с валютой исходного платежа.
- Возврат доступен только для статуса captured (или для захваченной части при частичном capture).
- Для рекуррентных операций действуют те же правила; см. Рекуррентные платежи.
Советы по устойчивости интеграции:
- Используйте идемпотентность для команд refund/cancel, чтобы избежать дублей при сетевых ретраях.
- Подписывайтесь на вебхуки, а не полагайтесь только на опрос статусов; см. Вебхуки и события.
- Сверяйте операции через Отчеты и выгрузки для бухгалтерии и учёта комиссий (см. Тарифы и комиссии).
Фискализация: чек возврата по 54-ФЗ
При возврате средств по 54‑ФЗ требуется сформировать и отправить в ОФД «чек возврата прихода». Это релевантно для всех операций refund (полных и частичных), включая возврат по частично захваченным платежам.
Что важно учесть:
- В чеке возврата должны быть корректные позиции (номенклатура, ставка НДС, признак способа расчёта «возврат прихода»).
- Для частичного возврата укажите только возвращаемые позиции или пропорционально уменьшенную сумму.
- Данные о связи с исходным чеком (номер/фискальный признак) помогают покупателю и бухгалтерии.
Мы поддерживаем автоматическую фискализацию возвратов через интеграцию с кассами. Детали по форматам и ошибкам — в разделе Фискализация 54‑ФЗ. Термин «чек возврата 54‑ФЗ» фигурирует также в ответах API и логах фискализации.
Сроки возврата платежей по методам оплаты
Сроки возврата платежей зависят от метода оплаты и банка‑эмитента. Ниже ориентировочные значения; точные SLA — в вашем договоре и в разделе SLA и поддержка.
| Метод оплаты |
Ориентировочный срок зачисления клиенту |
Комментарии |
| Банковские карты |
1–7 рабочих дней |
Зависит от эмитента, иногда до 10 дней |
| СБП |
Мгновенно – 3 рабочих дня |
Чаще быстрее карт, но бывают задержки на стороне банка |
| Электронные кошельки |
Мгновенно – 1 рабочий день |
По провайдеру |
| Банковский перевод |
1–5 рабочих дней |
С учётом межбанка |
Важно заранее коммуницировать сроки клиентам на странице «Политика возвратов» и в письмах. Детали по поддерживаемым методам — в Методы оплат.
Политика возвратов: как настроить правила и коммуникации
Грамотная политика возвратов снижает нагрузку на саппорт и риск чарджбеков.
Рекомендации:
- Опишите критерии полного и частичного возврата, сроки рассмотрения, каналы обращения.
- Уточните, как обрабатываются цифровые товары, предзаказы, подписки (см. Рекуррентные платежи).
- Укажите, кто оплачивает обратную доставку и как рассчитывается сумма refund при частичном возврате.
- Прозрачно отразите комиссии и возможные удержания; смотрите действующие Тарифы и комиссии.
- Обеспечьте автокоммуникации по статусам «refund initiated», «вебхук refund succeeded», «refund failed».
- Сверяйте возвраты в Отчетах и выгрузках и учитывайте их при Выплатах и выводе средств.
Чтобы снизить долю возвратов, используйте правила антифрода и скоринга — раздел Anti‑fraud и риск.
Вебхуки и уведомления: refund succeeded
События вебхуков помогают надёжно реагировать на статусы без периодического опроса API.
Минимальный набор для возвратов и отмен:
- refund.pending — мы приняли запрос на возврат.
- refund.succeeded (вебхук refund succeeded) — возврат успешно проведён.
- refund.failed — возврат не удался (приложите логику повторов/эскалации).
- payment.canceled — авторизация отменена (void).
- payment.captured — списание (полное/частичное) завершено.
Подписка, ретраи, подпись запросов и безопасность описаны в разделе Вебхуки и события и Безопасность PCI DSS. Храните секреты вебхуков безопасно, проверяйте подпись и метаданные идемпотентности.
Тестирование в песочнице и быс-тый старт
Перед запуском на продакшене проверьте полный цикл: authorize → частичный capture → cancel остатка → частичный refund → чек возврата.
Типичные ошибки, статусы и best practices
Ниже кратко о частых проблемах и как их избежать при работе с отменами и возвратами.
Типичные ошибки API:
- invalid_state: попытка refund до capture или после полной отмены.
- amount_exceeds_captured: сумма возврата больше, чем захваченная.
- already_refunded: повторный полный возврат.
- fiscalization_failed: чек возврата не пробит; требуется повтор или ручная обработка (см. Фискализация 54‑ФЗ).
- webhook_signature_invalid: не прошла проверка подписи вебхука (см. Вебхуки и события).
Лучшие практики интеграции:
- Покрывайте все ветки: полный/частичный refund, void, частичный capture и refund.
- Делайте идемпотентные запросы с ключами per‑operation.
- Храните связь refund ↔ исходный payment, позиции заказа и НДС для чека возврата 54‑ФЗ.
- Сразу уведомляйте клиента о запуске и результатах возврата, указывайте ориентировочные сроки возврата платежей по методу.
- Регулярно сверяйте сумму возвратов с отчетами провайдера и с учётом комиссий/коррекций.
- Для подписок: показывайте в интерфейсе «отмена автопродления» отдельно от «возврата за текущий период» — минимизируйте путаницу (см. Рекуррентные платежи).
Пример статусов и событий для одной операции:
| Шаг |
Сервисный статус |
Вебхук |
| Создан refund |
refund.pending |
refund.pending |
| Успех |
refund.succeeded |
refund.succeeded |
| Ошибка |
refund.failed |
refund.failed |
Если у вас есть специфические требования к очередям, ретраям или гарантиям доставки событий — обратитесь в SLA и поддержку.
Как это выглядит в интерфейсе/отчётах
- В отчётах провайдера возвраты отражаются как отдельные строки со знаком «минус». Используйте Отчеты и выгрузки для сверки по датам операции и зачёта.
- В выплатах возвраты уменьшают доступный к выводу баланс; см. Выплаты и вывод средств.
Когда выбирать отмену вместо возврата
- Если можно отменить авторизацию до списания, выбирайте cancel/void: клиент увидит снятие холда быстрее, а вам не нужно пробивать чек возврата.
Часто задаваемые вопросы (FAQ)
- Можно ли сделать несколько частичных возвратов? Да, до суммы захвата.
- Как выполнить возврат на другую карту? Как правило, refund возвращается на исходный источник. Изменение реквизитов — через банк/эмитент, не через API.
- Поддерживается ли рефанд для СБП? Да, если метод оплаты и банк поддерживают входящие возвраты. Уточняйте в Методы оплат.
- Что с подписками? Возвраты по повторным списаниям работают аналогично, важно корректно показывать период и основание — см. Рекуррентные платежи.
Итоги и что дальше
Возвраты и отмены — обязательная часть жизненного цикла платежей. В api-platezhi.ru вы можете реализовать отмену платежа API до списания и гибкий возврат платежа API после capture: полный, частичный, а также сценарии «частичный capture и refund» с корректным чеком возврата 54‑ФЗ и уведомлениями через вебхук refund succeeded. Настройте понятную политику возвратов, автоматизируйте фискализацию и отладьте вебхуки — это сократит издержки и повысит лояльность клиентов.
Готовы внедрить? Начните с Быстрого старта, проверьте сценарии в Песочнице и подключите уведомления в Вебхуки и события. Если есть вопросы — мы на связи в разделе SLA и поддержка.