Система быстрых платежей (СБП) существует достаточно давно, но бытовые переводы «по номеру телефона» всё ещё регулярно вызывают ошибки, путаницу и лишние действия.
Если открыть комментарии под любой статьёй на эту тему — гарантированно найдёшь реплики вида:
«Но ведь можно просто скопировать контакт? Или показать 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/
Комментарии (31)

CaptGg
25.11.2025 09:38Нет стандарта.
И это ключевая причина, почему не существует одной универсальной схемы «нажал → открылся нужный банк → перевёл».
Намеренно не существует, чтобы физические лица не имели соблазна использовать переводы по номеру телефона для получения оплаты за услуги и товары. Это всё равно происходит, но из-за неудобств такой оплаты, не так масштабно. А для юридических лиц вполне стандартизирована оплата по QR и ссылкам СБП.

inkelyad
25.11.2025 09:38физические лица не имели соблазна использовать переводы по номеру телефона для получения оплаты за услуги и товары
При этом сама возможность такого перевода - вот явно для этого сценария и была придумана. Потому что больше ни для чего оно и не надо.
Поверить в то, что целую платежную систему сделали для сценариев вида 'человек собирает со всех причастных за оплаченный им счет в кафешке' или 'собираем на подарок коллеге' - как-то уж совсем не верится.

CaptGg
25.11.2025 09:38Создать подконтрольный напрямую государству способ перевода денег для физических лиц настолько удобным, чтобы граждане стали им пользоваться вместо переводов по банковским картам, счетам, вместо множества коммерческих услуг переводов и передачи наличных, вы считаете нерациональным?

D_T
25.11.2025 09:38подконтрольный напрямую государству способ перевода денег для физических лиц настолько удобным
Слова "подконтрольный государству" и "удобный" плохо сочетаются. Создать могут, удобный - слабо верится.
СБП ведь тоже государство не само придумало, сначала Сбер запустил переводы по номеру телефона внутри себя, оно взлетело за счет простоты и удобства, и только потом СБП стали делать по образу и подобию. Хотя до этого были переводы по номеру карты, да и классический перевод по реквизитам не такой уж и сложный, правда на межбанке не мгновенно проходит.

inkelyad
25.11.2025 09:38да и классический перевод по реквизитам не такой уж и сложный, правда на межбанке не мгновенно проходит.
Скорость прихода и механизм отправки денег - ортогональны платежным идентификаторам.
Никто не мешал межбанк по реквизитам сделать мгновенным.
D_T
25.11.2025 09:38Никто не мешал межбанк по реквизитам сделать мгновенным.
Мешал или нет - не знаю.
С банками всегда была другая проблема - комиссии за переводы в другой банк, и перевод по номеру карты, и по реквизитам. Очень они не любят когда человек свои деньги от них забирает. До недавнего времени бесплатно переложить деньги в другой банк можно было только налом. Сомневаюсь что банки легко отказались бы от комиссий которые уже берут за уже существующие услуги, а тут СБП с нуля, вроде как что-то новое, переводы по номеру телефона только у Сбера были, поэтому он и упирался в СБП вступать.

inkelyad
25.11.2025 09:38Это все административное давление. Сказали 'По СБП - должно быть дешево вплоть до бесплатности' - банки поморщились и пошли выполнять.
Сказали бы на n-ное число лет раньше 'По номеру кары - должно быть дешево, пишите API, чтобы номерами карт обмениваться и слать мимо карточной системы' - было бы все тоже самое.

D_T
25.11.2025 09:38Сказали 'По СБП - должно быть дешево вплоть до бесплатности' - банки поморщились и пошли выполнять.
Сказать мало, надо закон соответствующий поправить, а это совсем не простая процедура. И рычагов влияния на принятие решения у банков гораздо больше чем у рядовых граждан.
СБП запустили в 2019-м, а комиссию за перевод самому себе свыше 100к отменили только в 2024, хотя говорили чуть ли не с самого начала об этом.
Например почему СБП не популярна при оплате на кассе? Потому что покупатель получает кэшбэк при оплате картой, говорят постоянно "надо запретить кэшбэк", но запретить не могут. Раньше на тарифы Визы и Мастекард кивали, типа оттуда они.Но нынче все картами МИР платят, а кэшбэк есть. Причем тарифы на переводы по картам МИР устанавливает то же самое АО НСПК которому СБП принадлежит.

inkelyad
25.11.2025 09:38вместо переводов по банковским картам, счетам, вместо множества коммерческих услуг переводов и передачи наличных, вы считаете нерациональным?
В том виде как сделали - нет.
Можно было переводы 'по номеру карты' в обход соответствующих платежных систем пустить так, чтобы пользователи ничего бы и не заметили.

