Как мы создали лучшее банковское API

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

Ящик Пандоры

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

Мы взяли одного из лучших провайдеров сервиса управленческого учета - Seeneco, работающего по модели SAAS, адаптировали обертку (цветовую палитру сервиса, скрипты контактного центра) под гайдлайны банка и начали рекламировать внутри нашего интернет-банка для корпоративных клиентов (СББОЛ - Сбербанк Бизнес Онлайн).

И буквально сразу, в первые дни, мы обнаружили что теряем пользователей на этапе регистрации в сервис. И этому было очень просто объяснение: так как провайдер внешний, то и сам сервис находился вне периметра нашей системы и конечно сервис ничего не знал про клиента. Мы гнали трафик на отдельно стоящий сайт, на котором пользователь должен был найти кнопку “Зарегистрироваться”, пройти все шаги регистрации юридического лица (поверьте, это не так тривиально, как регистрация физ. лица) и только после этого он мог начать работу с сервисом.

Забегая вперед, хочу сказать, что мы вскрыли ящик Пандоры. В дальнейшем мы столкнулись с целой чередой проблем. Сервис не привлекал пользователей: они видели пустой экран, так как у внешнего сервиса не было никакой транзакционной информации по клиенту и самое печальное, freemium пользователи не становились платными. Но обо всем этом по порядку.

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

Для обеспечения бесшовного опыта нам было нужно найти решение… И вроде оно у нас было – API. Но, к сожалению, классические банковское API не зашло b2b провайдерам - нашим партнерам. Оно создавалось банкирами для банкиров или для крупнейших корпораций. Традиционные банковские API тяжёлые, к ним сложно подключиться и ещё сложнее использовать, и вот почему:

  • SOAP архитектура, проприетарная авторизация, исторически сложившиеся форматы для передачи финансовой информации, асинхронный режим работы, обязательный hardware-VPN для организации защищенного канала и т.д.
  • PDF документация - никто не хотел “читать 7 томов”. Всем нужен удобный Wiki формат с перекрестными ссылками
  • Отсутствие удобной среды разработки и отладки. Партнеры хотели быстро получить результат (даже без написания кода!), просили готовые примеры реализации и “песочницу”, полностью эмулирующую промышленное окружение.

Поэтому мы решили создать специализированный API - fintech API, заточенный под потребности b2b SAAS провайдеров.

API для разработчиков

Мы не хотели изобретать велосипед, и обратились за лучшим опытом к FAGMA (Facebook, Amazon, Google, Microsoft, Apple).

Изучив подход и практики bigtech’a, мы решили создать API с нуля, без оглядки на предыдущие банковские решения. Новый связующий элемент digital экосистемы мы назвали - fintech API.

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

Что мы заложили в основу при проектировании API:

  • Никаких тяжелых форматов, которые учитывают малейшие нюансы. Будем проще! Разработанные нами форматы простые, легко понимаемые и не имеют ничего лишнего
  • API должен подходить широкому кругу потенциальных участников digital экосистемы, вплоть до заложенной возможности интеграции в digital экосистему продуктов IOT
  • Конечно же, мы решили избавиться от многотомных описаний, чтобы разработчики могли достичь быстрого результата. С помощью песочницы для тестовых испытаний можно получить первые положительные результаты уже за час. Мы сделали Easy Steps документацию, чтобы буквально за 15 минут оценить весь масштаб работ
  • Мы собрали тестовый полигон, заточенный под работу с внешними, небанковскими разработчиками. Подготовили базовые примеры реализации, чтобы минимизировать затраты внешних разработчиков на подоготовку к кодированию, уменьшить сроки разработки и количество потенциальных ошибок
  • Отказались от проприетарных решений, привязанных к определенной платформе. Все должно быть кроссплатформенным и не ограничивать партнера в используемой инфраструктуре. Никаких сложных требований к инфраструктуре и системному ПО
  • Внешним разработчикам не должно мешать то, чем они не занимаются — внутрибанковские сложные структуры данных, механизмы компонентов банковской платформы, особенности работы большого количества внутренних legacy-систем банка. Мы должны скрыть все это от внешних разработчиков – теперь это не их головная боль

Мы выбрали уже доказавшие свою полезность при построении Open API промышленные технические решения:

  • Аутентификация на базе протокола OAUTH 2.0

  • REST-архитектура поверх HTTP без дополнительных сложностей
  • Полностью синхронная работа
  • Формат JSON
  • Опциональное применение электронной подписи — там, где это необходимо
  • Тестовая песочница с развернутым SWAGGER. С помощью этой среды отладки разработчик партнера может смоделировать бизнес-процесс работы и получить результат без написания кода

Для обеспечения высокого уровня безопасности мы стали использовать ФПСУ (это такой “железный VPN”) между банком и партнером, а если партнер не использует платежные API мы разрешили работу через SSL.

Что наше API умеет сегодня?

Sberbank Business ID

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

Транзакционные бизнес методы (host 2 host)

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

Как мы создали лучшее банковское API

Больше чем host 2 host методы

Но самое интересное, что в рамках интеграции fintech API с b2b провайдерами у нас из host 2 hostметодов родились новые платежные механизмы.

Corporate cheсkout

