Это мы пишем и обслуживаем банковский процессинг, нам надо серьёзно поговорить

В марте-22 внезапно отключились Visa и MasterCard. Это посредники передачи информации между разными банками. По сути, системы обеспечивают маршрутизацию сообщений между банками и позволяют вам использовать карту любого банка с банкоматом или платёжным терминалом другого, а заодно проверяют операции на фрод и делают ещё много чего.

Потом было 2–3 дня, когда мы не спали. Мы — это разработчики компании Мультикарты (входит в Холдинг T1) — одного из самых крупных процессингов в России, да и в мире, пожалуй.

Потом система восстановилась (не сама собой, конечно), и конечные пользователи (вы) практически не почувствовали проблем с сервисом.

Всё потому, что в России с точки зрения банкинга всё очень хорошо, и было бы странно оказаться без сапог в этой ситуации.

Мы с коллегами очень хотим начать рассказывать про практические случаи вроде того самого момента переключения систем, но боимся, что сначала нужно вообще рассказать, что такое процессинг и как он внутри устроен.

Поэтому ниже — общий рассказ про принципы процессинга. Пойдёмте ковыряться под капотом.

image

Процессинговый бизнес в России сегодня один из самых развитых в мире — большинство производителей таких систем находятся в России и немного в США. Российские поставщики процессинговых решений продают свои системы в большинство стран мира, а качество российских систем сегодня существенно выше, чем аналогичных решений из Европы или Азии.

Даже в таких странах, как технологически продвинутый Китай, сегодня используют российский процессинг. Притом что жителей и банковских карточек там существенно больше, т.е. и технологии более востребованы.

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

Со стороны пользователя


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

Мы здесь не берём в расчёт такие действия, как, например, физическая выдача денег в банкомате — она представляет собой механический процесс, управляемый локальным софтом.

А вот сама банковская карта — это такой полноценный мини-компьютер, в котором работает Java-приложение. Современная карточка по мощности процессора сравнима с персональным компьютером из 90-х годов. Для неё даже можно писать софт — технология открыта, SDK для неё можно скачать с соответствующих сайтов.

Когда карточка со встроенным микропроцессором прикладывается к терминалу, данные «улетают» в процессинговый центр.

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

Со стороны процессинга


Всё, что здесь происходит, делается буквально за миллисекунды.

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

Таких запросов множество — например, наша процессинговая система Мультикарта способна обрабатывать до 1000 транзакций в секунду, или 10–15 млн операций в день.

Авторизация


После проведения криптографической проверки система по номеру карты определяет, куда отправить авторизацию. Она может быть отправлена либо в платёжную систему (НСПК), либо обработана локально. Если процессинг осуществляет банк, выпустивший карту, то он сам её и авторизует. Если процессинг одного банка обслуживает карту другого банка, то запрос отправляется в платёжную систему (НСПК), платёжная система отправляет авторизацию в банк, который выпустил эту карту, и этот банк должен дать разрешение на проведение операции.

Все взаимодействия между банками осуществляет, как правило, платёжная система. В России после ухода Visa, MasterCard и других сейчас эту функцию осуществляет Национальная система платёжных карт (НСПК). Она направляет данные в банк-эмитент, выпустивший карту, процессинг которого проводит их обработку. Кстати, бывает, что оба банка используют процессинг одного и того же разработчика, например Мультикарту, и тогда транзакция не выходит за её пределы. Но при этом всё равно она проходит через платёжную систему.

Отклик


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

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

НСПК направляет его обратно в банк-эквайер, процессинг которого обслуживает устройство.

После чего на устройство, на банкомат или на POS-терминал, приходит разрешение на проведение операции. Т.е. банкомат выдаёт деньги, POS-терминал печатает чек, а продавец отгружает товар.

При этом деньги так и остаются заблокированными, они пока ещё не пришли в движение.

Клиринг


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

На основании полученного от платёжной системы клиринга банк-эмитент (тот, что выпустил карту клиента) переводит денежные средства за обработанную транзакцию банку-эквайеру, но не напрямую, а через расчётный банк платёжной системы, где каждый участник имеет свой счёт. Эти переводы выполняются не после каждой отдельной транзакции, а, как правило, раз в сутки.

