Найти тему
Журнал «Код»

Как работает бесконтактная оплата картой

Сложнее, чем кажется

Когда мы в магазине прикладываем карту к терминалу оплаты, терминал говорит «Успешно», пробивается чек, и мы уходим с покупками. Обычно от момента оплаты до подтверждения платежа проходит пара секунд, и за это время происходит много событий.

Сегодня расскажем про то, как это работает и почему оплата иногда может зависнуть в процессе.

Что такое NFC

Бесконтактная оплата — это когда нам не нужно вставлять карту в терминал оплаты или даже касаться его: достаточно поднести карту на расстояние 1–2 см, и всё сработает. Это возможно благодаря чипу NFC — именно он отвечает за бесконтактную магию.

NFC —это аббревиатура от Near Field Communication, что можно перевести как «взаимодействие близкого поля». Это похоже на то, как работает брелок от домофона:

  1. В карту встроен чип NFC и антенна — магнитная проволока, смотанная кольцами.
  2. Когда на терминале включается оплата, терминал начинает излучать слабое магнитное поле.
  3. Когда мы приближаем карту к терминалу, она попадает в поле, и благодаря антеннам на чипе появляется ток. Идея такая же, как в беспроводной зарядке.
  4. Чип начинает работать и посылает в ответ какой-то свой импульс, тоже в виде магнитного поля. Какой именно импульс и что в нём закодировано — зависит от алгоритмов.
  5. Терминал оплаты улавливает этот импульс, раскодирует его и начинает процесс оплаты.

Получается, что чипу NFC на карте не нужно внешнее питание — он получает его из магнитного поля терминала и сразу начинает работать. Если магнитного поля нет — карта ничего не делает. По этой причине если просто поднести карту к неактивному терминалу, то ничего не произойдёт — потому что нет магнитного поля.

-2

Платёжная система

Чтобы проходили платежи по картам, нужна платёжная система: это посредник, который помогает обмениваться деньгами между банками. В России это система «Мир».

Платёжная система работает так:

  • К ней подключены много банков.
  • Платёжная система обеспечивает обмен сообщениями между ними.
  • В конце рабочего дня платёжная система готовит документы, чтобы банки заплатили друг другу, сколько нужно.
-3

Передача данных с карты

Когда мы подносим карту к терминалу и оплачиваем покупки, то с карты отправляются на терминал не деньги, а токен. Токен — это последовательность символов, которая что-то значит для отправителя и получателя. В нашем случае в токене содержится зашифрованная информация о платёжной системе и номере карты.

Современные NFC-чипы каждый раз генерируют новый токен — в нём содержится вся та же самая информация, но зашифрованная разными ключами. Это делается для того, чтобы злоумышленники не смогли перехватить один раз сигнал с карты и использовать его для постоянной оплаты в любых магазинах.

Проверка токена

Терминал, получив токен, сразу его проверяет — соответствует ли он стандартному банковскому токену или это что-то другое. Если соответствует — токен идёт дальше по процессу, а если нет — терминал даже не пытается связаться с банком и сразу выдаёт ошибку.

Самый наглядный пример проверки токена — если убрать карту слишком быстро или поднести её на пределе возможностей магнитного поля. В этих случаях терминал не сможет получить полный токен и покажет ошибку «Карта не читается».

Отправка токена в банк

Если с токеном всё в порядке, терминал через платёжную систему связывается с банком и отправляет токен ему. Это самая долгая часть оплаты — если всё работает через мобильный интернет, то это может занять до пары минут. Всё это время терминал старается установить безопасную связь с банком, который обслуживает этот терминал.

Если за три попытки связь установить не получается или в процессе что-то пошло не так, терминал покажет ошибку «Нет связи с банком». Как только терминал получил такую ошибку, он удаляет токен из памяти — даже если связь появится сразу после ошибки, старого токена уже не будет и надо заново прикладывать карту. Поэтому не нужно бояться, что пройдёт двойная оплата — в банк отправляется последний токен.

Токен пришёл в банк продавца

Когда банк получает токен, он его расшифровывает и узнаёт такое:

  • действительна ли карта и не вышел ли срок действия;
  • платёжная система этой карты;
  • название банка, который выдал карту;
  • реквизиты карты.

Как только банк получил из токена эти данные, он отправляет запрос в платёжную систему:

— Слушай, тут клиент банка такого-то хочет купить что-то за 5700 рублей. Вот реквизиты карты. Одобряешь операцию?

Платёжная система проверяет эти сведения и связывается с банком-эмитентом — тем, кто выдал карту. Тот может отправить несколько вариантов ответа. Например:

  • Всё в порядке, транзакцию одобряю.
  • Транзакцию не одобряю, причина — не хватает денег (но не уточняет сколько).
  • Транзакцию не одобряю, причина — превышен какой-то из лимитов.
  • Транзакцию не одобряю, причина — карта заблокирована.
  • Просто не одобряю, без объяснения причин.
  • Карта числится как украденная.

Обратите внимание, что среди ответов нет информации о номере счёта или балансе. Дело в том, что баланс клиента — это его личное дело с банком. Банк может давать кредит или подключать овердрафт, и об этом никто не обязан знать. Для внешнего мира банк говорит либо «Да, одобряю», либо «Нет, отклоняю».

И ещё интересное: деньги блокируются, но пока что не переводятся с вашего счёта.

Печать слипа

Ответ платёжной системы записывается в память платёжного терминала, а ещё из него вылезает маленький чек — слип. На слипе пишут информацию о транзакции: её дату, время, идентификационный номер. Это нужно на случай технического сбоя, чтобы потом можно было вернуть деньги.

Слип подтверждает, что совершилась такая-то транзакция с таким-то результатом. Это ещё не подтверждение покупки, это лишь факт обмена данными с платёжной системой.

Обмен деньгами

Ночью платёжная система сверяет все расчёты и составляет ведомость: кто кому сколько задолжал. Эта информация отправляется в банки, и уже они обмениваются деньгами. Платёжная система выставляет счёт на комиссию с каждого банка.

На этом этапе платёжная система заодно может посчитать какие-нибудь бонусы, промоакции, кешбэки и что там они ещё себе придумают. В мобильном приложении эти данные будут сразу, но фактически деньги и кешбэки придут только ночью.

В этот момент деньги фактически списываются с вашего счёта.

Такой порядок полезен, чтобы ловить мошенников, выявлять массовые списания, а также чтобы было легко отменять ошибочные операции. Например, если продавец ввёл неправильную сумму и провёл транзакцию, он может сразу же её отменить и провести новую, и к концу дня у вас фактически будет один платёж, а не три.

Могут ли списать деньги с карты в толпе, если у тебя есть NFC-считыватель?

Нет, это старая страшилка из интернета.

Для снятия денег нужен не NFC-считыватель, а банковский терминал. Даже если взять его и так списывать суммы меньше тысячи рублей (чтобы не вводить пин-код), то схема быстро перестанет работать, а все украденные деньги вернутся назад.

Дело в том, что сейчас при каждой такой оплате клиенту приходит СМС-уведомление или пуш в личном кабинете банка. Если человек не совершал эту операцию, он может её заблокировать и пожаловаться в банк.

Каждая такая жалоба разбирается службой безопасности банка: они связываются с банком, который выдал терминал, и узнают, в чём дело. Если владелец терминала не сможет предоставить в банк реальные доказательства продажи, все платежи отменятся, терминал заблокируют, владельца терминала внесут в чёрный список, а то и могут возбудить какое-нибудь дело.