Банковские транзакции – это операции с деньгами. Виды транзакций

Анатомия транзакции


mnikandrov

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

Процедуру совершения операции расчета по карте будем  именовать транзакцией.

Можно использовать и написание «трансакция», – почему-то считается, что буква «с» используется больше в банковских кругах, а «з» – в компьютерных, не знаю как кто, но я привык к термину транзакция, – это ближе к оригиналу … Сам расчет по карте (или транзакция, как мы теперь договорились) складывается из трех, разделенных по времени и функционалу операций, – без выполнения какой-либо из них нельзя считать процедуру расчета с использованием карты законченной. В первой из этих трех операций, клиент принимает непосредственное участие, а о других  часто и не подозревает. Но, поскольку ранее мы анонсировали целью блога осознание возникающих при использовании карты проблем и выработку механизмов их решения, то нам придется осмыслить все стадии совершения транзакции.Разберем транзакцию на примере системы MasterCard (в других все производится аналогично):
1. Итак, первая стадия транзакции, совершаемая в момент покупки, именуется авторизацией. Согласно официальной формулировке Положения №23 ЦБ РФ «авторизация — разрешение, предоставляемое эмитентом для проведения операций с использованием банковской карты и порождающее его обязательство по исполнению представленных документов, составленных с использованием банковской карты». Сложно, непонятно, и не всем интересно, правильно? Поэтому, будем считать, что авторизация – это проверка прав клиента на осуществление транзакций, проводимая в точке обслуживания, результатом которой будет разрешение или запрет операций клиента.
Еще про один термин. Несмотря на то, что в России слово мерчандайзер уже прижилось, нужный нам аналог английского термина merchant, – категорически отказываюсь принимать. Поэтому, для обозначения любой торговой точки, пункта оказания какой-либо услуги и пр., где может совершаться оплата с использованием карты, – будем использовать термин торговец.
Любым из доступных способов (например, чтение карты терминалом торговой точки или указание реквизитов карты самим клиентом через форму интернет-магазина) данные карты передаются торговцем (вместе с информацией о покупке) в обслуживающий его банк (банк-эквайер).
Банк-эквайер маршрутизирует запрос в платежную систему, которая берет на себя функции проверки действительности карты, определяет обслуживающий предъявленную карту банк (банк-эмитент), после чего передает ему все данные для получения одобрения банка-эмитента на совершение операции. Банк-эмитент направляет в платежную систему свой ответ о согласии на операцию, дополненный присвоенной ей произвольным кодом (код авторизации), либо ответ с отказом в совершении, с указанием кода причины отказа. Многие банки в этот момент направляют на мобильный телефон клиента информацию о факте подтверждения или отказа в совершении операции по его карте. Платежная система маршрутизирует ответ банка-эмитента в банк-эквайер, который, в свою очередь, передает данные торговцу. При положительной авторизации клиент получает свой товар и чек операции и довольный покидает торговую точку. При отрицательном ответе возможно много вариантов, самым неприятным из которых будет заламывание клиенту рук (ну, если карта была украдена), но, такое происходит не часто и, как правило, все мирно расходятся :-)Несмотря на сложность маршрута передачи данных и анализ многих факторов при выдаче авторизации, каждый из нас, по своему опыту знает, что все это происходит достаточно быстро, – спасибо прогрессу! Казалось бы все? Но, не все так просто задумано в этом мире… После успешного завершения этой стадии денежные средства у торговца не появились, а на счете клиента не убавились (хотя по карте больше недоступны).

Для перемещения средств необходимо выполнить еще две стадии транзакции – клиринг и расчёт.

2. Клиринг мы иногда применяем сами собой, порой не ведая, как это называется. Например, Вася взял у Пети в долг 500 рублей, Петя брал ранее у Маши 300 рублей. Маша не стала скромничать, и тоже взяла взаймы у Васи 200 рублей.

А теперь представьте, что за день эти трое ребят много раз друг другу будут деньги передавать.

