← назад в блог
daily17 августа 2026 г./4 мин чтения

Отменённый полис всё ещё отображался как «Действующий»

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

Отменить страховой полис — уже само по себе неприятная процедура. А когда вы отменили его, получили подтверждение, а затем всё ещё видите его в личном кабинете со статусом «Действующий», становится ещё хуже — начинаешь сомневаться, действительно ли что-то произошло и не продолжают ли с тебя списывать деньги.

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

Откуда взялась неправильная информация

Список полисов формируется на основе национального страхового реестра — общей системы, в которой хранятся сведения обо всех страховых полисах в стране. Наш сайт просто показывал тот статус, который приходил из реестра.

Я проверил каждую отмену, отправленную через сайт, и сравнил её с текущими данными реестра. Всего было шесть заявок, и результаты сильно отличались:

  • По одной заявке отмена была полностью завершена тринадцать дней назад — но реестр всё ещё показывал полис как оформленный и действующий.
  • По двум другим заявкам страховщик ещё проводил проверку, но реестр уже отменил соответствующие полисы.
  • По одной заявке было официально отказано — и именно в этом случае статус «Действующий» был правильным.

Вывод оказался неприятным, но очевидным: национальный реестр не является надёжным источником информации о том, была ли отменена конкретная страховка. Для одних продуктов и на одних этапах он обновляется, для других — нет.

Решаем, кому доверять

У нас есть более надёжный источник. Каждая отмена, отправленная через сайт, сохраняется у нас вместе с текущим этапом её обработки во внутренней системе страховщика.

Поэтому правило стало простым: реестр по-прежнему определяет, существует ли полис и является ли он действующим, но на вопрос «отменил ли этот человек полис?» теперь отвечает наша собственная запись. Эта проверка выполняется на сервере во время формирования списка полисов, поэтому исправленный статус автоматически используется везде: в списке полисов, на главной странице личного кабинета и в форме отмены. Отдельным экранам больше не нужно знать, откуда появился этот статус.

Есть одно важное ограничение: статус меняется только после полностью завершённой отмены. Если заявка всё ещё находится на рассмотрении, полис остаётся «Действующим» — потому что фактически он пока действительно действует. Иначе мы просто заменили бы одну неправильную информацию другой.

Уведомляем офис сразу после отмены

Вторая проблема была противоположной: заявка создавалась, но никто об этом не узнавал.

Отмена связана с возвратом денег клиенту, поэтому здесь нужен человек. Теперь сразу после успешного создания заявки в рабочую Telegram-группу отправляется уведомление: продукт, номер полиса, номер заявки, сумма возврата, наличие документа, данные клиента и причина отмены.

Но сами правила отправки оказались важнее текста сообщения:

  1. Только после успешного создания. Уведомление отправляется после того, как страховщик принял заявку. Команда не получит сообщение о том, что на самом деле не создалось.
  2. Telegram не должен ломать отмену. Если Telegram недоступен, отмена всё равно успешно завершается. Заявка клиента не должна зависеть от работы системы уведомлений.
  3. Никто не должен ждать. Для запроса установлен жёсткий тайм-аут, поэтому медленный Telegram не блокирует кнопку отправки.
  4. Никакого спама. Уведомление отправляется только для действительно новой заявки, поэтому повторная попытка не создаёт одинаковые сообщения.

Ошибка, которую легко было не заметить

Затем я обнаружил проблему в собственной реализации. Если Telegram отказывался принимать сообщение — например, бот не был добавлен в группу или была указана неправильная группа, — мы отправляли запрос, получали отказ и ничего не сохраняли. Отмена при этом выглядела полностью успешной, а сотрудники просто никогда об этом не узнавали.

Это один из худших видов ошибок: ошибка без видимых симптомов. Теперь такой отказ сохраняется вместе с причиной, которую вернул Telegram, поэтому найти и объяснить проблему можно за несколько секунд, а не за несколько часов.

Почему я доволен этим решением

Обе части задачи сводятся к одной идее: система должна говорить то, что она действительно знает — а не повторять устаревший ответ другой системы и не молчать, когда что-то пошло не так.

Теперь клиент видит правдивый статус своего полиса, а сотрудники, которым нужно обработать отмену, узнают о ней через несколько секунд, а не когда кто-нибудь в следующий раз откроет список заявок.