Опубликовано

ИИ-сканер чеков для учёта расходов: сценарий с Claude и Codex

Используйте Claude или Codex как ИИ-сканер чеков для Expense Budget Tracker: извлеките итог, проверьте точный запрос на запись, подтвердите его и сверьте строку в журнале.

На чеке из кафе — $27.82, операция по карте всё ещё «в обработке», а бумага рядом с ноутбуком уже начинает сворачиваться. Отложите чек на неделю — и вспомнить название заведения, чаевые и нужную категорию будет заметно сложнее.

Claude или Codex могут превратить фотографию в черновик операции, пока чек ещё перед вами. Агент считывает видимые данные, сверяет будущую операцию со счетами, категориями и недавними строками журнала, а затем показывает точный запрос на запись. До вашего подтверждения журнал не изменится.

Сразу обозначим, где заканчиваются возможности продукта. В Expense Budget Tracker нет встроенной камеры или сканера чеков, и он не хранит изображение чека. Предоставленное вами изображение распознаёт Claude, Codex или провайдер модели в выбранной конфигурации. Трекер хранит только подтверждённые структурированные данные журнала.

Возможность считывать изображения зависит от выбранной конфигурации ИИ. Anthropic указывает, что Claude умеет обрабатывать и анализировать визуальные данные, а OpenAI Responses API принимает текст, изображения и файлы. Но это ещё не значит, что любой клиент Claude или Codex автоматически откроет локальную фотографию. Клиент должен поддерживать вложения или получить доступ к файлу по указанному пути — с вашего разрешения. Распознавание изображений помогает, но числа всё равно должен проверить человек.

Claude или Codex превращают фотографию чека в предварительный просмотр операции, которую можно проверить перед записью

Как «сканер» работает в этом сценарии

Здесь речь о переносе данных из чека в журнал с помощью ИИ, а не о встроенной функции камеры.

Модель работает с предоставленным изображением, а Expense Budget Tracker — только с подтверждёнными данными журнала.

Этап Что происходит
Получение изображения Вы фотографируете чек или сохраняете скан там, откуда Claude или Codex сможет его открыть.
Распознавание Модель считывает видимые поля: продавца, дату, промежуточную сумму, скидку, налог, чаевые, итог, валюту и признаки способа оплаты. Всё, в чём она не уверена, помечается отдельно.
Проверка журнала Агент проверяет выбранное рабочее пространство Expense Budget Tracker, актуальную схему, счета, категории и возможные дубликаты.
Предварительный просмотр Агент показывает извлечённые факты, сомнительные места, выбранную категорию и точный запрос на запись.
Подтверждение Вы подтверждаете именно этот запрос либо вносите исправления и просите подготовить новый предварительный просмотр.
Проверка результата Агент записывает одну структурированную операцию и снова запрашивает её из журнала.
Сверка Когда операция по карте или банковскому счёту окончательно проводится, вы сопоставляете её с записью из чека, а не импортируете второй экземпляр.

Без последнего этапа ИИ-сканер чеков для учёта расходов не даст журнала, которому можно доверять. Правильно считать $27.82 — лишь начало. У операции также должны быть верные рабочее пространство, счёт, знак суммы, валюта и категория, а возможные дубликаты нужно проверить отдельно.

Если вам нужно приложение со встроенной камерой, папкой входящих чеков и хранением вложений, это не тот продукт. Expense Budget Tracker предназначен для структурированных финансовых данных. Изображения чеков, которые нужно сохранить, остаются в вашей обычной файловой системе, архиве документов или другом сервисе.

Подключение через прямой Agent API или удалённый MCP-коннектор

Expense Budget Tracker поддерживает два способа подключения. Оба дают доступ к финансовым данным одного типа, но используют разные учётные данные и по-разному работают в клиенте.

Прямой Agent API для Claude Code, Codex и агентов с поддержкой HTTP

Прямое подключение начинается с этого адреса:

https://api.expense-budget-tracker.com/v1/