Что, потом они будут также в обратном порядке перемещать их? Они тогда будут весь следующий день этими расчетами заниматься… Что получилось? Маша должна получить обратно 300-200=100 рублей, Петя 500-300=200 рублей, а Вася должен отдать 500-200=300 рублей.

В итоге, плательщиком является только Вася, который 100 рублей отдает Маше и 200 рублей – Пете. Всё, все в расчете! То же происходит на стадии клиринга. Обычно не позднее следующего рабочего дня, банк-эквайер направляет в платежную систему информацию о произведенной операции оплаты.

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

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

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

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

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

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

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

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

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

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

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

|

mnikandrovПожалуй, теперь мы готовы говорить перейти к практике. Сегодня об ошибочной блокировке средств по карте. Ничего так нас не расстраивает, как мысль о том, что нас обокрали, так ведь? И поэтому часто мы сразу становимся на путь восстановления справедливости и начинаем обвинять обслуживающий карту банк во всех грехах, часто не прислушиваясь к объяснениям. Давайте попробуем разобраться в таких случаях на примерах из жизни. Стадия авторизации была успешно завершена, но, по какой-то причине (например, Вы отказались от совершения покупки), торговец не сформировал финансового списания. Соответственно, стадии клиринга и расчета не произведены. Таким образом, товар не получен, денежные средства на счете в банке остались нетронутыми, но потратить их нельзя, поскольку они оказались блокированными на стадии авторизации. Нужно сказать, что это, пожалуй, самая элементарная и широко распространенная ситуация. Что делать? Обращение к торговцу или обслуживающему его банку (эквайеру) нам не поможет, – Вам будет предложено обращаться в свой банк (выпустивший карту). Обратившись в свой банк, можно услышать несколько ответов, наиболее адекватным из которых будет предложение выждать небольшой срок. Дело в том, что банк-эмитент взял на себя обязательство перечислить заблокированные по авторизации средства при поступлении финансовых данных от банка-эквайера, независимо от остатка на Вашем счете. Информацию же о том, что финансовые документы по операции не оформлялись – он получает только от Вас… Поэтому адекватный банк сочтет разумным выждать срок в пять-семь рабочих дней (разумный срок завершения стадий клиринга и расчета по этой возможной операции), после чего сможет произвести отмену такой блокировки (возможно, Вам придется писать соответствующее заявление). Что произойдет, если Ваш банк не захочет идти Вам навстречу? Напоминаю, что покуда блокированная сумма не будет списана со счета (а пока она просто блокирована), – держателям кредитных карт не грозят дополнительные расходы по обслуживанию кредита. Поэтому, если сумма по данной операции не слишком велика, – можно просто взять ситуацию под свой контроль и на месяц расслабиться. Дело в том, что в процессинговых центрах принято за правило, производить разблокировку замороженных по авторизациям средств, которые не были списаны в течение одного месяца. Таким образом, через месяц средства будут вновь доступны. Если же сумма принципиальна, – то, конечно же, стоит проявить разумную настойчивость в общении со своим банком. Повторюсь, что, независимо от произведенной Вашим банком разблокировки средств, – списание средств со счета возможно (если торговец вдруг представит документы для финансового списания). И если окажется так, что Ваших собственных средств на нем не окажется, – банк-эмитент кредитует Вас (даже если карта дебетовая – в договоре есть такая оговорка). А в случае, если сумма списания превысит лимит кредитования – обязательно будет установлен повышенный процент за перерасход средств. Поэтому нужно взять за правило внимательно изучать выписку по своему счету, особенно когда происходят какие-либо нестандартные ситуации. Мы поговорили сейчас о ситуации по незавершенным транзакциям, которые вызвали только блокировку средств, но существуют случаи, когда Вы будете считать, что произошел именно описанный выше случай, а со счета денежные средства, тем не менее, будут списаны. При этом Ваш банк будет утверждать, что ошибки не произошло – документы были представлены… Поверьте, возможно, и это, и многое-многое другое! Но, о таких случаях мы поговорим позднее – их нужно лечить опротестовыванием транзакции, сейчас хочу добавить еще немного про активные авторизации. Как писалось мной выше, при финансовом списании средств производится перевод авторизации из активной в отработанную, что вызывает снятие блокировки. Процесс этот производится автоматически процессинговым центром в момент обработки финансового документа при условии совпадения таких параметров, как дата и время транзакции, код авторизации, сумма транзакции. Если финансовый документ не содержит времени транзакции, если указана другая дата транзакции, отсутствует код авторизации или отличается сумма транзакции (как ни странно звучит, но тоже достаточно часто встречается) – разблокировки не произойдет. В этом случае сумма финансового документа спишется с Вашего счета, а авторизация останется активной. Тем самым, Вам будет казаться, что сумма операции списана дважды… Допустим ситуацию, когда агентство проката автомобиля указало другую дату транзакции и не указало код авторизации (аренда авто и бронирование отелей – вообще очень интересная тема, оставим ее на попозже).В этом случае, Вы либо ждете до автоматической отмены авторизации (через месяц), либо снова обращаетесь в банк с требованием отмены авторизации. Банк отнесется к этому обращению заметно адекватнее первой ситуации, – наверняка будут признаки, позволяющие банку соотнести авторизацию со списанием и произвести отмену, ориентируясь на здравый смысл. В хороших банках мониторинг таких ситуаций может закладываться в сам бизнес-процесс и тогда, Вы просто не будете их замечать. Случаются еще такие ситуации, которые сами собой решаются. Например, Вы пытаетесь получить наличные через банкомат, авторизация произведена, но банкомат не смог завершить операцию выдачи (например, не смог набрать нужной суммы). Вы пытаетесь проверить баланс карты и видите, – средства блокированы! Не стоит сильно расстраиваться, – все равно мы уже знаем возможное решение проблемы, а это тот случай, когда все может решиться само собой. Дело в том, что банкоматы умеют производить отмену авторизаций по незавершенным операциям (если конечно не было аварийных ситуаций, типа обрыва кабеля и пр.). Проверив баланс карты через минут десять, Вы можете приятно удивиться – средства вновь станут доступны.

