Автоматизация обработки инвойсов
Разработали веб-систему для автоматической обработки счетов и встроили ее в финансовые процессы клиента.Клиент
Компания разрабатывает и поддерживает веб-платформы и цифровые системы для бизнеса. Для работы платформ использует арендованные серверы и внешние сервисы хостинга. Расходы на инфраструктуру при этом не фиксированы, зависят от нагрузки и набора используемых сервисов.
Все инфраструктурные затраты компания фиксирует и учитывает в финансовых процессах. Бухгалтерия регулярно работает с инвойсами от разных поставщиков, и именно здесь возникает бизнес-сложность. Один и тот же документ может требовать разной трактовки в зависимости от страны поставщика и налогового режима, а сами инвойсы часто содержат длинные строки с техническими деталями.
Такие данные плохо поддаются автоматическому извлечению стандартными OCR-инструментами: строки важно извлекать и интерпретировать в связке, а не по отдельности. В результате финансовый отдел вынужден вручную перепроверять и дополнять автоматически распознанные данные, чтобы корректно зафиксировать расходы и свести их в единый процесс. По мере роста объема документов этот подход перестал масштабироваться и стал источником ошибок и задержек.
Вызовы
Клиент обратился к нам в 2021 году с задачей автоматизировать обработку инфраструктурных инвойсов. Было очевидно, что проблема не сводится к распознаванию текста: даже при корректном OCR данные оказывались непригодными для дальнейшего использования.
Мы сразу поняли, что без отделения бизнес-смысла данных от их текстового представления автоматизация не будет работать и масштабироваться.

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

Поиск точки опоры
Анализ инвойсов показал, что у документов нет устойчивого формата. Даже одинаковые по смыслу позиции оформлялись по-разному в зависимости от поставщика: менялись названия, порядок элементов, формат периодов и логика расчетов. Это сразу отсекало шаблонные решения и жесткие парсеры.
Как мы это сделали
Этап 1. Сначала структура, потом текст
С самого начала мы рассматривали OCR как вспомогательный этап, а не как основу решения. Поэтому на первом шаге мы сосредоточились не на выборе OCR-движка, а на анализе того, какие данные нужны бизнесу и в каком виде они должны попадать в финансовые процессы.
Мы отделили работу с изображением документа от последующей обработки текста и использовали Python и инструменты компьютерного зрения для восстановления структуры инвойсов.
Этап 2. Определение границ данных
На этом этапе мы работали с визуальной структурой инвойсов: расположением блоков, таблиц, строк и повторяющихся паттернов.
Computer Vision использовался для того, чтобы восстановить логические границы данных – понять, какие элементы относятся к одной строке услуги, где начинается и заканчивается период расчета, какие значения связаны между собой, а не просто находятся рядом в тексте.
Этап 3. Интерпретация и нормализация данных
После этого данные проходили этап интерпретации и нормализации. Вместо шаблонов под конкретные форматы мы использовали набор правил и эвристик, которые позволяли системе понимать одни и те же данные, даже если они были записаны по-разному. Это дало возможность обрабатывать инвойсы от разных поставщиков без ручной подстройки под каждый новый документ.
Как решение работает на практике
— Система принимает входящие инвойсы от разных поставщиков и запускает процесс распознавания документов. На этом этапе извлекается текст и базовая разметка без попыток сразу привести данные к финальному виду.
— Далее строки инвойсов разбираются на отдельные параметры, связанные между собой по смыслу. Система сопоставляет элементы, относящиеся к одной услуге или периоду, и приводит их к единому формату.
— После этого данные автоматически обрабатываются и собираются в структуру, пригодную для использования в бухгалтерских и аналитических процессах. На выходе финансовый отдел получает устойчивый процесс работы с инвойсами, независимо от их исходного формата и поставщика.
Технологии
Бэкенд
Python
Результат
Клиент получил внутренний веб-сервис, который принимает инвойсы, обрабатывает их и передаёт структурированные данные в финансовый учет. Бухгалтерия перестала зависеть от ручной разборки документов: данные из разных инвойсов обрабатываются единообразно и могут использоваться в финансовых процессах без дополнительной подготовки.
Это снизило количество ошибок и сократило время обработки документов при росте объема и разнообразия поставщиков. В результате компания смогла масштабировать работу с инфраструктурными расходами без увеличения операционной нагрузки и сохранить управляемость финансовых процессов по мере роста платформы.
Документы в кейсе – визуальные примеры, воссозданные на основе реальных счетов клиента.
сократилось время обработки одного инвойса.
операций с инвойсами перестали требовать ручного вмешательства.
Что происходит дальше:
Мы получаем запрос, обрабатываем его в течение 24 часов и связываемся по указанным вами e‑mail или телефону для уточнения деталей.
Подключаем аналитиков и разработчиков. Совместно они составляют проектное предложение с указанием объемов работ, сроков, стоимости и размера команды.
Договариваемся с вами о следующей встрече, чтобы согласовать предложение.
Когда все детали улажены, мы подписываем договор и сразу же приступаем к работе.