Агент вызывает GET /v1/, следует инструкциям из ответа, подключается по коду из письма и сохраняет полученный ApiKey с длительным сроком действия вне памяти чата. Затем он вызывает /v1/me, получает список рабочих пространств и выбирает нужное, проверяет /v1/schema, читает данные через /v1/sql/query и отправляет один подтверждённый запрос на изменение через /v1/sql/execute.

Этот способ подходит, если Claude Code или Codex уже умеет открывать файл чека на вашем компьютере и выполнять HTTP-запросы. Руководство по настройке ИИ-агента описывает последовательность подключения, а справочник API — текущий контракт чтения и записи. Подробный сценарий работы с Claude Code в терминале разобран в статье «Как учитывать расходы и вести бюджет с помощью Claude Code».

Удалённый MCP с OAuth в браузере

Клиент с поддержкой MCP может вместо этого подключиться по адресу:

https://mcp.expense-budget-tracker.com/mcp

Здесь авторизация проходит в браузере через OAuth. Подключение использует токены доступа и обновления MCP, а не ApiKey из Agent API. Для чтения служат такие инструменты, как list_workspaces, get_schema и sql_query; для записи нужны отдельная область доступа expenses:write и инструмент sql_execute.

Удалённый коннектор не получает доступ к фотографиям на вашем компьютере. Клиенту или модели всё равно нужно передать чек через поддерживаемое вложение или файловый механизм. Процесс OAuth и области доступа описаны в руководстве по MCP-коннектору.

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

Полный процесс для одного небольшого чека

Возьмём чёткую фотографию такого вымышленного чека из ресторана:

Поле на чеке Видимое значение
Продавец North Street Cafe, New York
Дата и время 31 августа 2026 года, 12:17
Промежуточная сумма за еду $24.00
Скидка -$2.00
Налог $1.82
Чаевые $4.00
Итоговая сумма $27.82
Подсказка о способе оплаты Visa с последними цифрами 4242

Арифметика сходится: $24.00 - $2.00 + $1.82 + $4.00 = $27.82. Такая проверка полезна, но не доказывает, какой счёт и какую категорию нужно выбрать. Агенту по-прежнему нужен журнал.

1. Сначала подтвердите, куда пойдёт запись

Попросите агента определить и показать:

  • контекст аккаунта, в который выполнен вход
  • точное название и ID рабочего пространства
  • целевой счёт в журнале и его валюту
  • дату чека и часовой пояс
  • валюту чека

Для этого примера предположим, что пользователь подтвердил рабочее пространство Personal с ID workspace-personal-example, счёт a-visa_4242-usd, валюту USD и местное время Нью-Йорка для чека. Это вымышленные значения, а не встроенные названия рабочих пространств, счетов или категорий. Последние четыре цифры карты — подсказка, но не разрешение молча выбрать счёт. Если две сохранённые карты заканчиваются на 4242, агент должен остановиться и спросить, какой картой оплатили покупку.

2. Проверьте актуальную схему

Агент должен вызвать:

GET https://api.expense-budget-tracker.com/v1/schema

Ответ со схемой — источник истины: в нём перечислены доступные сейчас таблицы, столбцы, ограничения и правила записи. Примеры в статье могут устареть; перед генерацией SQL агент должен опираться на /v1/schema. В текущей схеме журнала оператор INSERT обязан явно содержать подтверждённый workspace_id. Выбор рабочего пространства для API-ключа задаёт контекст запроса, но не убирает этот столбец из добавляемой строки.

3. Разделяйте факты, подсказки и сомнения

Хороший отчёт о распознавании выглядит так:

Поле Извлечённое значение Уверенность или проблема
Продавец North Street Cafe Чётко видно
Время операции 2026-08-31 12:17 по местному времени Чётко видно; пользователь подтвердил часовой пояс Нью-Йорка
Валюта USD Знак $, местоположение и валюта счёта подтверждены пользователем
Промежуточная сумма 24.00 Чётко видно
Скидка -2.00 Чётко видно
Налог 1.82 Чётко видно
Чаевые 4.00 Чётко видно
Оплачено 27.82 Чётко видно, арифметика сходится
Способ оплаты Visa с последними цифрами 4242 Подсказка сопоставлена со счётом, который подтвердил пользователь

