Page cover

Бухгалтерская первичка

Извлекаем данные из первичных документов

Классифицируем и распознаём 16 видов официальных документов, которые используются в бухгалтерском учете и налогообложении. Дальше — больше.

Типы первичных документов, с которыми работает сервис

Вид документа
Название в API
Извлечение
Классификация

Акт приёма-передачи нематериальных активов

rus_act_completition

Счёт на оплату / Счёт

rus_bill

Счёт-фактура

rus_invoice

Универсальный передаточный документ (УПД)

rus_upd

Договор

rus_contract

Товарная накладная — ТОРГ-12

rus_torg_12

Акт сверки взаиморасчётов

rus_act_reconciliation

Акт приёма-передачи основных средств ОС-1

rus_os_1

Счёт-договор (оферта)

rus_contract_invoice

Банковский платёжный ордер

rus_bank_order

ОС-6

rus_os_6

Акт списания нематериальных активов

rus_act_retirement

ОС-15

rus_os_15

ОС-1Б

rus_os_1b

Доверенность

rus_power_of_attorney

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

other

Перечень извлекаемых полей

Поле в документе
Название в API

Основание передачи

basis

Покупатель: адрес

buyer_address

Покупатель: название компании

buyer_company

Покупатель: ФИО

buyer_fio

Покупатель: ИНН

buyer_inn

Покупатель: КПП

buyer_kpp

Покупатель: ОКПО

buyer_okpo

Валюта

currency

Дата документа

date

Руководитель организации: ФИО

lead_name

Сумма НДС

nds_sum

Номер документа

number

Номер связанного документа

related_document

Продавец: адрес

seller_address

Продавец: номер банковского счёта

seller_bank_account_number

Продавец: БИК

seller_bank_bic

Продавец: название банка

seller_bank_name

Продавец: название компании

seller_company

Продавец: ФИО

seller_fio

Продавец: ИНН

seller_inn

Продавец: КПП

seller_kpp

Продавец: ОКПО

seller_okpo

Продавец: ОКУД

seller_okud

Главный бухгалтер: ФИО

senior_accountant_name

Груз принял: ФИО

shipment_acceptor_name

Груз принял: должность

shipment_acceptor_position

Получатель груза: адрес

shipment_recepient_address

Получатель груза: компания

shipment_recepient_company

Получатель груза: ИНН

shipment_recepient_inn

Получатель груза: КПП

shipment_recepient_kpp

Получатель груза: ОКДП

shipment_recepient_okdp

Получатель груза: ОКПО

shipment_recepient_okpo

Отпуск груза разрешил: ФИО

shipment_release_authorised_by_name

Отпуск груза разрешил: должность

shipment_release_authorised_by_position

Груз отпустил: ФИО

shipment_released_by_name

Груз отпустил: должность

shipment_released_by_position

Поставщик: адрес

shipment_supplier_address

Поставщик: название компании

shipment_supplier_company

Поставщик: ИНН

shipment_supplier_inn

Поставщик: КПП

shipment_supplier_kpp

Поставщик: ОКПО

shipment_supplier_okpo

Поставщик: главный бухгалтер: ФИО

shipment_supplier_senior_accountant_name

Поставщик: должность

shipment_supplier_senior_accountant_position

Сторона А: название компании

side_a_company

Сторона А: ФИО

side_a_name

Сторона А: должность

side_a_position

Сторона Б: название компании

side_b_company

Сторона Б: ФИО

side_b_name

Сторона Б: должность

side_b_position

Сумма

total_sum

Как начать работать с сервисом извлечения данных

Описали 5 популярных способов взаимодействия с сервисом. Для любого вам нужен ключ лицензии. Чтобы получить ключ, напишите нам в телеграм или на [email protected].

Подготовьте изображение документа для теста.

Через веб-демо
  1. Откройте demo.dbrain.io

  2. Введите ключ лицензии в поле «Токен» и нажмите «Применить»

  3. Выберите «Бухгалтерская первичка»

  4. Нажмите кнопку «Выберите файл для распознавания»

  5. Укажите изображение, которое нужно распознать

  6. Нажмите кнопку «Распознать»

Через терминал

