Система быстрых платежей (СБП) существует достаточно давно, но бытовые переводы «по номеру телефона» всё ещё регулярно вызывают ошибки, путаницу и лишние действия.
Если открыть комментарии под любой статьёй на эту тему — гарантированно найдёшь реплики вида:
«Но ведь можно просто скопировать контакт? Или показать QR из банка. Зачем вообще что-то ещё?»
Проблема в том, что в инженерных рассуждениях мы часто видим идеальные сценарии, а в реальной жизни всё намного менее стерильно.
В этой статье — разбор, почему бытовые переводы по номеру на практике всё ещё далеки от идеала, с точки зрения UX, безопасности, разрозненности банковских реализаций и человеческого фактора.
И почему альтернативные способы (vCard, контакт, QR из приложений банков) не всегда закрывают эту бытовую рутину.
Здесь нет рекламы и нет призывов пользоваться каким-то конкретным инструментом.
Это исследование проблемы, которая всплывает каждый день у людей вне IT-пузыря.
🔍 1. Ошибки при вводе номера: статистика, которую обычно не замечают
Перевод по номеру — банальная операция. Но она остаётся удивительно хрупкой:
✔ Почему так?
В номерах телефонов нет контрольной суммы.
Ошибиться в одной цифре — значит отправить деньги незнакомому человеку.Ввод идёт вручную или через копирование из чата, и тут начинаются нюансы:
номер в сообщении без форматирования (
+71234567890)номер, разбитый пробелами
номер с префиксами/скобками
номер в скриншоте (!)
Пожилые пользователи, которые:
переспрашивают номер несколько раз,
теряют его в переписке,
случайно отправляют перевод не тому контакту.
Сценарий групповых чатов:
в беседе несколько людей бросают свои номера, кто-то путает сообщения, кто-то отправляет «старый номер».
🔢 2. Почему «просто vCard/контакт» — не всегда решение
В комментариях под первой статьёй логично звучала мысль:
«Зачем какие-то визитки, если можно просто отправить контакт?»
В идеальных условиях — да.
Но вот что происходит в реальности:
1) Контакт → не номер
Контакт — это не банковский реквизит.
У пользователя может быть:
два номера (личный / рабочий),
разные банки привязаны к разным номерам,
старая SIM картa, которая ещё в списке контактов.
2) Контакт не показывает, к какому банку привязан номер
А у отправителя часто принципиально важно платить в свой банк — иначе улетает комиссия.
3) Контакт ≠ гарантия актуальности
Люди меняют номера. Чаще, чем кажется.
Контакт остаётся старым → перевод улетает не туда.
4) Контакт невозможно разместить в офлайне
На стойке с кофе, на шкафчике в спортзале, на визитке курьера нельзя разместить «контакт» — нужен QR.
🔳 3. Почему QR от банков тоже работает не всегда
Некоторые комментаторы писали:
«Открой Сбер → Платежи → Получить → QR — и всё»
Да, но на практике это ломается в нескольких местах:
1) QR из банка — статичен и привязан к конкретному банку
Если у получателя Сбер, а у отправителя ВТБ или Россельхоз —
ссылка часто просто не откроется.
2) Технология QR C2C от НСПК пока в неоднородном состоянии
Несмотря на анонсы, между банками всё ещё нет единой реализации.
Где-то QR поддерживается частично, где-то реализован не полностью, где-то не работает deeplink.
3) В офлайне такой QR не всегда удобно использовать
Человек может открыть камеру → распознать QR → попасть в банкомат → получить ошибку → вернуться → спросить номер вручную.
4) QR-код банков не универсален
Он работает только в том приложении, для которого создан.
🔗 4. Разнородность deeplink’ов: техническая причина хаоса
В банковском UX одна проблема остаётся системной:
У каждого банка — свой deeplink
у Сбера можно передать номер в ссылке,
у Тинькоффа — через копирование,
у Альфы deeplink не принимает телефон напрямую,
у Газпрома deeplink открывает приложение, но номер не подставляет.
Нет стандарта.
И это ключевая причина, почему не существует одной универсальной схемы «нажал → открылся нужный банк → перевёл».
Технически перевод по номеру — прост.
Но переход в конкретный банк сделан так по-разному, что «универсального» UX нет.
👥 5. Групповые и бытовые сценарии — самые тяжёлые
Если спросить людей, где чаще всего происходят ошибки, вы услышите одно и то же:
✔ общие сборы (дни рождения, офис, подарки)
✔ поездки (кто оплатил бензин, кто потом переводит)
✔ ремонтники / частные услуги
✔ репетиторы / няни
✔ старшие родственники
✔ пересылаемые номера из старых чатов
Во всех этих сценариях есть общая черта:
отправитель почти никогда не знает, какой банк стоит у получателя.
И здесь снова начинается игра в угадывания, переписки, дублирование номера.
🧩 6. Почему простые советы вроде “копируйте номер вручную” — не решают проблему
Звучит просто:
Вставил → перевёл → готово.
Но давайте перечислим, что может пойти не так:
нет интернета в момент копирования (часто в транспорте);
копирует старый номер из другого чата;
вставляет в поле “комментарий” вместо поля “номер”;
случайно очищает буфер (банально копируя другую фразу);
на iOS иногда не работает auto-copy из мессенджеров;
у банка нет deeplink из браузера (в некоторых приложениях до сих пор так).
Перевод по номеру выглядит простым, но UX-путь у него длиннее и более ломкий, чем кажется.
🛡 7. Безопасность: главный скепсис и главный источник ошибок
На Хабре этот вопрос поднимают чаще всего:
«Я не доверяю никакому стороннему сервису. Бот может менять номер, собирать статистику, быть взломанным.»
И это оправданная позиция.
Но важно подчеркнуть фундаментальную вещь:
Пересылка номера в открытых мессенджерах тоже небезопасна.
Почему?
номер лежит в истории чата,
его можно подменить ботами/экстеншнами,
его можно случайно отредактировать,
система не защищает от MITM в web-превью,
нет механизма проверки подлинности.
В некоторых сценариях контакт в мессенджере уязвим не меньше, чем сторонняя визитка.
🧭 8. Итог: проблема не в переводах, а в UX между людьми
Переводы по номеру работают отлично.
Проблема — в том, как люди обмениваются номером, как они его копируют, как открывают банк и как записывают его в интерфейс.
СБП прекрасно решает транспорт денег, но не решает:
человеческие ошибки,
разный UX банков,
сценарии «в группе несколько номеров»,
старые номера в контактах,
пожилых людей,
офлайн-сценарии,
динамичную замену реквизитов,
И любой инструмент (от vCard до QR) — это попытка упростить повседневное взаимодействие, а не заменить банковскую инфраструктуру.
📌 В следующей статье
Если вам интересно, в следующем материале я разберу:
«Как защитить бытовые денежные переводы от подмены номера: архитектура, угрозы, решения»
Там будут:
модель угроз,
варианты атак,
рекомендации по защите,
сравнение безопасности разных механизмов передачи номера (контакты, QR, ссылки, deeplink),
и пример архитектуры, которая минимизирует риск подмены данных.
Предыдущая статья про это решение здесь https://habr.com/ru/articles/968372/