Платёжная система собирает и объединяет данные от разных банков-эквайеров для конкретного банка-эмитента. Затем они отправляются банку-эмитенту в виде подробной информации о каждой транзакции. На основе этих данных и данных, предоставленных расчётным банком, бэкофисная система процессинга банка-эмитента проводит сверку, чтобы удостовериться, что все авторизации и расчёты корректны. Затем создаются проводки, которые отправляются в банковскую систему.

Расчёты


На этом этапе начинается перечисление средств, т.е. банк-эквайер зачисляет средства на счёт предприятия, которому принадлежит соответствующий терминал. Предприятие получает платёж, и сделка считается завершённой.

Диспут


Что же происходит, когда возникают спорные ситуации? Когда, например, попытались похитить карточные данные или не был получен оплаченный товар. В этом случае, когда уже прошли все штатные процессы по транзакциям, процессинг обеспечивает другой этап работы. Здесь используются решения, которые не требуют сверхскоростного прохождения информации между участниками.

Диспут включает в себя несколько ключевых этапов и напоминает судебное разбирательство между банком-эквайером и банком-эмитентом. Однако, в отличие от суда, в этом случае «третейским судьёй» выступает платёжная система.

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

Интересно, что в этот момент средства также движутся между банками. Фактически сразу спорные деньги списываются с банка, совершившего операцию. Но они отправляются не клиенту, он их сможет получить только позже, в случае удачного вердикта.

Процедура диспутного анализа достаточно сложная. В ней также используются технологии на основе искусственного интеллекта, чтобы можно было определить, что действительно это мошенническая операция или, например, злонамеренные действия клиента, который может совершить реальную операцию или получить деньги, а затем заявить, что не делал этого.

Такое тоже бывает.

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

Противодействие мошенничеству


Система противодействия мошенничеству (anti-fraud system) — это обычно отдельный комплекс, работающий параллельно процессингу, потому что он должен обеспечивать тоже очень высокую производительность и безотказность. Она проверяет в реальном времени любую транзакцию, проходящую через процессинг. Система использует ML-технологию и учится на примерах известных случаев мошенничества. Для систем этого класса признак того, что что-то не в порядке, — это когда, например, проходит большое количество операций с одинаковыми или с уменьшающимися суммами. Такой паттерн поведения системой воспринимается как возможное мошенничество. В этом случае операции начинают блокироваться именно на этапе самой авторизации и дело до списания средств не доходит.

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

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

Объём транзакций и надёжность


Процессинг Мультикарты сегодня один из самых крупных в России. Всего эта система обслуживает около 60 разных по величине банков.

Все эти банки — генераторы огромных объёмов ежедневных транзакций. И как в любой IT-системе обеспечить надёжность при большой нагрузке очень сложно, в этом случае даже простые сервисы проектируются специальным образом. Для процессинга очень важно обеспечить беспрепятственное прохождение огромного объёма транзакций.

Мультикарта уже прошла испытания огромным объёмом транзакций, в том числе в пиковые периоды, когда этот объём резко увеличивается, например в предновогодние дни. Именно поэтому она считается одной из самых надёжных на рынке, и это приносит пользу не только крупным, но и небольшим банкам, которые не имеют своего процессинга и подключаются к Мультикарте. Они получают фактически такой же сервис, те же технологии, как и крупные игроки, не вкладываясь при этом в разработку и эксплуатацию процессинга.

К слову говоря, иметь свой процессинг имеет экономический смысл только в том случае, если банк имеет более 6–7 миллионов карт, где-то десятки тысяч устройств, а количество транзакций банка превышает несколько миллионов в месяц. Для небольших банков иметь свой процессинг смысла не имеет, это слишком дорогое удовольствие, которое не будет окупаться.

Технологическая основа процессинга


Процессинг строится на очень надёжных технологиях — система должна быть не только высокопроизводительной, но и высоконадёжной, с доступностью 99,99%. Т.е. она не имеет права простаивать больше 52 минут в год. Это очень серьёзное требование, поскольку при сбое могут пострадать миллионы клиентов. И это большой не только финансовый, но и имиджевый удар для разработчика процессинговой системы. Поэтому с аппаратной стороны процессинговая система — это сложный кластерный комплекс, состоящий из большого количества серверов, работающих параллельно, он обеспечивает высокую масштабируемость и надёжность решения. Серверы дублируются, размещаясь, в частности, на разных площадках, создавая геораспределённый кластер. Серверы Мультикарты установлены в Москве и Санкт-Петербурге.

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

