Вы приняли товар по ЭДО, собираете заказ на Ozon — и площадка выдаёт «Код не подходит по количеству символов». Или этикетка просто не собирается из приехавших по УПД данных.

Проблема одна — не хватает криптохвоста.

В УПД его нет и быть не может: генерирует его оператор в момент эмиссии и отдаёт только тому, кто заказывал коды. Короткие коды в документе — это норма, а не брак поставки, и отклонять из-за них входящий УПД не нужно. Но что делать, когда отгружать заказ надо прямо сейчас?

💡 Кратко для склада

  1. В УПД приходит только код идентификации (24 символа).
  2. Маркетплейсы проверяют полный код (идентификатор + криптохвост) — короткий не пройдёт.
  3. Собрать полный код из УПД невозможно (это криптографическая подпись).
  4. Решение: сканировать код 2D-сканером напрямую с этикетки на товаре. Если этикетки нет — остаётся перемаркировка.
  5. Если отгружать надо сегодня: для косметики, проданной физлицу, Ozon код в отправлении не требует — заказ соберётся и без него. Но вывести код из оборота потом придётся вам.

Почему в УПД 24 символа, а Ozon требует больше?

Разница между коротким кодом из документа и тем, что требует площадка, и есть криптохвост. В справке для продавцов Ozon требует указывать код целиком:

  • Код идентификации (GTIN и серийный номер) — это у вас есть в УПД.
  • Криптохвост (ключ и код проверки, включая символы GS) — этого в документах не передают.

Вот живой код косметики из нашего кабинета. Точка посередине — невидимый разделитель, символ ASCII 29 (GS):

0108412050000022215Kk::8·91FFD0·92dGVzdO…=
└─── код идентификации ──┘ └─── криптохвост ───┘

Слева 24 символа — именно они приезжают в УПД при поэкземплярном учёте. Целиком код в нашем примере занимает 78 знаков (длина хвоста зависит от формата, поэтому ориентироваться надёжнее на начало).

Те же 24 знака вы видите в личном кабинете Честного знака. Раздел «Коды маркировки» показывает код идентификации и больше ничего: 0100841058037187215=htVL.

Раздел «Коды маркировки» в личном кабинете Честного знака: колонка «Код» со строками вида 0100841058037187215=htVL, рядом тип упаковки, GTIN и статус «Эмитирован» или «Нанесен»

Что такое криптохвост и почему его нельзя «восстановить»

Это подпись, которую оператор ставит закрытым ключом в момент эмиссии, из кода идентификации она не выводится.

Полный код хранится только в двух местах:

  • В заказе на эмиссию в СУЗ у того, кто эти коды заказывал.
  • Напечатанным на самой этикетке (внутри DataMatrix).

Никакая «программа для восстановления криптохвоста» его не вернёт: такие сервисы просто перепечатывают уже отсканированный код. А один и тот же код на двух разных упаковках даёт задвоение, которое Честный знак ловит по повторным сканам.

Можно ли выпросить файл с кодами у поставщика?

Нет, ему это запрещено. Запрет ЦРПТ официально озвучил на рабочей группе по косметике и бытовой химии 9 июля 2026 года. Селлеры требовали у поставщиков выгрузку кодов в Excel непременно с хвостом, чтобы списывать их у себя в 1С. Но полный код, попавший в чужие руки, можно напечатать заново и пустить в оборот второй раз. Формулировка ЦРПТ прямая: «их нельзя передавать с криптохвостом».

Нужен ли код маркировки в карточке отправления Ozon?

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

Ozon считает поле обязательным для заказов внутри России от юрлиц и для безрецептурных лекарств. Для остальных товаров правило такое:

«Если продаёте другие товары с маркировкой в „Честном знаке“, можете указать код, но пока это необязательно».

Косметика, проданная физлицу, попадает сюда. Если кода в отправлении нет, проверять нечего — заказ успешно соберётся. А ошибку вы видите тогда, когда код всё-таки внесли: сами или потому, что заказ пришёл от юрлица, где поле обязательное.

Но необязательное поле — это про Ozon, а не про вас. Маркированный товар всё равно надо вывести из оборота, и пустое поле эту обязанность оставляет вам. Передали код — площадка гасит его чеком; не передали — подаёте вывод сами. Отчёт «Продажи маркированных товаров» (Аналитика → Отчёты → Заказы) показывает ровно то, что вы сами внесли при отгрузке. Не внесли — связку «какой код уехал в каком заказе» восстанавливать неоткуда: за вас её не держит ни площадка, ни Честный знак.

Единого срока никто не называет. Площадки и Честный знак говорят про разные моменты — «когда покупатель получил», «сразу после отправки», «после статуса „Доставлен“». Выведете раньше — при отказе от заказа вывод придётся отменять, позже — это уже просрочка. И напоминания не будет: про свой же отчёт Ozon предупреждает, что «наличие кода маркировки в отчёте не является гарантией его вывода из оборота».

Откуда взять полный код для печати

Источник ровно один — сам товар: DataMatrix на этикетке, снятый сканером. Сканер нужен 2D: DataMatrix — квадратный символ, линейный штриховой его не читает. Из документов код не собрать ни при объёмно-сортовом учёте, ни при поэкземплярном, а если этикетка утеряна или не читается, остаётся перемаркировка. Это не восстановление старого кода, а выпуск нового взамен утраченного, и причин для неё у косметики и бытовой химии всего две: «испорчено либо утеряно средство идентификации» и ошибка в описании товара.

