Розробка AI-системи для інтеграцій Open Banking PSD2

Банківські інтеграції розпадаються, коли зростає кількість підключень і запитів. Ми розробляємо AI-шар поверх банківських інтерфейсів під ключ: маршрутизація, політики доступу, документація для передавання. Запуск нового підключення прискорюється, а з команди знімається ручна робота.
Часті запитання

Open Banking: де ламаються інтеграції на масштабі

Інтеграція Open Banking рідко ламається на рівні одного запиту — вона ламається на масштабі. Поки банків два і клієнтів десяток, кожен закривається своїм конектором: свої поля у виписці, свої коди помилок, свій формат дати й суми.

Як тільки банків стає двадцять, підтримка перетворюється на постійну ручну роботу, а підключення до банківських рахунків нового партнера займає тижні замість днів.

Основна ціна такої схеми — не розробка, а експлуатація. В інтерфейсів різні ліміти на кількість звернень, різні вікна обслуговування й різні вимоги до підтвердження власника рахунку.

На пікових навантаженнях сервіс отримує відмови банківських інтерфейсів, іде в повторні спроби й або розмножує операції, або втрачає частину історії. Збій одного банку при цьому виглядає як збій усього сервісу, бо єдиної картини за рахунками клієнта немає.

PSD2-доступ до рахунків додає до цього згоди: вони живуть обмежений строк, відкликаються клієнтом у будь-який момент і потребують своєчасного оновлення токенів.

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

Агрегація банківських даних вирішується на рівні моделі, а не кількістю конекторів: єдина схема рахунку й операції, ідемпотентні ключі, дедуплікація за зовнішнім ідентифікатором, окремий журнал відмов з керованою повторною обробкою. Нижче розбираємо, як це закривається.

Що дає AI-шар поверх банківських інтерфейсів

AI-шар ставиться між сервісом і банківськими інтерфейсами й не замінює інтеграцію, а знімає з неї різнорідність. Berlin Group задає загальний каркас запитів, але фактичні відповіді банків розходяться: формат виписок, коди призначення платежу, правила посторінкової видачі. Шар приводить їх до єдиної моделі операції — дата, контрагент, призначення, сума, напрям.

Класифікація банківських операцій спирається на призначення платежу, а не на код категорії: банки заповнюють його вільним текстом і майже ніколи за шаблоном.

Модель розмічає потік і віддає на ручну перевірку лише рядки з низькою впевненістю — на типових виписках автоматично розбирається більше дев’яти операцій з десяти.

Автоматичний розбір виписок прибирає ручну звірку: розбір місячної виписки по одному клієнту займав години, тепер це хвилини, і час не зростає з кількістю підключених банків.

Стійкість інтеграції будується на ізоляції відмов, а не на одному «головному» банку. Кожен банк — окремий маршрут зі своїм запобіжником, таймаутом і чергою повторних спроб: якщо учасник недоступний, запити до нього буферизуються, а інші маршрути відповідають штатно.

Так іде цілий клас відмов, коли падіння одного банку обвалювало загальний сценарій згоди або вивантаження.

Відгук на запит балансу й списку операцій — частки секунди на кеші та одиниці секунд при першому зверненні до банку, при цьому повільний учасник не гальмує інших.

Частка автоматично розібраних операцій тримається вище дев’яноста відсотків, а черга ручної перевірки скорочується в рази: команда бачить не потік помилок, а короткий список винятків, і розширення на новий банк зводиться до опису його особливостей, а не до переписування логіки.

Способи підключення до банківських інтерфейсів: порівняння

Вибір способу доступу визначається трьома параметрами: скільки банків потрібно охопити, як часто запитуються баланс і виписка, і що відбувається при збої на боці банку. Варіанти різняться не лише трудомісткістю підключення, а й класом відмов, який лягає на наш бік.

Варіант Коли підходить Обмеження
Пряме підключення до банку (регуляторний доступ) Потрібні свіжі дані та повний набір операцій; банк входить до ядра продукту Власна інтеграція на кожен банк, різні ліміти запитів, строки підключення залежать від банку
Банківський агрегатор Потрібне широке охоплення одразу й короткий строк запуску Єдина точка відмови, обмежений набір полів і операцій, затримка оновлення виписки
Гібридна схема доступу з кешем і маршрутизацією Частина банків дає основне навантаження, решта — довгий хвіст Потрібен шар нормалізації даних, правила оновлення й контроль розходжень

У будь-якому варіанті відповіді банків ми приводимо до одного внутрішнього контракту: застосунок працює з єдиною моделлю рахунку, операції та згоди, а джерело даних змінюється налаштуванням маршруту.

Це дозволяє почати з агрегатора й пізніше перевести ключові банки на прямий канал без переписування бізнес-логіки.