Не превращайте сомнительный текст в уверенно заполненное поле. Если последняя цифра итоговой суммы может быть 2 или 7, правильный ответ — «итоговая сумма неразборчива; нужна другая фотография или ручное подтверждение», а не правдоподобная догадка.

4. Выберите одну операцию или разбивку по категориям

Весь чек относится к расходам в ресторане, поэтому одна строка журнала с категорией Dining Out будет уместна, если в рабочем пространстве уже есть категория с точно таким названием. Налог, скидка и чаевые объясняют итоговую сумму; в обычном личном бюджете выносить их в отдельные строки не нужно.

Чек из продуктового магазина, в котором есть еда, лекарства и кухонный прибор, иногда стоит разбить по категориям. В текущей модели журнала для этого создаётся несколько строк с одним event_id, обычно на одном счёте. Каждая строка получает свою категорию и сумму с соответствующим знаком, а сумма всех строк должна точно совпадать с исходным платежом: -27.82 для расхода в $27.82.

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

Агент должен сначала запросить существующие категории журнала, а не изобретать новую, пусть даже с более аккуратным названием:

SELECT category, COUNT(*) AS use_count
FROM ledger_entries
WHERE kind = 'spend'
  AND category IS NOT NULL
GROUP BY category
ORDER BY use_count DESC
LIMIT 100

5. Проверьте возможные совпадения и покажите кандидатов, а не вердикт

Перед составлением INSERT запросите операции по подтверждённому счёту за небольшой период вокруг даты чека. Для примера выше поиск дубликатов может выглядеть так:

SELECT entry_id, event_id, ts, account_id, amount, currency, category, counterparty, note, external_id
FROM ledger_entries
WHERE event_id = 'receipt-2026-08-31-north-street-cafe-2782'
   OR (
     account_id = 'a-visa_4242-usd'
     AND currency = 'USD'
     AND ts >= '2026-08-29 00:00:00-04'
     AND ts < '2026-09-03 00:00:00-04'
     AND amount = -27.82
   )
ORDER BY ts
LIMIT 100

Агент отправляет этот оператор в POST /v1/sql/query. Здесь event_id — значение, которое агент создал для этого события; при разбивке оно будет одинаковым во всех связанных строках. Поле группирует строки и позволяет искать конкретные события, но база данных не считает его уникальным ключом для защиты от дубликатов. Точное совпадение event_id — веский повод разобраться, а не разрешение удалить или перезаписать что-либо.

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

Если найдено вероятное совпадение, предварительный просмотр должен показать его рядом с извлечёнными данными чека и не предлагать INSERT, пока пользователь не решит, как его обработать.

6. Покажите точную строку и точный запрос на запись

Предположим, что запрос не нашёл кандидатов в дубликаты, а Dining Out уже существует. Теперь можно показать конкретный предварительный просмотр — пока без записи:

Поле журнала Предлагаемое значение
Рабочее пространство Personal (workspace-personal-example)
Счёт a-visa_4242-usd
Время 2026-08-31 12:17:00-04
Сумма -27.82
Валюта USD
Тип spend
Категория Dining Out
Контрагент North Street Cafe
Примечание Receipt subtotal 24.00; discount -2.00; tax 1.82; tip 4.00
Кандидаты в дубликаты В выбранном окне не найдены

В предварительном просмотре также должен быть точный SQL, который агент намерен отправить:

INSERT INTO ledger_entries (
  event_id,
  ts,
  account_id,
  amount,
  currency,
  kind,
  category,
  counterparty,
  note,
  workspace_id
)
VALUES (
  'receipt-2026-08-31-north-street-cafe-2782',
  '2026-08-31 12:17:00-04',
  'a-visa_4242-usd',
  -27.82,
  'USD',
  'spend',
  'Dining Out',
  'North Street Cafe',
  'Receipt subtotal 24.00; discount -2.00; tax 1.82; tip 4.00',
  'workspace-personal-example'
)

