Каждые полгода кто-нибудь обещает: загрузите инвойс — получите декларацию. Распознать инвойс сегодня действительно умеют многие, и умеют хорошо. Но между инвойсом и декларацией на товары лежит ещё пять шагов, и ломается система обычно на них, а не на чтении текста.
Ниже этот путь целиком. Так он выглядит у нас: бумаги распознаёт наш движок Ванга, а сверяет комплект и собирает декларацию SLAI. Путь сложился после пилотов у крупного производственного импортёра, у транзитного брокера и у логистической компании, — и за каждым шагом стоит конкретная норма Таможенного кодекса ЕАЭС. Если вы выбираете сервис распознавания документов для ВЭД, в конце есть вопросы, которые стоит задать любому поставщику, включая нас.
Почему одного инвойса мало
Декларация на товары — сводка, а не первичный документ. Статья 106 ТК ЕАЭС перечисляет, что в ней заявляется, а пункт 1 статьи 108 — чем это подтверждается. Групп подтверждающих документов четырнадцать: документы о сделке и иные коммерческие документы, транспортные (перевозочные) документы, документы о полномочиях лица, подающего декларацию, о соблюдении запретов и ограничений, о происхождении товаров, о характеристиках товара для классификации, о таможенной стоимости и другие.
Из этого следуют два вывода, которые определяют всю архитектуру распознавания.
Распознавать нужно комплект, а не документ. Инвойс закрывает позиции и стоимость, но веса брутто с упаковкой в нём нет. Упаковочный лист даёт места и вес, но не стоимость. Транспортный документ — перевозчика, маршрут и своё описание груза. Декларация собирается только из всех вместе; какая графа откуда берётся — в разборе декларации на товары.
Комплект должен быть готов к моменту подачи. Пункт 3 статьи 108:
Документы, подтверждающие сведения, заявленные в таможенной декларации, должны быть у декларанта на момент подачи таможенной декларации…
Исключений два: особенности декларирования, которые устанавливает законодательство страны союза по пункту 8 статьи 104, и особые виды декларирования из статей 114–117 — предварительное, неполное, периодическое и для товаров в несобранном или разобранном виде. В общем случае распознавание «по одному файлу, как пришёл» задачу не решает: на момент подачи нужна собранная и согласованная поставка.
5 вложений → 7 документов поставки
- Инвойс
- docs_VT21.pdf · стр. 1–6 — ст. 108, пп. 1
- Упаковочный лист
- docs_VT21.pdf · стр. 7–9 — ст. 108, пп. 1
- Спецификация
- spec_VT21.xlsx · 340 строк — ст. 108, пп. 1
- CMR
- IMG_2041.jpg · повёрнута на 90° — ст. 108, пп. 2
- Контракт
- scans.zip › archive_2.zip › 1.pdf — ст. 108, пп. 1
- Доверенность
- scans.zip › archive_2.zip › 2.pdf — ст. 108, пп. 3
- Сертификат происхождения
- CO_VT21.pdf · номер не читается — ст. 108, пп. 5
Что сделано при разборе
- Склейка разрезана: инвойс и упаковочный лист отдельно
- Фото CMR повёрнуто до распознавания
- Архив внутри архива распакован
- Номер сертификата на скане не читается — вопрос поставщику
Шаг 1. Всё начинается не с файла, а с письма
В демонстрациях документ приходит один — ровный PDF с текстовым слоем. В жизни приходит письмо от поставщика или перевозчика, и в нём от пяти до сорока вложений:
- PDF, в котором склеены инвойс, упаковочный лист и CMR;
- «текстовый» PDF, внутри которого на самом деле картинки сканов;
- Excel со спецификацией на несколько сотен строк;
- фото накладной с телефона — иногда боком или вверх ногами;
- архив, а в нём ещё архив.
Поэтому первый шаг — не распознавание, а разбор письма. Нужно понять, к какой поставке оно относится: к новой или к той, по которой бумаги приходили вчера. Нужно разрезать склейки на отдельные документы, распаковать вложенные архивы и не задвоить поставку, если письмо пришло повторно.
Мы забираем почту сами, из выделенного ящика: письмо пришло — через несколько минут в системе появилась поставка с разложенными бумагами. Оператору не нужно ничего скачивать и раскладывать по папкам.
Что из этого стоит взять, даже если вы работаете руками: заведите один ящик под документы поставок и договоритесь с поставщиками указывать номер заказа в теме письма. Значительная часть путаницы «к какой поставке это относится» исчезает уже на этом.
Шаг 2. Узнать, что за бумага
Прежде чем извлекать поля, надо понять, какой это документ: от типа зависит, какие поля в нём искать и с чем потом сверять. У импортёра, с которым мы работаем в его контуре, в каталоге сейчас тридцать восемь типов: инвойс, проформа, упаковочный лист, CMR, коносамент, авианакладная, СМГС, сертификат происхождения, договор и спецификация к нему, ТТН, УПД, счёт-фактура, акты, платёжные документы и другие. Начинали с шести. Новый тип заводится настройкой, без переписывания программы, — иначе каталог за пару месяцев так не вырос бы.
Для декларации эти типы раскладываются по группам статьи 108:
| Документы поставки | Подпункт п. 1 ст. 108 ТК ЕАЭС |
|---|---|
| Контракт, спецификация, инвойс, упаковочный лист | 1 — документы о сделке и иные коммерческие документы |
| CMR, коносамент, авианакладная, СМГС | 2 — транспортные (перевозочные) документы |
| Доверенность | 3 — полномочия лица, подающего декларацию |
| Сертификат происхождения | 5 — документы о происхождении товаров |
Ловушки здесь неочевидные, и все три мы собрали на настоящих документах:
- Перевёрнутая страница не даёт пустого результата. Казалось бы, модель должна ответить «не могу прочитать». Нет: она уверенно выдаёт поля, которых на бумаге нет. В одном из прогонов так появились семь расхождений с эталоном из семнадцати. Лечится это проверкой ориентации до распознавания, а не «более умной моделью».
- Скан низкого разрешения внутри PDF. Распознаватель сообщает «уверенность 0,85», порог пройден, а поля пустые. Смотреть приходится не на уверенность, а на то, что реально извлечено.
- «Инвойс» на сто страниц. В одном файле нам насчитали больше сотни «инвойсов», а настоящих было три: остальное — продолжения страниц с подытогами. Считать бумаги надо по смыслу, а не по страницам.
Шаг 3. Прочитать — и не отдать данные наружу
Извлечение полей — та самая часть, которую обычно и называют распознаванием документов. Сегодня её делают языковые модели, и главный вопрос здесь не «какая модель лучше», а где она работает.
В комплекте поставки почти всегда есть персональные данные: доверенности (подпункт 3 пункта 1 статьи 108 — документы о полномочиях), подписи, данные водителей. Если сервис распознавания стоит за границей, отправка ему таких документов — это трансграничная передача персональных данных: по пункту 11 статьи 3 закона № 152-ФЗ так называется передача «на территорию иностранного государства органу власти иностранного государства, иностранному физическому лицу или иностранному юридическому лицу». По части 3 статьи 12 оператор до начала такой передачи обязан уведомить уполномоченный орган по защите прав субъектов персональных данных.
У брокера есть и вторая норма. Подпункт 3 пункта 1 статьи 405 ТК ЕАЭС обязывает таможенного представителя не разглашать и не передавать иным лицам полученную от клиентов информацию, составляющую государственную, коммерческую, банковскую и иную охраняемую законом тайну. Можно ли считать внешний облачный сервис «иным лицом» — вопрос к юристу конкретной компании, и лучше задать его до запуска, а не после.
Поэтому у крупного импортёра вся система стоит в его контуре: распознавание и извлечение полей идут на локальных моделях, на его собственном сервере с GPU. Облачные модели подключить можно, но по умолчанию они выключены.
С выбором модели тоже есть урок. Мы сравнивали семейства на 14, 24, 27 и 70 миллиардов параметров на одном и том же наборе документов. Победитель сравнения и модель, которая реально встаёт на железо заказчика, — не всегда одно и то же. А самой полезной правкой за всё время оказалась не модель побольше, а режим работы, который вернул в обработку документы, на которых модель раньше молча отдавала пустой ответ.
Шаг 4. Сверка — вот где настоящая работа
Распознанный инвойс сам по себе декларацию не собирает. Декларант верит не одной бумаге, а их согласию между собой. Вес в CMR должен сойтись с упаковочным листом, количество мест — с маркировкой, стоимость — с инвойсом, получатель — с договором. Если не сходится, это не ошибка распознавания, а повод позвонить поставщику, — какие именно поля обязаны совпасть и почему они расходятся, разобрано в статье о том, где импортный комплект не сходится.
Цена расхождения задана законом. По пункту 3 статьи 84 ТК ЕАЭС декларант несёт ответственность за заявление в декларации недостоверных сведений, а также за представление таможенному представителю недействительных документов. Поэтому центр системы — не распознавание, а сверка: таблица, где по каждому полю видно, что говорит каждая бумага и где они расходятся. В SLAI так сверяются стороны, адреса, вес брутто и нетто, места, суммы, номера бумаг, контейнеры, коды ТН ВЭД и позиции товара.
Несколько случаев, на которых спотыкается любая наивная логика:
- «Box 7» — это не седьмое место. В одной поставке система насчитала восемнадцать упаковочных листов. На деле там был двадцать один паллетный лист и два настоящих упаковочных, а «Box N» — нумерация внутри паллеты. Когда это поняли и сложили правильно, места сошлись с CMR до единицы — а их больше десяти тысяч.
- Сборный груз. В одной машине товар нескольких поставщиков, у каждого свой инвойс и своя упаковка. Сверять «весь заказ» бессмысленно: сверять надо каждую поставку отдельно, а потом сводить итог.
- Многостраничный инвойс с подытогами. Если взять сумму с одной страницы, стоимость поставки занижается в разы. Сумма должна собираться со всего документа, и система должна сама проверять, что сумма строк равна итогу.
- Русский и английский в одной поставке. «ООО Ромашка» и «Romashka LLC» — одна и та же сторона. Машине это надо объяснить, иначе сверка пестрит ложными расхождениями. Транслитерацию система сводит сама, а перевод названия («Ист-Вест» и «East-West») сознательно оставляет человеку: угадывать здесь опаснее, чем спросить.
Правило, к которому мы пришли: каждая цифра на экране показывает, с какой бумаги и какой страницы она взята. Тогда человеку не надо верить машине — он видит источник и проверяет его за секунды, а не перечитывает комплект целиком.
Шаг 5. Собрать декларацию, которую примет таможня
На выходе нужен не красивый PDF, а электронный документ. По пункту 3 статьи 104 ТК ЕАЭС «таможенное декларирование осуществляется в электронной форме». Письменная форма оставлена для случаев из пункта 4 — среди них таможенный транзит и товары для личного пользования — и, по пункту 5, для сбоев информационных систем таможни. Для импорта это электронная декларация на товары.
Электронная декларация — это структура данных, и у неё есть установленный формат. Насколько это серьёзно, видно по пункту 5 статьи 111: таможенный орган отказывает в регистрации, если декларация «заполнена не в соответствии с установленным порядком её заполнения» (подпункт 4) или если «структура и формат электронной таможенной декларации… не соответствуют установленным структурам и форматам» (подпункт 5). Решение о регистрации или отказе принимается не позднее 1 часа рабочего времени таможенного органа (пункт 2), а незарегистрированная декларация по пункту 7 считается неподанной.
Структуры электронных документов ФТС публикует версиями, и версии различаются в мелочах, которые валят всю отправку. Поэтому мы проверяем каждую собранную декларацию схемой действующей версии до того, как она уйдёт к декларанту. Звучит банально, но именно здесь вылезло то, чего на бумаге не бывает:
- вид транспорта кодируется отдельно для тягача и для прицепа, и «машина» в декларации — не одно значение, а несколько;
- таможенный пост нужен кодом из классификатора, а не названием из письма;
- часть граф вообще не берётся из документов поставки: это решения самого декларанта — процедура, способы и умолчания. Система должна честно сказать «здесь нужно ваше решение», а не придумать значение.
Шаг 6. Код ТН ВЭД — отдельная задача
Любимая тема всех, кто делает «ИИ для таможни», — подбор кода ТН ВЭД. Для нас это отдельная задача, и начинается она с закона.
По пункту 1 статьи 20 ТК ЕАЭС классификацию товаров при таможенном декларировании осуществляет декларант, а проверяет её таможня. По пункту 4 той же статьи «коды товаров, указанные в коммерческих, транспортных (перевозочных) и (или) иных документах… не являются обязательными для классификации товаров». То есть код в инвойсе — подсказка, а не ответ, и решение о коде принимает тот, кто подаёт декларацию. Что грозит за ошибку в коде и как от этой ответственности освобождает добровольная корректировка — в статье о коде ТН ВЭД.
В пути комплекта, который описан выше, с кодом делается одно: SLAI находит его в документах поставки, сверяет между инвойсом и транспортным документом и показывает, если они расходятся. Определить код — уже другая задача, и решение по ней в любом случае остаётся за декларантом: подсказку можно взять где угодно, а отвечает за код тот, кто подаёт декларацию.
Рядом у нас собирается отдельный проект по классификации. Об этом поговорим отдельно — скоро будут новости.
Чего распознавание не делает
Честный список того, что мы не обещаем, полезнее любого процента точности:
- что человек больше не нужен. Он нужен — но теперь он проверяет расхождения, а не перебивает инвойс руками;
- что любой скан читается. Плохой скан — вопрос к отправителю, и система должна сказать об этом сразу, а не выдумать поле;
- что распознавание само определит код ТН ВЭД. Найдёт и сверит — да, а классификация — отдельная задача, и решение по ней за декларантом.
Процентов точности здесь нет намеренно. Их легко посчитать на удобном наборе, и они ничего не говорят о том, что будет на вашей почте. Полезнее знать, где машина ошибается и как эти ошибки ловятся.
Как выбрать сервис распознавания документов для ВЭД
Вопросы, которые стоит задать любому поставщику, включая нас. Каждый вытекает из шагов выше:
- Работает ли сервис с письмом или только с файлом? Кто разрезает склейки, распаковывает архивы и решает, к какой поставке относится письмо?
- Что он делает с перевёрнутой страницей и плохим сканом? Правильный ответ — поворачивает до распознавания и честно сообщает о пустых полях, а не выдаёт уверенный результат.
- Видно ли, с какой страницы взята каждая цифра? Если нет, проверять придётся весь комплект целиком.
- Сверяет ли он документы между собой — вес, места, стоимость, стороны — или каждый разбирает по отдельности?
- Проверяет ли он электронную декларацию схемой действующего формата до отправки и говорит ли, какие графы требуют решения декларанта?
- Где работают модели? Если за границей — как это согласуется с 152-ФЗ и с обязанностями таможенного представителя по статье 405.
- Что он делает с кодом ТН ВЭД? Сверить код между документами и помочь его определить — разные задачи. Но решение о коде в любом случае за декларантом: сервис, который обещает «подобрать за вас», ответственность за код с вас не снимает.
Посмотреть, как выглядят разобранные бумаги и таблица сверки, можно на примере разбора комплекта: документы там вымышленные, но путь тот же, что в этой статье.