Источник: https://mnikandrov.livejournal.com/952.html

Банковские транзакции — это операции с деньгами

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

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

Это слово присутствует в банковских операциях едва ли не чаще, чем такие понятия, как «деньги» или «кредит». При этом мало кто из клиентов банка полностью понимает его суть.

Значение слова

Транзакции – это определённые процедуры взаимодействия каких-либо объектов за некий промежуток времени. Такие процедуры были сформированы программистами. Им присущ чёткий процедурный характер. Любая транзакция – это совокупность трёх непременных составляющих:

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

Банковские транзакции

Что значит слово «транзакция»? Какие процессы происходят, когда она совершается? Если быть точным, транзакции – это любые банковские операции, связанные с перемещением денежных средств. Но чаще всего этот термин используется при использовании электронных счётов. Или же он напрямую указывает на операции с банковскими картами.

Словосочетание «провести транзакции» означает операции с использованием электронного счёта. Сюда входит оплата коммунальных услуг, покупка товаров в магазине с помощью пластиковой карты, зачисление зарплат и стипендий и много других операций с деньгами.

Виды транзакций

В банковском деле различают операции двух видов:

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

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

Перевод средств

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

Сложнее обстоят дела с переводами между двумя разными лицами – в пределах одного финансового учреждения комиссия за перевод может достигать 3%. Если речь идёт о различных банках внутри страны – комиссия будет ещё выше.

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

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

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

Правда, происходит это в течение десяти или пятнадцати календарных дней.

Если у отправителя отсутствует счёт в банке, можно воспользоваться сервисом денежных переводов. Самые известные международные операторы – MoneyGram, Western Union, Anelik, Contact и другие. Главное преимущество таких операций – высокая скорость транзакции. Основной недостаток – довольно высокая комиссия.

Что делать в случае сбоя транзакции?

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

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

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

Источник: https://ajbook.biz/transit6/bankovskie-tranzakcii-eto-operacii-s-dengami/

Путешествия банковской транзакции

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

