Кейсы 6 мин чтения

Учёт для бухфирмы в Дубае: бот, мини-приложение, НДС и баланс

Бухгалтерская фирма в Дубае ведёт несколько мелких компаний и проверяла каждый документ руками. Я собрал для неё учёт на двойной записи: бот и мини-приложение в Telegram плюс PWA, инвойсы, распознавание чеков двумя моделями, суммы для VAT201, разбор выписок и баланс на трёх языках. Стенд работает с 21 октября, 28 октября выложены правки после встречи с бухгалтерами.

кейсучётОАЭTelegram-ботраспознавание чековPWA

Коротко (TL;DR)

  • Бухгалтерская фирма в Дубае ведёт несколько мелких компаний ОАЭ. Я собрал для неё учёт: бот и мини-приложение в Telegram плюс PWA, инвойсы, расходы по фото чеков, суммы для декларации VAT201, банковские выписки, зарплата, займы учредителей, отчёт о прибылях и баланс.
  • Под капотом двойная запись, деньги хранятся в филсах. Чек читают две модели параллельно, при любом расхождении документ уходит бухгалтеру.
  • Текстовые выписки банка разбираются без ИИ, цепочка остатков проверяется построчно. Интерфейс на русском, английском и арабском с письмом справа налево.
  • Стенд работает с 21 октября на документах первого клиента фирмы, 28 октября выложены правки после встречи с бухгалтерами. Перенос на сервер фирмы ещё впереди.
Нужно мини-приложение для вашего бизнеса?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Обсудить автоматизацию

В ОАЭ у мелкой компании бухгалтерии почти нет, а требования к документам есть: налоговый инвойс с TRN, декларация по НДС, хранение документов семь лет. Бухгалтеры, которые ведут таких клиентов пачкой, тратят день на то, чтобы проверить чеки и сложить суммы по графам декларации. Эту рутину я и забрал в программу.

Задача

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

Ещё одно условие появилось из правил ОАЭ. С июля 2027 года налоговые инвойсы пойдут через аккредитованного провайдера e-invoicing, поэтому данные надо хранить так, чтобы потом отдать их провайдеру по API без переделки.

Что я сделал

Сначала концепция: 17 слайдов с макетами экранов, все компании и суммы в макетах вымышленные и сходятся арифметически. В ней я предложил сразу вести двойную запись, иначе баланс не сойдётся, хранить инвойсы в структуре PINT AE и считать первую графу VAT201 по эмиратам. После согласования к 21 октября программа уже стояла на стенде.

Сервер на FastAPI и SQLite, деньги в филсах, каждая операция это проводка. Веб-часть на Preact и htm без сборки, и одно приложение работает в трёх ролях: кабинет на компьютере, PWA на телефоне и мини-приложение, которое открывается кнопкой «Кабинет» из бота. Вход в мини-приложение идёт по подписи Telegram, поддельная подпись отклоняется. Для компьютера есть логин и пароль: PBKDF2, пять попыток за десять минут. Клиент видит только свою компанию, действия бухгалтера ему недоступны.

Новую компанию бухгалтер заводит мастером: реквизиты, TRN, логотип, банк, подпись, период НДС, дата начала с остатками, сотрудники, займы. Виды расходов идут стандартным для ОАЭ списком, его можно править. Клиента приглашают ссылкой в бота.

Чек клиент присылает боту фото или PDF. Его читает основная модель OpenAI, параллельно тот же документ читает проверочная, подешевле. Если расходятся сумма, НДС, TRN, номер или дата, документ получает замечание и встаёт в очередь бухгалтера. Ещё программа сверяет TRN с прошлыми документами того же поставщика и ловит даты в будущем или старше года. На нечитаемом поле основная модель оставляет пусто и ничего не выдумывает, это я проверил на замере. Как такие чеки превращаются в строки учёта, я разбирал в статье про ИИ и чеки.

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