Обратитесь к методу /rus_invoices по адресу latest.dbrain.io. В этом способе только два обязательных параметра:

  • token — ваш ключ лицензии

  • image — файл с изображением документа

Запрос curl должен выглядеть так:

Через Swagger
  • Подготовьте ключ лицензии

  • Откройте Swagger и нажмите кнопку Authorize в правом верхнем углу

  • Введите свой токен в любое поле и нажмите Authorize

  • Прокрутите вниз до раздела pipelines/run/rus_invoices, нажмите на него

  • В открывшемся разделе нажмите на кнопку Try it out

  • Прокрутите страницу вниз до раздела Request body

  • Нажмите на кнопку Choose file пункта image

  • Укажите изображение, которое нужно распознать

  • Нажмите кнопку Execute

  • Ответ сервиса появится в пункте Response body раздела Responses

  • Полученный на этом этапе Curl мы рекомендуем использовать как основу для написания интеграции с API сервиса Dbrain

Через Python

Код использует библиотеку requests для отправки POST-запроса с файлом изображения. Функция open() используется для открытия файла изображения в двоичном режиме и передачи его в параметр files. Параметр headers используется для установки заголовка accept в значение application/json. Ответ от сервера сохраняется в переменной response.

Тело запроса передавайте в кодировке UTF-8.

Через 1С

Параметры запроса к API

Асинхронный запрос

Возврат найденных областей изображения

Тегирование запроса

Нормализация адресов по ФИАС

Верификация результатов извлечения полей

Тело запроса к API

Изображение

В ответе на запрос к API:

Перед началом работы с сервисами изучите раздел «Общая информация о сервисах». Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок

task_id

string

Идентификатор запроса, формат: 32 символа, 16-ричная строка

error

string

Текстовое описание ошибки

task_tags

array[string]

Теги, если они переданы в параметре task_tags

success

boolean

Статус запроса

status_code

integer

HTTP-код статуса запроса

result.images

array[$string]

Массив data URL с MIME-типом JPEG в формате base64 — изображения найденных документов. Возвращается, если в запросе передать return_crops=true

result.doc_type

string

Тип документа из списка документов, поддерживаемых сервисом

result.confidence

number

Уровень уверенности сервиса от 0 до 1 в корректности определения типа документа. Чем ближе к 1, тем выше уверенность

result.page_num

integer

Номер страницы в оригинальном файле, на котором найден документ

result.fields

array

Массив, содержащий поля, которые сервис извлёк из документа

result.fields.name

string

Название поля в документе из перечня извлекаемых полей

result.fields.value

string

Текстовое содержимое поля, которое извлёк сервис

result.fields.confidence

number

Уровень уверенности сервиса от 0 до 1 в корректности содержимого, извлечённого из поля

result.fields.page_num

integer

Номер страницы в оригинальном файле, на которой найдено поле

result.fields.coords

array[integer]

Массив с координатами поля по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый. Поле может состоять из нескольких частей

result.fields.crops

array[$string]

Массив data URL с MIME-типом JPEG в формате base64 — изображения найденных частей поля. Возвращается, если в запросе передать return_crops=true

result.fields.is_found

boolean

  • true — поле найдено в документе

  • false — поле в документе не найдено

result.tables

array[array]]

Массив, содержащий найденные в документе таблицы

result.tables.name

string

Название ячейки таблицы по схеме

table_id-X_row-Y_col-Z, где: • X — порядковый номер таблицы (сверху внизу) • Y — порядковый номер строки в таблице, начиная с 0 • Z — порядковый номер столбца в таблице, начиная с 0

result.tables.value

string

Текстовое содержимое ячейки таблицы

result.tables.confidence

number

Уровень уверенности сервиса от 0 до 1 в корректности содержимого, извлечённого из ячейки

result.tables.page_num

integer

Номер страницы в оригинальном файле, на котором найдена ячейка

result.tables.coords

array[integer]

Массив с координатами ячейки по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый

result.tables.crops

array[$string]

Массив data URL с MIME-типом JPEG в формате base64 — изображение ячейки. Возвращается, если в запросе передать return_crops=true

result.tables.is_found

boolean

  • true — ячейка найдена в документе

  • false — ячейка в документе не найдена