Для интересующихся под катом много подробностей работы карточного процессинга банка (много букв). Как выглядит упрощённая схема работы работы процессингового центра банка:

Процессинг

FrontEnd — отвечает за online сообщения: общение с банкоматами и POS-терминалами, передача авторизаций карт в VISA. BackEnd — отвечает за offline: закрытие операционного дня, обмен финсообщениями с VISA.

HSM (Hardware Security Module) — модуль работы с ключами безопасности (подробнее описано ниже).

Все шифрование производится с помощью алгоритма 3DES.

Подключение к VISA

Банк имеет два типа подключения к VISA:

Online-подключение

Транспортный уровень Подключение к VISA осуществляется через вполне конкретного провайдера, в 2006 году это был Equant и его партнёр в России — Golden Telecom, как обстоят дела сейчас — я не в курсе. Получается, что VISA доступна в локальной сети одного провайдера. Это обязательное требование VISA.

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

Итак, связь транспортного уровня с VISA установлена, далее прикладной уровень.

Прикладной уровень

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

Оффлайн-подключение

Оффлайн-подключение — это не что иное, как обмен файлами с информацией обо всех транзакциях, совершённых за операционный день. То есть, если в банкоматах банка «А» были обслужены карты не банка «А». Подробнее об этом чуть ниже в сценарии «Чужой клиент в нашем АТМ». Стоит немного рассказать про HSM.

HSM

HSM — это классический чёрный ящик. При инициализации он генерирует закрытую и открытую компоненту мастер-ключа банка. Закрытую компоненту никто никогда не видит, она всегда остаётся в памяти HSM. Сам модуль имеет многочисленные уровни защиты от взломов: программного и физического.

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

При вступлении в VISA банку выдаются так называемые БИНы (Bank Identification Number): то есть подмножества номеров карт доступных для выпуска. Для VISA они всегда начинаются на 4.

БИНы распределены по карточным продуктам, например:

  • VISA Classic: 400001
  • VISA Gold: 400002
  • VISA instant issue: 400003
  • и так далее

Формат номера выглядит так: допустим, у нас есть карта с номером: 4408 0412 3456 7890 Номер карты состоит из:

  • 4ХХХХХ — код VISA
  • 4408(04) — код банка (код карточного продукта)
  • 12 3456 7890 — номер лимита авторизации. Подробнее о лимите авторизации ниже.

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

Для каждого БИНа генерируется пара ключей: IWK (issuer working key) и AWK (acquirer working key). Процедура генерации и передачи результата в VISA аналогична описанной выше. После этого всё это добро прописывается в FrontEnd и BackEnd процессинга. В BackEnd для выпуска карт и их эмбоссирования, вo FrontEnd для обслуживания авторизаций. Теперь у нас есть связь с VISA и есть выпущенные карты; другими словами, мы осуществили эмиссию карт. Нам осталось сделать эквайеринг.

Банкоматы

Не буду повторяться и описывать, что находится внутри банкомата, это уже описали здесь. Скажу только, что протокол NDC+ (NCR Direct Connect) разработан чёрт знает сколько лет назад корпорацией NCR — одним из ведущих производителей банкоматов на сегодняшний день.

Широко известны три производителя:

  • NCR
  • Wincor Nixdorf GmBH (бывший Siemens Nixdorf)
  • Diebold (бывший IBM)

Да, и Siemens и IBM когда-то давно производили банкоматы, но впоследствии продали этот бизнес Wincor Nixdorf и Diebold соответственно.

Ваш покорный слуга является сертифицированным инженером как раз таки Wincor Nixdorf. Однако, у нас был один стародавний IBM, который был выпущен ещё до продажи бизнеса и который работал.

Не скажу, что работал он как часы, ибо его всё время приходилось подкручивать и подлаживать, чтобы он хоть как-то дышал, но для него можно было купить запчасти. Правда, стоили они в три раза дороже чем аналогичные для Wincor Nixdorf. Итак, мы выяснили что есть два протокола по которому работают банкоматы.

