01

Тайм-аут — неизвестность, а не отказ

Клиент может потерять ответ после принятия платежа провайдером. Повтор без устойчивого идентификатора способен дублировать операцию. Явно моделируйте ожидающие и неизвестные состояния, определяйте восстановление статуса из авторитетного источника. Обновление браузера не должно определять финансовый результат.

02

Идемпотентность — бизнес-правило

У ключа идемпотентности должны быть область, срок жизни и связь с операцией. Определите поведение при том же ключе с другими данными. Храните информацию для согласованного ответа. Проверяйте повторные уведомления и нарушенный порядок событий: очереди и сеть могут доставлять событие неоднократно.

03

Сверка — часть продукта

Внутренние записи и расчёты провайдера не всегда совпадают сразу. Нужны сопоставление, объяснимые расхождения и очередь для оператора. Сохраняйте доказательства без избыточных чувствительных данных. Полезнее процесс разрешения конкретного расхождения, чем панель с общим зелёным статусом.

04

Отделяйте архитектуру от разрешений

Хорошая архитектура не даёт доступа к банку, платёжной сети или регулируемой деятельности. Нужны договоры, тестовая среда и документация. Вопросы соответствия решают квалифицированные специалисты. Инженерия помогает собирать доказательства и готовиться, а сертификация и лицензирование имеют отдельный порядок.

FinTech-разработка