Files
Bridge-and-Join-s/PRODUCT.md
zuevav da12a9ec1c feat(bj): модуль ЛК на PostgreSQL, обмен с DEPO, боевой ЛК с имитатором НРД, QUIK, НПР
- bj_exchange и «кран» Fancy убраны: данные модуля ЛК в PostgreSQL (схема lk)
- трансферные таблицы FTV_M2M: создание при установке, события, справочник участников
- сверка с DEPO: счёт, ФИО, дата рождения, ИИС по договору, квал-инвестор из опции DEPO
- боевой ЛК ЕСИА Финанс при тестовом ИШ: журнал, отказ через DEPO, статусы в ЛК
- онлайн-лицензирование в bj, план тестирования M2M для контрагента (интерактивный HTML)
- модули QUIK МНП, экспорт QUIK, НПР/УДС; документы и тестовые материалы

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:41:12 +03:00

10 KiB
Raw Permalink Blame History

Product

Platform

web

Users

Основной пользователь — оператор/бэк-офис брокера (администратор bj). Работает в веб-админке bj-server: настраивает подключения (Fancy, QUIK, НРД/ИШ, ЕСИА Финансы), мониторит заявки на M2M-перевод и их статусы, читает журнал обмена с НРД, ведёт пользователей ЛК, обрабатывает входящие переводы, прогоняет тесты с роботом НРД. Контекст — рабочее место специалиста депозитария/бэк-офиса.

Вторичный пользователь — розничный инвестор (физлицо) в клиентском ЛК (bj-lk): подаёт заявку на перевод своих ценных бумаг себе же в другой депозитарий. Актуально для брокеров БЕЗ платформы Финансы (профили «автомат» и «полуавтомат»); у брокеров с Финансы клиентский ЛК даёт сама Финансы.

Product Purpose

Bridge-and-Join-s (bj) — шлюз, обеспечивающий переводы ценных бумаг физлица «самому себе» (M2M) между депозитариями через сервис НРД MOEX МОСТ. Это регулируемая операция (ФЗ от 23.05.2025 № 124-ФЗ, Указание Банка России № 7317-У, вступление в силу 01.09.2026): депозитарий зачисляет бумаги клиенту в другом депозитарии без встречного поручения, за минуты.

Роль bj — протокольное плечо НРД/MOEX МОСТ: собрать M2MTransferRequest, подписать транзитной ЭП (ГОСТ через Интеграционный шлюз НРД), отправить в НРД, принять M2MTransferDecision/M2MTransferResponse, вернуть исход в вызвавшую систему. Успех = перевод исполнен и клиент/оператор видят понятный статус.

Positioning

Незаменимое ядро bj — именно междепозитарный обмен с НРД по протоколу M2M (XML с namespace-префиксами в кодировке windows-1251, транспорт ИШ с ГОСТ-ЭП и шифрованием «закрытого конверта», тестирование с роботом НРД, коды отказа M2Mxx). Соседние системы этого не делают: платформа ЕСИА Финансы/winr закрывает ЛК/портфель/подпись клиента, QUIK — блокировку позиций, но обмен depository↔НРД не ведёт ни одна из них. bj встраивается за ними как шлюз в НРД, а не дублирует их функции.

Operating Context

Три профиля развёртывания (bj во всех — шлюз в НРД):

  • Через Финансы: ЛК, портфель, подпись клиента и блокировку держит платформа ЕСИА Финансы (winr / ef.winr.pro). Стык — реализованный контракт back_office V1 (docs/lk-contract/v1/openapi.yaml, HTTP Basic): ЛК шлёт POST /api/v1/back_office/claims/ с подписанной (XMLDSig) заявкой, bj шлёт в НРД и возвращает статус callback-ом PATCH /api/v1/back_office/claims/{id}.
  • Автомат: фирма без Финансы, но с QUIK — свой bj-lk + коннектор QUIK МНП (блокировка позиций хранимыми процедурами).
  • Полуавтомат: без Финансы и QUIK — свой bj-lk + ручные гейты оператора.

Интеграции: НРД ИШ (Интеграционный шлюз, крипто ГОСТ/Валидата); Fancy (депозитарий/Спектр, MSSQL/PostgreSQL — портфели клиентов, канал обмена и журнал НРД); QUIK МНП (блокировка, боевая БД — только чтение + штатные процедуры); ЕСИА Финансы/winr (ЛК). Тестовый контур НРД — TEST3 с роботом (сценарии 1111/2001/2002/3333).

