Распознавание счетов на оплату в 1С через API
Счёт поставщика — PDF, скан или фото — за доли секунды превращается в готовые реквизиты: номер и дату, ИНН и КПП, расчётный счёт и БИК, позиции, ставку и сумму НДС. Каждое значение проверяется: контрольные числа ИНН, ключ счёта по БИК, сходимость сумм. В 1С попадает только то, что сошлось, а сомнительные поля отмечаются для бухгалтера.
0,1–0,3 с
цифровой PDF-счёт
до 50 счетов
в одном запросе
12 проверок
каждого счёта

Почему в 2027 году счета больше не вводят руками
Счёт на оплату — самый массовый входящий документ в бухгалтерии. Каждый нужно перенести в 1С: найти контрагента, сверить реквизиты, завести позиции, проверить НДС.
Ошибки в реквизитах стоят денег
Одна неверная цифра в расчётном счёте — и платёж уходит не туда или возвращается. Подменённые реквизиты в счёте — частая схема мошенничества.
НДС стал разнообразнее
Одни поставщики выставляют счета с НДС 22%, другие на УСН — с 5% или 7%, третьи — без НДС. Ставку и сумму надо проверять в каждом счёте.
Счетов всё больше, а формы всё разнее
1С, СБИС, Контур.Диадок, банковские конструкторы, счета-оферты интернет-сервисов, счета ИП — у каждой формы своя вёрстка.
Бухгалтер тратит время на перепечатку
А не на учёт. Сотни счетов в месяц от поставщиков, арендодателей, провайдеров и подрядчиков — и каждый нужно перенести в 1С руками.
API распознавания счетов убирает ручной ввод. 1С отправляет файл, получает готовые реквизиты в JSON и создаёт документ. Человек проверяет только то, что API отметил как сомнительное.
Что API извлекает из счёта
Документ
Вид документа, номер, дата, наименование, номер и дата документа-основания, номер заказа на поставку, дата получения, прочие даты
Суммы
Сумма без НДС, сумма НДС, сумма с НДС, ставка НДС, валюта (код ISO 4217)
Сумма прописью
Целая и дробная части числом и прописью, валюта целой и дробной части
Контрагент
ОПФ и наименование, ИНН и КПП, ОГРН и ОГРНИП, расчётный счёт, банк и БИК, тип контрагента (продавец или покупатель)
Обе стороны целиком
Продавец и покупатель с ОПФ, ИНН, КПП, ОГРН, р/с, банком, БИК и корреспондентским счётом
Табличная часть
Код товара, наименование, количество, единица измерения, цена, ставка НДС, сумма НДС и сумма с НДС по строке
Контрагент определяется автоматически. Передайте в запросе ИНН своих организаций — и в полях counterparty_* всегда будет вторая сторона счёта: поставщик во входящем счёте, покупатель в исходящем.
Как выглядит распознавание