Для НДС программа раскладывает продажи и покупки по графам VAT201, считает графы 8, 11 и итог к уплате, отдельно учитывает НДС с банковских комиссий и следит за порогом оборота для регистрации. Инвойс собирается в PDF, у покупателя есть постоянная ссылка на него. Каждую ночь делается копия базы и всех файлов документов.

Интерфейс переведён на английский и арабский. Арабский идёт справа налево, со шрифтом IBM Plex Sans Arabic и латинскими цифрами. По умолчанию русский, другой язык включается кнопкой или по языку Telegram.

Что было сложно

Реальные документы. В примерах фирмы оказались чек терминала с отклонённой оплатой, проформа вместо налогового счёта, документ с заголовком «TAX INVOICE» без TRN и правильный двуязычный налоговый счёт с НДС, округлённым до дирхама. Отсюда правила: отклонённая оплата не считается расходом, проформа не считается налоговым счётом, на округление НДС есть допуск.

Год в датах. Без сегодняшней даты в запросе модели путали 2024 и 2025 год. Теперь дата передаётся всегда, а неоднозначную дату вида 03/04 программа показывает с кнопками «Верно» и «Поменять».

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

Токен бота в журнале. Библиотека HTTP писала адреса запросов к Bot API в журнал, а в адресе стоит токен. Логи этой библиотеки я приглушил.

Правки после встречи

На встрече 26 октября бухгалтеры прошлись по программе, 28 октября я выложил правки. Документ в другой валюте пересчитывается в дирхамы: для валют с фиксированным курсом курс зашит, для остальных берётся курс ЕЦБ на дату документа, бухгалтер может его поправить. Появился поиск по расходам, инвойсам, банку и суммам. Выставленный инвойс теперь можно исправить, проводки пересоздаются. Клиент заходит в бота по ссылке без анкеты и отправляет телефон одной кнопкой. В зарплате есть даты приёма и увольнения и начисление за прошлые месяцы с пропорцией. У компании может быть несколько банковских счетов. Реквизиты банка заполняются по IBAN, данные компании по фото торговой лицензии. Длинные выписки, которые приходится читать через ИИ, идут кусками по две страницы параллельно.

Что получилось

ЧтоСостояние
Стендработает с 21.10.2026, правки выложены 28.10.2026
Выписки банка4 выписки разобраны без ИИ, цепочка остатков сходится
Сквозная проверка7 документов через API и инвойс через бота разложены верно, оплаты найдены в выписке
Замер моделей10 реальных документов плюс испорченные фото
Стоимость распознаванияоколо 3,3 тыс. токенов на входе и 350 на выходе, примерно 0,055 $ за документ с проверкой
Кодоколо 6,5 тыс. строк Python и 3 тыс. строк JS
Языкирусский, английский, арабский

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

Что дальше

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

Частые вопросы

Программа сама подаёт декларацию по НДС?

Нет. Она считает суммы по графам VAT201, бухгалтер сверяет их и подаёт декларацию сам в налоговом портале.

Что будет, если ИИ ошибётся в чеке?

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

Зачем и бот, и мини-приложение, и PWA?

Клиенту проще прислать фото в Telegram. Бухгалтеру удобнее кабинет на компьютере. PWA нужна тем, кто открывает кабинет с телефона без Telegram. Всё это одно веб-приложение, отдельной разработки под каждую платформу не было. Чем мини-приложение отличается от бота, объясняю в статье про Telegram Mini App.

Коротко о главном

Учёт для мелких компаний ОАЭ держится на трёх вещах: двойная запись, сверка с банком и аккуратность в НДС. ИИ здесь работает на вводе, и ему не доверяют одному: вторая модель и правила по TRN и датам отсекают ошибки до проводки. Выписки, где можно обойтись без ИИ, разбираются без него.

Если вам нужна своя учётная система, бот для чеков или кабинет для клиентов бухгалтерской фирмы, я соберу её под ваш процесс. Напишите в Telegram, MAX или VK.

Обсудим вашу задачу

Что я делаю для бизнеса

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ
Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх