diff --git a/IT/reliability_risk/risk/850P/flow/base/tp2sys_q.md b/IT/reliability_risk/risk/850P/flow/base/tp2sys_q.md new file mode 100644 index 00000000..7943ce1a --- /dev/null +++ b/IT/reliability_risk/risk/850P/flow/base/tp2sys_q.md @@ -0,0 +1,431 @@ +# Схема взаимодействия ИТ-систем банка: операции с вкладами ФЛ + +## Используемые системы + +| Аббревиатура | Полное название | Роль | +|---|---|---| +| **АБС main** | Автоматизированная банковская система (главная книга) | Ведение счетов вклада 423, бухгалтерский учёт, договоры вклада | +| **АБС card** | Карточный бэк-офис | Ведение карточных счетов 40817, авторизационные лимиты | +| **Процессинг** | Lekton Classic (https://lekton.io/classic/) | Авторизация карточных операций, маршрутизация транзакций ATM/POS | +| **Anyway** | Anyway (https://finstream.ru/reshenija-dlja-bankov/anyway.html) | Front-end процессинг ATM: управление сценариями, интерфейс банкоматов | +| **ДБО ФЛ** | Интернет/мобильный банк (BSS, https://bssys.com/) | Клиентский канал для дистанционного обслуживания физлиц | +| **РМ НСПК** | Рабочее место НСПК | Обмен клиринговыми реестрами с НСПК (MasterCard/Visa/МИР) | +| **HSM/Auth** | Сервер авторизации / HSM | Криптографическая защита PIN, генерация сессионных ключей | +| **Notify** | Сервис уведомлений (SMS/Push) | Информирование клиента о транзакциях | +| **AML/Scoring** | Система ПОД/ФТ и скоринга | Проверка клиента при открытии вклада | + +--- + +## Процесс 1. Открытие вклада через ДБО ФЛ + +### Схема взаимодействия + +```mermaid +sequenceDiagram + actor Клиент + participant ДБО as ДБО ФЛ (BSS) + participant АБС_М as АБС main + participant АМЛ as AML/Scoring + participant Notify as Сервис уведомлений + + Клиент->>ДБО: Выбор продукта «Открыть вклад»,\nввод суммы и срока + ДБО->>АБС_М: Запрос условий (тарифы, ставки,\nдоступные продукты) + АБС_М-->>ДБО: Список продуктов: наименование,\nставка, мин/макс сумма, срок, условия пролонгации + ДБО->>АМЛ: Проверка клиента (ФИО, ИНН/паспорт,\nсумма, признак ПОД/ФТ) + АМЛ-->>ДБО: Результат проверки: ОК / блокировка / запрос документов + ДБО->>АБС_М: Команда открыть вклад:\n clientId, productCode, amount, currency,\n termDays, autoRenew, interestAccount (40817 или 423) + АБС_М->>АБС_М: Создание договора вклада,\nоткрытие счёта 423хх,\nпроводка дебет источника / кредит 423хх + АБС_М-->>ДБО: depositId, accountNo (423хх),\nrate, maturityDate, status=OPEN + ДБО->>Notify: Событие: вклад открыт,\ndepositId, сумма, ставка, дата окончания + Notify-->>Клиент: SMS/Push: «Вклад открыт. Счёт 423хх,\nсумма X руб., ставка Y%, срок до DD.MM.YYYY» + ДБО-->>Клиент: Экран подтверждения:\nномер счёта, ставка, срок, условия +``` + +### Вариант 1А — источник средств: текущий счёт / карта внутри банка +*(описан выше — списание с карточного счёта 40817 или текущего счёта клиента в АБС main)* + +### Вариант 1Б — источник средств: перевод из стороннего банка через СБП +```mermaid +sequenceDiagram + actor Клиент + participant ДБО as ДБО ФЛ (BSS) + participant АБС_М as АБС main + participant СБП as Шлюз СБП + + Клиент->>ДБО: Выбор источника пополнения «Другой банк (СБП)» + ДБО->>СБП: Запрос на входящий C2C/C2B перевод:\nphone, amount, depositAccount (423хх), paymentPurpose + СБП-->>ДБО: paymentId, статус «В обработке» + Note over СБП,АБС_М: Деньги от стороннего банка поступают\nна корсчёт, зачисляются на транзитный счёт + СБП->>АБС_М: Коллбэк: зачисление средств,\nsbpTxId, amount, depositAccount + АБС_М->>АБС_М: Проводка транзитный счёт → 423хх + АБС_М-->>ДБО: Уведомление: баланс вклада пополнен +``` + +### Таблица информационных потоков — Процесс 1 + +| № | Направление | Данные | Цель | +|---|---|---|---| +| 1.1 | Клиент → ДБО | Параметры вклада: тип продукта, сумма, срок, счёт списания | Инициирование заявки | +| 1.2 | ДБО → АБС main | Запрос условий: clientId, productCode | Получение актуальных тарифов | +| 1.3 | АБС main → ДБО | Список продуктов: name, rate, minAmount, maxAmount, termDays, autoRenew | Отображение предложений клиенту | +| 1.4 | ДБО → AML | clientId, docSeries/docNo, INN, amount, operationType=DEPOSIT_OPEN | Проверка ПОД/ФТ | +| 1.5 | AML → ДБО | verdict: OK/BLOCK/REQUEST_DOCS, riskScore | Разрешение или блокировка операции | +| 1.6 | ДБО → АБС main | clientId, productCode, amount, currency, termDays, sourceAccount, interestAccount, autoRenew | Команда открытия вклада | +| 1.7 | АБС main → АБС main | Внутренние проводки: Дт sourceAccount — Кт 423хх | Бухгалтерское отражение | +| 1.8 | АБС main → ДБО | depositId, accountNo(423хх), rate, maturityDate, status=OPEN | Подтверждение открытия | +| 1.9 | ДБО → Notify | depositId, clientPhone, amount, rate, maturityDate | Триггер уведомления | +| 1.10 | Notify → Клиент | SMS/Push: реквизиты вклада | Информирование клиента | + +--- + +## Процесс 2. Открытие вклада через банкомат + +### Схема взаимодействия + +```mermaid +sequenceDiagram + actor Клиент + participant ATM as Банкомат + participant Anyway as Anyway (ATM front-end) + participant Proc as Процессинг (Lekton) + participant HSM as HSM/Auth + participant АБС_К as АБС card + participant АБС_М as АБС main + participant Notify as Сервис уведомлений + + Клиент->>ATM: Вставка карты + ввод PIN + ATM->>Anyway: PIN-блок (зашифрован), cardNo (track2), terminalId + Anyway->>Proc: ISO 8583 Authorization Request:\npan, track2, pinBlock, terminalId, txnType=BALANCE + Proc->>HSM: Запрос верификации PIN:\npinBlock, PVK, cardNo + HSM-->>Proc: Результат проверки PIN: ОК / FAIL + Proc->>АБС_К: Проверка статуса карты: active/blocked,\nдоступный баланс, cardHolderId + АБС_К-->>Proc: cardStatus, availableBalance, accountNo(40817) + Proc-->>Anyway: Авторизация ОК, доступные операции + Anyway-->>ATM: Меню: список доступных операций + Клиент->>ATM: Выбор «Открыть вклад», ввод суммы и срока + ATM->>Anyway: txnType=DEPOSIT_OPEN, cardNo, amount, termCode + Anyway->>Proc: Запрос на открытие вклада:\npan, amount, termCode, merchantId + Proc->>АБС_К: Проверка и резервирование суммы\nна карточном счёте 40817 + АБС_К-->>Proc: reserveId, availableAfter + Proc->>АБС_М: Команда открытия вклада:\nclientId (по cardHolderId), productCode, amount,\ncurrency, termDays, sourceAccount(40817) + АБС_М->>АБС_М: Открытие счёта 423хх, договор вклада,\nпроводка Дт 40817 — Кт 423хх + АБС_М-->>Proc: depositId, accountNo(423хх), rate, maturityDate + Proc-->>Anyway: Операция выполнена: depositId, accountNo, rate + Anyway-->>ATM: Экран успеха: счёт вклада, ставка, срок + ATM-->>Клиент: Чек: depositId, accountNo(423хх),\nсумма, ставка, дата окончания + Proc->>Notify: Событие: вклад открыт через ATM,\ndepositId, amount, maturityDate + Notify-->>Клиент: SMS: «Открыт вклад, счёт 423хх, сумма X руб.» +``` + +### Таблица информационных потоков — Процесс 2 + +| № | Направление | Данные | Цель | +|---|---|---|---| +| 2.1 | ATM → Anyway | track2, pinBlock (зашифр. DES/3DES), terminalId, txnType=AUTH | Передача данных карты и PIN для авторизации | +| 2.2 | Anyway → Процессинг | ISO 8583: pan, track2, pinBlock, stan, terminalId, txnType | Маршрутизация авторизационного запроса | +| 2.3 | Процессинг → HSM | pinBlock, PVK (PIN Verification Key), cardNo | Верификация PIN без раскрытия значения | +| 2.4 | HSM → Процессинг | verifyResult: OK/FAIL | Результат криптопроверки | +| 2.5 | Процессинг → АБС card | cardNo, requestType=STATUS_BALANCE | Проверка карты и баланса | +| 2.6 | АБС card → Процессинг | cardStatus, availableBalance, accountNo(40817), cardHolderId | Данные для решения об авторизации | +| 2.7 | ATM → Anyway | txnType=DEPOSIT_OPEN, amount, termCode, cardNo | Параметры открытия вклада от клиента | +| 2.8 | Процессинг → АБС card | cardNo, amount, action=RESERVE | Блокировка средств под операцию | +| 2.9 | Процессинг → АБС main | clientId, productCode, amount, currency, termDays, sourceAccount(40817) | Создание договора вклада | +| 2.10 | АБС main → Процессинг | depositId, accountNo(423хх), rate, maturityDate, status=OPEN | Подтверждение открытия | +| 2.11 | Процессинг → Notify | clientPhone, depositId, amount, rate, maturityDate | Отправка уведомления | +| 2.12 | ATM → Клиент | Чековая лента: depositId, accountNo, сумма, ставка, дата окончания | Документальное подтверждение для клиента | + +--- + +## Процесс 3. Пополнение вклада через банкомат картой своего банка + +### Схема взаимодействия + +```mermaid +sequenceDiagram + actor Клиент + participant ATM as Банкомат + participant Anyway as Anyway (ATM front-end) + participant Proc as Процессинг (Lekton) + participant HSM as HSM/Auth + participant АБС_К as АБС card + participant АБС_М as АБС main + participant Notify as Сервис уведомлений + + Клиент->>ATM: Карта + PIN + ATM->>Anyway: track2, pinBlock, terminalId + Anyway->>Proc: ISO 8583 Auth Request + Proc->>HSM: Верификация PIN + HSM-->>Proc: OK + Proc->>АБС_К: Проверка карты и баланса + АБС_К-->>Proc: cardStatus=ACTIVE, availableBalance, accountNo(40817) + Proc-->>Anyway: Авторизация ОК + Клиент->>ATM: «Пополнить вклад», ввод номера счёта\nвклада 423хх и суммы + ATM->>Anyway: txnType=DEPOSIT_TOPUP, srcCard, depositAccountNo(423хх), amount + Anyway->>Proc: Запрос пополнения:\npan, depositAccountNo, amount, terminalId + Proc->>АБС_К: Проверка достаточности средств\nна карточном счёте 40817 + АБС_К-->>Proc: sufficiencyResult: OK, newAvailableBalance + Proc->>АБС_М: Команда пополнения вклада:\ntxnType=DEPOSIT_TOPUP, depositAccountNo(423хх),\namount, srcAccount(40817), authCode + АБС_М->>АБС_М: Проводка: Дт 40817 — Кт 423хх,\nувеличение тела вклада + АБС_М-->>Proc: txnId, depositBalance (новый), status=SUCCESS + Proc->>АБС_К: Списание суммы с карточного счёта\n(финальное урегулирование) + Proc-->>Anyway: txnId, newDepositBalance, status=SUCCESS + Anyway-->>ATM: Экран успеха + ATM-->>Клиент: Чек: списано X руб. с карты, зачислено на 423хх,\nновый остаток вклада + Proc->>Notify: Событие DEPOSIT_TOPUP, amount, depositBalance + Notify-->>Клиент: SMS/Push об операции +``` + +### Таблица информационных потоков — Процесс 3 + +| № | Направление | Данные | Цель | +|---|---|---|---| +| 3.1 | ATM → Anyway | track2, pinBlock, terminalId | Авторизация держателя карты | +| 3.2 | Процессинг → HSM | pinBlock, PVK | Верификация PIN | +| 3.3 | Процессинг → АБС card | cardNo, requestType=BALANCE | Проверка баланса источника | +| 3.4 | ATM → Anyway | txnType=DEPOSIT_TOPUP, srcCardNo, depositAccountNo(423хх), amount | Параметры пополнения | +| 3.5 | Процессинг → АБС card | cardNo, amount, action=CHECK_SUFFICIENCY | Проверка достаточности средств | +| 3.6 | Процессинг → АБС main | txnType=DEPOSIT_TOPUP, depositAccountNo(423хх), amount, srcAccount(40817), authCode, txnRef | Команда зачисления на вклад | +| 3.7 | АБС main → Процессинг | txnId, newDepositBalance, valueDate, status=SUCCESS | Подтверждение зачисления | +| 3.8 | Процессинг → АБС card | authCode, amount, action=DEBIT_FINAL | Окончательное списание с карты | +| 3.9 | ATM → Клиент | Чек: сумма списания с карты, новый остаток вклада, txnId | Подтверждение операции | + +--- + +## Процесс 4. Пополнение вклада через банкомат картой чужого банка + +### Схема взаимодействия + +```mermaid +sequenceDiagram + actor Клиент + participant ATM as Банкомат + participant Anyway as Anyway (ATM front-end) + participant Proc as Процессинг (Lekton) + participant HSM as HSM/Auth + participant НСПК as РМ НСПК / Платёжная система\n(МИР/Visa/MC) + participant БанкЭ as Банк-эмитент (чужой) + participant АБС_М as АБС main + participant Notify as Сервис уведомлений + + Клиент->>ATM: Карта чужого банка + PIN + ATM->>Anyway: track2, pinBlock, terminalId, BIN чужого банка + Anyway->>Proc: ISO 8583 Auth Request:\npan, track2, pinBlock, terminalId, txnType=CASH_IN + Note over Proc: BIN анализ: карта стороннего банка —\nзапрос уходит во внешнюю сеть + Proc->>HSM: Генерация сеансового ключа для\nшифрования PIN в межбанковском запросе + HSM-->>Proc: sessionKey (ZPK) + Proc->>НСПК: ISO 8583 Authorization Request (межбанк):\npan, pinBlock (перешифрован ZPK), amount,\nterminalId, acqBankId, txnType=PURCHASE/CASH + НСПК->>БанкЭ: Авторизационный запрос:\npan, amount, txnType + БанкЭ-->>НСПК: Авторизационный ответ:\nauthCode или rejectCode (недостаток средств, блок и т.д.) + НСПК-->>Proc: authCode, responseCode + Proc-->>Anyway: Авторизация ОК / отказ + Anyway-->>ATM: Разрешение операции или сообщение об ошибке + + alt Авторизация прошла успешно + Клиент->>ATM: «Пополнить вклад», depositAccountNo(423хх), amount + ATM->>Anyway: txnType=DEPOSIT_TOPUP_INTERBANK, depositAccountNo, amount, authCode + Anyway->>Proc: Команда пополнения: depositAccountNo(423хх), amount, authCode, srcBankBIN + Proc->>АБС_М: Зачисление на вклад:\ndepositAccountNo(423хх), amount, authCode,\nsrcType=INTERBANK_CARD, interimAccount + АБС_М->>АБС_М: Проводка: Дт межбанковский транзитный счёт — Кт 423хх + АБС_М-->>Proc: txnId, newDepositBalance, status=SUCCESS + Proc-->>Anyway: SUCCESS + Anyway-->>ATM: Экран успеха + ATM-->>Клиент: Чек: списано с карты стороннего банка X руб.,\nзачислено на вклад 423хх, баланс вклада + Proc->>НСПК: Financial Advice (финансовое подтверждение):\nauthCode, amount, stan + Note over НСПК,БанкЭ: Клиринговый реестр формируется\nдля расчётов между банками + Notify->>Клиент: SMS/Push: «Вклад пополнен на X руб.» + end +``` + +### Вариант 4А — международная карта (Visa/MasterCard) +Аналогично, но вместо НСПК используется международная сеть. После санкций 2022 года для клиентов с картами Visa/MC иностранных банков — операция недоступна в большинстве российских банков. Актуально для карт МИР или UnionPay. + +### Вариант 4Б — карта МИР стороннего банка +*(отображён на основной схеме — наиболее актуальный вариант)* + +### Таблица информационных потоков — Процесс 4 + +| № | Направление | Данные | Цель | +|---|---|---|---| +| 4.1 | ATM → Anyway | track2, pinBlock, terminalId, BIN эмитента | Идентификация карты стороннего банка | +| 4.2 | Процессинг → HSM | pinBlock, ZPK | Перешифрование PIN для межбанковской передачи | +| 4.3 | Процессинг → НСПК | ISO 8583: pan, pinBlock(ZPK), amount, terminalId, acqBankId, txnType | Запрос авторизации в банке-эмитенте | +| 4.4 | НСПК → Банк-эмитент | pan, amount, txnType, acqBankId | Маршрутизация авторизации | +| 4.5 | Банк-эмитент → НСПК | authCode / rejectCode, availableBalance | Решение по авторизации | +| 4.6 | НСПК → Процессинг | authCode, responseCode | Результат межбанковской авторизации | +| 4.7 | Процессинг → АБС main | depositAccountNo(423хх), amount, authCode, srcType=INTERBANK_CARD, interimTransitAccount | Зачисление средств на вклад | +| 4.8 | АБС main → Процессинг | txnId, newDepositBalance, status=SUCCESS | Подтверждение зачисления | +| 4.9 | Процессинг → НСПК | Financial Advice: authCode, stan, amount | Финансовое подтверждение (клиринг) | +| 4.10 | НСПК → РМ НСПК (реестры) | Клиринговый реестр: список транзакций за день, суммы, банки | Межбанковские расчёты | +| 4.11 | ATM → Клиент | Чек: сумма, счёт вклада 423хх, баланс, txnId | Документальное подтверждение | + +--- + +## Процесс 5. Закрытие вклада через ДБО с зачислением на карту + +### Схема взаимодействия + +```mermaid +sequenceDiagram + actor Клиент + participant ДБО as ДБО ФЛ (BSS) + participant АБС_М as АБС main + participant АБС_К as АБС card + participant Proc as Процессинг (Lekton) + participant Notify as Сервис уведомлений + + Клиент->>ДБО: «Закрыть вклад», выбор вклада,\nуказание карты для зачисления + ДБО->>АБС_М: Запрос данных вклада:\ndepositId → depositBalance, accruedInterest,\nmaturityDate, penaltyConditions + АБС_М-->>ДБО: depositBalance, accruedInterest,\nearlyClosurePenalty (если досрочно),\nnetAmount (к выплате), status + ДБО-->>Клиент: Предварительный расчёт:\nосновной долг, начисленные проценты,\nштраф за досрочное закрытие, итого к выдаче + Клиент->>ДБО: Подтверждение закрытия (ПЭП / SMS-OTP) + ДБО->>АБС_М: Команда закрытия вклада:\ndepositId, targetAccount(40817), confirmCode + АБС_М->>АБС_М: Расчёт итоговых процентов (в т.ч. доначисление\nза последний период), применение штрафа\nза досрочное закрытие (если применимо) + АБС_М->>АБС_М: Проводки:\nДт 423хх (основной долг) — Кт 40817\nДт Счёт начисл. процентов — Кт 40817\nДт 40817 (штраф, если есть) — Кт Доходы банка\nЗакрытие счёта 423хх + АБС_М->>АБС_К: Запрос на зачисление суммы на карточный счёт:\ntargetAccount(40817), netAmount, txnRef + АБС_К-->>АБС_М: Подтверждение зачисления: txnId, newCardBalance + АБС_М-->>ДБО: depositStatus=CLOSED, netAmount,\ntxnId, newCardBalance + ДБО->>Notify: Событие: вклад закрыт, netAmount, cardAccount + Notify-->>Клиент: SMS/Push: «Вклад закрыт. Зачислено X руб. на карту *1234» + ДБО-->>Клиент: Экран: вклад закрыт, сумма зачисления,\nновый баланс карты +``` + +### Вариант 5А — закрытие в срок (maturityDate = сегодня) +Штраф за досрочное закрытие не применяется. Проценты начислены в полном объёме. + +### Вариант 5Б — досрочное закрытие +Применяется пересчёт процентов по ставке «до востребования» или по условиям договора. Разница вычитается (штраф). + +### Вариант 5В — закрытие с выводом через СБП на счёт в другом банке +```mermaid +sequenceDiagram + participant АБС_М as АБС main + participant ДБО as ДБО ФЛ (BSS) + participant СБП as Шлюз СБП + + АБС_М-->>ДБО: netAmount подтверждён + ДБО->>СБП: P2P-запрос: phone (получатель),\nextBankId, netAmount, purpose=«Закрытие вклада» + СБП-->>ДБО: transferId, status=IN_PROGRESS + СБП-->>ДБО: Коллбэк: status=SUCCESS, sbpTxId + ДБО-->>АБС_М: Вклад закрыт, средства выведены через СБП +``` + +### Таблица информационных потоков — Процесс 5 + +| № | Направление | Данные | Цель | +|---|---|---|---| +| 5.1 | Клиент → ДБО | depositId, targetCardAccount(40817), confirmType | Инициирование закрытия | +| 5.2 | ДБО → АБС main | depositId, requestType=CLOSE_PREVIEW | Предварительный расчёт суммы к выплате | +| 5.3 | АБС main → ДБО | depositBalance, accruedInterest, earlyClosurePenalty, netAmount | Данные для согласования с клиентом | +| 5.4 | Клиент → ДБО | OTP-код подтверждения (SMS/Push) | Верификация намерения клиента | +| 5.5 | ДБО → АБС main | depositId, action=CLOSE, targetAccount(40817), confirmCode | Команда закрытия | +| 5.6 | АБС main → АБС main | Внутренние проводки: закрытие 423хх, начисление % | Бухгалтерское урегулирование | +| 5.7 | АБС main → АБС card | targetAccount(40817), netAmount, txnRef=depositClosure | Зачисление средств на карту | +| 5.8 | АБС card → АБС main | txnId, newCardBalance | Подтверждение зачисления | +| 5.9 | АБС main → ДБО | depositStatus=CLOSED, netAmount, txnId, newCardBalance | Итоговый статус операции | +| 5.10 | ДБО → Notify | clientPhone, netAmount, cardLastDigits, closureDate | Триггер уведомления | +| 5.11 | Notify → Клиент | SMS/Push: сумма зачисления, карта, дата | Информирование | + +--- + +## Процесс 6. Частичное снятие со вклада через банкомат с зачислением на карту + +### Схема взаимодействия + +```mermaid +sequenceDiagram + actor Клиент + participant ATM as Банкомат + participant Anyway as Anyway (ATM front-end) + participant Proc as Процессинг (Lekton) + participant HSM as HSM/Auth + participant АБС_К as АБС card + participant АБС_М as АБС main + participant Notify as Сервис уведомлений + + Клиент->>ATM: Карта + PIN + ATM->>Anyway: track2, pinBlock, terminalId + Anyway->>Proc: ISO 8583 Auth Request + Proc->>HSM: Верификация PIN + HSM-->>Proc: OK + Proc->>АБС_К: Проверка статуса карты + АБС_К-->>Proc: cardStatus=ACTIVE, accountNo(40817) + Proc-->>Anyway: Авторизация ОК + Anyway-->>ATM: Главное меню + Клиент->>ATM: «Операции с вкладом» → «Частичное снятие»,\nввод номера вклада 423хх и суммы снятия + ATM->>Anyway: txnType=DEPOSIT_PARTIAL_WITHDRAW,\ndepositAccountNo(423хх), withdrawAmount, targetCard(40817) + Anyway->>Proc: Запрос частичного снятия:\ndepositAccountNo, withdrawAmount, targetCardAccount + Proc->>АБС_М: Проверка условий частичного снятия:\ndepositAccountNo(423хх), withdrawAmount + АБС_М-->>Proc: isPartialAllowed: true/false,\nminRemainBalance (неснижаемый остаток),\ncurrentBalance, maxWithdrawAmount + alt Снятие разрешено условиями вклада + Proc->>АБС_М: Команда частичного снятия:\ndepositAccountNo(423хх), withdrawAmount,\ntargetAccount(40817), authCode + АБС_М->>АБС_М: Проверка: остаток после снятия ≥ minRemainBalance\nПересчёт процентов (если условия меняются)\nПроводка: Дт 423хх — Кт 40817 + АБС_М->>АБС_К: Зачисление на карточный счёт:\ntargetAccount(40817), withdrawAmount, txnRef + АБС_К-->>АБС_М: Подтверждение: txnId, newCardBalance + АБС_М-->>Proc: txnId, newDepositBalance, newCardBalance, status=SUCCESS + Proc-->>Anyway: SUCCESS + Anyway-->>ATM: Экран успеха + ATM-->>Клиент: Чек: снято X руб. с вклада 423хх,\nзачислено на карту *1234,\nостаток вклада после операции + Proc->>Notify: DEPOSIT_PARTIAL_WITHDRAW: withdrawAmount,\nnewDepositBalance, cardLastDigits + Notify-->>Клиент: SMS/Push: «Снято X руб. со вклада. Новый остаток Y руб.» + else Снятие запрещено (неснижаемый остаток, нет частичного снятия) + Proc-->>Anyway: ERROR: WITHDRAWAL_NOT_ALLOWED, reason + Anyway-->>ATM: Экран отказа с причиной + ATM-->>Клиент: «Операция недоступна. [Причина]» + end +``` + +### Вариант 6А — вклад с возможностью частичного снятия +*(описан выше — стандартный вклад типа «Накопительный» с неснижаемым остатком)* + +### Вариант 6Б — выдача наличными через банкомат (если вклад позволяет наличные выплаты) +```mermaid +sequenceDiagram + participant ATM as Банкомат + participant Anyway as Anyway (ATM front-end) + participant Proc as Процессинг (Lekton) + participant АБС_М as АБС main + + ATM->>Anyway: txnType=DEPOSIT_CASH_WITHDRAW,\ndepositAccountNo(423хх), amount + Anyway->>Proc: Запрос наличной выдачи с вклада + Proc->>АБС_М: Списание с 423хх, проводка на счёт кассы ATM + АБС_М-->>Proc: txnId, newDepositBalance + Proc-->>Anyway: Команда диспенсеру выдать купюры + Anyway-->>ATM: Выдача наличных + Note over ATM: Диспенсер выдаёт купюры клиенту +``` + +### Таблица информационных потоков — Процесс 6 + +| № | Направление | Данные | Цель | +|---|---|---|---| +| 6.1 | ATM → Anyway | track2, pinBlock, terminalId | Авторизация держателя карты | +| 6.2 | Процессинг → HSM | pinBlock, PVK | Верификация PIN | +| 6.3 | Процессинг → АБС card | cardNo, requestType=STATUS | Проверка статуса карты | +| 6.4 | ATM → Anyway | txnType=DEPOSIT_PARTIAL_WITHDRAW, depositAccountNo(423хх), withdrawAmount, targetCardAccount(40817) | Параметры частичного снятия | +| 6.5 | Процессинг → АБС main | depositAccountNo(423хх), requestType=CHECK_PARTIAL_WITHDRAW, withdrawAmount | Проверка допустимости операции | +| 6.6 | АБС main → Процессинг | isPartialAllowed, minRemainBalance, currentBalance, maxWithdrawAmount | Условия частичного снятия по договору | +| 6.7 | Процессинг → АБС main | txnType=DEPOSIT_PARTIAL_WITHDRAW, depositAccountNo(423хх), withdrawAmount, targetAccount(40817), authCode | Команда списания с вклада | +| 6.8 | АБС main → АБС card | targetAccount(40817), withdrawAmount, txnRef | Зачисление на карту | +| 6.9 | АБС card → АБС main | txnId, newCardBalance | Подтверждение зачисления | +| 6.10 | АБС main → Процессинг | txnId, newDepositBalance, newCardBalance, status=SUCCESS | Итоговый статус операции | +| 6.11 | ATM → Клиент | Чек: снятая сумма, остаток вклада, новый баланс карты | Документальное подтверждение | +| 6.12 | Процессинг → Notify | withdrawAmount, newDepositBalance, cardLastDigits | Триггер уведомления | + +--- + +## Сводная таблица систем и их роли в процессах + +| Система | П1 (откр. ДБО) | П2 (откр. ATM) | П3 (попол. ATM своя карта) | П4 (попол. ATM чужая карта) | П5 (закр. ДБО) | П6 (снят. ATM) | +|---|:---:|:---:|:---:|:---:|:---:|:---:| +| **ДБО ФЛ (BSS)** | ✅ | — | — | — | ✅ | — | +| **АБС main** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **АБС card** | ✅ | ✅ | ✅ | — | ✅ | ✅ | +| **Процессинг (Lekton)** | — | ✅ | ✅ | ✅ | — | ✅ | +| **Anyway** | — | ✅ | ✅ | ✅ | — | ✅ | +| **HSM/Auth** | — | ✅ | ✅ | ✅ | — | ✅ | +| **РМ НСПК** | — | — | — | ✅ | — | — | +| **Сервис уведомлений** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **AML/Scoring** | ✅ | — | — | — | — | — | +| **Шлюз СБП** | опц. | — | — | — | опц. | — | + +> **Примечание.** В процессах с банкоматом система **Anyway** выступает как front-end процессор (управляет сценариями ATM и диспенсером), а **Процессинг (Lekton)** — как авторизационный движок, выполняющий маршрутизацию ISO 8583 запросов и взаимодействие с банками-корреспондентами. Оба компонента вместе образуют ATM-канал обслуживания.