Мне довелось работать лишь с NDC+, про DDC я только слышал, но никогда не видел. Поскольку я близко знаком только с Wincor Nixdorf, предположим, что наш банк купил именно их.

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

Обучение

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

Если реальное количество отличается — банкомат откорректирует оптопары в тракте выдачи и предложит повторить процедуру.

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

Ключи шифрования

В банкомат загружают 2 ключа шифрования: мастер-ключ (MASTER KEY) — используется для шифрования ПИН-блока введённого клиентом. коммуникационный ключ (COMM KEY) — для шифрования пакета к FrontEnd процессинга.

На HSM генерируются открытая и закрытая компонента каждого ключа, после чего открытая компонента прописывается во FrontEnd, а закрытая загружается в банкомат. Оба ключа загружаются в ПИН-клавиатуру (EPP Encrypted Pin Pad) и хранятся только там.

По сути EPP — это такой маленький HSM, который не умеет генерировать ключи, но умеет очень хорошо их хранить. Когда я плотно работал с банкоматами — EPP имели 7 ступеней защиты от физического проникновения.

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

Сценарий

Про сценарий уже было сказано в статье, на которую я ссылался, хочу лишь немного добавить. Весь сценарий банкомата основан на так называемых ФИТах (Financial Institution Table). FIT — не что иное, как БИН банка выданный VISA.

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

Таким образом, мы должны загрузить неколько ФИТов в банкомат:

  • 400001, 400002, 400003 — позволим всё и вся
  • 999999 — только выдача и баланс

Сценарий проверяет номер карты клиента и работает по первому совпадению в ФИТ-таблице.

Итак, мы полностью подготовили весь комплекс к работе, осталось самое главное: совершить транзакцию.

Транзакция

Самый простой сценарий: наш клиент в нашем АТМ:

  1. Клиент вставляет карту в АТМ;
  2. АТМ видит что клиент наш и выдаёт ему опции;
  3. Клиент выбирает: выдача, 100 рублей
  4. Банкомат шифрует ПИН-блок мастер-ключом;
  5. Шифрует всё сообщение коммуникационным ключом и отправляет в FrontEnd;
  6. FrontEnd получает сообщение;
  7. по ID определяет банкомат (каждый банкомат подключается на свой собственный порт, так что ID получить проблем никаких);
  8. Расшифровывает сообщение открытой компонентой коммуникационого ключа;
  9. по БИН понимает, что карта наша;
  10. Расшифровывает ПИН-блок открытой компонентой мастер-ключа;
  11. Обрабатывает запрос на списание (есть ли деньги, не исчерпаны ли лимиты и всё такое прочее);
  12. Зашифровывает сообщение открытой компонентой коммуникационого ключа;
  13. Отправляет банкомату;
  14. Банкомат расшифровывает сообщение;
  15. Сообщает результат клиенту;
  16. Уведомляет хост, что деньги выданы (так же с шифрованием и всем прочим).

Стоит отметить, что всё шифрование на стороне хоста осуществляется при помощи HSM. То есть шаги 8 и 9 в деталях выглядят так:

  1. Хост отправляет зашифрованный ПИН-блок, мастер-ключ и контрольную сумму на HSM;
  2. HSM расшифровывает ПИН-блок;
  3. Сверяет контрольную сумму после расшифровки с присланной;
  4. Зашифровывает открытый ПИН-блок при помощи IWK и считает контрольную сумму;
  5. Если контрольные суммы открытого ПИН-блока и зашифрованного IWK равны — ПИН введён верно.

Клиент получает свои 100 рублей и уходит довольный, однако это только половина дела. В этот момент FrontEnd установил клиенту hold — заморозил на его лимите авторизации (доступная к снятию сумма) 100 рублей, но его текущий счёт никак не изменился. Здесь стоит немного пояснить: в процессинге нет счетов клиентов — движение денег происходит по так называемым «лимитам авторизации». Фактически, лимит авторизации — не что иное, как карточный счёт клиента, но он никак не фигурирует в плане счетов и бухгалтерском балансе. Другими словами, лимит авторизации есть техническая сущность, которая отражает состояние реального текущего счёта клиента в процессинге. Отличие лимита авторизации в том, что:

  1. на лимит авторизации действуют лимиты процессинга: лимит на единоразовую выдачу, лимит на ежедневную выдачу и так далее;
  2. лимит авторизации может изменяться в течение операционного дня, текущий счёт только в момент закрытия операционного дня.

