Skip to main content
Skip table of contents

Робота із зовнішніми API

У цій статті викладено загальні принципи роботи з Шрифт API. У разі виникнення питань звертайтеся до техпідтримки Шрифт.

Робота з Шрифт API

BaseURL для виклику API має містити доменне ім'я компанії.

Усі API повинні викликатися із застосуванням цього URL.
https://{{company_domain}}.ostrean.com/api/v1/External

Для авторизації за API ключем застосовуйте валідний API ключ співробітника, передаючи його як заголовок запиту: X-API-KEY : {{EmployeeAPIKey}}

Створення документа за допомогою API

Основними параметрами документа під час його створення є Тема, Зміст, Шаблон, Файл, Доступ. Документ може бути створений без файлів або містити кілька файлів. Для завантаження файлу на сервер виконайте http запит:

CODE
curl --location  '{{baseUrl}}/file-storage' ^
--header 'X-API-KEY: {{EmployeeAPIKey}}' ^
--header 'X-FileType: DocumFile' ^
--header 'Content-Type: multipart/form-data' ^
--header 'Accept: text/plain' ^
--form 'file=@"{{FilePath}}"'

Запит поверне GUID файлу, {{FileGUID}}, який потрібно передати при створенні документа.

Для додавання документа виконайте http запит:

CODE
curl --location  '{{baseUrl}}/Documents' ^
--header 'X-API-KEY: {{EmployeeAPIKey}}' ^
--header 'Content-Type: application/json' ^
--header 'Accept: text/plain' ^
--data '{
    "AccessLevel": 30, 
    "TemplateId": "{{TemplateId}}",   
    "Subject": "Доручення №123 01.01.2030 Назва компанії - Назва контрагента",
    "Description": "Інвойс на поставку товарів та матеріалів",
"Files": [
{ 
"GUID": {{FileGUID}},
    "Type": 0
    "Date": {{DateNow}},
    "Name": {{FileName}},
    "Hash": {{FileHash}},
    "Size": {{FileSize}},
    "UseInDescription": true
   }
 ],
"Targets": [
    {
      "AccessType": 30,
      "TargetType": 20,
      "RecordId": {{PositionID1}}
    },
    {
      "AccessType": 50,
      "TargetType": 20,
      "RecordId": {{PositionID2}}
    }
  ]
}

{{Hash}} Хеш файлу у форматі sha256.
{{Date}} Дата створення файлу, має передаватися у форматі «YYYYY-MM-DDDTHH:mm:SSZ»

{{TemplateId}} Під час створення документів важливо вказати відповідний шаблон документа. Залежно від шаблону, на створюваному документі може змінюватися журнал реєстрації, склад розсилки та підписів, параметри доступу тощо. ID потрібного шаблону можна знайти в довіднику шаблонів.

{{PositionID1}} {{PositionID2}} Параметри доступу за документом можна вказати в шаблоні або вказати окремо перелік ID потрібних посад. Якщо Targets не вказувати, то документ буде доступний тільки його творцеві. Для визначення ID посади перейдіть у довідник структури організації.

CODE
"Targets": [
    {
      "AccessType": 30,
      "TargetType": 20,
      "RecordId": {{PositionID1}}
    },
    {
      "AccessType": 50,
      "TargetType": 20,
      "RecordId": {{PositionID2}}
    }
  ],

«AccessType» : 30 - відкриття доступу з повідомленням.
«AccessType» : 50 - відкриття доступу без повідомлення.

Деталі про відкриття доступу з повідомленням і без дивіться в цій статті.

Оновлення стану документа за допомогою API

Для показу інформації про статус документа в Шрифт модуль інтеграції може виконати запит на отримання документа та його списку підписів. Для отримання документа виконайте http запит:

CODE
curl --location  '{{baseUrl}}/Documents/{{DocumentID}}' ^
--header 'Accept: text/plain' ^
--header 'X-API-KEY: {{EmployeeAPIKey}}'

«DocumentDate» - дата документа
«DocumentFullNumber» - реєстраційний номер документа
«StateType» - статус документа
«StateType": 0, 5 - Проект
«StateType": 6 - Підписаний
«StateType": 8 - На реєстрації
«StateType": 102,104,106,107,108,109 - Підписан
«StateType": 110 - Зареєстрован.

Для отримання складу підписів виконайте http запит:

CODE
curl --location  '{{baseUrl}}/Documents/{{DocumentID}}/Plans' ^
--header 'Accept: text/plain' ^
--header 'X-API-KEY: {{EmployeeAPIKey}}'

«SendType": 250 - Віза
«SendType": 260 - Узгодження
«SendType": 270 - Затвердження
«SendType": 280 - Підпис
«TargetDescription» - статус підпису в текстовому форматі.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.