Может ли ИИ-агент собрать недостающие чеки?
ИИ-агент может добыть часть недостающих чеков и почти ни один не должен разбирать в том порядке, который вы ожидаете. Почти двести тысяч расходных строк в наших собственных книгах без документа, семь из десяти меньше ста евро, а главный сигнал приоритета был сломан в нашем коде.
- Категория
- Общее
- Обновлено
- Автор
- Stan Kharlap
Каждый бухгалтерский продукт теперь обещает найти ваши недостающие чеки. Pleo, представляя своих агентов в июне, назвал механизм прямо: когда расходу нужен чек, он сначала смотрит в почте сотрудника. Верный инстинкт и более простая половина задачи.
Сложная половина в том, что у настоящих книг нет проблемы с чеками, у них есть очередь из чеков, а очередь требует порядка. Почти двести тысяч расходных строк в наших собственных книгах за этот год не несут документа вообще, и выдать человеку список такой длины это не автоматизация. Вопрос в том, какие из них агент должен разбирать, в каком порядке, и какие оставить в покое.
Где недостающий чек лежит на самом деле
Четыре места с очень разной экономикой добычи.
Почта самая богатая, и с неё все начинают. Она шумнее, чем кажется: письмо продавца несёт логотип, трекинг-пиксель, картинку подписи и иногда счёт, поэтому реальному сборщику нужен белый список типов документов и чёрный список имён файлов до всякой загрузки, иначе книги заполнятся файлами header.png.
Портал поставщика держит счета за подписки, за логином. Браузерные агенты движутся здесь быстро: Anthropic 12 августа 2026 года выпустил skills и коннекторы в своё расширение для Chrome, а это примерно та способность, что нужна, чтобы залогиниться, отфильтровать новые счета и скачать их. Блокируют не интеллект, а MFA, CAPTCHA и то, что доступы к платёжному порталу это ровно то, чего агенту давать не стоит.
Кошелёк, то есть бумага и слипы с карты, не автоматизирует никто. Ему нужен человек в момент покупки.
И четвёртое, всегда недооценённое: уже в системе, ни к чему не прикреплено. Из документов, которые мы держим за этот год, почти двое из пяти не связаны ни с одной транзакцией. Люди пересылают, сканируют и кладут файлы, и файл ложится без проводки, к которой мог бы прицепиться.
Так что первая задача агента по чекам это не добыча. Это join.
Почему мы отказались от доступа к почтовому ящику и оставили одно письмо
У нас был широкий доступ к ящику Gmail. Мы от него отказались.
Его заменил Workspace-аддон, ограниченный тем письмом, которое у вас открыто, под скоупом Google gmail.addons.current.message.action, плюс миграция, которая отозвала сохранённые токены и очистила курсоры синхронизации. Агент больше не может проходить историю переписки; он может прикрепить счёт, который лежит перед вами.
Я по-прежнему считаю это верным обменом, и не только ради оптики приватности. Краулер по ящику это постоянное разрешение на годы переписки в обмен на набор документов, который вы получаете и в момент намерения, а отказ от фонового синка убирает целый класс тихих отказов: никакого молчаливого истечения токена, никакого наполовину импортированного месяца, никакого курсора истории, который надо сверять. Цена реальна: мы потеряли длинный хвост поставщиков, чей счёт приходит письмом и которое никто не открывает.
Какой недостающий чек важен: рейтинг, а не список
Дизайн определяет распределение. Из этих расходных строк без документа:
- Примерно каждая шестая больше 250 евро.
- Примерно каждая девятая между 100 и 250 евро.
- Примерно семь из десяти меньше 100 евро, и почти половина меньше 25 евро.
То есть плоская очередь состоит в основном из карточных платежей на несколько евро, и это вопрос права, а не эстетики: выше порога для счетов на малые суммы немецкому бизнесу для вычета входного НДС нужен полный счёт, что разбирает наш гид по правилу 250 евро, а ниже требования мягче. Верхняя шестая часть несёт большую часть возвратного НДС, нижняя половина это уборка.
Наш агентский плейбук для налоговых консультантов кодирует именно это: критично выше 250, высоко между 100 и 250, средне ниже, затем по убыванию суммы и от старых к новым, сгруппировано по поставщику, с подтверждением перед отправкой любого напоминания.
Что определяет приоритет
| Сигнал | Откуда берётся | Почему поднимает строку | Стоимость расчёта |
|---|---|---|---|
| Диапазон суммы | Банковская строка | Выше порога малых сумм вычет требует полного счёта | Бесплатно |
| Категория ждёт НДС, а НДС не записан | Метаданные категории плюс проводка | Оставленные деньги, и строка бросается в глаза при проверке | Один запрос |
| Попадает в период, который закрывается следующим | Даты отчёта | Пробел в открытом периоде это блокер подачи, а не рутина | Один запрос |
| Имеющийся документ подходит по сумме и окну | Непривязанные документы | Это join, а не вопрос пользователю | Массовый прогон |
| Поставщик повторяется каждый месяц | История контрагента | Один визит на портал закрывает двенадцать пробелов | Дёшево |
Порядок, который из этого следует, это не «сначала новые» и не «сначала крупные». Он ближе к такому:
priority =
vat_at_risk(tx) # категория ждёт НДС, а НДС не записан
+ over_invoice_threshold(tx)
+ closes_in_current_period(tx)
+ recurring_vendor(tx) # одна выгрузка закрывает многое
- already_held(tx) # имеющийся документ подходит по сумме и окну
Последний член важнее всех, потому что вычитание превращает вопрос в предложение. Мы гоняем его массовым прогоном при подготовке подачи: для каждого расхода без документа в периоде ищется непривязанный документ, чей номер дословно встречается в банковской строке и чья сумма попадает в допуск. Допуск и есть весь фокус: 30 центов абсолютных или 0,3% относительных, что больше, окно в один день вокруг даты проведения, до 30 дней после даты счёта, потому что списание приходит после срока оплаты, и никаких совпадений по подстроке для номеров короче пяти знаков, потому что «2026» подходит ко всему.
И заодно урок о том, как не перепродавать матчер: среди строк дороже 250 евро меньше двух из ста вообще имеют документ, подходящий по сумме и окну. На дорогом конце документа в доме действительно нет.
Найденный пробел: наш сигнал о деньгах под риском никогда не срабатывал
Пока я мерил для этого текста, я нашёл баг ровно в том сигнале, по которому больше всего хотел сортировать.
Наша подготовка подачи выдаёт предупреждение по расходам, чья категория обычно несёт НДС, но НДС не записан, выше небольшого порога, без reverse charge и зарубежных строк. Аккуратно ограничено, сформулировано как утверждение о данных, а не как рекомендация, и сравнивает сумму с этим порогом через больше-или-равно.
Расходы в наших книгах хранятся отрицательными. Поэтому сравнение почти ничего не находило: сработать оно могло только на редких расходах с положительным знаком, которые сами по себе аномалия. В продакшене это предупреждение практически никогда не запускалось.
Возьмите абсолютное значение, и то же правило находит пару тысяч строк за этот год, и примерно девятнадцать из двадцати из них заодно не имеют документа. Сигнал о деньгах под риском и сигнал о пробеле в документах указывают на одни и те же строки, то есть приоритетная голова очереди считалась всегда, а ошибка знака держала её невидимой.
Это второй раз за месяц, когда наша собственная проверка наших собственных данных находит изъян в скучном слое, а не в модели, после отсутствующей колонки автора в протоколе изменений. Я перестал удивляться.
Частые вопросы
Как автоматически собрать недостающие чеки?
Три механизма по убыванию отдачи. Сопоставьте уже загруженные документы с транзакциями без документа по сумме, окну даты и номеру документа, для этого не нужен новый доступ. Прикрепляйте из открытого письма через почтовый аддон. Забирайте повторяющиеся счета из порталов поставщиков, куда движутся браузерные агенты, но где MFA и доступы пока останавливают большую часть.
Наша бухгалтерия тратит слишком много времени на сбор чеков. Что помогает?
Перестаньте считать очередь списком и отсортируйте её: пробелы в периоде, который вы подаёте следующим, пробелы, где категория ждёт НДС, а его нет, пробелы выше порога для счёта, затем всё остальное. Группируйте запросы по поставщику, а не по транзакции, потому что один визит на портал обычно закрывает несколько месяцев, а всё ниже порога малых сумм разбирайте раз в месяц.
Что если чека на деловой расход нет вообще?
Расход не потерян автоматически, но бремя доказывания смещается на вас. Для небольших неизбежных случаев немецкая практика допускает собственный документ, Eigenbeleg, где записано что, когда, у кого и зачем куплено; поля перечисляет наш гид по Eigenbeleg. Входной НДС это как раз то, что так обычно не спасти.
Нужен ли чек и для маленьких сумм?
Для учёта документ нужен на каждый деловой расход, но требования к счёту мягче ниже порога малых сумм в 250 евро, там для вычета входного НДС достаточно упрощённого счёта. Выше нужен полный набор обязательных полей, включая ваши данные как получателя, и именно поэтому любая разумная приоритизация ставит пробелы дороже 250 вперёд.
Может ли ИИ читать чеки из моей почты?
Только если вы дадите ему доступ к ящику, и стоит спросить, что этот доступ покрывает. Мы пошли другим путём: широкий доступ к ящику был отключён в пользу аддона, ограниченного открытым письмом, чтобы агент прикреплял счёт перед вами, а не обходил историю. Спрашивайте любого поставщика, действует ли скоуп на одно письмо или постоянно.
Вывод
Структурированные счета со временем уменьшат проблему: принимать электронные счета в Германии обязательно с января 2025 года, выставлять становится обязательно с 2027 года при обороте выше 800 000 евро и с 2028 года для всех остальных, а счёт, пришедший структурированным, не нужно ни добывать, ни сопоставлять. Карточного платежа в кафе и парковочного автомата это не касается, а именно там сидит почти половина сегодняшней очереди.
А до тех пор: агент по чекам, которого строят все, это сборщик, а тот, что помогает, это рейтинг со сборщиком в придачу. Добычу ограничивают вещи, с которыми модель не спорит, логины порталов и бумага, а сортировка это чистая работа с данными, которая платит сразу: разница между очередью из двухсот тысяч позиций и рабочим списком из пятидесяти это арифметика по сигналам, которые вы уже храните. У нас была таксономия и ошибка знака, спрятавшая в ней лучший сигнал, что примерно и есть состояние отрасли. Все показывают добычу; ценность всё это время лежала в порядке. Про ручную сторону наш гид по работе с чеками разбирает, что и как долго хранить.
Norman берет операционную финансовую работу на себя
От invoicing до bookkeeping: Norman организует повторяющиеся финансовые процессы так, чтобы вы успевали к дедлайнам с меньшим объемом ручной работы.