Вечером текущего дня или утром следующего дня (но, как правило, это делается ночью) закрывается операционный день. Все авторизации карт и суммы холдов выгружаются из FrontEnd и загружаются в BackEnd, где и происходит движение денег по текущим счетам клиентов. После этого финальные отчёты выгружаются в Автоматизированную Банковскую Систему, где хранятся текущие счета клиентов. На основании этих отчётов происходит реальное движение денег, а также во FrontEnd — новые лимиты авторизации (наш клиент из примера выше получает новый лимит авторизации, который меньше на 100 рублей). Теперь сложнее: Чужой клиент в нашем АТМ:

  1. Клиент вставляет карту в АТМ;
  2. АТМ понимает что клиент чужой, показывает ему только баланс и выдачу;
  3. Клиент выбирает: выдача, 200 рублей
  4. АТМ шифрует ПИН-блок мастер-ключом;
  5. Шифрует сообщение коммуникационным ключом;
  6. Отправляет сообщение на FrontEnd;
  7. FrontEnd расшифровывает сообщение открытой компонентой коммуникационого ключа;
  8. Определяет что БИН не наш и надо его отправить в VISA;
  9. FrontEnd зашифровывает сообщение компонентой AWK (так как мы в данном случае эквайер) и отправляет в VISA;
  10. VISA получает от нас сообщение, расшифровывает его второй компонентой нашего AWK и по БИНу определяет какого банка это карта;
  11. Зашифровывает сообщение компонентой IWK (так как обращается к эмитенту) того банка, который выпустил эту карту и отправляет сообщение;
  12. Банк-эмитент получает сообщение:
  13. Расшифровывает сообщение при помощи закрытой компоненты IWK (тут сразу понятно что карта наша, БИН смотреть нет смысла);
  14. Расшифровывает ПИН-блок;
  15. Авторизует карту (даёт добро на выдачу 200 рублей);
  16. Зашифровывает сообщение закрытой компонентой IWK и отправляет в VISA;
  17. VISA расшифровывает открытой компонентой IWK банка-эмитента, зашифровывает открытой компонентой AWK нашего банка и отправляет нам;
  18. Мы расшифровываем сообщение закрытой компонентой AWK;
  19. Записываем результат транзакции;
  20. Зашифровываем открытой компонентой коммуникационого ключа нужного банкомата и отправляем ему сообщение;
  21. Банкомат получает сообщение, расшифровывает его и выдаёт клиенту деньги;
  22. Уведомляет хост, что деньги выданы (опять же, шифрую все сообщения);
  23. Мы уведомляем банк-эмитент, что деньги успешно выданы;

Это была только авторизация, то есть реальных денег никто никому не перечислил. Теперь нам надо получить финсообщение об этой транзакции и получить возмещение от другого банка: 200 рублей наших денег, которые мы выдали его клиенту.

  1. Мы отправляем в VISA отчёт (оффлайном, медленно и печально) о том, что не наш клиент с номером карты таким-то получил 200 рублей в нашем банкомате;
  2. VISA отправляет требование банку-эмитенту перечислить нам 200 рублей и ещё 0,5% от суммы транзакции, но не менее $3 самой VISA за то, что она провела транзакцию через себя. Это есть так называемый interchange fee;
  3. Банк-эмитент получает файлы от VISA, закрывает свой операционный день в процессинге, потом закрывает день в Автоматизированной Банковской Системе и переводит через корр. банк VISA на наш счёт наших 200 рублей;
  4. Рассчитывается с VISA (покрывает interchange fee)

Само собой, все такие расчёты осуществляются в долларах, и тут играет роль курсовая разница, но это уже совсем другая история…

UPD:

Источник: https://habr.com/post/229393/

Добавить комментарий