zKey
25.11.2025 09:38Зачем Habr, если это все может рассказать GPT? Могли бы просто промт оставить, а кто захотел бы, то почитал бы через свою LLM.

aax
25.11.2025 09:38Давно пора стандартизировать специально под эти цели созданный универсальный платежный идентефикатор(как например в социальной сфере ввели СНИЛС, и в налоговой сфере ИНН), а не костылить из чего под руку попало(логика использования этого чего попало по прямому назначению не обязана следовать вашим костылям).
А номер телефона тут, наспех прикрученное, пятое колесо в телеге(к слову конфликтующее с законом о защите прав потребителя, поскольку чтоб купить таким способом даже буханку хлеба нужен действующий контракт с ОПСОС-ом).

inkelyad
25.11.2025 09:38Давно пора стандартизировать специально под эти цели созданный универсальный платежный идентефикатор
Смотри номера счетов вообще и IBAN в частности.
Я вообще не понимаю, из каких соображений номер телефона был выбран. Единственное, когда его использование осмысленно - это вот прямо при голосовом разговоре 'кинь мне деньги на телефон...', когда диктовать голосом длинную последовательность цифр неудобно.
А для всех остальных способов передачи платежной информации - оно совершенно не надо.
aax
25.11.2025 09:38Если Вы хотите пользоваться андроидным гаджетом, то для платежей между физлицами просто добавьте универсальный платежный идентефикатор в данные контакта. При этом номер телефона(замечу при нынешнем раскладе нужен мобильный), например у контакта "Васян" может меняться/ликвидироваться/появляться сколько душе Васяна угодно.

inkelyad
25.11.2025 09:38то для платежей между физлицами просто добавьте универсальный платежный идентефикатор в данные контакта.
Я тоже согласен, что оно так и должно выглядеть. Потому и удивляюсь про 'по номеру'.

aax
25.11.2025 09:38и IBAN в частности
Главное тут уважаемым ЛПР из Банка России понять что нужен именно специально под эти цели созданный универсальный платежный идентефикатор и определиться какой именно будет стандартом.

BugM
25.11.2025 09:38Это лишние циферки которых никто не знает по умолчанию. Их надо отдельно хранить, отдельно передавать, отдельно брать где-то. Для работы с ними нет удобной стандартной приложеньки вроде телефонной книги с которой могут проинтегрироваться все банк клиенты.. Номер телефона со всех сторон лучше.
СБП околоидеален. Не надо в нем ничего ломать.

inkelyad
25.11.2025 09:38Это лишние циферки которых никто не знает по умолчанию. Их надо отдельно хранить, отдельно передавать, отдельно брать где-то.
И это хорошо. Не надо путать адресацию для пересылки голоса или сообщений и адресацию для хождения денег. Потому что оно может менться независимо друг от друга.
(Я могу сменить как номер, так и банк). А если связать - то приходится делать систему синхронизации и разные API "какой номер чей и не устарел ли".Для работы с ними нет удобной стандартной приложеньки вроде телефонной книги.
Есть. Именно телефонная книга и есть это приложение. Там полей можно добавить приблизительно любых.

BugM
25.11.2025 09:38Это неудобно. Люди хотят записать номер по которому и написать в мессенджере можно и позвонить и смс отправит и деньги кинуть. И это все интегрируется и работает вместе на основе телефонной книги. Удобно!
Никто не добавляет поля. Тебе более что интеграции все равно не сработают. Названия нестандартные.
Показ имени и первой буквы фамилии при переводе достаточно хорошо защищает от переводов не туда.

inkelyad
25.11.2025 09:38Люди хотят записать номер по которому и написать в мессенджере можно и позвонить и смс отправит и деньги кинуть.
А вот это могло решаться так:
Получатель открывает банковское приложение и нажимает кнопку "создать счет на сумму n и поделиться им".
Выскакивает стандартное окно системы. Кучка данных которая чек шлется через что угодно, включая электронную почту, месседжеры, BlueTooth и NFC какие только у человека есть.
А дальше плательщик отдает счет чек в свой банк/приложение и транзакция завершается.Тут вообще идентификтор 'для связи' никого не интересует. Как и способ, как счет дошел.
Ну да, продиктовать голосом нельзя и черт с ним.Обращаю внимание, что именно к этому и пришли - этот QR код c2c от СБП, что недавно объявили -- именно такой счет и есть.

BugM
25.11.2025 09:38Сложно же. Причем офигенно сложно.
Сейчас это работает так: голосом или в любом мессенджере говоришь: «скинь мне по номеру на тбанк тысячу». И никаких идентификаторов, пересылок и вообще ничего. И это не зависит от того какой банк у отправителя и как человек с ним взаимодействует.
Должно быль не сложнее.