Кешування банківських даних знімає частину навантаження з банківських інтерфейсів і згладжує їхню недоступність: виписка оновлюється за розкладом, баланс — на вимогу, а при помилці повертається останній підтверджений стан з позначкою часу.

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

Етапи впровадження AI-інтеграції в банківський контур

Роботи йдуть від інвентаризації до контрольованого включення: спочатку фіксуємо, що вже підключено в контурі Open Banking, потім проєктуємо потоки, і лише потім чіпаємо продуктивний контур.

Помилка в маршрутизації запиту до рахунків викривається не на етапі складання, а на реальних операціях клієнтів.

  1. Аудит інтеграцій. Інвентаризація підключень: які інтерфейси банку задіяні, де зберігаються згоди, які ліміти діють. Підсумок — карта залежностей і список вузьких місць.
  2. Схема маршрутизації запитів. Розмічаємо, що йде в модель, що вирішується правилами, як обробляються відмови й таймаути. Правила фіксуються специфікацією, а не домовленістю.
  3. Налаштування доступу до рахунків. Ролі, області видимості, строки згод, журналювання кожного звернення. Доступ видається за мінімально необхідним.
  4. Тестування на реальних даних. Тіньовий режим на історичних операціях і пісочниця банку; розходження з рішеннями чинних правил розбираємо до включення.
  5. Пілот на частці трафіку. Дивимося затримки, частку відмов, повноту журналів. Повернення на попередню схему — одним перемикачем.
  6. Передача й супровід. Конфігурації, схеми потоків, регламент реагування та порядок оновлення моделі.

Передаємо не лише робочий контур, а й порядок його зміни: як додати сценарій, як відкотити правила маршрутизації, хто відповідає на інцидент.

Політики доступу, схеми й документація на передачу

Готова інтеграція — це не лише робочий обмін даними. Без матриці доступів і регламентів експлуатації рішення живе до першої ротації сертифіката або зміни на боці банку. Тому разом із системою передаємо артефакти, за якими ваша команда супроводжує та розвиває її самостійно.

  • Конфігурації підключень: адреси тестового й продуктивного контурів, ідентифікатори клієнта, сертифікати взаємної автентифікації, ключі підпису запитів і порядок їх ротації.
  • Схема потоків даних: повний шлях запиту згоди — ініціювання, перенаправлення користувача, повернення, обмін токенами, продовження та відкликання доступу.
  • Матриця ролей і доступів: хто має право ініціювати платіж, читати баланси й історію, відкликати згоди; розділення прав на читання й запис, мінімально необхідні привілеї, журнал дій.
  • Регламент обробки відмов: поведінка при простроченому токені, перевищенні ліміту запитів і недоступності банку — повтор із наростаючою затримкою, ідемпотентність платежів за ключем операції, порядок розбору завислих переказів вручну.
  • Документація інтеграції: опис контрактів і форматів обміну, довідник кодів помилок із розшифруванням і прикладами коректних і відхилених запитів.
  • Інструкції для підтримки: як перевипустити сертифікат, відкликати доступ, підняти контур після збою і в який строк ескалувати інцидент.
  • Порядок оновлення при зміні банківських інтерфейсів: набір обов’язкових перевірок перед викаткою та матриця відповідальних.

Артефакти лежать у репозиторії поруч із кодом і версіонуються разом із ним. Зміна на боці банку перетворюється на правку конфігурації та документації, а не на пошук автора інтеграції — супровід не залежить від однієї людини.

Кейс: агрегація рахунків з AI-маршрутизацією запитів

Що було

Агрегатор опитував банки синхронно в момент відкриття екрана: кожен запит чекав на найповільнішого учасника, а помилка на одному підключенні ламала всю зведенку за рахунками.

Частка автоматично оброблених звернень трималася близько 70%, час до відображення балансу сягав 6–8 секунд, частка невдалих звернень до банків — 12–14%.

Усередині цих відмов змішувалися різні причини: обмеження частоти запитів, прострочені згоди й мережеві обриви, і система реагувала на всі однаково — повтором до межі.

Що змінили

Розділили збір даних та їх відображення: фоновий обхід наповнює кеш, екран одразу віддає останні відомі значення й оновлює їх у міру надходження.

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

Повтори зробили з наростаючою паузою та розбором за класом відмови: мережевий збій повторюється, прострочена згода за PSD2 іде в сценарій повторної авторизації, а не в нескінченні спроби. Ключі запитів прибрали дублі при повторних надсиланнях.

Що стало

Частка автоматично оброблених запитів зросла до 96%, час до відображення балансу скоротився до 1–1,5 секунди, частка невдалих звернень до банків — 2–3%.

Решта відмов тепер класифіковані: користувач бачить, який банк потребує повторного входу, замість загальної помилки завантаження. Навантаження на банківські інтерфейси знизилося завдяки кешу й згладженим повторам, тому ліміти частоти перестали бути джерелом збоїв.

