Кейс 08 / Разработка и DevOps

Open Banking API и кабинет финансовой организации

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

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

  • Open Banking
  • API
  • Безопасность

С чего начали

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

Что сделала команда

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

Как проверили результат

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

Что получил заказчик

  • API, кабинет и sandbox.
  • Банковские коннекторы.
  • OpenAPI-спецификация.
  • Модель угроз и политика секретов.
  • Дашборды, contract tests и инструкция подключения нового банка.

Технологии и инструменты

  • Ruby
  • Go
  • PostgreSQL
  • Kafka
  • OpenAPI 3.1
  • OAuth 2.0
  • mutual TLS
  • Kubernetes

Следующий шаг

Обсудим задачу с похожими ограничениями

Пришлите короткое описание. Предложим формат первого этапа, критерии приемки и подходящий состав команды.