Один из ключевых шагов любой воронки продаж - это оплата :) и к сожалению, на российском корпоративном рынке этот процесс крайне несовершенен. Одно юридическое лицо должно выставить счет другому юр. лицу. Бухгалтер покупателя создает черновик платежного поручения, которое должен подписать генеральный директор, и все ждут, когда деньги дойдут до продавца. Если платеж был отправлен в пятницу вечером, то продавец увидит поступление только в понедельник. Этот рудиментарный процесс очень плохо влиял на воронку продаж. Часть клиентов мы просто теряли, часть клиентов задерживала оплату, мы пропускали месяц (ы) абонентской платы. И мы решили сделать процесс взаиморасчетов между юр. лицами, таким же удобным как привычный нам онлайн-шопинг. Теперь наши клиенты могут добавить на свой сайт кнопку “Оплатить через Сбербанк Бизнес Онлайн”, которая отправляет пользователя на предзаполненное платежное поручение. Клиенту надо лишь вести СМС код и продавец в эту же минуту (не надо ждать сутки) узнает о факте оплаты - все точно так же, как и в карточном эквайринге. Просто, быстро и удобно. Это позволило значительно увеличить конверсию в первую оплату, но полностью проблему не решило.

Как мы создали лучшее банковское API

B2B Подписки

Мы хотели увеличить количество клиентов, которые стабильно ежемесячно оплачивают абонентскую плату, но к сожалению, в b2b мире не было для этого решений. И мы вновь решили не изобретать велосипед и повторили b2c опыт. Мы создали решение, которое позволяет нашим партнерам безакцептно списывать денежные средства по факту оказания услуг. Для этого мы добавили в SberBusiness ID на шаг согласия клиента (мы называем это офертой) создание документа ЗДА - заранее данный акцепт, который легализует безакцептные списания между провайдером сервиса и конечным клиентом. Таким образом наш партнер через fintech API отправляет платежные требования (специальный банковский документ) в адрес клиента и эти требования безакцептно списывают указанную сумму в пользу партнера. Это позволило нашим партнерам увеличить количество платных клиентов. Часть партнеров даже изменили свои модели монетизации - отказались от годовых тарифов в пользу ежемесячных микро-транзакций.

Как мы создали лучшее банковское API

Гарантированные платежи

Еще один интересный метод, который мы недавно запустили - это гарантированная оплата, работает он следующим образом:

  • Партнер блокирует определенную сумму на счете клиента
  • Оказывает услугу клиенту или что-то продает (например, авиабилет)
  • Как только услуга оказана и сделка подтверждена мерчантом, нужная сумма списывается с клиента

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

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

Что получили наши клиенты и партнеры?

Интересно, то что изначально, мы создавали fintech API только для наших партнеров по небанковский сервисам, но они рассказали про API другим b2b saas представителям, которые тоже захотели улучшить продуктовые характеристики своих продуктов и интегрировались с нашим API, а потом решили автоматизировать свою операционную деятельность и стали интегрировать API со своими ERP системами. Так, среди наших потребителей у нас появились первые клиенты сегмента крупный и средний бизнес.

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

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

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

Что получил банк?

Банк смог значительно обогатить свой продуктовый портфель. Нашим клиентам доступно более 90 продуктов, среди них 55 традиционных банковских сервисов и 35 небанковских продуктов. И это не просто сервисы, в которые мы приводим пользователей, это сервисы, которые глубоко интегрированы в интернет банк, как в части обмена информацией, так и в части пользовательского опыта. Например, когда вы отправляет кому-то платеж, мы тут же анализируем получателя через партнерский сервис “Проверки контрагентов” и даем внутри интернет-банка подсказку о благонадежности получателя денежных средств.

Как мы создали лучшее банковское API

Отдельно хочется отметить, что партнерская модель взаимодействия помогает банку быстро запускать сложные технологические продукты (например, сервисы для ведения бухгалтерского учета) и помогает раскачивать fintech рынок в РФ.

Сегодня наше решение fintech API обеспечивает основные сценарии взаимодействия юридических лиц и финтехкомпаний с банком и обрабатывает свыше 2 млн запросов от более чем 50 тыс. уникальных клиентов в сутки. Благодаря ему в Сбербанк Бизнес Онлайн банковские и небанковские продукты и услуги объединены на одной платформе, реализована бесшовная авторизация в партнерских сервисах, мгновенный обмен платежными данными, интеграция учетных систем бизнеса с интернет-банком. Под эгидой одного решения налажены: механизм бесшовной авторизации SberBusiness ID, подписание согласия клиента на передачу данных, методы выставления и оплаты счетов, методы получения информации по счетам и операциям, методы работы с зарплатным проектом, реестры задолженностей и платежей, методы работы с международными платежами, корпоративные подписки на услуги.

А ещё его признали лучшим на национальной премии TAdviser и на международной премии Banking Technology. Так что у меня есть все основания полагать, что это лучшее решение на рынке на сегодняшний день.

Как мы создали лучшее банковское API

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

Мои прошлые публикации можно почитать тут:

А тут можно посмотреть внутреннюю кухню разработки Сбербанк Бизнес Онлайн.

2828
46 комментариев

Интересно про то, "как у них". Будет обзор решений зарубежных банков? 

3

Если это наберёт 100 лайков, то сделаю обзор 😬

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


Из статьи не понятно кто «мы».

1

А какие проблемы с OAuth? У JWT есть свои проблемы, он хорош внутри периметра, ИМХО.

2

Мы - это команда разработки Сбербанк Бизнес онлайн, которая занимается созданием и развитием API :)

от oAuth будем отказываться после того как все bigtech'и переползут на новые решение, но кажется, что сейчас все плотно сидят на oAuth и он активно развивается. 

От Коруса отдельный лайк за API 😏

1

ЗДА - заранее данный акцепт

Полное название - Первичный идентификационный заранее данный акцепт.

1