Чим пряме підключення відрізняється від агрегатора

Різниця проявляється в чотирьох місцях: глибина даних, які віддаються, свіжість цих даних, зона відповідальності при збої та обсяг робіт із підтримання підключень у живому стані. Нижче — як це виглядає на практиці, а не в презентації.

Глибина даних. Пряме підключення віддає все, що публікує сам банк: призначення платежу, категорію торгової точки, регулярні надходження, залишок і ліміти за кожним рахунком.

Агрегатор приводить десятки банків до загального вигляду — а спільний знаменник завжди бідніший: нестандартні поля губляться, категорії перераховуються за власною моделлю, частина атрибутів доступна лише з певного рівня доступу.

Свіжість. Пряме підключення оновлює дані за подією — картина на момент запиту.

Агрегатор частіше працює на періодичному опитуванні: рухи за рахунком підтягуються за розкладом і лежать у проміжному сховищі, тому між реальною операцією та її появою у вас проходить від кількох десятків хвилин до годин. Для скорингу й аналітики це нормально, для підтвердження платежу — вже ні.

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

В агрегатора з’являється єдина точка відмови: недоступний він — недоступні одразу всі банки. Розбір при цьому йде через третю сторону, і типовий сценарій — взаємні посилання: агрегатор каже, що банк не відповів, банк стверджує, що запитів не бачив.

Підтримання в актуальному стані. Банки змінюють схеми згод, вимоги до підтвердження клієнта, сертифікати й формати відповідей. При прямому підключенні обсяг робіт зростає лінійно з кількістю банків, і кожна правка — ваш реліз. Агрегатор бере це на себе, але оновлення приходять у його строки, поза вашим контролем.

Тому на практиці частіше збирають гібрид: агрегатор на кшталт Salt Edge закриває довгий хвіст банків на старті, пряме підключення ставиться туди, де потрібні повна глибина полів і передбачувана затримка відповіді.

Технічні сумніви навколо AI в банківських даних

Open Banking будується на чужих інтерфейсах, тому невизначеність — норма: розходження у виписці клієнт помічає раніше за моніторинг. До старту фіксуємо поведінку системи в нештатних ситуаціях — нижче чотири сумніви, які піднімають першими.

Що буде, якщо банк перестане відповідати?

Запити йдуть через чергу з повторними спробами та наростаючою паузою, тому недоступність одного банку не зупиняє інші підключення. Транзакція позначається як така, що очікує підтвердження, а повторна доставка не створює дублів — ключ ідемпотентності за ідентифікатором операції. Коли банк повертається, вивантаження доганяється, а розходження йдуть в окремий журнал розбору.

Хто відповідає за якість розпізнавання операцій?

Ми, і це закріплено в умовах приймання. Кожне зіставлення отримує оцінку впевненості: вище порога — іде автоматично, нижче — на ручну перевірку, а не у звіт. Точність за категоріями рахуємо на розміченому наборі регулярно, тому деградація видна раніше, ніж її помітить клієнт.

Що робити з банками, яких немає в наборі?

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

Як захищені банківські дані?

Реквізити не зберігаємо — працюємо на токенах, доступ розмежований за ролями, кожне звернення журналюється. Згода оформлюється зі строком і відкликається в один крок, після відкликання доступ закривається одразу. Канал і сховище шифруються, тестові контури ізольовані від промислових.

Обговоримо задачу: AI-шар для Open Banking

Щоб узятися за AI-шар поверх Open Banking, доступ до продуктивного середовища не потрібен.

Достатньо тестового контуру банку-партнера, специфікації XS2A у вашій редакції, прикладів виписок в ISO 20022 і переліку рішень, які сьогодні ухвалюються вручну — щодо платежів, лімітів, підозрілих операцій.

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

З боку замовника для старту потрібен мінімум: доступ у пісочницю, контакт інтеграційної команди та фахівця з безпеки, знеособлена вибірка операцій за достатній період і чинні правила згоди — строки життя, обсяг прав, порядок відкликання.

  • карта доступних точок API і прав згоди: що реально віддає банк, а що добудовуємо на своєму боці
  • схема потоку даних від згоди до відповіді моделі, з явними точками відмови й відкату
  • прототип моделі на ваших знеособлених даних: скоринг, класифікація операцій, розбір виписок
  • метрики на відкладеній вибірці: повнота, частка хибних спрацювань, стійкість до пропусків у даних
  • політика знеособлення, зберігання й розмежування доступу до персональних даних
  • план пілоту: обсяг навантаження, критерії успіху, умови зупинки й повернення до попередньої логіки

Опишіть задачу у вільній формі — які процеси хочете закрити й що вже є в тестовому контурі. Повернемося з оцінкою обсягу робіт, планом пілотного запуску інтеграції та списком того, що потрібно від банку і вашої команди.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1371
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142