API сервісу Е-Сертифікати

Перелік методів API сервісу Е-Сертифікати
Всі запити нижче перерахованих API методів платформи EDIN 2.0 направляються на адресу: https://edo-v2.edin.ua
Для роботи з цими методами користувач повинен бути авторизованим.
Робота з сертифікатами
Створити сертифікат
POST /api/ecs/certificate
Оновити сертифікат
PUT /api/ecs/certificate
Отримати сертифікат
GET /api/ecs/certificate
Видалити сертифікат
DELETE /api/ecs/certificate
Архівувати / розархівувати сертифікат
PUT /api/ecs/archive
Задати / змінити тип доступу до сертифіката
PUT /api/ecs/access
Копіювати сертифікат
PUT /api/ecs/copy
Знайти сертифікат / сертифікати
POST /api/ecs/search
Додати (прив'язати) товари до сертифіката
PUT /api/ecs/products
Масово завантажити сертифікати
POST /api/ecs/certificates
Створити сертифікат з типом «Декларація виробника» (CERTDOC)
POST /api/ecs/certdoc
Робота з вкладеннями до сертифікатів
Створити вкладення до сертифіката
POST /api/ecs/body
Додати нові вкладення до сертифіката
PUT /api/ecs/body
Отримати контент вкладення до сертифіката
GET /api/ecs/body
Видалити всі вкладення до сертифіката
DELETE /api/ecs/body
Отримати вкладення до сертифіката в PDF
GET /api/ecs/body/download
Підписати вкладення до сертифіката
POST /api/ecs/certificate/sign
Отримати дані про підписання вкладення до сертифіката
GET /api/ecs/certificate/sign
Робота з пов'язаними відвантаженнями
Отримати список відвантажень по сертифікату
GET /api/ecs/certificate/shipments
Додати відвантаження в список відвантажень по сертифікату
POST /api/ecs/certificate/shipments
Редагувати дані відвантаження
PATCH /api/ecs/certificate/shipments
Видалити відвантаження з сертифікату
DELETE /api/ecs/certificate/shipments

Опис помилок сервісу «Е-Сертифікати»
На цій сторінці наданий опис специфічних помилок сервісу «EDI Network». Опис загальних помилок для всіх сервісів EDIN можна  знайти за посиланням.
Опис загальних помилок сервісу «Е-Сертифікати»
Код відповіді
Індекс помилки
Текст помилки
Опис
400
ERR_CRT-1
Unknown certificate type: %s
Тип сертифіката некоректний: %s
Невідомий тип сертифіката при зміні типа доступа (PUT, «/api/ecs/access»)
400
ERR_CRT-2
Search query error: %s
Помилка пошукового запиту: %s
Некоректне тіло запита (POST, «/api/ecs/search»)
400
ERR_CRT-3
Certificate with UUID [%s] not found
Сертифікат із указаним UUID [%s] не знайдено
Сертифікат не знайдено (GET, «/api/ecs/certificate»)
400
ERR_CRT-4
Data validation errors detected
Виявлено помилки при обробленні даних
Помилки при опрацюванні сертифікатів, завантажених із excel (POST, «/api/ecs/certificates»)
Опис помилки при масовому завантаженні сертифікатів
Якщо в сертифікатах, що передаються буде допущена помилка, то Ви отримаєте відповідь про помилку в файлі, наприклад:
{
    "certificatesErrors":
    {
        "2":
        [
            {
                "errorType": 1,
                "columnName": "Тип сертификату"
            },
            {
                "errorType": 2,
                "columnName": "Тип сертификату"
            },
            {
                "errorType": 1,
                "columnName": "Номер сертифікату"
            },
            {
                "errorType": 1,
                "columnName": "Дата видачі"
            },
            {
                "errorType": 1,
                "columnName": "Вид сертифікату"
            },
            {
                "errorType": 2,
                "columnName": "Вид сертифікату"
            },
            {
                "errorType": 1,
                "columnName": "Дата закінчення дії",
                "cause": "Вид сертифікату = 1"
            },
            {
                "errorType": 1,
                "columnName": "Номер партії",
                "cause": "Вид сертифікату = 2"
            },
            {
                "errorType": 1,
                "columnName": "Дата початку дії"
            },
            {
                "errorType": 1,
                "columnName": "Назва файлу"
            },
            {
                "errorType": 2,
                "columnName": "Назва файлу",
                "allowedValues": "[pdf, jpg, jpeg, png, tiff]",
                "fileName": "filename.txt"
            },
            {
                "errorType": 3,
                "columnName": "Назва файлу",
                "fileName": "filename.pdf"
            },
            {
                "errorType": 4,
                "columnName": "Назва файлу",
                "fileName": "filename.pdf"
            }
        ]
    },
    "productsErrors":
    {
        "2":
        [
            {
                "errorType": 1,
                "columnName": "Номер сертифікату"
            }
        ]
    },
    "createdCertificates":
    [],
    "existedCertificates":
    [],
    "certsCount": 0,
    "productsCount": 0
}
Опис параметрів помилки
Поле
Опис
certificatesErrors/productsErrors
об’єкт; починається з номера рядка сертифіката / рядка тварної позиції (відповідно), де була допущена помилка. Містить параметри:
errorType - тип помилки:
1 - Незаповнене обов’язкове поле, для цього значення помилка може містити поле cause (причина чому воно має бути обов’язкове, як у випадку з Дата закінчення дії або Номер партії;
2 - Некоректне значення поля, для цього поля також є поле allowedValues, це для помилки з Ім’ям файлу; для цього значення помилка може містити поле fileName;
3 - Файл з іменем файла вказаним в колонці Імя файлу не знайдено в zip-архіві; для цього значення помилка може містити поле fileName;
4 - Файл з іменем файла вказаним в колонці Імя файлу занадто великий; для цього значення помилка може містити поле fileName.
columnName - назва колонки;
createdCertificates
масив; номера створених сертифікатів
existedCertificates
масив; номера існуючих сертифікатів
certsCount - кількість сертифікатів (рядків на 1-му листі xls/xlsx-файлу)
 
productsCount - кількість товарних позицій (рядків на 2-му листі xls/xlsx-файлу)

Видалити відвантаженя з сертифікату DELETE /api/ecs/certificate/shipments
За допомогою цього методу можна із сертифікату видалити відвантаження по їхньому id.
REQUEST
URL
 
Метод запиту
DELETE
URL запиту
/api/ecs/certificate/shipments
URL параметри
gln (обов’язково) String - GLN власної Компанії
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
REQUEST
JSON Body
В тілі запиту передається JSON масив ідентифікаторів відвантажень.
 
Приклад запиту:
 
[11,7]
RESPONSE
Код сервера 200 (ok).

Редагувати дані відвантаження PATCH /api/ecs/certificate/shipments
REQUEST
URL
 
Метод запиту
PATCH
URL запиту
/api/ecs/certificate/shipments
URL параметри
gln (обов’язково) String - GLN власної Компанії
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
REQUEST
JSON Body
В тілі запиту передається JSON масив параметрів відвантаження (об'єкт XCertificateShipment).
 
Приклад запиту:
 
[{"id":11,"creatorId":13202937,"number":"shipment_11","date":1740269800,"buyer":"9864065750135"},{"id":7,"creatorId":13202937,"number":"shipment_7","date":1740169800,"buyer":"9864065750119"}]
 
RESPONSE
Код сервера 200 (ok).

Додати відвантаження в список відвантажень по сертифікату POST /api/ecs/certificate/shipments
REQUEST
URL
 
Метод запиту
POST
URL запиту
/api/ecs/certificate/shipments
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов'язково) - сертифіката, обовязковий
limit (необовязково) - якщо не передається, значення за замовчуванням 20
offset (необовязково) - якщо не передається, значення за замовчуванням 0
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
REQUEST
JSON Body
В тілі запиту передається JSON масив параметрів відвантаження (об'єкт XCertificateShipment).
 
Приклад запиту:
 
[{"number":"shipment_1","date":"1740169800","buyer":"9864065750119"},{"number":"shipment_4","date":"1740336908","buyer":"9864065750148"}]
RESPONSE
Код сервера 200 (ok).

Отримати список відвантажень по сертифікату GET /api/ecs/certificate/shipments
REQUEST
URL
 
Метод запиту
GET
URL запиту
/api/ecs/certificate/shipments
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обовязково) - ідентифікатор сертифіката
limit (необовязково) - якщо не передали, значення 20
offset (необовязково) - якщо не передали, значення 0
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
RESPONSE
У відповідь отримується JSON масив об'єктів з даними відвантажень, пов'язаних з обраним сертифікатом (об'єкти XCertificateShipment).
JSON приклад відповіді:
[{"id":9,"creatorId":13202937,"number":"shipment_2","date":1740369800,"buyer":"9864065750117"},{"id":15,"creatorId":13202937,"number":"shipment_3","date":1740269800,"buyer":"9864065750135"},{"id":13,"creatorId":13202937,"number":"shipment_1","date":1740169800,"buyer":"9864065750119"}]

Отримати вкладення до сертифіката в PDF GET /api/ecs/body/download
REQUEST
URL
 
Метод запиту
GET
URL запиту
/api/ecs/body/download
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
body_type (обов’язково) int - тип тіла:
1 - вкладення до сертифіката;
2 - base64 контент без підписів/печаток;
3- sign, base64 тіло підпису
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/pdf
RESPONSE
У тілі відповіді передається
pdf файл з вкладеннями, якщо body_type: 1.
p7s файл, якщо body_type: 2.

Видалити всі вкладення сертифіката DELETE /api/ecs/body
REQUEST
URL
 
Метод запиту
DELETE
URL запиту
/api/ecs/body
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
body_type (обов’язково) int - тип тіла:
1 - вкладення до сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
RESPONSE
Код сервера 200 (ok).

Отримати контент вкладення до сертифіката GET /api/ecs/body
REQUEST
URL
 
Метод запиту
GET
URL запиту
/api/ecs/body
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
body_type (обов’язково) int - тип тіла:
1 - вкладення до сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
RESPONSE
У тілі відповіді передається контент сформованого pdf файлу з вкладеннями у вигляді base64 рядка.

Додати нові вкладення до сертифіката PUT /api/ecs/body
Максимальний розмір файлу для завантаження - 7,5 МБ
REQUEST
URL
 
Метод запиту
POST
URL запиту
/api/ecs/body
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
body_type (обов’язково) int - тип тіла:
1 - вкладення до сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
multipart/form-data
REQUEST
 
Form-data
В тілі запиту передаються файли вкладень в форматі PDF, JPG, JPEG, PNG, TIFF. Всі файли, що передаються будуть автоматично об’єднані в один PDF файл.
 
Приклад запиту:
 
-----------------------------28001198861666343170695798896
Content-Disposition: form-data; name="files[]"; filename="istockphoto-1154370446-612x612.png"
Content-Type: image/png
(data)
-----------------------------28001198861666343170695798896
Content-Disposition: form-data; name="files[]"; filename="photo-1518020382113-a7e8fc38eac9.jpeg"
Content-Type: image/jpeg
(data)
-----------------------------28001198861666343170695798896--
RESPONSE
У тілі відповіді передається контент сформованого pdf файлу з вкладеннями у вигляді base64 рядка.

Створити вкладення до сертифікату POST /api/ecs/body
Максимальний розмір файлу для завантаження - 7,5 МБ
REQUEST
URL
 
Метод запиту
POST
URL запиту
/api/ecs/body
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
body_type (обов’язково) int - тип тіла:
1 - вкладення до сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
multipart/form-data
REQUEST
 
Form-data
В тілі запиту передаються файли вкладень в форматі PDF, JPG, JPEG, PNG, TIFF. Всі файли, що передаються будуть автоматично об’єднані в один PDF файл.
 
Приклад запиту:
-----------------------------28001198861666343170695798896
Content-Disposition: form-data; name="files[]"; filename="istockphoto-1154370446-612x612.png"
Content-Type: image/png
(data)
-----------------------------28001198861666343170695798896
Content-Disposition: form-data; name="files[]"; filename="photo-1518020382113-a7e8fc38eac9.jpeg"
Content-Type: image/jpeg
(data)
-----------------------------28001198861666343170695798896--
RESPONSE
У тілі відповіді передається контент сформованого pdf файлу з вкладеннями у вигляді base64 рядка.

Створити сертифікат з типом «Декларація виробника» (CERTDOC) POST /api/ecs/certdoc
REQUEST
URL
 
Метод запиту
POST
URL запиту
/api/ecs/certdoc
URL параметри
gln (обов’язково) String - GLN власної Компанії
publish (необов’язково) Boolean- ознака публікації сертифікату при створенні:
true - значення за замовчуванням, сертифікат публікується,
false - сертифікат створюється в чернетках
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
multipart/form-data
REQUEST
 
Form-data
В тілі запиту передається XML файл сертифіката.
RESPONSE
У тілі відповіді передається унікальний ідентифікатор (UUID) створеного сертифіката, наприклад:
 
55ef04b2-281e-4fca-bb67-d48fe88ae74f.

Масово завантажити сертифікати POST /api/ecs/certificates
Максимальний розмір файлу для завантаження - 7,5 МБ
REQUEST
URL
 
Метод запиту
POST
URL запиту
/api/ecs/certificates
URL параметри
gln (обов’язково) String - GLN власної Компанії
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
multipart/form-data
REQUEST
 
JSON Body
В тілі запиту передається zip-файл, що містить файли-вкладення (в форматі PDF, JPG, JPEG, PNG, TIFF) та заповнений xls/xlsx шаблон з зазначеними назвами файлів-вкладень.
Приклад передаваємого zip знаходиться у вкладенні до цієї сторінки (ліва бокова панель).
RESPONSE
У тілі відповіді передаються дані завантажених сертифікатів (масив об’єктів XCertificate).
Якщо в сертифікатах, що передаються, буде допущена помилка, то Ви отримаєте відповідь про помилку в файлі.

Додати (прив’язати) товари до сертифіката PUT /api/ecs/products
Якщо продукт уже прив’язаний до сертифіката і в тілі передано його ідентифікатор (XCertificateProduct.id), то дані товару будуть оновлені, в іншому випадку буде створено новий товар.
REQUEST
URL
 
Метод запиту
PUT
URL запиту
/api/ecs/products
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
REQUEST
 
JSON Body
В тілі запиту методу передаються дані товарів, що прив’язуються до сертифіката (масив об’єктів XCertificateProduct).
RESPONSE
Код сервера 200 (ok).

Знайти сертифікат/-ти POST /api/ecs/search
REQUEST
URL
 
Метод запиту
POST
URL запиту
/api/ecs/search
URL параметри
gln (обов’язково) String - GLN власної Компанії
owner_gln (необов’язково) String - GLN Компанії-Власника сертифікату
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
REQUEST
 
JSON Body
В тілі запиту методу передаються дані для фільтрації (об’єкт XQueryCertificates)
RESPONSE
В тілі відповіді передаються дані про сертифікати.

Копіювати сертифікат PUT /api/ecs/copy
REQUEST
URL
 
Метод запиту
PUT
URL запиту
/api/ecs/copy
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
company_id (опціонально) long - ідентифікатор компанії, від якої здійснюється запит
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
RESPONSE
Код сервера 200 (ok).

Задати/змінити тип доступу до сертифіката PUT /api/ecs/access
REQUEST
URL
 
Метод запиту
PUT
URL запиту
/api/ecs/access
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката (можливо передавати кілька в одному запиті)
type (обов’язково) String - тип доступу, можливі значення:
private - обмежений доступ
public - публічний доступ
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
REQUEST
 
JSON Body
Тіло очікується лише при type=private: тіло запиту в форматі Map<Long, Boolean>, де ключ - це intGlnID кому відкрито доступ, а значення true/false - чи буде дозволено даному intGlnID репостити цей сертифікат комусь іще.
 
Приклад тіла запиту:
 
1
[[13203393,false],[13203397,false]]
RESPONSE
Код сервера 200 (ok).

Архівувати / розархівувати сертифікат PUT /api/ecs/archive
Дія «архівувати» / «розархівувати» залежить від того, де перебуває сертифікат до виконання метода:
якщо сертифікат в Архіві, то виконається розархівування;
якщо сертифікат в Опублікованих, то виконається архівування.
REQUEST
URL
 
Метод запиту
PUT
URL запиту
/api/ecs/archive
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
RESPONSE
Код сервера 200 (ok).

Видалити сертифікат DELETE /api/ecs/certificate
REQUEST
URL
 
Метод запиту
DELETE
URL запиту
/api/ecs/certificate
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
RESPONSE
Код сервера 200 (ok).

Отримати сертифікат GET /api/ecs/certificate
REQUEST
URL
 
Метод запиту
GET
URL запиту
/api/ecs/certificate
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
RESPONSE
В тілі відповіді передаються дані про сертифікат.

Оновити сертифікат PUT /api/ecs/certificate
REQUEST
URL
 
Метод запиту
PUT
URL запиту
/api/ecs/certificate
URL параметри
gln (обов’язково) String - GLN власної Компанії
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
REQUEST
 
JSON Body
В тілі запиту (json) передається об’єкт з даними сертифіката.
RESPONSE
Код сервера 200 (ok).

Створити сертифікат POST /api/ecs/certificate
REQUEST
URL
 
Метод запиту
POST
URL запиту
/api/ecs/certificate
URL параметри
gln (обов’язково) String - GLN власної Компанії
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/json
REQUEST
 
JSON Body
В тілі запиту (json) передається об’єкт з даними сертифіката.
RESPONSE
У тілі відповіді передається унікальний ідентифікатор (UUID) створеного сертифіката, наприклад: 
55ef04b2-281e-4fca-bb67-d48fe88ae74f.

Підписати вкладення до сертифіката POST /api/ecs/certificate/sign
Для підпису доступні тільки сертифікати в стані чернетки із завантаженим вкладенням. Підписувати може тільки користувач з GLN, який створив даний сертифікат.
REQUEST
URL
 
Метод запиту
POST
URL запиту
/api/ecs/certificate/sign
URL параметри
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) UUID - унікальний ідентифікатор сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
Content-Type
application/octet-stream
REQUEST
 
JSON Body
В тілі запиту методу передається файл підпису p7s в base64 форматі.
RESPONSE
Код сервера 200 (ok).

Отримати дані про підписання вкладення до сертифіката GET /api/ecs/certificate/sign
REQUEST
URL
 
Метод запиту
GET
URL запиту
/api/ecs/certificate/sign
URL параметри
 
gln (обов’язково) String - GLN власної Компанії;
uuid (обов’язково) - UUID, унікальний ідентифікатор сертифіката
Headers
 
Authorization
SID - токен, отриманий при авторизації
RESPONSE
В тілі відповіді (json) передається інформація про підписантів (масив об’єктів ExEndUserSignInfo ).