Это всё ещё предварительный просмотр. Агент должен назвать ожидаемый результат — одну новую строку журнала в подтверждённом рабочем пространстве — и дождаться явного согласия, например: «Подтверждаю именно эту запись». Любое исправление, включая рабочее пространство, счёт, сумму, категорию или примечание, делает старый предварительный просмотр недействительным: после него нужен новый.

7. Выполните только подтверждённый запрос, затем снова прочитайте строку

После подтверждения прямой Agent API отправляет точный оператор по адресу:

POST https://api.expense-budget-tracker.com/v1/sql/execute

Затем агент проверяет его через /v1/sql/query:

SELECT entry_id, event_id, ts, account_id, amount, currency, kind, category, counterparty, note, workspace_id
FROM ledger_entries
WHERE event_id = 'receipt-2026-08-31-north-street-cafe-2782'
LIMIT 100

Контрольный запрос должен вернуть ровно одну строку, совпадающую с подтверждённым предварительным просмотром. Успешный HTTP-ответ без такого сравнения — ещё не полная проверка.

8. Сверьте запись, когда платёж по карте будет проведён

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

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

Для больших пакетов руководство по импорту банковских выписок объясняет, как работать с пересекающимися периодами и переводами. Руководство по сверке бюджета показывает, как сопоставить проведённые операции по счёту с надёжно установленным остатком.

Где распознавание чеков становится сложным

Фотографии чеков — сложные исходные данные. Надёжный ИИ-сканер чеков на базе Claude или Codex должен выносить такие случаи на проверку, а не делать вид, что всё распознано однозначно.

Сложный случай Безопасный подход
Размытая, тёмная, сложенная или обрезанная фотография Пометьте неразборчивые поля, запросите новое изображение или значение вручную и ничего не записывайте, пока остаются сомнения в итоговой сумме, дате или валюте.
Промежуточная сумма и итог Пересчитайте видимые составляющие и используйте фактически оплаченную итоговую сумму. Проверьте, включён ли налог или добавлен отдельно и не входит ли сбор за обслуживание в итог.
Чаевые Различайте напечатанные рекомендуемые чаевые, чаевые, вписанные от руки, сумму авторизации по карте и окончательный итог. Позже сравните итог с проведённой суммой по карте.
Скидки и купоны Сохраняйте окончательную оплаченную сумму. При разбивке по категориям покажите, как распределена скидка, а не назначайте её молча.
Возвраты и возмещения Считайте чек на возврат подтверждением ожидаемого или уже выполненного возврата денег, а не обычным доходом. Записывайте возврат как отдельную структурированную операцию на счёт поступления, только когда его статус и сумма ясны, а после проведения сверяйте запись.
Чек с несколькими категориями Назначьте связанным строкам один event_id; покажите каждую сумму по категории с соответствующим знаком, правило распределения, решение по округлению и итог. Сумма строк должна совпадать с окончательной оплаченной суммой.
Наличные или карта Используйте счёт, с которого фактически прошла оплата. Логотип продавца или электронного кошелька на фотографии не доказывает способ оплаты; если строка со способом оплаты отсутствует, спросите пользователя.
Иностранная валюта Явно сохраняйте валюту чека. Если карточный счёт открыт в другой валюте, не придумывайте курс или сумму списания; дождитесь проведённой операции или получите точную подтверждённую сумму.
Кандидаты в дубликаты Сравните дату, сумму со знаком, счёт, валюту, продавца и любой стабильный идентификатор источника. Покажите кандидатов для принятия решения, а не пропускайте или добавляйте их молча.

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

Универсальная инструкция для Claude или Codex

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

Используй изображение чека по адресу [точный путь к файлу или вложение] вместе с Expense Budget Tracker.
Для прямого API начни с https://api.expense-budget-tracker.com/v1/ и следуй
инструкциям из ответа. Используй сохранённый ApiKey вне памяти чата. Если подключение
идёт через MCP, используй MCP-инструменты для рабочих пространств, схемы и запросов,
сохраняя описанный ниже порядок подтверждения.

Пока не записывай данные. При работе с прямым API покажи контекст моего аккаунта из /me.
Выведи список доступных рабочих пространств и попроси меня подтвердить нужное.
Проверь /v1/schema (или вызови get_schema). Запроси доступные счета и попроси меня подтвердить
точный счёт и его валюту. Не выбирай счёт только по последним четырём цифрам карты.

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