При любых проблемах система должна самостоятельно восстанавливаться, поэтому на каждом этапе ведётся контроль работоспособности системы. Более того, сейчас начали использовать и системы на основе машинного обучения, которые анализируют все возникающие аномалии, чтобы спрогнозировать, когда и где случится сбой на каком-либо устройстве, например, банкомате.

Инциденты в процессинге и нештатные ситуации


Процессинг не ломается. Практически никогда. Как я уже говорил, наша система обеспечивает доступность в 99,99%. Это 52 минуты простоя процессинга в год, включая регламентные работы — это время учитывает всё, когда там что-то настраивается, переставляется софт и т.д.

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

Эта проблема наиболее частая, и когда СМИ пишут, что какой-то банк не работает, банкоматы отказываются выдавать деньги, то в большинстве случаев это как раз региональные проблемы конкретных операторов связи.

Сбои самого процессинга теоретически возможны, но это исключительная и редкая ситуация. В связи с полным дублированием всех элементов процессинга, если происходит аппаратная ошибка в одном из узлов кластера, всегда будет задействован другой узел. Если сбой касается целой площадки, то отрабатывает другая. Причём переключение происходит практически незаметно. Даже когда происходит обновление или включение новой функциональности, всё происходит очень быстро. Это связано с тем, что процедура обновления чрезвычайно жёсткая, всё проверяется буквально как в самолёте перед взлётом. Если что-то пошло не так перед подключением нового функционала, «самолёт» не взлетит.

В том самом форсмажоре при отключении платёжных систем Visa и MasterCard нам пришлось практически в онлайне, при поддержке НСПК, придумывать решение, как обеспечить корректную работу с ушедшими из страны платёжными системами.

Помогло также то, что в стране очень быстро запустили платёжный сервис Mir Pay, с помощью которого клиенты получили тот же функционал, который был ранее при использовании ныне отключённых услуг Apple Pay и Google Pay. Так что наших пользователей в России это глобальное отключение практически не зацепило.

Также мы сталкивались с масштабными DDOS-атаками — они били в основном по онлайн-сервисам и сервисам электронной коммерции. Их нужно вовремя отразить, защитить логическую и инфраструктурную подсистемы серверов. Поначалу это было сложно, но сейчас атаки проходят незаметно для пользователей. Главное в таких ситуациях — обеспечить доступность системы, особенно когда количество операций резко возрастает.

Ещё одной неординарной ситуацией стал выпуск в своё время так называемых Пушкинских карт.

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

Для этого использовалась банковская карта с лимитом, с помощью которой можно было оплачивать посещение культурных мероприятий.

Нам надо было буквально за несколько дней обеспечить выпуск 15 млн виртуальных карт. При этом 1 сентября в определённый момент все участники программы начали нажимать кнопку на сайте «Госуслуг», позволяющую получить такую карту. Карты оформлялись сотнями тысяч.

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

Влияние импортозамещения


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

Основная проблема была связана только с уходом производителя баз данных компании Oracle.

Но и она вполне решаема, поскольку есть российский вендор с аналогичным решением — Postgres Pro.

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

Что касается системного ПО, то мы здесь применяем в основном решения класса Open Source.

То же касается и систем для поддержки класса E-Commerce, которые также в основном основаны на Open Source. А ещё при переходе нужно заложить время на переобучение и адаптацию сотрудников.

Конечно, есть некоторые сложности с оборудованием, но существует много аналогов, которые вполне доступны. Даже разработан российский банкомат, который, кстати, мы уже подключили, а также отечественные модули безопасности. Нужное оборудование, в основном производства дружественных стран, уже давно присутствует в России, причём оно вполне качественное.

Итак, всё движется в сторону технологического суверенитета от недоступных теперь решений.

И этот процесс идёт, и проходить он будет максимально быстро, с обязательной гарантией сохранения всех необходимых качеств процессинга.

© Habrahabr.ru