Dbrain Official
Dbrain Реестр ПО (backup)
Dbrain Реестр ПО (backup)
  • Dbrain
  • Общая информация о сервисах
  • Типы документов
  • Классификация документов
  • Извлечение данных
    • Паспорт
    • Паспорт: прописка
    • Водительское удостоверение
    • СТС
    • Бухгалтерская первичка
    • Договоры
    • Прочие документы
  • Проверка документов
    • Признаки подделки
    • Качество изображения
    • Подписи и печати
    • Базы данных
  • Операции с лицами
    • Сравнение лиц
    • Селфи-чек
    • Liveness
  • Базовый OCR
  • Ручная верификация
  • Локальная установка
    • Установка на сервер
    • Локальный сервис лицензий
    • Мобильный SDK
  • Формальности
    • Требования к технической поддержке
  • Changelog
Powered by GitBook
On this page
  • Типы первичных документов, с которыми работает сервис
  • Перечень извлекаемых полей
  • Как начать работать с сервисом извлечения данных
  • Параметры запроса к API
  • Тело запроса к API
  • В ответе на запрос к API:
Export as PDF
  1. Извлечение данных

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

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

Классифицируем и распознаём 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

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

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

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

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

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

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

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

Через терминал
  • token — ваш ключ лицензии

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

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

curl -X 'POST' \
  'https://latest.dbrain.io/rus_invoices?token=xxx' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'image=@image.jpg;type=image/jpeg'
Через Swagger
  • Подготовьте ключ лицензии

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

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

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

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

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

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

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

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

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

Через Python
import requests

url = 'https://latest.dbrain.io/rus_invoices?token=xxx'
files = {'image': open('image.jpg', 'rb')}
headers = {'accept': 'application/json'}

response = requests.post(url, headers=headers, files=files)

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

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

Через 1С
Функция РаспознатьДокумент(ПакетДвоичныеДанные, ИмяФайла) Экспорт
	// готовит HTTP-запрос, включая заголовки и тело, и отправляет его на сервер.
	ПараметрыЗапроса ="?token=B000000000000000000000"; // токен необходимо получить собственный!
	РазделительМультисообщения = "----MessageBoundary1C";

	HTTPЗапрос = Новый HTTPЗапрос("/rus_invoices"+ПараметрыЗапроса);
	HTTPЗапрос.Заголовки.Вставить("accept", "application/json");
	HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + РазделительМультисообщения);

	ТелоПоток = Новый ПотокВПамяти();
	
	ЗаписьДанных = Новый ЗаписьДанных(ТелоПоток); 
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения);
	ЗаписьДанных.Записать(СоздатьСообщение_XML("image", ИмяФайла, ПакетДвоичныеДанные)); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ВК); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ПС);
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения + "--");
	ЗаписьДанных.Закрыть();
	
	ТелоДвоичныеДанные = ТелоПоток.ЗакрытьИПолучитьДвоичныеДанные();
	
	Попытка
		Соединение = Новый HTTPСоединение("latest.dbrain.io",
										443,
										,
										,
										,
										60,	
										ЗащищенноеСоединение());
	Исключение
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));	
	КонецПопытки;

	HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ТелоДвоичныеДанные);
	Возврат Соединение.ОтправитьДляОбработки(HTTPЗапрос);
	
КонецФункции	

Функция ЗащищенноеСоединение() 
	
	ЗащищенноеСоединение = Неопределено;
	
	СистемнаяИнфо = Новый СистемнаяИнформация;
	ТипПлатформыСервера = СистемнаяИнфо.ТипПлатформы;

	Если ТипПлатформыСервера = ТипПлатформы.Windows_x86
		Или ТипПлатформыСервера = ТипПлатформы.Windows_x86_64 Тогда
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
		Новый СертификатКлиентаWindows(),
		Новый СертификатыУдостоверяющихЦентровWindows());
	Иначе
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
	КонецЕсли;
	
	Возврат ЗащищенноеСоединение;
	
КонецФункции

Функция СоздатьСообщение_XML(ИмяСообщения, ИмяФайла, СообщениеДвоичныеДанные)   
	
	Поток = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(Поток);
	// Заголовки
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""" + ИмяСообщения + """; filename=""" + ИмяФайла + """");
	Если Прав(ИмяФайла, 4) = ".xml" Тогда
		ТипMIME = "text/xml";
	ИначеЕсли Прав(ИмяФайла, 4) = ".pdf" Тогда
		ТипMIME = "application/pdf";
	Иначе
		ЧастиИмени = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФайла, ".");
		Если ЧастиИмени.Количество() > 1 Тогда
			ТипMIME = "image/" + ЧастиИмени[ЧастиИмени.ВГраница()];	
		КонецЕсли;
	КонецЕсли;                                
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: " + ТипMIME);
	ЗаписьДанных.ЗаписатьСтроку("");
	// Тело
	ЗаписьДанных.Записать(СообщениеДвоичныеДанные);
	ЗаписьДанных.Закрыть();

	Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные();
		

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

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

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

"task_id": "96b8ccc950a70699927036842c624d7c"

Используйте этот task_id, чтобы получить результат работы сервиса в методе result:

curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

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

return_crops — boolean

  • true — сервис вернёт в ответе API найденные области изображения с документами

  • false (по умолчанию) —  cервис не вернёт найденные области изображения

Ответ приходит в объект images массива result

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

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags удобный вам тег: task_tags=тэг

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

normalization_fias — boolean

  • false (по умолчанию) — сервис не нормализует адреса

Если сервис Dbrain развёрнут локально, он может обращаться за нормализацией адреса к локальному сервису Dadata. Для этого укажите адрес в параметре URL_DADATA в .env

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

verification — string

  • disabled (по умолчанию) — сервис сразу возвращает результаты работы алгоритмов

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

Изображение

image — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение документа в двоичном виде

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

task_id

string

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

error

string

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

task_tags

array[string]

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

success

boolean

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

status_code

integer

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

  • 200 — запрос выполнен успешно

result.images

array[$string]

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]

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]

result.tables.is_found

boolean

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

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

PreviousСТСNextДоговоры

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

Откройте

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

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

true — сервис обращается к и возвращает адрес в . Это повышает точность извлечения поля «Адрес». Нормализация приводит неструктурированный адрес к общепринятому формату, который можно сопоставлять с адресами из других источников.

private — сервис отправляет результаты работы алгоритмов на ручную верификацию. Для получения доступа к интерфейсу станции верификации напишите нам в или на

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

400, 403, 500 и т.д. — расшифрованы в «»

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

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

Название поля в документе из

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

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

телеграм
hello@dbrain.io
demo.dbrain.io
latest.dbrain.io
Swagger
API сервиса Dadata.ru
формате ФИАС
телеграм
hello@dbrain.io
«Общая информация о сервисах»
data URL
data URL
data URL
списка
документов
перечня извлекаемых полей
Общей информации о сервисах
Page cover image