Как я потерял 5 миллионов на проекте 💸

Работа в финтехе – это как сапёр: один неверный код ответа, и твой релиз превращается в историю для собеседований на ближайшие 5 лет. Особенно когда речь о деньгах клиентов. Сегодня расскажу, как одна маленькая ошибка чуть не стоила мне места работы, а компании – репутации и миллионов рублей.

Картина маслом:

  • Пятница
  • Финтех-продукт
  • Сотни тысяч транзакций в день
  • Сотни миллионов в обороте
  • До НГ остались считанные дни
  • Мы только что выкатили "небольшие доработки" платёжного функционала
  • Я пью кофе и думаю о корпоративе

И тут начинается... Звонок первый: "Эм... кажется, мне прилетело два платежа вместо одного" Я: нервно отставляю кофе Звонок второй: "Ребят, у меня тут двойная выплата..." Я: начинаю потеть (Умножаем панику на количество активных пользователей) Звонок от генерального: "КАКОГО Х*Я ПРОИСХОДИТ?!" кофе окончательно остыл, а я, кажется, поседел. СТО влетает в опенспейс как Усэйн Болт, я за ним... И тут начинается самые напряженные полтора часа в моей карьере.

Первые 40 минут: судорожно ищем причину в платёжном процессинге Следующие 30 минут: матерящиеся разработчики разбирают каждый шаг интеграции с банками Последние 20 минут: "НАШЛИ! ФИКСИМ!"

Что пошло не так:

  • Новый банк возвращал нестандартный код ответа
  • Наша система: "Ой, ошибка! Надо попробовать через другой банк!"
  • И понеслась... автоматика сделала своё черное дело 🎢

Итог: за эти полтора часа мы успели сделать двойные выплаты на 5 миллионов рублей. В финтехе минуты простоя стоят денег, а ошибки – утроенной суммы.

Что делать, как возвращать деньги? Началось самое "весёлое" – обзвон всех получателей: "Здравствуйте, тут такое дело... можно деньги обратно?" "А вы точно из той самой компании?" "Нет, это не розыгрыш..." "Да-да, мы понимаем, что деньги уже потратили..."

Вернуть удалось чуть больше половины. Остальное... ну, скажем так, это был очень дорогой урок для всех 😓

Выводы, которые я сделал:

  • В финтехе нет маленьких релизов – каждое изменение может стоить миллионы
  • Релизы перед праздниками – это всегда плохая идея, особенно когда речь о деньгах
  • Нестандартные ответы от API нужно валидировать как будто от этого зависит твоя жизнь (потому что в финтехе реально зависит)
  • Важность тестирования граничных случаев в финансовых операциях невозможно переоценить

P.S. А у вас какие были самые эпичные факапы на работе?