Перевод средств SEPA¶
Пример заполнения по шаблону
sc-000-template.md. Текст перенесён из вики (main/TeslaPay/finance/sepa_transfer) и оформлен по структуре; сверка с кодом не выполнялась (status: draft).
Назначение / бизнес-ценность¶
Позволяет пользователю TeslaPay перевести средства со своего счёта на внешний банковский счёт по реквизитам IBAN через сеть SEPA. Закрывает базовую потребность вывода/перевода фиата за пределы платформы.
Участники¶
| Роль | Описание | Зона (swimlane) |
|---|---|---|
| Отправитель | Пользователь, инициирующий перевод средств | Пользователь |
| Получатель | Владелец внешнего счёта-получателя | Партнёр |
| Система | Платформа TeslaPay: проверка, резервирование, отправка в SEPA-шлюз | Система |
| Банк / SEPA-шлюз | Обрабатывает перевод и зачисляет средства получателю | Партнёр |
Предусловия¶
- Отправитель авторизован, имеет активный счёт (IBAN).
- На счёте достаточно средств с учётом комиссии.
Триггер¶
Отправитель в разделе «Переводы» выбирает «Перевод средств через SEPA».
Основной поток (happy path)¶
- Отправитель — выбирает счёт списания.
- Отправитель — вводит реквизиты: имя получателя, IBAN, при необходимости BIC, сумму, назначение платежа (опционально).
- Система — рассчитывает и показывает итоговую сумму с учётом комиссии.
- Система — проверяет корректность реквизитов (см. Alt-1).
- Отправитель — подтверждает перевод через 2FA (OTP / 2FA / PIN-6) (см. Err-1).
- Система — резервирует сумму на счёте Отправителя и отправляет запрос в SEPA-шлюз.
- Банк / SEPA — обрабатывает запрос и передаёт средства банку-получателю.
- Система — информирует Отправителя, что перевод принят в обработку.
- Банк-получатель — зачисляет средства на счёт Получателя и оповещает Систему.
- Система — уведомляет Отправителя о зачислении. Конец сценария: средства переведены.
Альтернативные и исключительные потоки¶
- Alt-1. Реквизиты некорректны — Система запрашивает исправление. → переход к шагу 2.
- Err-1. Подтверждение не пройдено — Отправитель может сменить способ подтверждения или отказаться; не более 3 попыток. → при исчерпании попыток — конец сценария (перевод не выполнен).
Постусловия¶
- При успехе: средства зачислены получателю; операция в истории транзакций Отправителя.
- При отказе/отмене: резерв снят (если был), баланс не изменён, операция помечена как неуспешная.
Бизнес-правила, лимиты, комиссии¶
- Комиссия за SEPA-перевод — TODO (сверить с тарифами
limits-fees). - Лимиты на сумму/частоту SEPA — TODO (сверить с
limiter).
Затронутые сервисы и интеграции¶
| Сервис | Роль в сценарии | gRPC / событие / интеграция |
|---|---|---|
| accounts | Резерв/списание/зачисление, запись транзакции | TODO (сверить с CREL/accounts) |
| limiter | Проверка лимитов SEPA | TODO (сверить с CREL/limiter) |
| sender | Уведомления о статусе перевода | TODO (сверить с CREL/sender) |
| SEPA-шлюз (партнёр) | Исполнение межбанковского перевода | TODO (уточнить провайдера) |
Диаграмма¶
%% TODO (doc-architect): уточнить узлы/события по коду
sequenceDiagram
actor U as Отправитель
participant S as Система
participant B as Банк / SEPA
U->>S: Реквизиты + сумма
S-->>U: Итог с комиссией
U->>S: Подтверждение (2FA)
S->>S: Резерв средств
S->>B: Запрос перевода (SEPA)
B-->>S: Принято / зачислено
S-->>U: Уведомление о статусе Тест-кейсы¶
- TODO (doc-cto): TC-payments-SEPA-happy, TC-payments-SEPA-insufficient-funds, TC-payments-SEPA-2fa-fail.
Открытые вопросы / TODO¶
- Точный провайдер/шлюз SEPA и его статусная модель.
- Поведение при частичном/отложенном зачислении (SEPA не мгновенный).
- Реальные лимиты и комиссии.
Сверка с реализацией¶
- Статус: не сверено.
- Дата сверки: —
- Подтверждения в коде: TODO —
CREL/accounts/...,CREL/limiter/...,CREL/sender/....