Основная архитектура
UPI-система требует центрального платёжного коммутатора, который выступает посредником между банками. Архитектура состоит из трёх основных уровней:
- Клиентский уровень – мобильные/веб-приложения, инициирующие платёжные запросы
- Уровень UPI-коммутатора – основная маршрутизация, валидация и оркестрация
- Уровень адаптеров банков – стандартизированные коннекторы к каждому участвующему банку
Поток транзакций и целостность
Каждая транзакция следует строгому паттерну двухфазного коммита:
Initiate → Validate → Debit Source → Credit Destination → Confirm
- Присваивай глобально уникальный transaction ID каждому запросу
- Применяй idempotency keys для предотвращения дублирующейся обработки
- Используй распределённые блокировки для безопасной работы с одновременными запросами
- Храни состояние транзакции в персистентной state machine
Высокая доступность
- Разворачивай сервис в нескольких availability zones с active-active репликацией
- Используй очередь сообщений (например, Kafka) для разделения коммуникации с банками и graceful-обработки сбоев
- Реализуй circuit breakers для изоляции неработающих подключений к банкам
- Целевой показатель — 99.99% uptime с автоматическим failover
Детекция мошенничества
- Применяй ML-модели в реальном времени для скоринга каждой транзакции перед исполнением
- Применяй velocity checks — отмечай необычную частоту или суммы операций пользователя
- Поддерживай слой device fingerprinting и поведенческой аналитики
- Автоматически блокируй подозрительные транзакции для ручной проверки
Логирование аудита и соответствие требованиям
- Записывай неизменяемые логи аудита в append-only хранилище для каждого изменения состояния
- Логи должны содержать: идентификацию пользователя, временну́ю метку, сумму транзакции, IP и устройство
- Соответствуй RBI guidelines, политикам AML и требованиям локализации данных
- Храни логи минимум семь лет согласно нормативным требованиям
Разрешение споров
- Сохраняй полные снимки транзакций на каждом этапе обработки
- Предоставляй выделенный dispute management service с чётко определёнными SLA
- Включи reconciliation jobs между банками, запускаемые по расписанию, для обнаружения и исправления расхождений