Описание интеграционного взаимодействия
Схема взаимодействия
Таблица запросов и ответов, приведенных в общей схеме
# | Сообщение | Тип | Формат | endpoint | Описание |
---|---|---|---|---|---|
1 | Запрос на получение токена аутентификации | Синхронный | json | /access-tokens | Перед отправкой задачи на распознавание, необходимо получить токен. После получения, его необходимо передавать в header для всех последующих запросов. Время жизни токена — 7 суток |
1.1 | Ответ с токеном | Синхронный | json | ||
1.2 | Ответ с ошибкой аутентификации | Синхронный | json | ||
2 | Запрос на создание задания обработки данных | Синхронный | json | /tasks | После получения токена можно отправлять запрос на создание задачи распознавания. Файлы можно загрузить в теле запроса в качестве files или строки, содержащей ссылку на файл |
2.1 | Ответ с id созданного задания | Синхронный | json | После создания задачи на распознавание, Базис передает идентификатор задачи, который необходим для дальнейшего получения результатов задачи, методом описаным в п. 4. | |
2.2 | Ответ с ошибкой | Синхронный | json, html | ||
3 | Ответ с результатом обработки файла | Асинхронный / webhook | json | Если в запросе был указан адрес вебхука, то по завершении задачи распознавания, Базис автоматически вышлет ответ с результатами распознавания на указанный адрес. Если вебхук не был указан, то получить результат распознавания можно с помощью long polling, методом GET | |
4 | Запрос на получение результата обработки | Асинхронный | json | /tasks/{{taskId}} | GET-запрос для получения результатов распознавания по id задачи, полученным в ответе 2.1 |
4.1 | Ответ с ошибкой на получение результата обработки | Cинхронный | json |
url: https://api.doc.basis.center/ Поддерживаемые форматы: pdf, png, jpg, jpeg, pjpeg, gif, tiff или zip Ограничения: - В одном запросе не более 100мб (по договору SLA 10мб)
- Не более 40 страниц в запросе
1. Запрос на получение авторизационного токена
POST {url}/access-tokens
Параметр | Количество | Тип данных | Размещение | Описание |
---|---|---|---|---|
${url} | 1 | url | request line | URL стенда, на который осуществляется запрос |
Content-Type | 1 | string | header | application/json |
1 | string | body/raw | Адрес электронной почты, предоставленный для аутентификации | |
password | 1 | string | body/raw | Пароль, предоставленный для аутентификации |
1.1. Ответ с токеном
HTTP-code: 201
Параметр | Количество | Тип данных | Размещение | Описание |
---|---|---|---|---|
token | 1 | string | body | Токен аутентификации, с которым необходимо выполнять все следующие запросы. Срок жизни токена 24 часа с момента получения |
1.2. Ответ с ошибкой авторизации
HTTP-code: 401
Параметр | Количество | Тип данных | Размещение | Описание |
---|---|---|---|---|
timestamp | 1 | string | body | Время события на сервере |
status | 1 | int | body | Код ошибки |
error | 1 | string | body | Причина ошибки |
message | 1 | string | body | Текст сообщения об ошибке |
path | 1 | string | body | Путь запроса |
2. Запрос на создание задания обработки данных
Параметр | Количество | Тип данных | Размещение | Описание |
---|---|---|---|---|
${url} | 1 | string | request line | URL стенда, на который осуществляется запрос |
authorization | 1 | string | header | Содержит токен аутентификации |
files | 1..* | file/string | body/form‑data | Объекты с файлами для распознавания. Не более 40 страниц в одном запросе |
preset | 1 | string | body/form‑data | Выбор шаблона бизнес-процесса распознавания докуменов. Значение параметра preset уникально для каждого заказчика. |
webhookUrl | 0..1 | string | body/form‑data | Адрес вебхука для ответа |
2.1. Ответ с id созданного задания
HTTP-code: 201
Параметр | Количество | Тип данных | Размещение | Описание |
---|---|---|---|---|
id | 1 | string | body | Внешний ID задания |
creatorId | 1 | string | body | ID автора задания |
status | 1 | string | body | Pending - распознавание в процессе |
2.2. Ответ с ошибкой
Ошибки валидации файла
Код ошибки | Причина | Решение |
---|---|---|
403 | Ошибка в уровне доступа (невалидная роль) | Обратитесь к менеджеру Базис. Докуменов |
413 | Файл превышает размер в 100мб | Удалите из запроса часть распознаваемых файлов |
422 | - Запрос не содержит файлов - Запрос содержит не поддерживаемый файл |
Убедитесь, что запрос содержит поддерживаемый файл или работающую ссылку на файл Поддерживаемые форматы: pdf, png, jpg, jpeg, pjpeg, gif, tiff или zip |
Ошибки запроса
Код ошибки | Причина | Решение |
---|---|---|
401 | Ошибка пары логин/пароль | Проверьте правильность указанных в запросе логина и пароля. Если проблему не удается решить самостоятельно, то обратитесь к менеджеру Базис.Документов |
500 | Ошибка в названии пресета | Убедитесь в правильности используемого в запросе пресета |
3. Ответ с результатом обработки файла
Структура ответа может меняться в зависимости от выбранного пресета. Ниже приведен один из возможных вариантов.
HTTP-code: 200
Параметр | Количество | Тип данных | Размещение | Описание |
---|---|---|---|---|
id | 1 | string | body | Идентификатор задачи |
creatorId | 1 | string | body | ID инициатора задания |
DocumentType | 1 | string | body | Тип распознанного документа |
status | 1 | string | body | Completed - распознавание завершеноPending - распознавание в процессеRejected - ошибка распознавания |
solution | 1 | object | body | Коллекция с результатом обработки. Коллекция содержит распознанные поля, пример атрибутов паспорта:
|
preset | 1 | string | body | Используемый для обработки пресет |
webhookUrl | 0..1 | string | body | Адрес вебхуков для ответа, возможно значение null |
sessionId | 0..1 | string | body | ID сессии, возможно значение null |
4. Запрос на получение результата обработки
Параметр | Количество | Тип данных | Размещение | Описание |
---|---|---|---|---|
${url} | 1 | string | request line | URL стенда, на который осуществляется запрос |
${id} | 1 | string | request line | Внешний ID задания |
Authorization | 1 | string | header | Токен аутентификации |
4.1 Ответ с ошибкой на get-запрос
Технические ошибки
Код ошибки | Причина | Решение |
---|---|---|
404 | Не найден id задачи | 1. Убедитесь в корректности введенного id 2. Обратитесь к администратору Базис.Документы |
403 | Ошибка в уровне доступа (невалидная роль) | Обратитесь к администратору Базис.Документов |
Ошибки уровня бизнес логики
Код ошибки | Причина | Решение |
---|---|---|
200 | "message": "Превышено допустимое количество страниц в одном файле" | Загрузите менее 40 страниц в одном запросе |