Skip to content

Перевод средств SEPA

Пример заполнения по шаблону sc-000-template.md. Текст перенесён из вики (main/TeslaPay/finance/sepa_transfer) и оформлен по структуре; сверка с кодом не выполнялась (status: draft).

Назначение / бизнес-ценность

Позволяет пользователю TeslaPay перевести средства со своего счёта на внешний банковский счёт по реквизитам IBAN через сеть SEPA. Закрывает базовую потребность вывода/перевода фиата за пределы платформы.

Участники

Роль Описание Зона (swimlane)
Отправитель Пользователь, инициирующий перевод средств Пользователь
Получатель Владелец внешнего счёта-получателя Партнёр
Система Платформа TeslaPay: проверка, резервирование, отправка в SEPA-шлюз Система
Банк / SEPA-шлюз Обрабатывает перевод и зачисляет средства получателю Партнёр

Предусловия

  1. Отправитель авторизован, имеет активный счёт (IBAN).
  2. На счёте достаточно средств с учётом комиссии.

Триггер

Отправитель в разделе «Переводы» выбирает «Перевод средств через SEPA».

Основной поток (happy path)

  1. Отправитель — выбирает счёт списания.
  2. Отправитель — вводит реквизиты: имя получателя, IBAN, при необходимости BIC, сумму, назначение платежа (опционально).
  3. Система — рассчитывает и показывает итоговую сумму с учётом комиссии.
  4. Система — проверяет корректность реквизитов (см. Alt-1).
  5. Отправитель — подтверждает перевод через 2FA (OTP / 2FA / PIN-6) (см. Err-1).
  6. Система — резервирует сумму на счёте Отправителя и отправляет запрос в SEPA-шлюз.
  7. Банк / SEPA — обрабатывает запрос и передаёт средства банку-получателю.
  8. Система — информирует Отправителя, что перевод принят в обработку.
  9. Банк-получатель — зачисляет средства на счёт Получателя и оповещает Систему.
  10. Система — уведомляет Отправителя о зачислении. Конец сценария: средства переведены.

Альтернативные и исключительные потоки

  • 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/....