Как это работает: пять шагов
- 1
Счёт приходит в любом виде
PDF из 1С или ЭДО, скан, фото со смартфона, документ Word.
- 2
1С отправляет файл в API
Один счёт, в очередь или пакетом до 50 штук.
- 3
API находит реквизиты и проверяет их
Номер, дата, стороны, банковские реквизиты, позиции, суммы и НДС.
- 4
1С получает JSON
Цифровой PDF — за доли секунды, скан — за 5–15 секунд на страницу. Отдельно приходит список полей, которые стоит проверить вручную.
- 5
В 1С создаётся документ
Контрагент находится по ИНН, позиции и суммы заполняются из ответа.
Двенадцать проверок каждого счёта
Распознать текст мало: важно, чтобы в 1С не попала ошибка. Поэтому каждое значение проходит проверки.
ИНН продавца и покупателя — контрольные числа (10 и 12 знаков)
ОГРН и ОГРНИП — контрольное число
КПП — формат
Расчётный счёт — ключ по БИК банка, по алгоритму Банка России
Корреспондентский счёт — ключ по БИК
Итог — сумма без НДС плюс НДС равна сумме к оплате
НДС — соответствует ставке
Сумма прописью — совпадает с суммой цифрами
Табличная часть — сумма позиций равна итогу
Каждая строка — количество × цена равно сумме строки
Стороны — продавец и покупатель — разные организации
Обязательные поля — номер, дата, итог и позиции найдены
Если проверка не прошла, поле попадает в список needs_review. Пустой список — счёт можно принимать автоматически. Так бухгалтер смотрит не на каждый счёт, а только на те, где что-то не сошлось.
Пример ответа API
{
"request_id": "req_b77941c7d1f56fd6945b1bef",
"status": "completed",
"needs_review": [],
"result": {
"number": "1248",
"date": "12.01.2027",
"parent_doc_name": "Договор поставки",
"parent_number": "14/2026",
"parent_date": "15.12.2026",
"amount_without_vat": 36770.49,
"vat_amount": 8089.51,
"amount_with_vat": 44860,
"vat_rate": 22,
"currency": "RUB",
"counterparty_name": "ООО «Северный ветер»",
"counterparty_inn": "6710562622",
"counterparty_kpp": "773001001",
"counterparty_account": "40702810046832553676",
"counterparty_bik": "044525225",
"counterparty_bank": "ПАО СБЕРБАНК г. Москва",
"counterparty_type": "продавец",
"items": [
{ "name": "Бумага офисная А4 «Снегурочка», 500 л.", "quantity": 40, "unit": "пачка",
"price": 389, "vat_rate": 22, "amount_with_vat": 15560 },
{ "name": "Картридж лазерный HP 85A (CE285A), оригинальный", "quantity": 4, "unit": "шт",
"price": 6950, "vat_rate": 22, "amount_with_vat": 27800 },
{ "name": "Доставка до склада покупателя, г. Москва", "quantity": 1, "unit": "усл",
"price": 1500, "vat_rate": 22, "amount_with_vat": 1500 }
]
}
}
Все поля, типы и коды ошибок описаны в документации API — раздел «Счета».
Подключение к 1С за пять шагов
Внешние компоненты не нужны: хватит штатных HTTPСоединение и ЗаписьJSON платформы 1С:Предприятие 8.3. Пример подходит для Бухгалтерии предприятия, Управления торговлей, УНФ, ERP и самописных конфигураций.
- 01
Зарегистрируйтесь
на api.alial.group и выпустите API-ключ.
- 02
Сохраните ключ
в константе или безопасном хранилище, не в коде.
- 03
Добавьте общий модуль
с функцией вызова API (ниже).
- 04
Отправляйте счета
из формы документа, из обработки загрузки или регламентным заданием.
- 05
Заполняйте документ
по ответу: контрагента — по ИНН, позиции — из items.
Функция вызова API
Функция ЗапросAlial(Метод, Адрес, ТелоJSON = Неопределено) Экспорт
АпиКлюч = Константы.АлиалКлючAPI.Получить(); // ak_live_...
Соединение = Новый HTTPСоединение("api.alial.group", 443, , , , 120,
Новый ЗащищенноеСоединениеOpenSSL);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Bearer " + АпиКлюч);
Заголовки.Вставить("Content-Type", "application/json");
Запрос = Новый HTTPЗапрос(Адрес, Заголовки);
Если ТелоJSON <> Неопределено Тогда
Запрос.УстановитьТелоИзСтроки(ТелоJSON, КодировкаТекста.UTF8);
КонецЕсли;
Если Метод = "POST" Тогда
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Иначе
Ответ = Соединение.Получить(Запрос);
КонецЕсли;
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8));
Результат = ПрочитатьJSON(Чтение, Истина);
Чтение.Закрыть();
Результат.Вставить("КодСостояния", Ответ.КодСостояния);
Возврат Результат;
КонецФункцииРаспознать счёт
Тело = Новый Структура;
Тело.Вставить("file_name", "schet.pdf");
Тело.Вставить("file_base64", ФайлВBase64(ДвоичныеДанные));
Тело.Вставить("our_inns", "7802704406"); // ИНН ваших организаций
Ответ = ЗапросAlial("POST", "/v1/invoices", ВJSON(Тело));
Счет = Ответ["result"];
Контрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Счет["counterparty_inn"]);
Для Каждого Позиция Из Счет["items"] Цикл
// Позиция["name"], Позиция["quantity"], Позиция["price"], Позиция["amount_with_vat"]
КонецЦикла;
Если Ответ["needs_review"].Количество() > 0 Тогда
// показать бухгалтеру поля, которые не прошли проверку
КонецЕсли;
Сканы — через очередь
Скан распознаётся 5–15 секунд на страницу. Чтобы не держать пользователя, отправьте счёт с async: true и заберите результат позже, например регламентным заданием.
Тело.Вставить("async", Истина);
ИД = ЗапросAlial("POST", "/v1/invoices", ВJSON(Тело))["request_id"];
// Через несколько секунд:
Ответ = ЗапросAlial("GET", "/v1/invoices/" + ИД);
Если Ответ["status"] = "completed" Тогда
Счет = Ответ["result"];
КонецЕсли;Пакет до 50 счетов
Тело = Новый Структура("files", МассивФайлов); // [{file_name, file_base64}, ...]
ИДПакета = ЗапросAlial("POST", "/v1/invoices/batch", ВJSON(Тело))["batch_id"];
Пакет = ЗапросAlial("GET", "/v1/invoices/batch/" + ИДПакета);
Если Пакет["status"] = "completed" Тогда
Для Каждого Документ Из Пакет["documents"] Цикл
// Документ["file_name"], Документ["result"], Документ["needs_review"]
КонецЦикла;
КонецЕсли;Полный модуль включает вспомогательные функции и пример создания документа «Счёт на оплату поставщика» в Бухгалтерии 3.0. Имена документов и реквизитов зависят от конфигурации — сверьте их со своей базой.
Тот же вызов на Python, PHP и cURL
Не только 1С: API работает из любой системы — ERP, СЭД, сервиса закупок, скрипта бухгалтерии. Достаточно отправить файл методом POST и прочитать JSON.
# Синхронно: ответ с реквизитами сразу
curl -X POST https://api.alial.group/v1/invoices \
-H "Authorization: Bearer $ALIAL_API_KEY" \
-F file=@schet.pdf \
-F our_inns=7802704406
# Асинхронно: сначала request_id, результат — по ссылке status_url
curl -X POST https://api.alial.group/v1/invoices \
-H "Authorization: Bearer $ALIAL_API_KEY" \
-F file=@scan.jpg -F async=true
curl https://api.alial.group/v1/invoices/req_309515e388c92641397fcdbe \
-H "Authorization: Bearer $ALIAL_API_KEY"
# Пакет до 50 счетов
curl -X POST https://api.alial.group/v1/invoices/batch \
-H "Authorization: Bearer $ALIAL_API_KEY" \
-F files=@1.pdf -F files=@2.pdf -F files=@3.jpgТри режима работы
Синхронный
POST /v1/invoicesЦифровые PDF: ответ сразу, за доли секунды. Кнопка «Распознать» в форме документа
Асинхронный
POST /v1/invoices с async: true, затем GET /v1/invoices/{id}Сканы и фото; системы, которые не ждут ответа дольше нескольких секунд
Пакетный
POST /v1/invoices/batchЗагрузка за день или из почтового ящика: до 50 счетов одним запросом
Результаты асинхронных запросов и пакетов хранятся 24 часа — их можно забрать в любой момент.
Какие счета поддерживаются
Форматы
PDF, JPG, PNG, TIFF, BMP, WEBP, HEIC, DOCX, DOC, RTF, ODT, до 10 МБ и 30 страниц.
Цифровые PDF с текстовым слоем
Из 1С, СБИС, Контур.Диадока, банков, интернет-сервисов. Реквизиты берутся из текста документа, без потерь качества.
Сканы и фото
Страница распознаётся, разворачивается и выравнивается автоматически.
Любые формы
Классический счёт 1С с образцом платёжного поручения, счета-оферты, счета-заказы, счета ИП и самозанятых, счета в две колонки, многостраничные счета с листом подписей ЭДО.
Любой НДС
22%, 20%, 10%, УСН с 5% и 7%, «без НДС»; НДС в сумме и сверху.
Таблицы любой сложности
Многострочные наименования, артикулы, отдельные колонки ставки и суммы НДС, многоуровневые заголовки.
Шаблоны под каждого поставщика настраивать не нужно: новая форма счёта распознаётся сразу.
Скорость и нагрузка
Измерено на рабочем сервере на счетах разных форм
0,1–0,3 с
цифровой PDF вместе с передачей файла
≈ 2 с
пакет из 50 счетов до готовности всех
2,2 с
50 запросов подряд по 5 одновременно, без ошибок
5–15 с
страница скана
Этого хватит и бухгалтерии на 30 счетов в день, и общему центру обслуживания на тысячи.
Безопасность данных
Файлы не хранятся
Удаляются сразу после распознавания.
Реквизиты не сохраняются в базе
Ответ возвращается в запросе; для асинхронных запросов он хранится 24 часа, чтобы его можно было забрать.
Серверы в России
Передача данных только по HTTPS.
Доступ по API-ключу
Ключ можно отозвать в личном кабинете в любой момент.
API или готовая обработка для 1С?
API распознавания счетов
Эта страница
Для разработчиков 1С, интеграторов и ИТ-отделов. Встраивается в вашу конфигурацию, ERP или собственную систему; вы решаете, какой документ создавать и как сопоставлять номенклатуру. Пакеты, очереди, проверки реквизитов.
Получить API-ключГотовая обработка для 1С
Без программирования
Внешняя обработка для Бухгалтерии, УТ и УНФ: загрузка из почты, автосоздание документов, сопоставление номенклатуры. Подходит, если в штате нет разработчика 1С.
Распознавание документов в 1ССтоимость
Регистрация бесплатная
API-ключ выпускается сразу.
На старте — 1 000 ₽ на баланс
Хватит, чтобы прогнать через распознавание свои счета и посмотреть на результат до любых обязательств.
Оплата — только за распознанные счета
Если файл не прочитался, деньги не списываются.
Расходы, статистика и качество распознавания
В личном кабинете, на странице «Счета»: сколько счетов обработано, какие поля находятся, что пришлось проверять вручную.
Для больших объёмов — индивидуальная цена.
Частые вопросы
Как распознать счёт на оплату в 1С автоматически?+
Отправьте файл счёта из 1С методом POST /v1/invoices — штатным HTTPСоединение, без внешних компонент. В ответ придут реквизиты в JSON: номер, дата, контрагент с ИНН и р/с, позиции и НДС. По ним 1С создаёт документ. Готовый общий модуль — на этой странице.
Какие реквизиты извлекаются из счёта?+
Номер и дата; документ-основание; номер заказа; суммы без НДС, НДС и с НДС; ставка НДС; сумма прописью; наименование, ОПФ, ИНН, КПП, ОГРН, расчётный счёт, банк и БИК продавца и покупателя; табличная часть с кодом, наименованием, количеством, единицей, ценой и НДС по каждой строке.
Распознаются ли сканы и фотографии счетов?+
Да. Сканы и фото в JPG, PNG, TIFF, HEIC и PDF распознаются, страница при этом разворачивается и выравнивается автоматически. Одна страница скана обрабатывается 5–15 секунд, поэтому их удобно отправлять в асинхронном режиме или пакетом.
Как API понимает, кто поставщик, а кто покупатель?+
По подписям в счёте: «Поставщик», «Продавец», «Исполнитель», «Получатель», «Покупатель», «Плательщик», «Заказчик» и другим. Если передать в запросе ИНН своих организаций (our_inns), контрагентом всегда будет вторая сторона.
Что делать, если реквизит распознан неверно?+
Неверное значение не пройдёт проверку — контрольного числа ИНН, ключа счёта по БИК, сходимости сумм — и попадёт в список needs_review. Такие поля показывайте бухгалтеру, остальные можно принимать автоматически.
Сколько счетов можно распознать за раз?+
До 50 счетов в одном пакетном запросе, а запросы можно отправлять один за другим. Цифровой PDF распознаётся за доли секунды, пакет из 50 счетов — примерно за 2 секунды.
Подходит ли API для 1С:Бухгалтерии 3.0, УТ, УНФ и ERP?+
Да. API вызывается штатными средствами платформы 1С:Предприятие 8.3 и не зависит от конфигурации. Имена документов и реквизитов при заполнении сверьте со своей конфигурацией.
Сохраняются ли наши счета на ваших серверах?+
Нет. Файлы удаляются сразу после распознавания, реквизиты в базе не хранятся. Ответ асинхронного запроса держится 24 часа, чтобы его можно было забрать.
Чем API отличается от готовой обработки для 1С?+
API встраивается в вашу систему, и логику создания документов определяете вы — это вариант для разработчиков и интеграторов. Готовая обработка работает «из коробки»: загрузка из почты, автосоздание документов, сопоставление номенклатуры без программирования.
Сколько стоит распознавание счетов?+
Регистрация бесплатная, при ней на баланс начисляется 1 000 ₽ на тестирование. Дальше оплата — за каждый распознанный счёт; если файл не удалось прочитать, деньги не списываются. Текущие тарифы и баланс — в личном кабинете, для больших объёмов — индивидуальная цена.
Нужна загрузка счетов без программирования? Готовая обработка для 1С работает из коробки.
Подключите распознавание счетов к 1С сегодня
Зарегистрируйтесь, выпустите API-ключ и отправьте первый счёт — пример кода для 1С уже на этой странице.