Вернуть деньги покупателю, не замораживая свои
ЮKassa принимает платежи для бизнеса. Когда покупатель просит вернуть деньги, мерчант должен отдать их сам — выручка по этому платежу уже ушла к нему на счёт. Если свободных средств в моменте нет, возврат приходится оплачивать отдельно: пополнять баланс обеспечения, платить с карты или отправлять платёжное поручение. Все три пути долгие или дорогие.
Проектировал сценарий. Ресёрч и тестирование — вместе с исследователем.
Возвраты — постоянная тема в жалобах NPS. Про баланс обеспечения мерчанты в основном знают, но не понимают, из каких средств платится возврат и сколько их доступно прямо сейчас. Из-за этого возврат не проходит, причина остаётся неясной — и мерчант идёт в поддержку.
Мерчант ставит возврат в очередь. Дальше входящие платежи от покупателей автоматически идут на её погашение по мере поступления денег. Порядок в очереди можно менять в реальном времени, если приоритеты изменились.
во сколько раз больше мерчантов используют этот метод по сравнению с другими
кратно меньше обращений в поддержку и негативных оценок в NPS по теме возвратов
Ресёрч рынка и анализ конкурентов, включая Stripe.
В ЮKassa мерчант работает с двумя сущностями — Организация и Магазин, где магазин привязан к скрытой от большинства сущности Договор (на одном договоре может быть много магазинов, но 92% мерчантов работают с одним). Раздел «Платежи» живёт на уровне магазина, а возврат делается по договору — семантически ближе к организации, в другом блоке меню. Отсюда гипотеза: мерчант просто не поймёт, где искать очередь возвратов. Тестирование на 20 мерчантах её подтвердило.
Перерабатывать систему сущностей в рамках задачи было финансово нецелесообразно. Вместо этого сделали сводную страницу платежей на уровне организации — главную, со сводками не по конкретному магазину, а по всей организации сразу. Это решило навигационную проблему и одновременно начало приучать мерчантов к существованию этих сущностей, наглядно показывая разницу. Повторные тесты показали, что пользователи стали находить целевой раздел сразу.
Возврат может стоять в очереди не больше 25 дней — техническое ограничение. Если поступлений не хватает или сроки поджимают, остаются альтернативные пути: разовый возврат с карты и пополнение обеспечительного баланса.
Через фичефлаг, старт с 10% масс-сегмента с постепенным расширением на все сегменты и роли пользователей ЛК.
Перед проектированием прогнали количественный опрос мерчантов, которые делают возвраты в ЛК. Задача — понять, из-за чего именно возникают 12 тыс. обращений, и проверить 11 гипотез о том, что мерчант не понимает в текущем сценарии.
11 гипотез о разрывах в понимании сценария возврата
Главный вывод: проблема не в самом механизме, а в том, что мерчант не видит своих денег и не понимает, из чего платится возврат.
Второе исследование — немодерируемое тестирование прототипа очереди на 20 мерчантах. Каждый проходил сценарий сам: ставил возврат в очередь, разбирался с обеспечением и пытался понять, что происходит на экране очереди. Реплики респондентов собрали по шагам и сгруппировали по местам, где сценарий ломается.
Саму возможность поставить возврат в очередь оценивают положительно — и по логике, и по визуальной лаконичности. Ломается всё на деталях: мерчант не понимает, из чего платится возврат и почему очередь стоит.
Приоритет — снять непонимание там, где мерчант остаётся один на один с очередью.
Ключевая часть сценария — для общего понимания того, как работает решение: как мерчант ставит возврат в очередь и управляет им, от списка платежей до очереди в «Финансах».
Мерчант находит нужный платёж в истории и открывает его детали.
В шторе появился виджет с суммой, доступной для возврата: платежи за сегодня и баланс обеспечения за вычетом средств, уже зарезервированных под возвраты в очереди. Если денег не хватает и вернуть нужно немедленно — из виджета можно перейти к пополнению обеспечения. Если мерчант готов вернуть из будущих поступлений — заявка ставится в очередь.
После постановки в очередь платёж меняет статус на «В очереди на возврат» — мерчант видит это в общем списке, не заходя в детали.
В деталях явно подсвечиваем, что платёж стоит в очереди, объясняем, когда уйдут деньги, и даём перейти к самой очереди. Отсюда же можно убрать возврат из очереди или вернуть его первым.
Очередь живёт рядом с обеспечением: видно порядок, суммы и срок. Очередь общая для всех магазинов на договоре — это проговариваем текстом сразу под метриками.
Каждая заявка в очереди открывается в детали: сумма, тип возврата, срок и платёж-источник. Порядок можно изменить или убрать возврат из очереди.