Робота з документами
Всі запити нижче перерахованих API методів платформи EDIN 2.0 направляються на адресу: https://edo-v2.edin.ua
Для роботи з цими методами користувач повинен бути авторизованим.
Створення чернетки документа / Клонування відправленого документа (COMDOC)
POST /api/v2/eds/doc
За допомогою цього методу можливо створити чернетку документа (передається тіло документа) зазначеного типу (параметр doc_type) для вказаного одержувача АБО можливо клонувати відправлений документ (передається параметр clone_from_doc_uuid) в чернетку.
REQUEST
|
URL |
|
|
Метод запиту |
POST |
|
URL запиту |
/api/v2/eds/doc?gln=9864065702429&doc_type=orders |
|
URL параметри |
gln (обов’язково) рядок (13) - номер GLN організації, яка пов’язана з авторизованим користувачем платформи EDIN 2.0 на рівні акаунта doc_type (обов’язково/-) рядок - тип створюваного документа (опис параметру); даний параметр не передається при клонуванні документа (коли передається clone_from_doc_uuid параметр); clone_from_doc_uuid (обов’язково/-) рядок - унікальний ідентифікатор вже відправленого документа (COMDOC) для клонування в чернетку (при цьому тіло передавати не обов’язково, а Content-Type=application/json); даний параметр не передається при створенні чернетки документа |
|
Headers |
|
|
Authorization |
SID - токен, отриманий при авторизації |
|
Content-Type |
|
|
REQUEST |
|
|
JSON Body |
При створенні чернетки в тілі запиту методу передається документ у форматі JSON або XML або P7S в бінарному вигляді (приклад запиту (в тому числі й для створення CONDRA та TRANSPORTATIONORDER) + специфікації документів) |
RESPONSE
В тілі відповіді передаються дані створеного документа (об’єкт XDoc ).
Відправка чернетки
PATCH /api/eds/doc/send
За допомогою цього методу можлива відправка чернетки (з додатковими особливостями відправки).
Наявність ритейлера при документообігу автоматично визначається платформою (тобто якщо Відправник або Одержувач є ритейлером, то створений ланцюжок буде мати позначку конкретного ритейлера).
REQUEST
|
URL |
|
|
Метод запиту |
PATCH |
|
URL запиту |
/api/eds/doc/send?gln=9864065702429&doc_uuid=8c8a70e7-81c6-4382-8b58-7d60c3bc6ffd |
|
URL параметри |
gln (обов’язково) String - GLN власної Компанії; АБО guid (обов’язково) String - унікальний ідентифікатор власної Компанії; doc_uuid (обов’язково) String - унікальний ідентифікатор документа; doc_hash (опціонально) - рядок; хеш документа; chain_hash (опціонально) - рядок; хеш ланцюжка документів; chain_uuid (опціонально) - рядок; ID ланцюжка документів; partner_id (опціонально) - число; id торгової мережі (можливо отримати з довідника торгових мереж); chain_type (опціонально) - число; тип ланцюжка документів;
|
|
Headers |
|
|
Authorization |
SID - токен, отриманий при авторизації |
|
Content-Type |
application/json |
|
REQUEST |
|
|
JSON Body |
В тілі запиту методу опціонально передаються додаткові поля Виняток: при відправці
в тілі запиту обов’язково передається параметр sub_status_id. |
Приклад для відправки «Заявки на транспортування» / «Підтвердження транспортування» (TRANSPORTATIONORDER):
{"extra_fields":{"sub_status_id":"1"}}
RESPONSE
Код сервера 200 (ok).
Відправка документа (без створення чернетки)
POST /api/eds/doc/create_and_send
Метод є універсальним для різних типів документів і дозволяє одночасно створити та відправити документ без створення чернетки.
REQUEST
|
URL |
|
|
Метод запиту |
POST |
|
URL запиту |
/api/eds/doc/create_and_send?doc_type=orders&gln=9864065702429 |
|
URL параметри |
gln - рядок (13); номер GLN організації, яка пов’язана з авторизованим користувачем платформи EDIN 2.0 на рівні акаунта doc_type - рядок; тип документа (опис параметру) |
|
Headers |
|
|
Authorization |
SID - токен, отриманий при авторизації |
|
Content-Type |
|
|
REQUEST |
|
|
JSON Body |
В тілі запиту методу передєються тільки один файл-вкладення в форматі |
При вказуванні application/pkcs7-signature доступна можливість обробки BASE64 формату.
RESPONSE
-
chain_uuid - ідентифікатор ланцюжка, в якому знаходиться документ
-
doc_uuid - ідентифікатор документа на платформі EDIN 2.0;
-
ticket_uuid - ідентифікатор квитанції
Параметр ticket_uuid система повертає тільки у випадках, коли на існуючий документ намагаються створити додатковий тікет (підписання у відповідь, відмова від підпису, запит на анулювання). Тобто, якщо документ новий, система поверне у відповідь тільки chain_uuid та doc_uuid.
Приклад відповіді (JSON):
{
"chain_uuid": "7ccff78e-ea42-47ea-81e4-5508ed4fbd51",
"doc_uuid": "3698b501-e1ef-464d-a71a-58066f556114",
"ticket_uuid": "1003706c-3656-497b-9438-c6f33e27c36d"
}
Пошук документів (з фільтрацією), вибір списку документів
За допомогою цього методу можна швидко зробити пошук по заданим критеріям, наприклад, отримати список документів з певним статусом або за проміжок часу.
REQUEST
|
URL |
|
|
Метод запиту |
POST |
|
URL запиту |
/api/eds/docs/search?gln=9864065702429&status_id=2 |
|
URL параметри |
gln (обов’язково) String - GLN власної Компанії АБО guid (обов’язково) String - унікальний ідентифікатор власної організації на платформі status_id (опціонально) int - id папки документів:
family (опціонально) String - назва сімейства документів:
|
|
Headers |
|
|
Authorization |
SID - токен, отриманий при авторизації |
|
Content-Type |
application/json |
|
REQUEST |
|
|
JSON Body |
В тілі запиту методу передаються обов’язкові та додаткові критерії пошуку/фільтрації |
RESPONSE
В тілі відповіді передається масив документів.
Отримання інформації (мета-даних) про документ
Отримання конкретного ланцюжка документів
Отримання контенту документа
Отримання XML контенту документа
Завантажити тіло документа/підпису
Завантажити «Неструктурований (універсальний) документ» (CONDRA) в вигляді архіву
Відправка «Неструктурованого (універсального) документа» (CONDRA)
Створення чернетки «Універсального/неструктурованого документа» (CONDRA)
Створення й відправка «Універсального/неструктурованого документа» (CONDRA) без створення чернетки
Відправка статусу документа
Отримання статусу документа
Додавання файлу-вкладення (для CONDRA)
Створення чернетки документа (для CONDRA)
Редагування чернетки документа
Отримання UUID (для CONDRA)
Підписання файлу (для CONDRA)
Заповнення індексів (додавання / оновлення полів екстрапараметрів)
Архівування / Розархівування ланцюжка документів
Отримати реєстр документів в xls форматі
Роздрукувати вкладення документа
Додавання підпису до вкладень документа-чернетки
Отримати хеш вкладення (контейнера) документа для підписання
Отримання інформації про підпис/підписантів
Відхилити «Універсальний/неструктурований документ» (CONDRA). Створення квитанції №13
Відкликати «Універсальний/неструктурований документ» (CONDRA). Створення квитанції №14
Прийняти «Універсальний/неструктурований документ» (CONDRA)
Видалити файл-вкладення (чернетка)
Отримати файл-вкладення
Додати файл до документа-чернетки
Видалити документи-чернетки
Отримати тіла документів (json) за вказаними UUID
Відправка транзакції до «Резерву товару» PRDRSRVN (зміни в табличній частині)
Одночасне прийняття, підписання та відправка двох пов’язаних документів
POST /api/eds/docs_and_tickets
Даний метод однією дією (одночасно) виконує Прийняття «Акта приймання-передачі (додаток 8)» (COMDOC_032) (створення квитанції) та Відправку пов’язаного «Акта приймання-передачі (додаток 8)» (COMDOC_033) без чернетки (подібно до послідовного виконання /api/v2/eds/comdoc/accept та /api/eds/doc/create_and_send).
Якщо під час виконання методу під час перевірок буде виявлена логічна помилка на будь-якому етапі, то жодні дії не будуть виконані. Тобто або підписуються обидва документа, або жоден.
REQUEST
|
URL |
|
|
Метод запиту |
POST |
|
URL запиту |
/api/eds/docs_and_tickets?gln=9864065732181 |
|
URL параметри |
gln (обов’язково) String (13) - номер GLN організації, яка пов’язана з авторизованим користувачем платформи EDIN 2.0 на рівні акаунта |
|
Headers |
|
|
Authorization |
SID - токен, отриманий при авторизації |
|
Content-Type |
|
|
REQUEST |
|
|
JSON Body |
В тілі запиту методу передаються два файли-вкладення пов’язаних документів (рекомендовано в p7s форматі (в бінарному вигляді чи в base64)) та їх дані в об’єкті DocumentRequest |
Повний приклад запиту:
POST /api/eds/docs_and_tickets?gln=9864066822430 HTTP/1.1
Host: localhost:8084
Authorization: 9e04baf1-f33b-4e76-8657-5212bae7a9z5
Content-Length: 590
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files"; filename="comdoc_32_from_atb.p7s"
Content-Type: <Content-Type header here>
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="documents"
{"documents":[{"fileName":"comdoc_32_from_atb.p7s","type":"comdoc"},{"fileName":"comdoc_33_from_atb.p7s","type":"comdoc"}]}
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files"; filename="comdoc_33_from_atb.p7s"
Content-Type: <Content-Type header here>
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
RESPONSE
doc_uuid - ідентифікатор документа на платформі EDIN 2.0;
chain_uuid - ідентифікатор ланцюжка, в якому знаходиться документ;
ticket_uuid - ідентифікатор квитанції.
JSON приклад відповіді:
{
"comdoc_32_from_atb.p7s": {
"doc_uuid": "fdae7e57-3706-4599-90e2-1a5ebee71512",
"chain_uuid": "d62f1b6e-7400-4bc3-ba5b-7e5d7931adbc",
"ticket_uuid": "411f23ee-ab07-472f-a1e2-7155a7631ff8"
}, - це для тікета
"comdoc_33_from_atb.p7s": {
"doc_uuid": "b45f5906-9a6b-45d9-adb1-0cc527d260c4",
"chain_uuid": "d62f1b6e-7400-4bc3-ba5b-7e5d7931adbc"
} - це для документа
}
Отримати статус документа
POST /api/v2/eds/docs/state
Метод дозволяє користувачеві отримати статус вхідного/відправленого документа (документів).
REQUEST
|
URL |
|
|
Метод запиту |
POST |
|
URL запиту |
/api/v2/eds/docs/state?gln=9864065160861 |
|
URL параметри |
gln (обов’язково) String - GLN власної Компанії |
|
Headers |
|
|
Authorization |
SID - токен, отриманий при авторизації |
|
Content-Type |
application/json |
|
REQUEST |
|
|
JSON Body |
Масив UUID документів через кому, наприклад: |
["44f3cf03-e2a3-4f8b-aae1-cafeb28fe699", "fb56e025-9c4d-4936-b889-087c6d5c837d"]
RESPONSE
В тілі відповіді передається інформація про стан документа (exchange_status і де можливо: sub_status_id).
JSON приклад відповіді
{
"44f3cf03-e2a3-4f8b-aae1-cafeb28fe699": {
"sub_status_id": "1",
"exchange_status": "000000000000000000000001"
},
"fb56e025-9c4d-4936-b889-087c6d5c837d": {
"sub_status_id": "1",
"exchange_status": "000000000000000000000001"
}
}