Перейти к содержимому

Необходимые cookie-файлы нужны для работы сайта. Аналитические cookie (Яндекс Метрика) — только с вашего согласия. Политика cookie-файлов

УПД

Распознавание УПД

Статус, продавец и покупатель с ИНН и КПП, товарные позиции с НДС и итог — из скана или PDF универсального передаточного документа.

Что извлекается

Готовая схема: берите как есть или добавьте свои поля. Если значения нет в документе, поле вернётся null со статусом missing.

ПолеОписаниеТипПроверка
numberНомер УПДstring
dateДатаstring (date)
statusСтатус: 1 — счёт-фактура и передаточный документ, 2 — передаточный документ1 | 2
sellerПродавецobject
nameНаименованиеstring
innИННstringИНН
kppКПП (у ИП нет)stringКПП
buyerПокупательobject
nameНаименованиеstring
innИННstringИНН
kppКПП (у ИП нет)stringКПП
items[]Товары, работы, услугиarray
nameНаименованиеstring
unitЕдиница измеренияstring
quantityКоличествоnumber
priceЦена за единицуnumber
vat_rateСтавка НДСstring
vat_amountСумма НДСnumber
amount_with_vatСтоимость с налогомnumber
total_with_vatВсего к оплатеnumberсумма строк

Пример результата

Данные вымышлены, структура — ровно по схеме из таблицы. Рамкой отмечены реквизиты, которые Typizer проверяет.

result.json
{
  "number": "УТ-2291",
  "date": "2026-10-02",
  "status": 1,
  "seller": {
    "name": "АО «Пример Снаб»",
    "inn": "0098765437",
    "kpp": "009801001"
  },
  "buyer": {
    "name": "ООО «Тестовая логистика»",
    "inn": "0011223344",
    "kpp": "001101001"
  },
  "items": [
    {
      "name": "Плитка керамическая 30×30",
      "unit": "м²",
      "quantity": 120,
      "price": 950,
      "vat_rate": "20%",
      "vat_amount": 22800,
      "amount_with_vat": 136800
    }
  ],
  "total_with_vat": 136800
}

Особенности документа

  • УПД бывает со статусом 1 (счёт-фактура и передаточный документ) или 2 (только передаточный документ). Статус стоит извлекать отдельным полем: от него зависит, примет ли бухгалтерия документ к вычету НДС.
  • Таблица товаров в УПД широкая: код товара, единица измерения с кодом, количество, цена, стоимость без налога, ставка и сумма НДС, стоимость с налогом. Каждое значение получает свой источник на странице.
  • Продавец и грузоотправитель, покупатель и грузополучатель могут различаться — опишите их в схеме отдельными объектами, если они вам нужны.

Что проверяет Typizer

  • ИНН продавца и покупателя — контрольные цифры; КПП — формат из 9 знаков.
  • Итого с НДС — сумма строк против итоговой строки.
  • Даты — правдоподобный год (1900–2100), иначе статус warn.

Не прошло — поле получает статус warn и причину. У найденных значений есть источник на странице.

Вызов API с этой схемой

Один запрос к /v1/extract: файл, схема и инструкция. Ключ — в кабинете после регистрации.

Инструкция: Номер, дата и статус УПД, продавец и покупатель с ИНН и КПП, товары с единицей, количеством, ценой, ставкой и суммой НДС, итого

curl
curl -X POST 'https://api.typizer.ru/v1/extract?wait=60' \
  -H 'Authorization: Bearer tz_live_YOUR_API_KEY' \
  -H "Idempotency-Key: $(uuidgen)" \
  -F 'file=@document.pdf' \
  --form-string 'schema={"type":"object","properties":{"number":{"type":"string","description":"Номер УПД"},"date":{"type":"string","format":"date","description":"Дата"},"status":{"type":"integer","enum":[1,2],"description":"Статус: 1 — счёт-фактура и передаточный документ, 2 — передаточный документ"},"seller":{"type":"object","description":"Продавец","properties":{"name":{"type":"string","description":"Наименование"},"inn":{"type":"string","description":"ИНН","x-typizer-check":"inn"},"kpp":{"type":"string","description":"КПП (у ИП нет)","x-typizer-check":"kpp"}},"required":["name","inn","kpp"]},"buyer":{"type":"object","description":"Покупатель","properties":{"name":{"type":"string","description":"Наименование"},"inn":{"type":"string","description":"ИНН","x-typizer-check":"inn"},"kpp":{"type":"string","description":"КПП (у ИП нет)","x-typizer-check":"kpp"}},"required":["name","inn","kpp"]},"items":{"type":"array","description":"Товары, работы, услуги","items":{"type":"object","properties":{"name":{"type":"string","description":"Наименование"},"unit":{"type":"string","description":"Единица измерения"},"quantity":{"type":"number","description":"Количество"},"price":{"type":"number","description":"Цена за единицу"},"vat_rate":{"type":"string","description":"Ставка НДС"},"vat_amount":{"type":"number","description":"Сумма НДС"},"amount_with_vat":{"type":"number","description":"Стоимость с налогом"}},"required":["name","unit","quantity","price","vat_rate","vat_amount","amount_with_vat"]}},"total_with_vat":{"type":"number","description":"Всего к оплате","x-typizer-check":"sum_of","x-typizer-sum-of":"items[].amount_with_vat"}},"required":["number","date","status","seller","buyer","items","total_with_vat"]}' \
  --form-string 'instructions=Номер, дата и статус УПД, продавец и покупатель с ИНН и КПП, товары с единицей, количеством, ценой, ставкой и суммой НДС, итого'

FAQ

Вопросы о распознавании УПД

Не нашли ответ? Напишите — ответит человек.

hello@typizer.ruДокументация
Отличает ли Typizer УПД со статусом 1 от статуса 2?

Да, если статус есть в схеме: значение берётся из поля «Статус» документа и связывается с местом на странице. Если статус не проставлен, поле получит missing.

Подойдёт ли УПД, полученный по ЭДО?

Если у вас есть его печатная форма в PDF — да. Для XML-файлов ЭДО данные уже структурированы, и распознавание обычно не нужно.

Как загрузить результат в 1С?

Запросите результат в XML с XSD-схемой или в XLSX: эти форматы подходят для загрузки в учётные системы. Готового коннектора к 1С нет — напишите нам, обсудим вашу конфигурацию.

Первые страницы — за наш счёт.

100 страниц при регистрации и ещё 200 страниц за ИНН компании. Без карты и без подписки.