Счет
Пример изображения документа:

Важно: документы для обработки должны быть закодированы в формат base64.
Отправка документа
Endpoint: POST https://api.beorg.ru/api/bescan/add_document
Заголовки:
Content-Type: application/json
Тело запроса:
{
"project_id": "U_RATE_2",
"images": ["<строка base64>"],
"process_info": [
{
"key": "INV1",
"type": "INV"
}
],
"token": "<token>",
"machine_uid": "<machine_uid>"
}
Пример ответа об успешной загрузке:
{
"document_id": "s-12345"
}
Структура передаваемых данных
| Ключ | Описание |
|---|---|
project_id |
Название проекта |
token |
Токен доступа |
machine_uid |
Идентификатор устройства |
images |
Список строк в формате base64 (файлов) |
process_info |
Настройки обработки |
Структура process_info
| Ключ | Описание |
|---|---|
key |
Свободный ключ для разделения документов при загрузке и получении результатов. Если не указан, вместо него используется ключ type |
type |
Тип документа (INV) |
options |
Опции обработки документа |
Для получения
token,machine_uidиproject_idобратитесь в подраздел «Начало работы».
Пример запроса (Python)
import requests
import base64
with open("<путь до файла Счёта>", "rb") as image_file:
b64 = base64.b64encode(image_file.read()).decode()
r = requests.post(
"https://api.beorg.ru/api/bescan/add_document",
headers={"Content-Type": "application/json"},
json={
"project_id": project_id,
"token": token,
"machine_uid": machine_uid,
"images": [b64],
"process_info": [
{
"key": "INV1",
"type": "INV"
}
]
}
)
print(r.json())
Получение результатов
Endpoint: GET/POST https://api.beorg.ru/api/document/result/s-12345?token=<token>
Пример запроса для получения результатов (Python):
import requests
r = requests.get("https://api.beorg.ru/api/document/result/s-12345?token=<token>")
print(r.json())
Пример ответа по обработанному документу
{
"document_id": "s-20919",
"documents": [
{
"key": "INV1",
"type": "INV",
"data": {
"DocNumber": "123-45",
"DocDate": "01.04.2024",
"SellerName": "ООО «Поставщик»",
"SellerINN": "",
"SellerKPP": "",
"SellerAccountNumber": "",
"SellerBankName": "ПАО Сбербанк",
"SellerBankBIK": "",
"SellerBankCorrespondentAccountNumber": "",
"CustomerName": "ООО «Покупатель»",
"CustomerINN": "",
"CustomerKPP": "",
"ShipperINN": "",
"ShipperKPP": "",
"ConsigneeINN": "",
"ConsigneeKPP": "",
"InvoiceBase": "Договор №15 от 01.01.2024",
"Currency": "RUB",
"ProductName": "Офисная мебель",
"ProductMeasurementUnit": "шт.",
"ProductUnitsNumber": "5",
"ProductPrice": "20000.00",
"ProductAmountWithoutNDS": "100000.00",
"ProductNDSRate": "20%",
"ProductNDSAmount": "20000.00",
"ProductTotalAmountWithNDS": "120000.00",
"DocAmountWithoutNDS": "100000.00",
"DocNDSRate": "20%",
"DocNDSAmount": "20000.00",
"DocTotalAmountWithNDS": "120000.00",
"TotalAmountInWords": "Сто двадцать тысяч рублей 00 копеек",
"DeliveryTime": "05.04.2024",
"HasDirectorSignature": true,
"HasChiefAccountantSignature": true,
"HasAccountantSignature": false,
"HasResponsibleSignature": false,
"HasSeal": true
},
"metadata": {
"confidences": {
"DocNumber": 0.98,
"DocDate": 0.97,
"SellerName": 0.95,
"SellerINN": 0.99,
"CustomerINN": 0.98,
"ProductTotalAmountWithNDS": 0.96,
"HasSeal": 1.0
},
"verifications": {
"inn_valid": true,
"amount_match": true
}
},
"broken": false,
"broken_reasons": [],
"broken_reasons_ru": []
}
]
}
Описание ключей в ответе
| Ключ | Тип | Описание |
|---|---|---|
document_id |
string | Номер документа в формате s-<номер документа> |
documents |
list | Список данных по каждому документу |
documents[].key |
string | Ключ, заданный при отправке документа для отслеживания |
documents[].type |
string | Тип документа (INV) |
documents[].data |
dictionary | Обработанные данные по каждому полю — содержит ключи полей и их определённые значения |
DocNumber |
string | Номер документа |
DocDate |
string | Дата документа (от) |
SellerName |
string | Наименование продавца |
SellerINN |
string | ИНН продавца |
SellerKPP |
string | КПП продавца |
SellerAccountNumber |
string | Расчётный счёт продавца |
SellerBankName |
string | Наименование банка продавца |
SellerBankBIK |
string | БИК банка продавца |
SellerBankCorrespondentAccountNumber |
string | Корреспондентский счёт банка продавца |
CustomerName |
string | Наименование покупателя |
CustomerINN |
string | ИНН покупателя |
CustomerKPP |
string | КПП покупателя |
ShipperINN |
string | ИНН (грузо-)отправителя |
ShipperKPP |
string | КПП (грузо-)отправителя |
ConsigneeINN |
string | ИНН (грузо-)получателя |
ConsigneeKPP |
string | КПП (грузо-)получателя |
InvoiceBase |
string | Основание счёта |
Currency |
string | Валюта |
ProductName |
string | Наименование товара (не «артикул») |
ProductMeasurementUnit |
string | Единица измерения товара (шт., кг, м и т. д.) |
ProductUnitsNumber |
string | Количество единиц товара |
ProductPrice |
string | Цена товара за единицу (в валюте документа) |
ProductAmountWithoutNDS |
string | Сумма по позиции без НДС |
ProductNDSRate |
string | Ставка НДС по позиции, % (например, «20 %», «10 %», «0 %») |
ProductNDSAmount |
string | Сумма НДС по позиции |
ProductTotalAmountWithNDS |
string | Итоговая сумма по позиции с НДС |
DocAmountWithoutNDS |
string | Общая сумма документа без НДС |
DocNDSRate |
string | Основная ставка НДС по документу, % |
DocNDSAmount |
string | Общая сумма НДС по документу |
DocTotalAmountWithNDS |
string | Итоговая сумма документа с НДС |
TotalAmountInWords |
string | Итоговая сумма документа прописью (например, «Сто двадцать тысяч рублей 00 копеек») |
DeliveryTime |
string (или null) | Срок поставки (дата или описание срока) |
HasDirectorSignature |
boolean | Наличие подписи руководителя (true/false) |
HasChiefAccountantSignature |
boolean | Наличие подписи главного бухгалтера (true/false) |
HasAccountantSignature |
boolean | Наличие подписи бухгалтера (true/false) |
HasResponsibleSignature |
boolean | Наличие подписи ответственного лица (true/false) |
HasSeal |
boolean | Наличие печати организации (true/false) |
metadata |
dictionary | Содержит ключи метаданных |
confidences |
dictionary ({key: float}) |
Метаданные с точностью обработки по каждому полю — содержит ключи полей и значения уровня уверенности. Значения от 0.0000 до 0.9999, где чем значение больше,тем уверенность в результате выше. Максимальная уверенность — 0.9999 |
broken |
boolean | Является ли документ бракованным |
broken_reasons |
list | Список причин брака (на английском языке) |
broken_reasons_ru |
list | Список причин брака (на русском языке) |