Регуляторные факты: SLA «минуты» (5 мин до 31.08.2027, 2 мин с 01.09.2027); переводятся только российские ценные бумаги (ISIN начинается с RU), учитываемые на торговом счёте депо (разделе); обособленные бумаги — нельзя. Отказ по неподходящей бумаге — код НРД M2M01.

Capabilities and Constraints

  • Реализован контракт ЕСИА Финансы back_office V1: приём подписанной заявки, проверка подписи (crypto-service), валидация, отправка в НРД, callback со статусом (draft/signed/submitted/in_progress/confirmed/rejected/timed_out) и кодом причины (reason_code/reason_text, напр. M2M18).
  • Клиентский ЛК bj-lk (отдельный бинарь, ставится на веб-сервер брокера): портфель, подача заявки с подтверждением, статусы; ходит только в bj по API с ключом, к БД напрямую не подключается.
  • Коннектор QUIK МНП (quikm2m.go) — регистрация/подпись/снятие поручений; сейчас за предохранителем, ждёт настройки QAdmin у аутсорсера.
  • Чтение реальных портфелей из Fancy (BJ_DEPO_DATA); правило RU-only и человекочитаемые коды отказа M2Mxx.
  • Терминология (не переводить, не упрощать): M2M, MOEX МОСТ, НРД, ИШ (Интеграционный шлюз), депозитарий, депонент, счёт депо, раздел, поручение, контрагент, место расчётов (НРД/СПБ), торговый счёт.
  • Открытые/недорешённые факты: транспорт depo_m2m у Финансы (V1 back_office или их webhook-модель) — на подтверждении; типы QUIK 100/101 не включены (у аутсорсера); place_of_payment=spb не реализован; справочник контрагентов (ИНН) у Финансы ещё не готов.

Brand Commitments

Фиксированный бренд продукта — Bridge-and-Join-s (bj). Клиентский ЛК может нести название брокера через настройку LK_TITLE (напр. «Личный кабинет · Фонтвьель»), но это конфигурация развёртывания, а не смена бренда продукта. Язык интерфейса — русский; тон — деловой, финансово-точный.

Evidence on Hand

  • Контракт-спецификация: docs/lk-contract/v1/openapi.yaml, DOC/API ЛК ЕСИА.pdf.
  • Документация НРД (DOC/), QUIK (/home/fontvielle/quik-docs/), Финансы/winr (/home/fontvielle/lk-docs/).
  • Реальные данные: боевые базы Fancy (BJ_DEPO_DATA — настоящие портфели клиентов), боевая БД QUIK МНП (88_INSTR), тестовый контур НРД с роботом.
  • Пройденные проверки: сквозной цикл ЛК → НРД (робот) с реальным клиентом; замыкание исхода (в т.ч. отказ M2M18) на клиента.
  • НЕ выдумывать: отзывы, цены, лицензии, метрики, клиентов — таких данных нет.

Product Principles

  1. bj — шлюз в НРД, а не полный стек. Интегрироваться с ЛК/QUIK/Fancy, а не дублировать их. Сначала проверять существующий контракт, потом строить.
  2. Безопасность необратимых операций. Перевод бумаг необратим: подтверждение перед подачей, никаких необеспеченных поручений в НРД.
  3. Боевые системы — только на чтение. Fancy и QUIK боевые; писать только штатными процедурами API, никаких прямых INSERT/UPDATE в их таблицы.
  4. Понятный исход. Коды НРД (M2Mxx) и статусы показывать человекочитаемо — и оператору, и клиенту; статус должен честно отражать реальность (отказ ≠ «в работе», «отправлено» ≠ «исполнено»).
  5. Регуляторная корректность. Только российские бумаги на торговом счёте, SLA «минуты», соответствие требованиям Банка России.

Accessibility & Inclusion

Обычная веб-доступность уровня WCAG AA: достаточный контраст (в т.ч. тёмная тема), программные label у полей, доступность с клавиатуры и для скринридеров, адекватные тап-таргеты. Отдельных регуляторных требований к доступности пока не установлено.