С помощью запросов только для чтения проверь возможные совпадения в журнале по подтверждённому
счёту и диапазону дат. Покажи кандидатов в дубликаты вместе с основаниями; не считай
совпадение даты и суммы ни доказательством дубликата, ни доказательством новой покупки.

Затем покажи предварительный просмотр без записи: подтверждённое рабочее пространство,
точный счёт, сумму со знаком, точную валюту, время, тип, существующую категорию, контрагента,
примечание, суммы всех строк разбивки, если она нужна, и кандидатов в дубликаты. Покажи
точный SQL-запрос на запись, включи подтверждённый workspace_id в каждый INSERT и укажи
ожидаемое число затронутых строк. Не создавай компенсирующие записи, конвертации на основе
догадок или дополнительные строки.

Остановись и дождись моего отдельного явного подтверждения именно этого запроса на запись.
После подтверждения отправь только одобренный оператор через /v1/sql/execute (или sql_execute).
Снова запроси строку через /v1/sql/query (или sql_query) и сравни каждое сохранённое поле с
подтверждённым предварительным просмотром. Сообщи о любом несовпадении, не изменяя больше
никаких данных. Позже помоги мне сопоставить эту запись из чека с проведённой банковской
или карточной операцией, не создавая дубликат.

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

Где проходят границы данных

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

Граница Какие данные задействованы
Ваше устройство или клиент Изначально чек хранится как фотография или файл. Клиент получает только тот доступ к файлу, который вы ему предоставили.
Claude, Codex и выбранный провайдер модели Содержимое чека и ваши инструкции обрабатываются согласно условиям и настройкам провайдера и клиента. Проверьте эти условия для своей конфигурации: Expense Budget Tracker не может давать гарантии конфиденциальности от имени Anthropic или OpenAI.
Прямой Agent API или MCP-коннектор Агент отправляет только необходимые для задачи запросы к рабочему пространству и схеме, выборки из журнала и подтверждённые структурированные записи. Ни одному из подключений трекера изображение чека не требуется.
Хранилище Expense Budget Tracker В этом процессе трекер хранит подтверждённые структурированные финансовые данные: сумму, валюту, счёт, категорию, контрагента и примечание. Изображение чека он не хранит.
Ваш архив чеков Если исходное изображение понадобится для возврата, гарантии, возмещения или отчётности, вы храните его отдельно в выбранном месте.

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

Подходит ли вам такое сканирование чеков

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

Используйте этот процесс, если вам нужны:

  • добавление чеков без подключения банковского счёта
  • Claude или Codex для распознавания изображения и проверки журнала
  • выбор счёта и категории с опорой на существующие данные
  • точный предварительный просмотр перед каждой записью
  • кандидаты в дубликаты вместо скрытых предположений
  • проверенная структурированная операция, которую позднее можно сверить

Expense Budget Tracker не пытается заменить архив чеков с возможностью поиска.

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

Читайте дальше

Трекер расходов с Claude Code в 2026 году: импорт, проверка и бюджет

Подключите Claude Code к Expense Budget Tracker, проверьте импорт банковской выписки, сверьте остатки и управляйте бюджетом через актуальный Agent API.

Приложение для бюджета без привязки к банку в 2026 году: ручной учёт и импорт CSV

Как вести бюджет без привязки к банку: сравните ручной ввод и импорт выписок с проверкой, сверяйте остатки и разберитесь, куда передаются ваши данные.

Как подключить Claude к трекеру расходов через MCP в 2026 году

Подключите Claude или Claude Desktop к Expense Budget Tracker через удаленный MCP-коннектор, выберите доступ только для чтения или с правом записи и после каждого изменения заново считывайте данные для проверки.

API для учета расходов в 2026 году: как безопасно автоматизировать транзакции и бюджеты

Практическое руководство по API для учета расходов: как правильно учитывать транзакции, переводы, счета и бюджеты, а затем подключать скрипты или ИИ-агентов без риска незаметно испортить финансовые данные.