inkelyad
25.11.2025 09:38Сложно же. Причем офигенно сложно.
И совершенно знакомо. Приблизительно во всех магазинах тебе показывают нечто 'к оплате' и ты это оплачиваешь.
Сейчас это работает так: голосом или в любом мессенджере говоришь: «скинь мне по номеру на тбанк тысячу».
И смысл? Сказать "я сейчас счет пришлю" - ничуть не труднее. Счет трудно что ли сделать? Ну так нажми пару лишних кнопок. В конце концов это ты денег хочешь. А отправителю меньше возни будет - ему вообще ничего набирать не надо, все в счете записано.
Соответственно, он не может и ошибиться в наборе всех этих атрибутов.
Тут можно даже посмотреть, сколько именно проблем, описанных автором статьи, решится. (Он, вообще говоря, тоже именно этот механизм своим ботом делает).

D_T
25.11.2025 09:38специально под эти цели созданный универсальный платежный идентефикатор
Его кто-то раздавать должен, за уникальностью следить.
По-моему проще к телефону какой-нибудь код добавить 3-4 цифры. Каждый сам для себя этот код установил и его сообщать отправителю. Неправильно ввел - платеж не прошел. Гораздо надежнее чем проверять ФИО, где от фамилии только первая буква и отчество не все банки показывают, даже это многие не проверяют.

inkelyad
25.11.2025 09:38и его сообщать отправителю
Если 'сообщать отправителю' - то почему не сразу платежный идентификатор? Телефон-то тут зачем нужен?

D_T
25.11.2025 09:38почему не сразу платежный идентификатор?
Чтобы не было центра раздачи идентификаторов. Это же кто-то делать должен. А так телефон уже уникален, минус что контрольного разряда нет и человек может от номера отказаться и его выдадут другому.
И запомнить проще 3-4 цифры чем например 12 у ИНН.

inkelyad
25.11.2025 09:38Чтобы не было центра раздачи идентификаторов. Это же кто-то делать должен.
Банк уже делает. Причем даже не один. Есть номер счет, есть номер карты. Именно последним, собственно, все и пользовались и его можно было и оставить.
И запомнить проще 3-4 цифры чем например 12 у ИНН.
Это все не надо запоминать. Номера карт никто не запоминал и вроде бы неплохо жили.

zamir__zakiev
25.11.2025 09:38номер в сообщении без форматирования (
+71234567890)номер, разбитый пробелами
номер с префиксами/скобками
номер в скриншоте (!)
Нормальные банковские приложения все это распознают и конвертируют в нужный формат.
Пожилые пользователи, которые
О да, пожилые, конечно же, знают, что такое QR-код, и умеют его сканировать))
кто-то отправляет «старый номер».
Тогда СБП скажет, что к номеру не привязаны банки. Ну или покажет другое имя, и на этом этапе уже можно заметить ошибку и переспросить. Да и в ваш сервис тоже можно старый номер случайно вставить.
Контакт не показывает, к какому банку привязан номер
А у отправителя часто принципиально важно платить в свой банк — иначе улетает комиссия.
Во-первых, по сбп нет комиссии. Во-вторых, для этого в сбп можно указать приоритетный банк.
Мне еще интересно, как вы будете по диплинку открывать именно последнюю актуальную версию банковской аппы на iOS? Во-первых, вам надо держать актуальную базу этих приложений для всех банков, потому что их каждый месяц выкладывают под новым именем, а во-вторых, у пользователя может быть установлено много разных версий, и открыться может не та, которую он ожидает (например, старая, в которой уже протухла авторизация).

inkelyad
25.11.2025 09:38Но переход в конкретный банк сделан так по-разному, что «универсального» UX нет.
И не должен. У вас последовательность неправильная.
Правильная - человек думает 'я хочу работать с деньгами', открывает любимое платежное приложение - и оттуда все делает.А желание делать все 'в один тап' - на самом деле вредное. Потому что процедура платежа не должна быть слишком быстрой, что бы там не говорили желающие получить деньги.
Потому что если она слишком быстрая - деньги начинают случайно или 'случайно' (злые люди ошиблись или специально платежную ссылку прислали) улетать не туда и не тем.
Sabirman
Да не усложняйте - сбп практически идеален. От опечаток в большинстве случаев спасает отображаемые инициалы. А если у получателя несколько банков, то он просто об этом предупреждает.
levge
Согласен, мы в Израиле тихо завидуем, тут нельзя так просто переводить по номеру телефона, есть аппликации посредники, но это не всегда просто и занимает время получить деньги, иногда несколько дней.