Почему поставщик не может просто «распечатать ещё раз»?

Печать в СУЗ одноразовая: кнопка печати разбирает буфер заказа, заказ уходит в статус «Исчерпан», и повторно тот же лист не напечатать. После того как буфер заказа вычерпан, у поставщика есть ещё около двух дней, чтобы скачать массив кодов повторно, а после ввода в оборот коды удаляются из пула. То есть пару дней коды у него ещё есть, но отдавать их вам запрещено (см. запрет ЦРПТ). Дальше их нет уже физически.

Личный кабинет Честного знака печатает не коды текстом, а готовые этикетки (PDF/EPS). Полный код «сидит» внутри квадрата DataMatrix. Поэтому сервисы печати хранят коды у себя в базах (например, 1С кладёт их в отдельный регистр для повторной печати).

Ошибка Ozon: «В коде нет разделителя ASCII 29»

Невидимый разделитель (GS) часто теряется по дороге от сканера в поле Ozon. Если вы видите 24 знака и всё — значит, хвост «отвалился» вместе с разделителем.

Сканер должен уметь отдавать этот символ, и включается это в нём самом — настройка одна на все маркетплейсы. В меню устройства нужен пункт вроде «F8 Mode», «Alt+0029 Mode» или «GS1 Enable», после чего GS передаётся нажатием F8 либо комбинацией Alt+0029. Оба способа подробно расписаны в справке Wildberries — площадка принимает любой из них и справедливо отмечает: «Разделители часто теряются при копировании кода из Excel, поэтому КИЗ лучше сканировать».

Как подставить разделитель вручную, если коды у вас файлом

Если вы эмитировали коды сами или выгрузили их из сервиса печати, правку можно сделать в файле. Excel и Блокнот «съедают» невидимый символ. Ozon принимает его текстовую запись \u001d.

Пошаговая инструкция в Notepad++:

  1. Откройте файл с кодами в Notepad++ (там невидимые символы отображаются).
  2. Выделите символ GS, нажмите Ctrl + F и перейдите на вкладку «Замена».
  3. В поле «Заменить на» вставьте текстом \u001d.
  4. Режим поиска выберите «Обычный».
  5. Нажмите «Заменить всё».

Готовый код (вида 0104670169195143215I"JGrqKtde;"\u001d91EE10\u001d92VVq30cfr…) можно копировать в поле сборки Ozon.

Пять причин, по которым Ozon заворачивает код

Код проверяется в базе Честного знака в момент внесения в отправление. Криптохвост и потерянный разделитель разобраны выше, остальное ловится пересканированием на складе.

Ошибка Ozon Реальная причина Как исправить
Код не подходит по количеству символов Код указан без криптохвоста Отсканировать код заново с этикетки 2D-сканером
В коде оказались лишние символы Случайный пробел или кириллица Убрать лишнее. Допустимы: цифры, латиница и !"%&'()*+,-./_:;=<>?
Код не соответствует категории товара По GTIN код из другой группы Найти на складе нужный экземпляр — этот от другого товара
Такой код уже указан у другого товара Один код внесён в заказ дважды Пройти позиции заказа, у каждой единицы свой код
Не указан спецсимвол-разделитель ASCII 29 потерялся при копировании Подставить текстовую запись \u001d (см. инструкцию выше)

Кто гасит код: вы или чек Ozon?

Развилку Ozon описывает так:

«Если передали код — выводить его из оборота самостоятельно не нужно. Выведем код из оборота через чек».

Не передавали код при сборке? Тогда выведите его из оборота самостоятельно с причиной «Дистанционная продажа». Делать это лучше после того, как заказ перешёл в статус «Доставлен».

Делать и то, и другое нельзя: код выводится из оборота только один раз.

Почему «Дистанционной продажи» может не в списке причин вывода из оборота

Свой вывод подают в кабинете: Документы → Создать → «Вывод из оборота». Форма начинается с вопроса о способе учёта.

Форма «Вывод из оборота» в личном кабинете Честного знака: в поле «Способ учета товаров» выбран «Сортовой учет по товарам», раскрытый список причин начинается с «Использование для собственных нужд» и заканчивается «Трансграничной продажей в страны ЕАЭС»

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

Отсюда и цена скана на сборке. Это единственный момент, когда точно известно, какой экземпляр уехал клиенту, — и единственное место, где полный код вообще попадает вам в руки. Уехал товар неотсканированным, выводить нечем. При поэкземплярном учёте за вами так и останется числиться конкретный код. При объёмно-сортовом поэкземплярного баланса нет вообще: коды в кабинете не появлялись и после приёмки, зависнет только количество на «Складе» — а снять его продажей физлицу можно тем самым поштучным выводом, для которого код взять уже негде. В таблице возвратов Ozon его тоже нет, только номер отправления.


Что с этим делает kodmark

Связку «заказ ↔ код ↔ статус» после отгрузки не отдаёт ни одна площадка, и селлеры ведут её в Excel или не ведут вовсе. kodmark держит этот реестр за вас и показывает:

  • по каким заказам коды из оборота ещё не выведены;
  • сколько времени на вывод осталось по каждой единице;
  • где вывод придётся откатывать: покупатель отказался — код нужно вернуть в оборот, иначе повторная отгрузка поймает отклонение ГИС МТ «Ранее выбыл по причинам, отличным от розничной продажи».

Сейчас идёт закрытая бета — набор ограничен, участие бесплатно. Дальше 1490 ₽/мес за весь сервис, вместе с приёмкой УПД и кодами.

Оставить заявку →